Você está na página 1de 9

Murilo das Dores Alves – 1920486100001

Programação Orientada a Objetos e Algoritmos em C++

Exercícios de Revisão

Instruções: Faça as questões a seguir utilizando o seu compilador e algum


editor de texto e coloque as respostas em um documento (de texto ou pdf) com
captura de tela (inteira) das respostas.

1 Implemente uma função que indique se um ponto (x, y) está localizado


dentro ou fora de um retângulo. O retângulo é definido por seus vértices inferior
esquerdo (x0, y0) e superior direito (x1, y1). A função deve ter como valor de retorno
verdadeiro, se o ponto estiver dentro do retângulo, e 0 caso contrário, obedecendo ao
protótipo:

bool dentro_ret(int x0, int y0, int x1, int y1, int x, int y);
#include <iostream>
using namespace std;

bool dentro_ret(int x0, int y0, int x1, int y1, int x, int y){
if((x > x0 && x < x1 && y > y0 && y < y1) == true) {
return 1;
} else {
return 0;
}}
int main(){
cout << dentro_ret(1, 2, 3, 4, 2, 3);
return 0;
}
2 Implemente uma função para testar se um número inteiro é primo ou não.
Essa função deve obedecer ao seguinte protótipo a seguir e retornar verdadeiro se
n for primo e falso caso contrário.

bool primo(int n);


#include <iostream>
using namespace std;

bool primo(int n){


int aux, div=0;

for(aux = 1 ; aux <= n ; aux++){


if(n % aux == 0){
div++;
}}
if((div == 2) == true) {
cout << "Verdadeiro" << "\n";
} else {
cout << "Falso" << "\n";
}
return 0;
}
int main(){
int n;
cout << "Entre com um número para saber se é primo: ";
cin >> n;
cout << primo(n);
return 0;
}
3 Implemente uma função que retorne o n-ésimo termo da séria de Fibonacci. A
série de Fibonacci é dada por: 1 1 2 3 5 8 13 21 …, isto é, os dois primeiros termos
são iguais a 1 e cada termo seguinte é a soma dos dois termos anteriores. Essa
função deve obedecer ao seguinte protótipo:

int fibonacci(int n);


#include <iostream>
using namespace std;

int Fibonacci(int n){


if (n == 1) {
cout << 0;
}
int a = 0, b = 1, c;
cout << a << " " << b;

for (int i =3; i <= n; i++){


c = a + b;
cout << " " << c;
a = b;
b = c;
}}
int main(){
int n;
cout << "Entre com um número para gerar Fibonacci: ";
cin >> n;
Fibonacci(n);
return 0;
}
4 Implemente uma função que retorne a soma dos n primeiros números naturais
ímpares. Essa função deve obedecer ao protótipo:

int soma_impares(int n);


#include <iostream>
using namespace std;

int soma_impares(int n) {
int i, soma = 0;
for(i =1; i <= n; i++){
if((i % 2 == 1) == true){
soma += i;
}}
return soma;
}
int main(){
int n;
cout << "Entre com um número inteiro: ";
cin >> n;
cout << soma_impares(n);
return 0;
}
5 O volume v de uma esfera é dado por:

onde r corresponde ao seu raio. Escreva uma função que recebe por
parâmetro o raio r de uma esfera e retorna o seu volume. Utilize o protótipo:

double volume_esfera(int r);


#include <iostream>
#include <math.h>
using namespace std;

double volume_esfera(int r){


double v, pi = 3.14159;
v = (4/3) * pi * r * (pow(r, 2));
return v;
}
int main(){
int r;
cout << "Entre com o valor do raio: ";
cin >> r;
cout << "O volume da esfera é: " << volume_esfera(r);
return 0;
}
6 Implemente uma função que retorne uma aproximação do valor de pi, de
acordo com a fórmula de Leibniz:

isto é:

Essa função deve obedecer ao seguinte protótipo, em que n indica o número de


termos que deve ser usado para avaliar o valor de pi:

double pi(int n);


#include <iostream>
#include <math.h>
using namespace std;

double pi(int n){


if (n > 0){
double partial = 0;
for (int i = 0; i < n; i++)
if (i % 2 == 0)
partial -= (pow(-1,n))/((2.0 * i) + 1);
else
partial += (pow(-1,n))/((2.0 * i) + 1);
double pi = 4 * partial;
return pi;
}}
int main(){
int n;
cout << "Entre com um número para determinar o valor de PI pela Fórmula
de Leibniz: ";
cin >> n;
cout << "O valor de pi é: " << pi(n);
return 0;
}
7 Numa faculdade as notas finais dos alunos são dadas em conceitos de
acordo com a seguinte tabela:
A maior ou igual a 9,0

B maior ou igual a 7,5 e menor que 9,0

C maior ou igual a 6,0 e menor que 7,5

D maior ou igual a 4,0 e menor que 6,0

E menor que 4,0

Sabendo que a nota final de um aluno é dada por:


Faça o que se pede:

a) Declare (proponha uma assinatura) uma função que recebe uma nota final e
fornece como saída o conceito equivalente à essa nota.
#include <iostream>
#include <math.h>
using namespace std;

