Buscar

Exercícios Resolvidos 4 1 a 4 7 - Programação de Computadores II -UFOP

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;
}

Continue navegando