Baixe o app para aproveitar ainda mais
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
Compartilhar