Brazilian Flag American Flag

Back Home Page

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

Creative Commons License
C/C++ - Biblioteca Matemática (math.h e cmath) by Denys Xavier is licensed under a Creative Commons Attribution 4.0 International License.