PUC-Rio, INF1005.33F, Programação 1, 2016.2 Lista 1: Introdução à linguagem de programação C Prof. Guilherme F. Lima 1. Refaça os exercícios da Lista 0 usando C no lugar de pseudocódigo. Tipos, variáveis, operadores, e entrada e saída 2. Escreva um programa que lê uma temperatura (número real) em Fahrenheit e imprime a temperatura correspondente em Celsius. Utilize a fórmula F = (9C 5) + 32. 3. Escreva um programa que lê um inteiro e imprime seu antecessor e sucessor na ordem dos inteiros. Por exemplo, Digite um número inteiro: 4 Antecessor: 3 Sucessor: 5 4. Modifique o programa anterior de forma que a saída esteja no seguinte formato: Digite um número inteiro: 4 Antecessor de 4: 3 Sucessor de 4: 5 5. Escreva um programa que lê três números reais e imprime sua média com três casas decimais. Por exemplo, Digite os três números: 4.5 + 8.3 + 9.54 Média: 7.447 6. Escreva um programa que lê duas notas de um aluno e imprime a sua média. As notas e a média são números reais; a primeira nota tem peso três e a segunda nota tem peso sete. 7. Escreva um programa que lê uma medida em pés (número inteiro) e medida em polegadas (número inteiro) e imprime a medida correspondente em metros (número real). Um pé equivale a 30,48cm e uma polegada equivale a 2,54cm. Por exemplo, Digite o número de pés e polegadas: 5 10 Metros: 1.778m 8. Escreva um programa que lê dois pontos (x 1, y 2 ) e (x 2, y 2 ) no plano cartesiano e imprime a distância entre eles. Assuma que as coordenadas dos pontos são números reais. Utilize o Teorema de Pitágoras para determinar a distância entre os pontos, e para calcular a raiz quadrada de um número real utilize a função sqrt da biblioteca math.h. 9. Escreva um programa que lê dois números inteiros, horas e minutos, e imprime o valor correspondente em minutos. Por exemplo, Digite o número de horas e minutos: 9 15 Total em minutos: 555 minutos 10. Escreva um programa que lê dois horários no formato hh:mm e imprime o intervalo total em minutos entre o primeiro horário e o segundo. 11. Modifique o programa anterior de forma que o programa também imprima o intervalo total em horas (número real com duas casas decimais) e em segundos. Por exemplo, 1/5
Digite os dois horários: 10:45 11:25 Total: 0.67 horas 40 minutos 2400 segundos 12. Escreva um programa que lê o valor total de uma conta num restaurante, a taxa de serviço, e o número de pessoas que pretendem dividir a conta, e imprime o valor por pessoa. Por exemplo, Digite o total, a taxa de serviço e número de pessoas: R$750.25 13% 12 Total por pessoa: R$70.65 13. Escreva um programa que lê uma quantia x inteira em reais (R$) e imprime o menor número de notas de R$50, R$20 e R$10 cuja soma é igual a x ou é a mais próxima possível de x. O programa também deve imprimir o que falta para chegar a x. Por exemplo, Digite a quantia em R$: 215 Notas de R$50: 4 Notas de R$20: 0 Notas de R$10: 1 Total: R$210 Resto: R$5 Condicionais 14. Escreva um programa que lê um inteiro x e imprime o seu valor absoluto abs(x), e.g., abs(3) = 3 e abs( 3) = 3. 15. Escreva um programa que lê dois inteiros x e y e imprime abs(x y). 16. Escreva um programa que lê dois inteiros x e y e imprime múltiplo se x é múltiplo de y ou não múltiplo caso contrário. Utilize o operador % (resto da divisão). 17. Escreva um programa que lê três números reais e imprime o maior deles. 18. Escreva um programa que lê três números reais e os imprime em ordem decrescente. 19. Escreva um programa que lê o ano de nascimento de uma pessoa e exibe a sua a idade até o fim de 2016. 20. Escreva um programa que lê três inteiros, testa-os e imprime uma das seguintes mensagens: Os três números são iguais. Os três números são diferentes. Dois números são iguais e um é diferente. 21. Escreva um programa que lê três notas (números reais) g 1, g 2 e g 3, calcula sua média m e imprime a situação do aluno: Aprovado, se m 5 e nenhuma nota g i é menor do que 3. Reprovado, se m < 3. Prova final, caso contrário. 22. Escreva um programa que lê a idade de uma pessoa e imprime a sua classe eleitoral: Não eleitor (abaixo de 16 anos). Eleitor obrigatório (entre 18 e 65 anos). Eleitor facultativo (entre 16 e 18 ou acima de 65 anos). 2/5
23. Escreva um programa que lê um horário no formato 24 horas e exibe-o no formato 12 horas. Por exemplo, Digite um horário: 22:32 Horário no formato 12h: 10:32pm ou Digite um horário: 00:00 Horário no formato 12h: 00:00am 24. Escreva um programa que lê as coordenadas de um retângulo e um ponto (x, y) e determina se o ponto está dentro (inscrito ou exatamente na borda) ou fora do retângulo. O retângulo é definido por dois pontos (v 1, v 2 ) e (v 3, v 4 ) que indicam respectivamente o vértice inferior esquerdo e o superior direito do retângulo. O programa deve imprimir: O ponto (x, y) está dentro do retângulo ; ou O ponto (x, y) está fora do retângulo. Todas as coordenadas são números reais. 25. Escreva um programa que calcula a taxa de estacionamento de um veículo. O programa lê o horário de entrada e o horário de saída do veículo, ambos no formato hh:mm, e imprime o total a ser pago em reais. O valor da hora é R$4,50 e o estacionamento tem tolerância de 10 minutos para cada hora, ou seja, o valor da hora inteira só é cobrado após os décimo minuto da hora. 26. Uma empresa pretende dar um aumento aos seus funcionários de acordo com a sua produtividade. Há três categorias de funcionários: Ótimo (categoria 1): 20% de aumento. Bom (categoria 2): 15% de aumento. Regular (categoria 3): 0% de aumento. Escreva um programa que lê o salário atual de um funcionário (número real) e a sua categoria (inteiro entre 1 e 3) e imprime o novo salário. 27. Uma loja de eletrodomésticos dá descontos progressivos de acordo com o valor das compras dos clientes. Há três faixas de desconto: Compras até R$50: 5% de desconto Compras entre R$50 e R$100: 10% de desconto Compras acima de R$100: 15% de desconto Escreva um programa que lê o total da compra de um cliente e imprime o desconto e o total a ser pago. Repetições 28. Escreva um programa que imprime os números entre 1 e 100 em ordem crescente. 29. Escreva um programa que imprime os números entre 1 e 100 em ordem decrescente. 30. Escreva um programa que imprime os números ímpares entre 1 e 3000 em ordem decrescente. 31. Escreva um programa que lê um inteiro n 0 e um incremento i 0 (inteiro) e imprime os números no intervalo inteiro [0, n] de i em i. Por exemplo, Digite n e i: 13 3 Resultado: 0 3 6 9 12 3/5
32. Escreva um programa que lê um inteiro n 0 e imprime os números impares menores do que n em ordem crescente. 33. Escreva um programa que lê um inteiro n e imprime os n primeiros pares em ordem decrescente. Por exemplo, Digite n: 6 Resultado: 12 10 8 6 4 2 34. Escreva um programa que lê um dígito (número entre 0 9) e exibe a sua tabela de multiplicação (tabuada) no seguinte formato: Digite um número entre 0 e 9: 5 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 35. Escreva um programa que lê um inteiro n 0 e imprime o somatório de 0 até n, i.e., n i = 0 + 1 + 2 + + n. i=0 36. Escreva um programa que lê dois inteiros m 0 e n 0 tais que m n e imprime o produtório de m até n, i.e., n i = m (m + 1) (m + 2) n. i=m 37. Escreva um programa que lê o número de alunos de uma turma e, para cada aluno, lê três notas (reais), escreve sua média, e ao final, escreve a média da turma. Digite o total de alunos: 3 Digite as notas do aluno 1: 5.0 8.0 6.5 Média: 6.5 Digite as notas do aluno 2: 4.0 10.0 2.5 Média: 5.5 Digite as notas do aluno 3: 9.0 7.5 8.9 Média: 8.5 Média da turma: 6.8 38. Escreva um programa que lê números reais até que um número negativo seja digitado, e imprime a média dos números lidos (sem considerar o número negativo). Por exemplo, Digite os números: 4 6 5 0 3.2 10 9-1 Média dos 7 números: 5.31 39. Escreva um programa que lê n números reais x 1,..., x n e imprime o maior e o menor número da sequência. Por exemplo, 4/5
Digite o total de números: 5 Digite a os números: 3.5 2.3-1.1 12.5 3.9 Maior: 12.5 Menor: -1.1 40. Escreva um programa que lê um inteiro n 0 e imprime os n primeiros termos da série de Fibonacci: Primeiro termo: a 0 = 0. Segundo termo: a 1 = 1. n-ésimo termo: a n = a n 1 + a n 2. Por exemplo, Digite um n: 15 Resultado: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 41. Suponha que você tem um carro flex que faz 13km/L com gasolina e 9km/L com álcool, i.e., cuja autonomia M é dada pela fórmula M = 13G + 9A, em que G é a quantidade de gasolina e A é a quantidade de álcool no tanque. Escreva um programa que lê o preço do litro de gasolina e preço do litro de álcool, e imprime a autonomia do seu carro e o custo associado em função dos combustíveis utilizados variando de 10L em 10L a proporção gasolina-álcool. Considere que a capacidade do tanque é de 50L. Por exemplo, Digite o preço da gasolina e do álcool: R$2.5 R$1.6 ------------------- G A R$ Km ------------------- 50 0 125.00 650 40 10 116.00 610 30 20 107.00 570............ 5/5