[C/C++] Potencias y raíces (de cualquier índice). C/C++

C/C++ 2 de Febrero de 2014

Introducción

Para los siguientes códigos realizados en este artículo se necesitará incluir la el archivo de cabecera math.h, ya preinstalada en prácticamente cualquier compilador C o C++. Espero no equivocarme, pero creo que es una librería de ANSI C.

#include <math.h>

Gracias a esta biblioteca contaremos con las funciones pow() y sqrt() que serán con las que usaremos durante este artículo.

Potencias: pow()

double pow(double x, double y);

xy

Vamos a elevar un número a otro. Para la base, usaremos una variable a la que llamaremos b, y e para el exponente (x e y refiriéndonos a la función).

// Tus archivos de cabecera...

int main(int argc, char *argv[]) {
    int b = 2;
    int e = 3;
    int result = pow(b,e);
    // Impresión del resultado, código...
}

Este es un sencillo ejemplo de cómo utilizar la función pow(). Aunque los argumentos de pow() son de tipo double (número de 15 decimales), cabe la posibilidad de utilizar argumentos de tipo int (enteros). Es recomendable que result sea double por si la potencia da como valor un número con decimales (en este caso, al usar dos números enteros no hace falta).

En el caso de obtener un número entero muy grande recuerde definir result como long int

Raíces cuadradas: sqrt()

double sqrt(double x);

Esta función no creo que tenga mucha explicación para saber cómo utilizarla.

// Tus archivos de cabecera...

int main(int argc, char *argv[]) {
    int n = 27;
    double rc = sqrt(n);
    // Impresión del resultado, código...
}

Tan fácil como que rc devolverá la raíz cuadrada de n. En este caso, rc será "5.19615". Hay que recalcar que es muy importante que el resultado se de siempre en double, pero eso ya depende para que número lo vayas a usar.

Otras raíces

Esta es la parte más interesante del artículo, donde aplicaremos algo más de conocimiento de matemáticas. Sabiendo que cualquier raíz se puede convertir en una potencia de exponente fraccionario usaremos la función pow() para sacar la raíces de cualquier índice. Como ejemplo: la raíz cúbica de 125.

// Tus archivos de cabecera...

int main(int argc, char *argv[]) {
    int radicando = 125;
    int indice = 3;
    double raiz = pow(radicando,1.0/indice); // IMPORTANTE USAR 1.0 en vez de 1
    // Impresión del resultado, código...
}

Aplicando lo dicho anteriormente hemos obtenido la raíz cúbica de 125. La variable raiz devolvería "5".

Referencias

· Biblioteca math.h: http://c.conclase.net/librerias/?ansilib=math#inicio

· Función pow(): http://c.conclase.net/librerias/?ansifun=pow#inicio

· Función sqrt(): http://c.conclase.net/librerias/?ansifun=sqrt#inicio

Compartir en Google +

Artículo por Eduardo González Vaquero