Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercícios Resolvidos 4.1 a 4.7 - Programação de Computadores II -UFOP 4.1 Escreva um programa com uma função chamada media, que recebe dois números reais e retorna sua média. Na função main, faça a entrada e saída de dados e a chamada da função media, como ilustrado abaixo. Exemplo de execução: Entrada: 4 5 Saída: Média: 4.5 #include <iostream> using namespace std; float media(float num1, float num2) { return (num1+num2)/2.0; } int main() { float num1, num2; cin >> num1; cin >> num2; cout << "Média: " << media(num1, num2); return 0; } 4.2 Para converter uma temperatura registrada em graus Celsius para graus Fahrenheit basta utilizar a seguinte fórmula: °F = °C × 1,8 + 32 Faça duas funções, uma para converter graus Celsius para graus Fahrenheit, e outra para converter o inverso. Cada função deve receber a temperatura como parâmetro e retornar a temperatura convertida. Utilize essas funções na função main, que deverá receber da entrada padrão a temperatura e a unidade para qual a temperatura deve ser convertida. Depois de utilizada a função correta, deverá mostrar na tela a temperatura convertida. OBS: Caso seja fornecida uma unidade inválida, o programa deverá exibir a palavra ERRO como resposta. Exemplo de execução: Entrada: 25.1 fahrenheit Saída: Temperatura convertida: 77.18 ºF Exemplo de execução: Entrada: 77 celsius Saída: Temperatura convertida: 25.00 ºC Exemplo de execução: Entrada: 38.1 kelvin Saída: ERRO #include <iostream> #include <string> using namespace std; float celsius(float temp) { return (temp - 32.0) / 1.8; } float fahrenheit(float temp) { return temp * 1.8 + 32.0; } int main() { float temp; string unidade; cin >> temp; cin >> unidade; cout.precision(2); if (unidade.compare("fahrenheit") == 0) cout << "Temperatura convertida: " << fixed << fahrenheit(temp) << " ºF"; else if (unidade.compare("celsius") == 0) cout << "Temperatura convertida: " << fixed << celsius(temp) << " ºC"; else cout << "ERRO"; return 0; } 4.3 Faça um programa que implementa três funções que recebem como parâmetro um número real não-negativo e retornem um número inteiro. A primeira função deve ser capaz de arredondar o número para baixo. A segunda deve arredondá-lo para cima. A terceira tem que seguir a regra de arredondamento convencional. Veja os exemplos de execução. Você não pode utilizar funções pré-definidas de bibliotecas. A função main deve receber um número real da entrada padrão e escrever o resultado do arredondamento para baixo, para cima e no modo convencional, nessa ordem. O arredondamento deve ser feito com o uso das funções que você criou anteriormente. Exemplo de execução: Entrada: 9.4 Saída: Arredondamento para baixo: 9 Arredondamento para cima: 10 Arredondamento convencional: 9 Exemplo de execução: Entrada: 9.78 Saída: Arredondamento para baixo: 9 Arredondamento para cima: 10 Arredondamento convencional: 10 Exemplo de execução: Entrada: 9.5 Saída: Arredondamento para baixo: 9 Arredondamento para cima: 10 Arredondamento convencional: 10 #include <iostream> using namespace std; int teto(float num) { int numero = num; if(numero < num) numero ++; return numero; } int piso(float num) { int numero = num; return numero; } int arredondamento(float num) { int numero = num; if(num - numero >= 0.5) numero ++; return numero; } int main() { float num; cin >> num; cout << "Arredondamento para baixo: " << piso(num) << endl; cout << "Arredondamento para cima: " << teto(num) << endl; cout << "Arredondamento convencional: " << arredondamento(num); return 0; } 4.4(4.5) Escreva um programa que tem uma função que receba um número inteiro e retorne o mês correspondente ao número. Por exemplo, 2 corresponde a fevereiro. A função deve retornar a palavra erro caso o número recebido não faça sentido. A função main deve chamar a função que resolve o nome do mês e escreve a string retornada. Exemplo de execução: Entrada: 11 Saída: Mês: novembro Exemplo de execução: Entrada: 27 Saída: erro Exemplo de execução: Entrada: -6 Saída: erro #include <iostream> #include <string> using namespace std; string resolve(int num) { if(num == 1) return "Mês: janeiro"; else if(num == 2) return "Mês: fevereiro"; else if(num == 3) return "Mês: março"; else if(num == 4) return "Mês: abril"; else if(num == 5) return "Mês: maio"; else if(num == 6) return "Mês: junho"; else if(num == 7) return "Mês: julho"; else if(num == 8) return "Mês: agosto"; else if(num == 9) return "Mês: setembro"; else if(num == 10) return "Mês: outubro"; else if(num == 11) return "Mês: novembro"; else if(num == 12) return "Mês: dezembro"; else return "erro"; } int main() { int num; cin >> num; 4.5 Escreva um programa que tem uma função que receba um número inteiro e retorne o mês correspondente ao número. Por exemplo, 2 corresponde a fevereiro. A função deve retornar a palavra erro caso o número recebido não faça sentido. A função main deve chamar a função que resolve o nome do mês e escreve a string retornada. Exemplo de execução: Entrada: 11 Saída: Mês: novembro Exemplo de execução: Entrada: 27 Saída: erro Exemplo de execução: Entrada: -6 Saída: erro #include <iostream> #include <string> using namespace std; string resolve(int num) { if(num == 1) return "Mês: janeiro"; else if(num == 2) return "Mês: fevereiro"; else if(num == 3) return "Mês: março"; else if(num == 4) return "Mês: abril"; else if(num == 5) return "Mês: maio"; else if(num == 6) return "Mês: junho"; else if(num == 7) return "Mês: julho"; else if(num == 8) return "Mês: agosto"; else if(num == 9) return "Mês: setembro"; else if(num == 10) return "Mês: outubro"; else if(num == 11) return "Mês: novembro"; else if(num == 12) return "Mês: dezembro"; else return "erro"; } int main() { int num; cin >> num; 4.6(4.5) Faça um programa que contém uma função que recebe como parâmetro um valor inteiro e positivo n, indicando a quantidade de parcelas de uma soma S. O valor de S deve ser calculado pela fórmula: S = 2/4 + 6/5 + 12/6 + ... + n*(n+1)/(n+3) A leitura de n e a impressão de S devem ser feitas na função main. Exemplo de execução: Entrada: 3 Saída: Soma das parcelas: 3.7 #include <iostream> using namespace std; float soma(int num) { int i; float soma = 0.0; for(i=1; i<=num; i++){ soma += i*(i+1.0)*1.0/(i*1.0+3.0); } return soma; } int main() { int num; cin >> num; cout << "Soma das parcelas: " << soma(num); return 0; } 4.7(4.6) Faça uma função que retorna a razão entre dois números inteiros. A função deve retornar pelo comando return o valor 1 se a operação foi possível e o valor 0 se a operação não foi possível (divisão por zero, por exemplo). O resultado da divisão deve ser retornado usando um parâmetro com passagem por referência. Na função main, os valores de entrada devem ser lidos. Se o retorno da função chamada for 1, imprimir o valor da razão. Se o retorno for 0, imprimir erro. Exemplo de execução: Entrada: 11 2 Saída: 5 Exemplo de execução: Entrada: 208 0 Saída: erro #include <iostream> using namespace std; int divisao(int num1, int num2) { if(num2 == 0) return 0; return 1; } int main() { int num1, num2; cin >> num1; cin >> num2; if(divisao(num1, num2)) cout << num1/num2; else cout << "erro"; return 0; }
Compartilhar