Publicidade

Aula 26: Funções Elementares (math.h)

A biblioteca math.h do C — como usar sqrt, sin, cos, pow e outras funções matemáticas.

📖 O que você vai aprender nesta página
✅ Essenciais que você precisa saber
  • Inclua <math.h> e faça o link com -lm
  • Use sqrt, pow, sin, cos, log e exp
  • Funções trigonométricas recebem radianos, não graus
⭐ Leia se tiver tempo
  • Constantes M_PI e M_E
  • fabs, floor, ceil e round
  • Lidando com NaN e Inf

O que são Funções Elementares?

C já vem com um conjunto familiar de funções matemáticas: raízes quadradas, funções trigonométricas, exponenciais, logaritmos e mais. Para usá-las, inclua <math.h>.
Como usá-las: (1) adicione #include <math.h> no topo, (2) chame nomeDaFuncao(arg) e (3) o valor de retorno é quase sempre um double.
#include<stdio.h>
#include<math.h>  // ← obrigatório!

int main(void){
  double x = 2.0;
  printf("sqrt(%.1f) = %f\n", x, sqrt(x));
  return 0;
}
Nota sobre compilação: No Linux e no Mac, o gcc pode exigir a opção -lm para linkar a biblioteca math: gcc prog.c -lm. O Visual Studio não precisa.

Principais Funções Matemáticas

Todas ficam disponíveis assim que você faz #include <math.h>. Os argumentos e retornos são essencialmente sempre double.
Função Finalidade Exemplo Resultado
sqrt(x)Raiz quadrada √xsqrt(9.0)3.0
pow(x, y)Potência xypow(2.0, 10.0)1024.0
fabs(x)Valor absoluto |x|fabs(-3.7)3.7
sin(x)Seno (radianos)sin(3.14159/2)1.0
cos(x)Cosseno (radianos)cos(0.0)1.0
tan(x)Tangente (radianos)tan(3.14159/4)≈ 1.0
exp(x)Exponencial exexp(1.0)≈ 2.71828
log(x)Log natural ln(x)log(2.71828)≈ 1.0
log10(x)Log comum log10(x)log10(1000.0)3.0
ceil(x)Arredonda para cimaceil(2.3)3.0
floor(x)Arredonda para baixofloor(2.7)2.0

sqrt — Raiz Quadrada

Nossa primeira função. sqrt(x) retorna a raiz quadrada de x (√x).
#include<stdio.h>
#include<math.h>

int main(void){
  double a = 2.0;
  printf("sqrt(%.1f) = %f\n", a, sqrt(a));
  // -> sqrt(2.0) = 1.414214

  // Teorema de Pitágoras: c = sqrt(a^2 + b^2)
  double b = 3.0, c = 4.0;
  double hyp = sqrt(b*b + c*c);
  printf("hypotenuse = %f\n", hyp);
  // -> hypotenuse = 5.000000
  return 0;
}
Observação: Passar um número negativo para sqrt retorna NaN (Not a Number). É mais seguro checar o sinal antes.

Funções Trigonométricas (sin / cos / tan)

As funções trigonométricas do C recebem radianos, não graus. Converta graus para radianos com rad = deg * M_PI / 180.0.
sin(θ)
sin(0) = 0
sin(π/2) = 1
sin(π) = 0
cos(θ)
cos(0) = 1
cos(π/2) = 0
cos(π) = -1
tan(θ)
tan(0) = 0
tan(π/4) ≈ 1
tan(π/2) = ∞
#include<math.h>

// graus -> radianos
double deg = 45.0;
double rad = deg * M_PI / 180.0;

printf("sin(45 deg) = %f\n", sin(rad)); // -> 0.707107
printf("cos(45 deg) = %f\n", cos(rad)); // -> 0.707107
printf("tan(45 deg) = %f\n", tan(rad)); // -> 1.000000
M_PI é uma constante de pi (3.14159...) definida em math.h. Dá para escrever #define PI 3.14159 por conta própria, mas M_PI é mais preciso.

Calculadora de Funções — Experimente

Teste as funções matemáticas direto no seu navegador. Escolha uma função e digite um valor para ver o resultado.
O resultado aparecerá aqui.

Escreva o Seu — Funções Matemáticas

Um programa que usa funções trigonométricas e raízes quadradas para calcular a hipotenusa e os ângulos de um triângulo retângulo.
#include<stdio.h>
#include<math.h>

int main(void){
  double a = 3.0;
  double b = 4.0;
  double c = sqrt(a*a + b*b);
  printf("a=%.1f, b=%.1f\n", a, b);
  printf("hypotenuse c = %f\n", c);

  double deg = 30.0;
  double rad = deg * 3.14159 / 180.0;
  printf("sin(%.0f) = %f\n", deg, sin(rad));
  printf("cos(%.0f) = %f\n", deg, cos(rad));

  printf("pow(2,10) = %.0f\n", pow(2.0, 10.0));
  printf("log(100) = %f\n", log10(100.0));
  return 0;
}
💡 Mais ideias para testar
Publicidade
← Aula anterior
Aula 25: Funções (Avançado)
Próxima aula →
Aula 27: Geração de Números Aleatórios

Aulas relacionadas

Laços, Arrays, Strings
Aula 27: Geração de Números Aleatórios
Como usar rand() e srand(). Intervalos, sementes e aplicações ilustradas.
Básico
Aula 3: Variáveis
O que são variáveis em C? int, double, char explicados com diagramas.

Quiz

Confira seu entendimento.

Q1. De qual header você precisa para usar funções matemáticas?

stdlib.h
math.h
string.h

Funções matemáticas como sqrt, pow, sin e cos são declaradas em math.h. Você também pode precisar da opção -lm ao compilar no Linux ou Mac.

Q2. Qual o resultado de pow(2, 3)?

6
8
9

pow(2, 3) retorna 2 elevado à 3ª potência, que é 8. pow retorna um double.

Q3. Qual o resultado de sqrt(16)?

4.0
8.0
256.0

sqrt retorna a raiz quadrada. √16 = 4.0.

Compartilhe este artigo
Compartilhar no X Compartilhar no Facebook