Buscar

AP1 2Chamada(Gabarito) 20051

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Fundação CECIERJ - Vice Presidência de Educação Superior a Distância
Curso de Tecnologia em Sistemas de Computação – UFF
Disciplina: Projeto e Desenvolvimento de Algoritmos
AP1 1° semestre de 2005 - Continuação
Data 04/06/2005
Nome – 
Assinatura – 
Observações:
1. Esta prova é a continuação da prova aplicada em 21/05/2005 e, portanto, vale 
apenas 7,0 pontos.
2. Prova sem consulta.
3. Coloque seu nome e assinatura na folha das questões e na folha de respostas. 
4. Ao final da prova devolva as folhas de questões e as de respostas.
5. Todas as respostas devem ser transcritas na folha de respostas. As respostas na 
folha de questões não serão corrigidas.
4a questão (1.0 ponto)
O que será impresso pelo programa abaixo considerando que todas as variáveis são 
inteiras? Justifique sua resposta.
inicio
 n1 ← 3
 d1 ← 5
 n2 ← 1
 d2 ← 3
 imprima (n1*d2+n2*d1)/(d1*d2)
fim
Resposta: Será impresso o número 0
Justificativa: Trata-se de uma divisão de números inteiros (14/15) e portanto o quociente 
é zero.
5a questão (1.0 ponto)
As expressões abaixo são usadas para calcular as raízes de uma equação de segundo grau:
a
cabb
x
⋅
⋅⋅−+−=
2
4
1
2
a
cabb
x
⋅
⋅⋅−−−=
2
4
2
2
Um programador tentou escrever essas expressões em pseudo-código chegando ao 
seguinte resultado:
x1 ← -b + raiz(b*b – 4*a*c)/(2*a)
x2 ← -b - raiz(b*b – 4*a*c)/(2*a)
Considere que a função raiz(expressao) calcula corretamente a raiz quadrada da 
expressão entre parênteses.
Ao executar o programa, este programador constatou que o código não gerava os 
resultados esperados. Ajude nosso amigo programador apontando os erros nas expressões 
em pseudo código. 
Resposta:
x1 ← (-b + raiz(b*b – 4*a*c))/(2*a)
x2 ← (-b - raiz(b*b – 4*a*c))/(2*a)
6a questão (1.0 ponto)
O que será impresso pelo programa a seguir se o usuário fornecer como entrada os 
números inteiros 56 e 64?
inicio
 imprima 'n1: '
 leia n1
 imprima 'n2: '
 leia n2
 acabou ← falso
 enquanto não acabou faça
 se n1>n2 então
 n1 ← n1 - n2
 senao 
 se n1<n2 então
 n2 ← n2 - n1
 senao 
 acabou ← verdadeiro
 fim se
 fim se
 imprima 'n1 = ', n1, ' n2 = ', n2
 se (n1 = 1) OU (n2 = 1) então 
 acabou ← verdadeiro
 fim se
 fim enquanto
 imprima 'mdc = ', n1
fim
Resposta: 
n1 = 56 n2 = 8
n1 = 48 n2 = 8
n1 = 40 n2 = 8
n1 = 32 n2 = 8
n1 = 24 n2 = 8
n1 = 16 n2 = 8
n1 = 8 n2 = 8
n1 = 8 n2 = 8
mdc = 8
7a questão (2.0 pontos)
Considere o seguinte algoritmo:
leia n
enquanto n <> 1 faça
 imprima n
 se n mod 2 = 1 entao 
 n <- 3n + 1
 senao 
 n <- n/2
 fim se
fim enquanto
Para n=22, o algoritmo gera a seqüência abaixo, composta por 16 números inteiros (diz-
se que o tamanho da seqüência é 16).
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
Para n=13 a seqüência gerada tem tamanho 10
13 40 20 10 5 16 8 4 2 1
Verifica-se que, para todos os números inteiros n entre 0 e 1.000.000, as seqüências 
geradas sempre convergem para a unidade. 
Escreva um algoritmo que determine o tamanho da maior seqüência gerada para os 
números inteiros n entre 1 e 100, inclusive.
 inicio
 maior ← 1
 para i ← 1 até 100 faça
 conta ← 1
 n ← i
 enquanto n <> 1 faça
 conta ← conta + 1
 se n mod 2 = 1 então
 n ← 3 * n + 1
 senão
 n ← n / 2
 fim se
 fim enquanto
 se conta > maior então
 maior ← conta
 fim se
 fim para
 imprima 'maior: ', maior
 fim
8a questão (2.0 pontos)
Escreva um programa que transforme uma hora recebida no formato universal (24 horas) 
para o formato padrão (AM / PM).
Exemplo 1:
Entre com a hora no formato universal:
hora [0..23]:
10
minuto [0..59]:
35
segundo [0..59]:
30
Formato padrão:
10
35
30
AM
Exemplo 2:
Entre com a hora no formato universal:
hora [0..23]:
15
minuto [0..59]:
35
segundo [0..59]:
30
Formato padrão:
3
35
30
PM
Exemplo 3:
Entre com a hora no formato universal:
hora [0..23]:
0
minuto [0..59]:
35
segundo [0..59]:
30
Formato padrão:
12
35
30
AM
Exemplo 4:
Entre com a hora no formato universal:
hora [0..23]:
12
minuto [0..59]:
35
segundo [0..59]:
30
Formato padrão:
12
35
30
PM
 inicio
 imprima 'Entre com a hora no formato universal:'
 imprima 'hora [0..23]:'
 leia hora
 imprima 'minuto [0..59]:'
 leia minuto
 imprima 'segundo [0..59]:'
 leia segundo
 imprima ''
 imprima 'Formato padrão:'
 se (hora=12) OU (hora=0) entao
 imprima 12
 senão
 imprima (hora mod 12)
 fim se
 imprima minuto
 imprima segundo
 se hora < 12 então
 imprima 'AM'
 senão
 imprima 'PM'
 fim se
 fim

Continue navegando