CI208 – Programação de Computadores
1o semestre 2015
Exercícios ♯03
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.

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

  2
Ax  + 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.

4.

(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 de um item pedido, a quantidade do item e calcule o valor a ser pago por aquele item. Considere que a cada execução do programa somente será calculado o valor referente a 1 (um) item.

5.

(lanche)  Refaça o programa 4 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 exibir o valor total e terminar.

  

Solução

6.

(sucessorpar)  Fazer um programa em C++ para ler do teclado um conjunto 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.

7.

(calcmedia)  Fazer um programa em C++ que leia do teclado um conjunto 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.

8.

(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 valor.

9.

(somaimpares)  Fazer um programa em C++ para calcular a soma dos cinquenta primeiros números ímpares. Ao final, imprimir esta soma. Aqui você DEVE usar while para resolver o problema.

10.

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

11.

(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:

        1    1   1    1   1
e = 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

12.

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

S = 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.

13.

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

        ∑N      i x2i   x0-  x2-  x4-  x6-  x8-
cos(x ) =   (- 1)(2i)! = 0! - 2! + 4! - 6! + 8! - ⋅⋅⋅
        i=0

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.

14.

(serie)  Faça um programa em C++ que lê um número inteiro N, calcule e imprima a soma dos termos da série abaixo, para N termos:

    5   9   18   33   65
S = 2-+ 4-+ -8-+ 16-+ 32-+ ⋅⋅⋅

15.

(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:

16.

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

17.

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

18.

(primosNK)  Fazer um programa em C++ para calcular e imprimir a soma dos números primos entre dois inteiros N e K positivos informados pelo usuário no início da execução do programa.

19.

(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,⋅⋅⋅

20.

(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.

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.

(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 uma precisão de 10-5.

23.

(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.

24.

(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.

25.

(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.