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).