Aula 4
Resolução dos exercícios
// programa principal que testa as funcionalidades das varias funções utilizadas para a
// resolução dos vários exercicios
#include <iostream.h>
// inclui-se para se ter acesso à função sqrt
#include <cmath.h>
using namespace std;
// declaração das funções
float norma_vector(float , float , float );
void normaliza(float& , float& , float& );
float quadrado(float );
float norma_vector_2(float , float , float );
float raiz_postiva_equacao_de_2_grau(float , float , float );
int fibonacci(int );
int factorial(int );
int primeira_soma(int , int );
void segunda_soma(int , int , int &);
bool caracteres_iguais(char ,char );
bool my_and(bool , bool );
bool my_or(bool , bool );
void desenhar_caixa(void);
int read_int(void);
void write_int(int );
int main(void)
{
float a,b,c,norma, raiz;
int soma_1, soma_2, num;
char ca,cb;
cout << " Introduza tres numeros de virgula flutuante " << endl;
cin >> a >> b >> c;
norma = norma_vector(a,b,c);
cout << " A norma de " << a << ", " << b << " e " << c << " e " << norma << endl;
normaliza(a,b,c);
cout << " O vector normalizado : " << a << ", " << b << " e " << c << endl;
norma = norma_vector_2(a,b,c);
cout << " A norma dw " << a << ", " << b << " e " << c << " e " << norma << endl;
raiz = raiz_postiva_equacao_de_2_grau(2,5,3);
cout << " A raiz positiva da equacao de 2 grau com os valores dw a = 2 , b = 5 e c = 3 e ";
cout << raiz << endl;
cout << "insira dois caracteres : "
cin >> ca >> cb;
cout << " Os caracteres inseridos sao ";
if (caracteres_iguais(a,b))
cout << "iguais";
else
cout << "diferentes";
cout << endl;
cout << " A serie fibonacci com 30 digitos: " << fibonacci(30) << endl;
soma_1 = primeira_soma(4,5);
cout << " A soma de " << 4 << " e " << 5 << " e " << soma_1 << endl;
segunda_soma(4,5,soma_2);
cout << " A soma de " << 4 << " e " << 5 << "(exemplo 2) e " << soma_2 << endl;
cout << " O factorial de 5 e " << factorial(5) << endl;
cout << " 0 and 1 e igual " << my_and(0,1) << endl;
cout << " 0 or 1 e igual " << my_or(0,1) << endl;
desenhar_caixa();
return EXIT_SUCCESS;
}
// calcula o quadrado dum numero com virgula flutuante
float quadrado(float num)
{
return num*num;
}
// calcula a norma do vector (os três numero do parametro)
float norma_vector(float num_1, float num_2, float num_3)
{
return ((num_1*num_1)+(num_2*num_2)+(num_3*num_3));
}
// calcula a norma do vector com a utilização da função quadrado
float norma_vector_2(float num_1, float num_2, float num_3)
{
return (quadrado(num_1)+quadrado(num_2)+quadrado(num_3));
}
// normaliza o vector composto pelos três argumentos
void normaliza(float &a, float &b, float &c)
{
float norma = norma_vector_2(a,b,c);
a = a/norma;
b = b/norma;
c = c/norma;
}
// calcula a raiz positiva duma equação de segundo grau
float raiz_postiva_equacao_de_2_grau(float a, float b, float c)
{
return (b+(sqrt(quadrado(b)-(4*a*c))/(2*a)));
}
// verifica se dois carateres são iguais
bool caracteres_iguais(char c_1,char c_2)
{
return (c_1 == c_2);
}
// realiza a formula de fibonacci
int fibonacci(int n)
{
if(n == 0)
return 0;
if(n == 1)
return 1;
return (fibonacci(n-1)+fibonacci(n-2));
}
// calcula a soma de dois números
int primeira_soma(int num_1,int num_2)
{
return num_1 + num_2;
}
// calcula a soma de dois números (passagem por referência)
void segunda_soma(int num_1, int num_2, int &soma)
{
soma = num_1 + num_2;
}
// calcula o factorial de um número
int factorial(int n)
{
if(n==1)
return 1;
return n*factorial(n-1);
}