Buscar

Lista 5 Estrutura de Repetição com Teste no Fim Do While

Prévia do material em texto

COMP1 - Lista de Exercícios 05
Estrutura de Repetição com Teste no Fim: Do-While
Esta lista será submetida a um algoritmo de correção automático. Fique atento pois todos os
exercícios possuem entrada e saída de dados padronizados. Não insira printf’s ou leia dados
além do exigido pelo exercício. Também não altere as frases a serem exibidas pois o
algoritmo de correção realizada a comparação caractere a caractere, assim qualquer
incompatibilidade poderá sinalizar solução incorreta. Cada exercício é acompanhado de
uma tabela com exemplos de entrada (primeira coluna) e saída (segunda coluna). Não
utilize acentuação/caracteres especiais. Fique atento ao uso de letras maiúsculas e
minúsculas, siga sempre os exemplos de saída. O programa ignora espaços e \n (você pode
usar, mas não vai fazer diferença no resultado final).
1. Crie um programa chamado L5E01.c Supondo que a população de um país da república C
seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a
população da república Java seja 200000 habitantes com uma taxa de crescimento de 1.5%.
Faça um programa que calcule e escreva o número de anos necessários para que a população
do país C ultrapasse ou iguale a população do país Java, mantidas as taxas de crescimento.
Use a estrutura do-while.
63
2. Crie um programa chamado L5E02.c Altere o programa L5E01.c de modo que a população
da república C seja inserida pelo usuário. A população da república C deve sempre iniciar
menor do que a população da república Java, portanto valide a inserção de dados de modo
que o programa não realize os cálculos até que o usuário insira um valor compatível. Use a
estrutura do-while.
400000 350000 100000 48
560000 54 590
100000 48
3. Crie um programa chamado L5E03.c Altere o programa L5E02.c de modo que ele também
não permita a inserção de valores negativos para a população da república C (todas as outras
condições precisam continuar funcionando!). Use a estrutura do-while.
400000 350000 100000 48
560000 54 590
100000 48
560000 -80 -100000 120000 35
4. Crie um programa chamado L5E04.c Faça um programa que peça dois números, base e
expoente (nesta ordem!), calcule e mostre o primeiro número elevado ao segundo número.
Não utilize a função de potência da linguagem (pow). Use a estrutura do-while.
2 3 2 elevado a 3 = 8
3 5 3 elevado a 5 = 243
5. Crie um programa chamado L5E05.c Faça um programa que calcule o fatorial de um
número inteiro fornecido pelo usuário. Use a estrutura do-while.
3 fatorial de 3 = 6
5 fatorial de 5 = 120
6 fatorial de 6 = 720
6. Crie um programa chamado L5E06.c Faça um programa que mostre os n termos da Série a
seguir: 
S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m
Sabe-se que n é dado pelo usuário. Imprima no final a soma da série. Use a estrutura do-
while.
3 S=2.27
5 S=3.39
120 S=61.69
7. Crie um programa chamado L5E07.c Uma das maneiras de se conseguir a raiz quadrada de
um número é subtrair do número os ímpares consecutivos a partir de 1, até que o resultado
da subtração seja menor ou igual a zero. O número de vezes que se conseguir fazer a
subtração é a raiz quadrada exata (resultado 0) ou aproximada do número (resultado
negativo). Observe:
Raiz de 16:
16 – 1 = 15 – 3 = 12 – 5 = 7 – 7 = 0 Total de ímpares = 4, resultado final = 0, portanto raiz exata = 4.
Raiz de 15:
15 – 1 = 14 – 3 = 11 – 5 = 6 – 7 = -1 Total de ímpares = 4, resultado final = -1, portanto raiz está entre
3 e 4.
Implemente um algoritmo que realize este procedimento para um dado inteiro. Não use a 
função de raiz quadrada da linguagem C (sqrt). Use a estrutura do-while.
4 4 - 1 = 3 - 3 = 0 (raiz exata: 2)
5 5 - 1 = 4 - 3 = 1 - 5 = -4 (raiz entre 2 e 3)
16 16 - 1 = 15 - 3 = 12 - 5 = 7 - 7 = 0 (raiz exata: 4)
25 25 - 1 = 24 - 3 = 21 - 5 = 16 - 7 = 9 - 9 = 0 (raiz exata: 5)
81 81 - 1 = 80 - 3 = 77 - 5 = 72 - 7 = 65 - 9 = 56 - 11 = 45 - 13 = 32 -
15 = 17 - 17 = 0 (raiz exata: 9)
10 10 - 1 = 9 - 3 = 6 - 5 = 1 - 7 = -6 (raiz entre 3 e 4)