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