Universidade Federal do Espírito Santo – Centro Tecnológico Departamento de Informática – 2015/2 Programação II – Curso de Engenharia de Computação Profa. Maria Claudia Silva Boeres 1ª LISTA DE EXERCÍCIOS Essa lista de exercícios deve ser resolvida integralmente usando o ambiente BOCA. Instruções gerais para o uso do BOCA: O BOCA é um programa que permite a submissão de códigos em C e possibilita a execução e correção automática de exercícios de programação. Portanto, ao submeter um código para o BOCA, é estritamente necessário seguir os padrões de entrada e saída fornecidos para cada uma das questões. Os comandos scanf e printf, de entrada e saída na linguagem C devem ser usados como bastante cautela em códigos submetidos ao BOCA, seguindo rigorosamente os formatos de entrada e saída definidos para cada questão. O sistema compara caractere por caractere da saída do seu programa (isto é, tudo que foi escrito na tela) com a saída esperada pelo BOCA. Portanto tudo deve ser escrito na saída padrão (ex. tela do monitor) conforme indicado nos exemplos das questões. Qualquer printf realizado sem necessidade pode invalidar a resposta. Lembre-se que os exemplos dados podem não cobrir todos os casos de teste das questões. Os problemas que estão com o rótulo em negrito devem ser preferencialmente resolvidos no BOCA durante a aula de laboratório. 1. (BOCA:L1_1) Problema: Faça um programa para ler 2 números inteiros e calcular a soma de suas raízes quadradas. Entrada: 2 números inteiros. Saída: Soma das raízes quadradas dos números dados na entrada. Precisão de 2 casas decimais. Exemplo de Entrada: 16 25 40 20 22 100 144 Exemplo de Saída: 9.00 10.80 2.83 22.00 2. (BOCA:L1_2) Problema: Faça um programa que calcule o perímetro e a área de um retângulo. Entrada: Altura e largura do retângulo. Saída: Perímetro do retângulo. Precisão de 2 casas decimais. Exemplo de Entrada: 10 20 14.83 53.29 1.9 117.1 Exemplo de Saída: Universidade Federal do Espírito Santo – Centro Tecnológico Departamento de Informática – 2015/2 Programação II – Curso de Engenharia de Computação Profa. Maria Claudia Silva Boeres 60.00 200.00 136.24 790.29 238.00 222.49 3. (BOCA:L1_3) Problema: Faça um programa que calcule o perímetro de um retângulo. Entrada: Coordenadas (x,y) dos cantos inferior esquerdo e superior direito do retângulo. Saída: Perímetro do retângulo. Precisão de 2 casas decimais. Exemplo de Entrada: 0 15 20 25 0 0 13.5 7.75 Exemplo de Saída: 60.00 42.50 4. (BOCA:L1_4) Problema: Construa um programa para calcular a área de um círculo e o raio de um círculo com metade desta área. Utilize o valor de Π = 3.141592. Entrada: Raio do círculo. Saída: Área do círculo e raio de um círculo cuja área é metade da área. Precisão de 2 casas decimais. Exemplo de Entrada: 10 1.99 429.73 Exemplo de Saída: 314.16 7.07 12.44 1.41 580151.12 303.86 5. (BOCA:L1_5) Problema: Faça um programa que dado dois números, mostre o maior deles. Caso sejam iguais, mostre que são iguais. Entrada: 2 números inteiros. Saída: Maior dos números e sua posição. Exemplo de Entrada: 23 51 55 Exemplo de Saída: N2 = 3 N1 = 5 N1 = N2 Universidade Federal do Espírito Santo – Centro Tecnológico Departamento de Informática – 2015/2 Programação II – Curso de Engenharia de Computação Profa. Maria Claudia Silva Boeres 6. (BOCA:L1_6) Problema: Faça um programa que calcule a média de duas notas e diga se o aluno está aprovado caso sua média seja maior ou igual a 7.0, reprovado caso a média seja menor que 5.0 ou de recuperação caso contrário. Entrada: 2 notas parciais definidas como números inteiros. Saída: Média e mensagem apropriada. Precisão de 1 casa decimal. Exemplo de Entrada: 65 88 22 Exemplo de Saída: 5.5 - De Recuperacao 8.0 - Aprovado 2.0 – Reprovado 7. (BOCA:L1_7) Problema: Faça um programa em que dada uma temperatura em Celsius ou Fahrenheit converta esta temperatura para a outra unidade. Entrada: Temperatura e unidade correspondente. Saída: Temperatura convertida. Exemplo de Entrada: 10 f 10 F 10 c 10 C Exemplo de Saída: -12.22 (C) -12.22 (C) 50.00 (F) 50.00 (F) 8. (BOCA:L1_8) Problema: Faça um programa que mostre se uma letra é ou não uma vogal. Entrada: Uma letra do alfabeto. Saída: Mensagem dizendo se é ou não vogal. Exemplo de Entrada: a q E W Exemplo de Saída: Vogal Nao vogal Vogal Universidade Federal do Espírito Santo – Centro Tecnológico Departamento de Informática – 2015/2 Programação II – Curso de Engenharia de Computação Profa. Maria Claudia Silva Boeres Nao vogal 9. (BOCA:L1_9) Problema: Faça um programa que mostre a versão maiúscula de uma letra minúscula. Caso o caractere não seja letra ou não seja minúscula, mostre uma mensagem. OBS: Proibido usar a função toupper. Dica: olhar tabela ASCII. Entrada: Um caractere. Saída: A letra maiúscula correspondente à entrada ou mensagem indicando que o caractere fornecido não é letra ou que a letra fornecida deve ser minúscula. Exemplo de Entrada: a g 1 A Exemplo de Saída: A G Nao e letra! A letra deve ser minuscula! 10. (BOCA:L1_10) Problema: Faça um programa que mostre se um número inteiro é par ou ímpar. Entrada: Número inteiro. Saída: “Par” ou “Impar”. Exemplo de Entrada: 1 2 -3 0 Exemplo de Saída: Impar Par Impar Par 11. (BOCA:L1_11) Problema: Faça um programa que diga qual mês do ano é correspondente a um número. Resolva esse problema usando o comando switch. Entrada: Número inteiro. Saída: Mês do ano ou uma mensagem de inválido caso contrário. Exemplo de Entrada: 4 1 -3 12 Exemplo de Saída: Universidade Federal do Espírito Santo – Centro Tecnológico Departamento de Informática – 2015/2 Programação II – Curso de Engenharia de Computação Profa. Maria Claudia Silva Boeres Abril Janeiro Invalido. Dezembro 12. (BOCA:L1_12) Problema: Faça um programa que coloque números em ordem crescente. Entrada: 3 números inteiros diferentes. Saída: Números inteiros em ordem crescente com suas respectivas posições anteriores. Exemplo de Entrada: 123 413 Exemplo de Saída: N1 = 1, N2 = 2, N3 = 3 N2 = 1, N3 = 3, N1 = 4 13. (BOCA:L1_13) Problema: Faça um programa que distribua itens para um grupo de pessoas, e retorne quem foi a última pessoa a receber um item. Assuma que a distribuição é feita da seguinte forma: a pessoa 1 recebe um item, depois a pessoa 2 recebe um item, e assim por diante até a pessoa n. Se ainda sobrarem itens disponíveis, o processo de distribuição recomeça da pessoa 1. Entrada: Número de pessoas e número de itens. Saída: Número da pessoa a receber o último item. Exemplo de Entrada: 1 10 21 22 23 25 36 37 Exemplo de Saída: 1 1 2 1 1 3 1 14. (BOCA:L1_14) Problema: Faça um programa que diga se um ponto está contido em um retângulo, dados os cantos opostos do mesmo. Pontos pertencentes às bordas do retângulo (na linha do retângulo) são considerados como pertencentes ao retângulo. Universidade Federal do Espírito Santo – Centro Tecnológico Departamento de Informática – 2015/2 Programação II – Curso de Engenharia de Computação Profa. Maria Claudia Silva Boeres Entrada: Coordenadas de dois cantos opostos do retângulo e de um ponto qualquer, respectivamente. Cantos e pontos são descritos por coordenadas x e y, nessa ordem. Saída: Mensagem dizendo se o ponto está ou não dentro do retângulo. Exemplo de Entrada: 0 0 10 10 5 3 0 10 10 0 5 3 10 10 0 0 5 3 10 0 0 10 5 3 1 1 -10 -10 -5 -3 1 -10 -10 1 -5 -3 -10 -10 1 1 -5 -3 -10 1 1 -10 -5 -3 0 0 10 10 -1 -1 0 10 10 0 11 11 Exemplo de Saída: Dentro Dentro Dentro Dentro Dentro Dentro Dentro Dentro Fora Fora 15. (BOCA:L1_15) Problema: Determinar a menor quantidade de cédulas para pagar uma quantia em reais, lida pelo teclado, dadas que as cédulas disponíveis são de 1,5,10,50 e 100 reais. Forneça também o número de cédulas usadas de cada tipo. Entrada: Número inteiro indicando a quantia em reais. Saída: Número total de cédulas e número de cédulas de cada tipo informado (1,5,10,50 e 100). Exemplo de Entrada: 500 4678 Exemplo de Saída: TC = 5, C1 = 0, C5 = 0, C10 = 0, C50 = 0, C100 = 5 TC = 53, C1 = 3, C5 = 1, C10 = 2, C50 = 1, C100 = 46