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)