CI208 – Programação de Computadores
Exercícios # 04
2o semestre 2010
Estruturas de Repetição



Os exercícios desta lista são compilações de materiais gerados por professores do DINF/UFPR para a disciplina de CI208 - Programação de Computadores.

Nos exercícios abaixo, os nomes entre parênteses no início do enunciado são sugestões para os nomes dos programas solicitados.

1.

(progarit)  Fazer a soma dos primeiros 20 elementos de uma progressão aritmética de razão 3 e cujo 1o elemento é fornecido pelo usuário. Usar repetições. NÃO USAR A FÓRMULA DA P.A.

  

Solução

2.

(fatorial)  Dado um número inteiro, calcular seu Fatorial.

  

O fatorial de um número inteiro é definido como:
n! = 1 2 3 .... (n 1) n
0! = 1

3.

(fibonacci)  Faça um programa que exiba na tela os 20 primeiros números da seqüência de Fibonnacci.

  

A seqüência de Fibonnacci é definida como:
fib(0) = 0
fib(1) = 1
fib(n) = fib(n 1) + fib(n 2)
ou seja, a seqüência 0,1,1,2,3,5,8,13,21,34,⋅⋅⋅

4.

(nfibonacci)  Baseado na solução do exercício anterior, faça um programa que mostre o N-ésimo elemento da seqüência de Fibonnacci. O valor de N deve ser fornecido pelo usuário.

5.

(ehprimo)  Dado um número inteiro maior que 1, verifique se este número é primo ou não, exibindo mensagens convenientes em cada caso.

  

Nas soluções abaixo, observe o número de iterações necessárias para chegar ao resultado:

6.

(eqgrau2)  Ler um conjunto de linhas de dados contendo a definição de várias equações do segundo grau da forma

Ax2 + Bx + C  = 0.

Cada linha de dados contém a definição de uma equação por meio dos valores de A, B e C do conjunto dos números reais. A última linha informada ao sistema contém 3 (três) valores zero (exemplo 0 0 0).
Após a leitura de cada linha o programa deve calcular as duas raízes da equação. A listagem de saída, em cada linha, deverá conter sempre os valores de A, B e C lidos, seguidos dos valores das duas raízes reais. Caso a equação não tenha raízes reais, isto deve ser indicado na saída. Após cada resultado, o programa deve pedir que o usuário digite T para terminar o programa ou qualquer outra LETRA para continuar a calcular raízes de equações de 2o grau.

7.

(coseno)  Sabe-se que o valor do coseno de x radianos pode ser calculado pela série infinita abaixo:

        ∑N        2i     0    2    4    6    8
cos(x ) =   (− 1)i x- =  x-−  x-+  x--− x--+ x--− ⋅⋅⋅
        i=0     (2i)!   0!   2!   4!   6!   8!

Faça um programa que calcule o valor do coseno de um ângulo em radianos obtido pela série acima considerando apenas os primeiros 14 termos da mesma.

8.

(calsqrt)  Faça um programa que calcule o número real que mais se aproxime da raiz quadrada de um número fornecido pelo usuário, com um erro de 1e-5.

9.

(lancheria)  O cardápio de uma lancheria é o seguinte:




Especificação Código Preço






Cachorro quente 100 1,20
Bauru simples 101 1,30
Bauru com ovo 102 1,50
Hambúrger 103 1,20
Cheeseburguer 104 1,30
Refrigerante 105 1,00



 
Escrever um programa que leia o código do item pedido, a quantidade e calcule o valor a ser pago por aquele lanche. Considere que a cada execução somente será calculado um item.

10.

(lanche)  Refaça o programa 9 de forma que seja feito o cálculo do preço do lanche até que o usuário entre com código de ítem 0 (zero), quando então o programa deve terminar.

  

Solução

11.

(sucessorpar)  Fazer um programa em C++ para ler do teclado uma massa de dados onde cada linha contém um número par. Para cada número lido, calcular o seu sucessor par, imprimindo-os dois a dois em listagem de saida. A última entrada de dados contém o número zero. OBSERVACAO: o zero não deve ser considerado para o cálculo do sucessor par.

12.

