Processamento da Informação – Simulado 01 Nome de aluno NOTA: Nome de avaliador Instruções para a prova (leia antes de começar): 1) A prova tem a duração de 45 min. 2) A compreensão e interpretação do enunciado é parte integrante da avaliação. A prova é individual e sem consultas. Questão 1 (4 pontos) Dada a seguinte função static int enigma (int p, int q) { int i, j, soma=0; for (i=p; i<=q; i=i+1) { for (j=1; j<=i; j=j+1) { soma = soma+i; } if (soma==0) { break; } } return soma; } (a) Indique algebricamente (de forma concisa) a somatória que a função realiza (2 pontos). (b) Qual é o resultado para o chamado a função com os parâmetros p=3, e q=4 (2 pontos). Questão 2 Considere a seguinte função e dois números inteiros positivos, a e b, ambos maiores a zero. Selecione todas as opções válidas (Resposta correta +2, resposta incorreta -1). A função: (a) Sempre devolve 'false' se a<=b. (b) Sempre devolve 'false' se a>b. (c) Sempre devolve 'true' de a é igual a 0. (d) Devolve 'true' se a encaixa nos últimos dígitos b. (e) Devolve 'true' se b encaixa nos últimos dígitos a. static boolean enigma2 (int a, int b) { while(a<=b) { if(a%10==b%10) { a = a/10; b = b/10; if (a==0) { return true; } } else { return false; } } return false; } Questão 3 (2 pontos) Considere a função novoPI que permite calcular uma boa aproximação para o valor de PI (3.1415...). Para o laço for, selecione a opção mais apropriada para calcular a aproximação de PI considerando somente os primeiros 1000 termos da equação: (Resposta correta +2, resposta incorreta -1) (a) for (i=1; i<1000; i=i+1) (b) for (i=0; i<1000; i=i+1) (c) for (i=1; i<2000; i=i+2) (d) for (i=0; i<2000; i=i+2) (e) nenhuma opção é válida static double novoPI () { int i; double soma=0; for (_________________________) { soma = soma + 1.0/(i*i); } return Math.sqrt(soma*8); } Questão 4 (4 pontos) Indique o valor que devolverá a função funcao1. Considere como parâmetro de entrada, para a função, o vetor {6, 5, 4, 3, 2, 1} static int funcao1 (int w[]) { int soma=0; int k=w.length1; while (k>=0) { soma = soma+w[k]; w[k] = soma; k = k1; } return w[0]; } Resposta: …............................................. Questão 5 (6 pontos) Dizemos que um inteiro positivo n é perfeito se for igual à soma de seus divisores positivos diferentes de n. Por exemplo, 6 é perfeito, pois 1+2+3=6. Complete o seguinte programa para que a função devolva 'true' caso o inteiro dado como entrada seja perfeito. Caso contrário, a função deve devolver 'false'. Cada resposta correta +1, cada resposta incorreta -0.5. static boolean perfeito (int n) { int i, soma=0; for (____________________;___________________________;____________________) { if (________________________________) { soma = __________________________________________________; } } if (_______________________________) return true; else return false; }