Italo Info


A biblioteca math.h

A biblioteca math.h oferece várias funções utilitárias para cálculos. Veja abaixo algumas delas:

  • M_PI: a constante M_PI tem como valor 3,14159...;

  • sqrt: para cálculo de raiz quadrada. Ex: sqrt( 25 ) = 5;

  • pow: para potência. Ex: pow( 2.0, 3.0 ) = 8.0;

  • sin: para o cálculo do seno de um valor em radianos. Ex: sin( M_PI ) = seno de 180º;

  • cos: para o cálculo do cosseno de um valor em radianos. Ex: cos( M_PI ) = cosseno de 180º;

Para o cálculo do módulo de um número ou expressão, se pode utilizar a função abs da biblioteca stdlib.h.

  • abs: para o cálculo do valor absoluto. Ex: abs( -1 ) = 1, abs( 1 ) = 1;

Exemplos:

Abaixo um exemplo que imprime os números entre -5 e 5 por extenso.

#include <stdio.h> #include <stdlib.h> int main() { int i; for( i = -5; i <= 5; i++ ) { if ( i < 0 ) printf( "menos " ); switch( abs( i ) ) { case 0: printf( "zero" ); break; case 1: printf( "um" ); break; case 2: printf( "dois" ); break; case 3: printf( "tres" ); break; case 4: printf( "quatro" ); break; case 5: printf( "cinco" ); break; } printf( "\n" ); } return 0; }

Abaixo um programa que imprime a potência conforme uma base e expoente informados pelo usuário:

#include <stdio.h> #include <math.h> int main() { float base, expoente, pot; printf( "Infome a base: " ); scanf( "%f", &base ); printf( "Informe o expoente: " ); scanf( "%f", &expoente ); pot = pow( base, expoente ); printf( "\n%.2f elevado a %.2f eh: %.2f", base, expoente, pot ); return 0; }

Abaixo um programa que calcula os valores "x1" e "x2" de uma equação do segundo grau:

#include <stdio.h> #include <math.h> int main() { float a, b, c, delta, x1, x2; printf( "Informe A: " ); scanf( "%f", &a ); printf( "Informe B: " ); scanf( "%f", &b ); printf( "Informe C: " ); scanf( "%f", &c ); delta = pow( b, 2 ) - ( 4 * a * c ); if ( a == 0 ) { printf( "\nA = 0, isso causa erro de divisao por zero" ); } else { if ( delta < 0 ) { printf( "\nDELTA < 0, isso causa erro de radicando negativo." ); } else { x1 = ( -b + sqrt( delta ) ) / ( 2 * a ); x2 = ( -b - sqrt( delta ) ) / ( 2 * a ); printf( "\nX1 = %.4f", x1 ); printf( "\nX2 = %.4f", x2 ); } } return 0; }

Preste atenção ao exemplo acima, onde, é necessário verificar se o A informado é 0. Se sim a equação não tem raizes válidas porque acontece uma divisão por zero. Repare que o denominador das equações é (2 * a), se a = 0, então, a*2 = 0 o que significa que o denominador da equação é 0. A divisão por zero não traz um resultado válido. Outra verificação é feita sobre o valor de DELTA. Isso porque, nas equações do exemplo, o delta está dentro da função sqrt que calcula a raiz quadrada. No entanto, não existe raiz quadrada de número negativo. Por isso, a verificação se o valor de delta é menor que zero (negativo).