(calcmedia)  Fazer um programa em C++ que leia do teclado uma massa de dados onde cada linha contém um valor numérico. O programa deve calcular a média aritmética dos diversos valores lidos, imprimindo-a no final da fase de leitura. A última entrada de dados contém o unico número zero fornecido. OBSERVACAO: o zero não deve ser considerado no cálculo da média.

13.

(achamaior)  Fazer um programa em C++ que seja capaz de ler números inteiros positivos do teclado e de identificar o maior destes números lidos. Ao final, o maior número encontrado deve ser impresso. O número zero é o ultimo número fornecido como dado de entrada. OBSERVACAO: o zero não deve ser considerado na busca do maior.

14.

(somaimpares)  Fazer um programa em C++ para calcular a soma dos cinquenta primeiros números ímpares. Ao final, imprimir esta soma.

15.

(prodimpares)  Fazer um programa em C++ para calcular o produto dos números ímpares de 1 a 12. Ao final, imprimir o valor calculado.

16.

(neperiano)  Sabe-se que o número Neperiano e = 2.7182818⋅⋅⋅ (que é um número irracional) pode ser calculado pela soma dos valores de uma série infinita, como mostrado abaixo:

e = 1+  1-+ -1 + 1-+  1-+ 1- + ⋅⋅⋅
        1!  2!   3!   4!  5!

Fazer um programa em C++ que calcule este número (e) considerando apenas as 15 (quinze) primeiras parcelas.

  

Solução

17.

(coseno1)  Considere a soma S das parcelas apresentadas abaixo, as quais são originadas de uma série infinita:

1− -1 + 1-−  1-+ -1 − -1-+  1--− ⋅⋅⋅
   2!   4!   6!  8!   10!   12!

Esta soma corresponde ao cálculo do valor do co-seno de 1 (um) radiano. Fazer um programa em C++ que calcule o valor de S considerando apenas as 14 primeiras parcelas. Ao final, imprimir o resultado encontrado para S.

18.

(primos100)  Fazer um programa em C++ para calcular e imprimir todos os números primos entre 1 e 100.

19.

(primos30)  Fazer um programa em C++ para calcular e imprimir todos os 30 primeiros números primos.

20.

(primos300)  Fazer um programa em C++ para calcular e imprimir a soma dos números primos entre 1 e 300.

21.

(mdceuclides)  Fazer um programa em C++ para ler dois números Naturais do teclado e calcular o MDC (Máximo Divisor Comum) pelo método Euclidiano. Em seguida, imprimir o valor do MDC calculado.
OBSERVACAO: NÃO utilize nem VETORES e nem STRINGS!!!
Um exemplo do método Euclidiano aplicado aos números 720 e 520 é o seguinte:

PIC

22.

(multiplica)  Fazer um programa em C++ para simular o processo de multiplicação ensinado por uma professora do ensino fundamental aos seus alunos. O programa deve funcionar para a multiplicação de um número inteiro positivo de 3 (três) algarismos por um número inteiro positivo de apenas 1 (um) algarismo. Os dois números são fornecidos pelo teclado do computador.
OBSERVACAO: Aplique divisões sucessivas por 10, assumindo que a UCP do seu computador saiba determinar automaticamente o resto da divisão de um número inteiro por outro inteiro.

23.

(multiplica2)  Fazer um programa em C++ para simular o processo de multiplicação ensinado por uma professora do ensino fundamental aos seus alunos. O programa deve funcionar para a multiplicação de um número inteiro positivo composto de qualquer quantidade de algarismos por um número inteiro positivo de apenas 1 (um) algarismo. Os dois números são fornecidos pelo teclado do computador.
OBSERVACAO: Aplique divisões sucessivas por 10, assumindo que a UCP do seu computador saiba determinar automaticamente o resto de uma divisão de um número inteiro por outro inteiro.

24.

(palindromo)  Fazer um programa em C++ que seja capaz de ler um número inteiro positivo do teclado e de verificar se a sua sequência de dígitos é exatamente a mesma, tanto se for analisado da esquerda para a direita quanto da direita para a esquerda. Caso seja, imprimir ??ESSE NUMERO E PALÍNDROMO!!!??. Caso não seja, imprimir ??ESSE NUMERO NÃO É PALÍNDROMO.??
OBSERVACAO: utilize divisões e/ou multiplicações sucessivas por 10.