Published
Last modified
C/C++ - Biblioteca Matemática (math.h e cmath)
Como já visto anteriormente em outras páginas, existem vários processos em um algoritmo que podemos simplesmente determinar como operações matemáticas ou cálculos serão executados pelo nosso programa.

Levando para a questão realmente matemática, em C existe uma biblioteca própria para cálculos matemáticos um pouco mais complexos, a biblioteca ao qual nos referimos é a math.h, que tem seu correspondente em C++ como cmath.
Com a biblioteca math.h (cmath) podemos encontrar facilmente funções para calcular potências, raíz quadrada, funções trigonométricas para cálculos que envolvem seno, co-seno e tangente, além de constantes para números irracionais como, por exemplo, PI (Π) e √2.
Constantes matemáticas
Vamos iniciar listando as constantes matemáticas:
| Simbologia | O que é | Constante em C/C++ | valor da constante em C/C++ |
|---|---|---|---|
| e | Número de Euler | M_E | 2,7182818284590452354 |
| log2 e | Logaritmo de e na base 2 | M_LOG2E | 1,4426950408889634074 |
| log10 e | Logaritmo de e na base 10 | M_LOG10E | 0,43429448190325182765 |
| Ln2 (x) | Logaritmo neperiano binário | M_LN2 | 0,69314718055994530942 |
| Ln10 (x) | Logaritmo neperiano ou natural | M_LN10 | 2,30258509299404568402 |
| Π | Pi | M_PI | 3,14159265358979323846 |
| Π/2 | Meio Pi | M_PI_2 | 1,57079632679489661923 |
| Π/4 | Quarto de Pi | M_PI_4 | 0,78539816339744830962 |
| √2 | Raiz quadrada de 2 | M_SQRT2 | 1,41421356237309504880 |
| √½ | Raiz quadrada de meio | M_SQRT1_2 | 0,70710678118654752440 |
Como podemos ver, todas as constantes são valores do tipo double. E isso se reflete nas funções.
Funções matemáticas
Trigonométricas
sin (): Retorna o valor do seno. Recebe como argumento o valor dos graus em double.
cos (): Retorna o valor do co-seno. Recebe como argumento o valor dos graus em double.
tan (): Retorna o valor da tangente. Recebe como argumento o valor dos graus em double.
Logaritmicas
log (): Retorna o valor do logaritmo na base 2. Exige um argumento do tipo double.
log10 (): Retorna o valor do logaritmo na base 10. Exige um argumento do tipo double.
Potências
pow (): Retorna o valor da base elevada ao expoente. Recebe dois argumentos do tipo double, o primeiro é a base e o segundo o expoente. Por exemplo: se quisermos saber o resultado da operação 210, faríamos pow (2, 10).
sqrt (): Retorna o valor da raiz quadrada. Recebe como argumento um double do qual ele deve extrair a raiz.
Arredondamento
ceil(): Retorna o primeiro float sem casas decimais acima. Recebe um float como argumento. Exemplo: ceil (45.98561) resultaria em 46.
floor(): Retorna o primeiro float sem casas decimais abaixo. Recebe um float como argumento. Exemplo: floor (45.98561) resultaria em 45.
Para ilustrar todas essas funções e constantes, abaixo está um código demonstrando o resultado de cada função da biblioteca math.h (cmath) vista neste artigo.
#include <cmath> // ou <math.h>
#include <iostream>
#include <cstdlib>
using namespace std;
int main (void){
double graus, raio, base, expoente, x;
cout << "Trigonometria\nDigite o numero dos graus -> ";
cin >> graus;
cout << "Geometria\nDigite a distancia do raio do circulo -> ";
cin >> raio;
cout << "Potenciacao\nDigite a base -> ";
cin >> base;
cout << "Digite o expoente -> ";
cin >> expoente;
cin.ignore();
system ("cls");
x = pow (base, expoente);
cout << "O seno de "<<graus<<" e "<<sin(graus)<<endl;
cout << "O co-seno de "<<graus<<" e "<<cos(graus)<<endl;
cout << "A tangente de "<<graus<<" e "<<tan(graus)<<endl;
cout << base<<" elevado a "<<expoente<<" e "<<x<<endl;
cout << "A raiz quadrada de "<<x<<" e "<<sqrt(x)<<endl;
cout << "O log2 de "<<x<<" e "<<log(x)<<endl;
cout << "O log10 de "<<x<<" e "<<log10(x)<<endl;
cout << "O teto de "<<x<<" e "<<ceil(x)<<endl;
cout << "A parte inteira de "<<x<<" e "<<floor(x)<<endl;
cout << "Um circulo com "<<raio<<"cm de raio tem: ";
cout << raio*2*M_PI<<"cm de comprimento e ";
cout << pow(raio,2)*M_PI<<"cm de area.\n"<<endl;
system ("pause");
return EXIT_SUCCESS;
} 
C/C++ - Biblioteca Matemática (math.h e cmath) by Denys Xavier is licensed under a Creative Commons Attribution 4.0 International License.