Programacion en C++: La librería cmath

Voy a mostrarte como podemos sacarle partido a las librerías en c++. Para ello voy a realizarte varios ejemplos de uso de funciones que pertenecen a una librería que vas a tener que usar a menudo. Estas librerías están diseñadas para ayudar al programador en sus funciones. C++ tiene multitud de librerías, la librería cmath es la que se suele usar para operaciones matemáticas. Lee el artículo atentamente y enfocado al 100% para que le saques el máximo partido y comiences una etapa que te va a favorecer tu aprendizaje, vas a comenzar a reutilizar código.

La librería cmath es la que nos da una serie de funciones para poder realizar operaciones matemáticas complejas (potencias, raices cuadradas,senos, cosenos…). Toda la información referente a esta librería la puedes encontrar en internet. No obstante te la voy a dejar aquí y te voy a mostrar como se usan algunas de ellas como ejemplo.

La librería matemática cmath contiene las siguientes funciones:

  • double acos(double x) Calcula el arco coseno de x.
  • double asin(double x) Calcula el arco seno de x.
  • double atan(double x) Devuelve el arco tangente en radianes.
  • double atan2(double y, double x) Calcula el arco tangente de las dos variables x e y. Es similar a calcular el arco tangente de y / x, excepto en que los signos de ambos argumentos son usados para determinar el cuadrante del resultado.
  • double ceil(double x) Redondea x hacia arriba al entero más cercano.
  • double cos(double x) devuelve el coseno de x, donde x está dado en radianes.
  • double cosh(double x) Devuelve el coseno hiperbólico de x.
  • double exp(double x) Devuelve el valor de e (la base de los logaritmos naturales) elevado a la potencia x.
  • double fabs(double x) Devuelve el valor absoluto del número en punto flotante x.
  • double floor(double x) Redondea x hacia abajo al entero más cercano.
  • double fmod(double x, double y)Calcula el resto de la división de x entre y. El valor devuelto es x – n * y, donde n es el cociente de x / y.
  • double frexp(double x, int *exp) Se emplea para dividir el número x en una fracción normalizada y un exponente que se guarda en exp $x=res \times 2^{exp}$.
  • long int labs(long int j) Calcula el valor absoluto de un entero largo.
  • double ldexp(double x, int exp) Devuelve el resultado de multiplicar el número x por 2 elevado a exp (inversa de frexp).
  • double log(double x); Devuelve el logaritmo neperiano de x.
  • double log10(double x) Devuelve el logaritmo decimal de x.
  • double modf(double x, double *iptr) Divide el argumento x en una parte entera y una parte fraccional. La parte entera se guarda en iptr.
  • double pow(double x, double y) Devuelve el valor de x elevado a y.
  • double sin(double x) Devuelve el seno de x.
  • double sinh(double x) Regresa el seno hiperbólico de x.
  • double sqrt(double x) Devuelve la raíz cuadrada no negativa de x.
  • double tan(double x) Devuelve la tangente de x.
  • double tanh(double x) Devuelve la tangente hiperbólica de x.

Voy a mostrarte un ejemplo de como usar dichas funciones. Lo primero que tienes que ver es de que tipo es la función. Eso lo puedes observar mirando la cabecera de la función, por ejemplo esta cabecera:

double pow(double x, double y)

En esta cabecera de la función pow (realiza la potencia de un numero) observamos que necesitamos una variable real (double) para poder hallar el valor de la potencia. También deducimos que los valores de x (base) y de y (exponente) también tienen que ser valores reales.

Para poder usar esta función lo primero que debes de hacer es declarar la librería cmath. Eso se hace en la zona de declaración de librerías mediante la palabra reservada #include <cmath>.

A continuación puedes usar las funciones de esa librería, las que te puse anteriormente, siempre que cumplas con las características de la función(información que te da la cabecera). Voy a poner un programa de ejemplo que utiliza varias funciones de la librería cmath y así ves como se utiliza.

Lee bien este artículo, mira bien el ejemplo, pruebalo y realiza los siguientes para practicar:

  1. Realiza un programa que resuelva la raiz cuadrada de un número introducido por el usuario.
  2. Usando funciones de cmath, realiza un programa que halle el volumen de una esfera.
  3. Realiza un programa que halle el logaritmo neperiano de un número.

Practica estos ejercicios y no dudes en consultarme tus dudas y fustraciones. Yo mismo estaré aquí para resolvertelas. Practica y quédate con este concepto. Prueba a buscar más librerías de c++ que tengan funciones que te ayuden a realizar tus programas. Espero que este artículo te ayude a seguir aprendiendo c++.

Un saludo,

Javi Pizarro.

Acerca de Javi Pizarro

Ingeniero informático dedicado a la docencia, con experiencia en creación de programas de gestión y desarrollo de aplicaciones web.
Esta entrada fue publicada en Programacion y etiquetada , , , , , , , , , , , , , , . Guarda el enlace permanente.

2 respuestas a Programacion en C++: La librería cmath

  1. marina dijo:

    Mil gracias por compartir tu conocimiento !!
    Apenas estoy comenzando con C++ y con la programación en gral. y esto es muy valioso para mi. Voy a recomendar a mis compañeros tu blog.
    En muy pocos (casi ninguno) sitios hablan en profundidad sobre las librerias.

    Saludos !!

  2. leonardo plaza dijo:

    este es el de el volumen de una esfera. no lo consegui en ningun lado asi que me toco buscar la formula y plantearla en el codigo. la unica funcion que tome fue la de (pow(x,y)), para poder determinar en la formula a el radio al cubo (r3). la formula era V=4/3*π*r3.

    #include <iostream>
    #include <conio.h>
    #include <cmath>
    using namespace std;
    int main(){
        float radio=0.0f;
        double volumen,pi=3.14159;
        cout<<"Ingrese el radio de la esfera: ";
        cin>>radio;
        volumen= ((4/3 * pi) * pow(radio,3));
        cout<<"el volumen es igual a: "<<volumen;
        getch();
    }
    

    la de la raiz cuadrada es esta:

    #include <iostream>
    #include <conio.h>
    #include <cmath>
    using namespace std;
    int main(){
        double numero,raiz;
        cout<<"ingrese el numero: "<< endl;
        cin>>numero;
        raiz=sqrt(numero);
        cout<<" \nLa raiz cuadrada de " << numero << " es igual a: " << raiz << endl;
        getch();
    }
    

    aca utilize la funcion sqrt(x)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s