1. Dadas n sequências de números inteiros, cada qual terminada por zero, calcular a soma dos números pares de cada sequência. 2. Dado um número inteiro positivo n , determinar todos os inteiros entre 1 e n que são comprimento de hipotenusa de um triângulo retângulo com catetos inteiros.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
Questão 1)
De acordo com o enunciado, o usuário fornece n sequências de valores inteiros terminadas pelo valor zero informando também o valor n. Para cada sequência fornecida precisamos calcular a média dos seus elementos pares. Um primeiro esboço de algoritmo, portanto, poderia ser:
Em essência é isto que precisamos fazer. É necessário, contudo, detalhar um pouco mais a operação do cálculo da média dos pares que ainda é uma operação um tanto abstrata. Como calculamos esta média? Temos que calcular uma somatória de termos lidos aos quais aplicamos o filtro "é par", isto é, só nos interessam os elementos pares da sequência cujo término é sinalizado pelo valor zero e, uma vez calculado tal somatória, dividir o seu valor pelo número de termos acumulados (cuidado aqui para não efetuar uma divisão por zero!) e apresentar o resultado ao usuário.
Para o cálculo da somatória precisamos de uma variável (s) para acumular as somas sucessivas e um contador (k) para contabilizar os termos acumulados da somatória. Um termo a ser acumulado é o elemento da lista (elem) que passa pelo filtro "é par". O esboço de uma estratégia de cálculo da média desejada para uma particular sequência de valores, portanto, poderia ser:
s <- 0
k <- 0
leia elem
enquanto elem diferente de zero faça
se elem é par
então
s <- s + elem
k <- k + 1
leia elem
se k for igual a zero
então
apresente "sequencia sem elementos pares"
senão
apresente s/k
===========================================================================
Questão 2)
leia n, cateto1, cateto2, hipotenusa; leia achou; apresente "Digite o comprimento maximo da hipotenusa para hipotenusa = 1; hipotenusa <= n; hipotenusa++ achou = FALSO; para cateto1 = 1; cateto1 < hipotenusa && !achou; cateto1++ cateto2 = cateto1; enquanto cateto1 * cateto1 + cateto2 * cateto2 < hipotenusa * hipotenusa cateto2++; Se cateto1 * cateto1 + cateto2 * cateto2 == hipotenusa * hipotenusa achou = VERDADEIRO;
Espero ter ajudado. =)
Para qualquer dúvida sobre implementação, me contacta.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.
) Indiquemos as operações de trocas com uma seta (?). Uma maneira seria: 7 = 2+5 ? 10 = 2+8 ? 16 = 12+4 ? 48. b) Como n = (n ? 1) + 1, é possível decrescer uma unidade de n, transformado-o em 1 ·(n ? 1) = n ? 1. Assim, uma boa estratégia seria criarmos um número maior que 2014 e depois usarmos a operação anterior para decrescermos uma unidade de cada vez até obtermos o número 2014. Para obter um número maior que 2014, faça: 7 = 2+5 ? 10 = 5+5 ? 25 = 12+13 ? 156 = 100+56 ? 5600. Basta agora decrescermos uma unidade 5600?2014 = 3586 vezes. Certamente existem maneiras mais rápidas que usam menos vezes a operação descrita. Uma delas seria: 7 = 2+5 ? 10 = 9+1 ? 9 = 4+5 ? 20 = 7+13 ? 91 = 38+53 ? 2014.
Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.