double nota(double nf){


double a, b, c;
cout << "Entre com as 3 notas: ";
cin >> a >> b >> c;
nf = (a + (b * 2) + (c*3))/6;
cout << "O conceito é: ";
if (nf >= 9){
cout << "A";
} else if (nf >= 7.5 && nf < 9){
cout << "B";
} else if (nf >= 6 && nf < 7.5){
cout << "C";
} else if (nf >= 4 && nf < 6){
cout << "D";
} else if (nf < 4){
cout << "E";
}
}
main(){
double nf;
cout << nota(nf);
return 0;
}
b) Declare (proponha uma assinatura) uma função que recebe três notas e fornece
como saída a nota final do aluno.
#include <iostream>
#include <math.h>
using namespace std;

double nota(double nf){


double a, b, c;
cout << "Entre com as 3 notas: ";
cin >> a >> b >> c;
nf = (a + (b * 2) + (c*3))/6;
cout << "O nota final é: ";
return nf;
}
main(){
double nf;
cout << nota(nf);
return 0;
}
c) Declare (proponha uma assinatura) uma função que recebe as três notas do aluno
e forneça como saída o conceito do aluno.
#include <iostream>
#include <math.h>
using namespace std;

double nota(double a, double b, double c) {


cout << "Entre com as 3 notas: ";
cin >> a >> b >> c;
cout << "O conceito da 1ª nota é: ";
if (a >= 9){
cout << "A" << "\n";
} else if (a >= 7.5 && a < 9){
cout << "B" << "\n";
} else if (a >= 6 && a < 7.5){
cout << "C" << "\n";
} else if (a >= 4 && a < 6){
cout << "D" << "\n";
} else if (a < 4){
cout << "E" << "\n";
}
cout << "O conceito da 2ª nota é: ";
if (b >= 9){
cout << "A" << "\n";
} else if (b >= 7.5 && b < 9){
cout << "B" << "\n";
} else if (b >= 6 && b < 7.5){
cout << "C" << "\n";
} else if (b >= 4 && b < 6){
cout << "D" << "\n";
} else if (b < 4){
cout << "E" << "\n";
}
cout << "O conceito da 3ª nota é: ";
if (c >= 9){
cout << "A" << "\n";
} else if (c >= 7.5 && c < 9){
cout << "B" << "\n";
} else if (c >= 6 && c < 7.5){
cout << "C" << "\n";
} else if (c >= 4 && c < 6){
cout << "D" << "\n";
} else if (c < 4){
cout << "E" << "\n";
}
}
main(){
double a, b, c;
cout << nota(a, b, c);
return 0;
}
d) Defina a função do item c) utilizando as funções declaradas no item a) e b).
#include <iostream>
#include <math.h>
using namespace std;

double nota(double a, double b, double c, double nf){


cout << "Entre com as 3 notas: ";
cin >> a >> b >> c;
cout << "O conceito da 1ª nota é: ";
if (a >= 9){
cout << "A" << "\n";
} else if (a >= 7.5 && a < 9){
cout << "B" << "\n";
} else if (a >= 6 && a < 7.5){
cout << "C" << "\n";
} else if (a >= 4 && a < 6){
cout << "D" << "\n";
} else if (a < 4){
cout << "E" << "\n";
}
cout << "O conceito da 2ª nota é: ";
if (b >= 9){
cout << "A" << "\n";
} else if (b >= 7.5 && b < 9){
cout << "B" << "\n";
} else if (b >= 6 && b < 7.5){
cout << "C" << "\n";
} else if (b >= 4 && b < 6){
cout << "D" << "\n";
} else if (b < 4){
cout << "E" << "\n";
}
cout << "O conceito da 3ª nota é: ";
if (c >= 9){
cout << "A" << "\n";
} else if (c >= 7.5 && c < 9){
cout << "B" << "\n";
} else if (c >= 6 && c < 7.5){
cout << "C" << "\n";
} else if (c >= 4 && c < 6){
cout << "D" << "\n";
} else if (c < 4){
cout << "E" << "\n";
}
nf = (a + (b * 2) + (c*3))/6;
cout << "O nota final é: ";
cout << nf;
cout << "\n";
cout << "O conceito da nota final é: ";
if (nf >= 9){
cout << "A";
} else if (nf >= 7.5 && nf < 9){
cout << "B";
} else if (nf >= 6 && nf < 7.5){
cout << "C";
} else if (nf >= 4 && nf < 6){
cout << "D";
} else if (nf < 4){
cout << "E";
}
}
main(){
double a, b, c, nf;
cout << nota(a, b, c, nf);
return 0;
}
8 Escreva uma função que receba um ano (com 4 dígitos) e informe se esse ano
foi/é/será (ou não) bissexto. Um ano é bissexto de acordo com as seguintes regras:

Não há anos bissextos antes de 1752.


Se o ano é divisível por 400 então é um ano bissexto.
Todos os outros anos que são divisíveis por 100 não são bissextos.
Todos os outros anos que são divisível por 4 são bissextos.

#include <iostream>
#include <math.h>
using namespace std;

int year(int ano){


int q1, q2, q3;
cout << "Entre com o ano: ";
cin >> ano;
q1 = ano % 400;
q2 = ano % 100;
q3 = ano % 4;
if ((ano > 1752) && (q1 == 0) && (q2 =! 0) && (q3 == 0)){
cout << "O ano é bissexto.";
} else {
cout << "O ano não é bissexto.";
}
}
int main(){
int ano;
cout << year(ano);
return 0;
}

Você também pode gostar