Calcular Potencias y Exponentes en C

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a calcular potencias y exponentes en el lenguaje de programación C. El laboratorio cubre dos pasos principales: leer los valores de la base y el exponente del usuario, y luego calcular la potencia utilizando un bucle manual o la función incorporada pow(). Al final de este laboratorio, tendrás una comprensión sólida de cómo realizar cálculos de potencia en C, una operación fundamental en muchas aplicaciones matemáticas y científicas.

Leer Base y Exponente

En este paso, aprenderás a leer los valores de la base y el exponente para calcular potencias en un programa C. Crearemos un programa simple que solicita al usuario que ingrese estos valores.

Primero, creemos un nuevo archivo C en el directorio ~/project:

cd ~/project
nano power_calculation.c

Ahora, ingresa el siguiente código para leer la base y el exponente:

#include <stdio.h>

int main() {
    int base, exponent;

    // Solicitar al usuario que ingrese la base
    printf("Ingrese el número base: ");
    scanf("%d", &base);

    // Solicitar al usuario que ingrese el exponente
    printf("Ingrese el exponente: ");
    scanf("%d", &exponent);

    // Imprimir los valores ingresados
    printf("Base: %d\n", base);
    printf("Exponente: %d\n", exponent);

    return 0;
}

Compilamos y ejecutamos el programa:

gcc power_calculation.c -o power_calculation
./power_calculation

Ejemplo de salida:

Ingrese el número base: 5
Ingrese el exponente: 3
Base: 5
Exponente: 3

Explicación del código:

  • La función scanf() se utiliza para leer la entrada de números enteros del usuario.
  • %d es el especificador de formato para enteros.
  • &base y &exponent pasan las direcciones de memoria donde se almacenarán los valores de entrada.
  • El programa simplemente lee y muestra los valores de la base y el exponente.

Este paso establece los cimientos para calcular potencias obteniendo primero la entrada necesaria del usuario.

Usar un Bucle o la Función pow()

En este paso, aprenderás dos métodos para calcular potencias en C: utilizando un bucle manual y utilizando la función incorporada pow() de la biblioteca matemática.

Primero, modifiquemos el archivo anterior power_calculation.c para implementar el cálculo de potencias:

cd ~/project
nano power_calculation.c

Método 1: Usando un Bucle

#include <stdio.h>

int calculate_power_loop(int base, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    return result;
}

int main() {
    int base, exponent;

    printf("Ingrese el número base: ");
    scanf("%d", &base);

    printf("Ingrese el exponente: ");
    scanf("%d", &exponent);

    int power_result = calculate_power_loop(base, exponent);

    printf("%d elevado a la potencia de %d es: %d\n", base, exponent, power_result);

    return 0;
}

Método 2: Usando la Función pow()

#include <stdio.h>
#include <math.h>

int main() {
    int base, exponent;

    printf("Ingrese el número base: ");
    scanf("%d", &base);

    printf("Ingrese el exponente: ");
    scanf("%d", &exponent);

    // Nota: pow() devuelve un double, por lo que lo convertimos a int
    int power_result = (int)pow(base, exponent);

    printf("%d elevado a la potencia de %d es: %d\n", base, exponent, power_result);

    return 0;
}

Compila el programa con la biblioteca matemática:

gcc power_calculation.c -o power_calculation -lm

Ejemplo de salida:

Ingrese el número base: 2
Ingrese el exponente: 3
2 elevado a la potencia de 3 es: 8

Explicación del código:

  • El método de bucle multiplica manualmente la base por sí misma exponent veces.
  • La función pow() de math.h proporciona un cálculo de potencia incorporado.
  • El flag -lm es necesario para enlazar la biblioteca matemática al compilar.
  • Convertimos el resultado de pow() a int para que coincida con nuestro cálculo entero.

Imprimir el Resultado

En este paso, mejorarás el programa de cálculo de potencias para proporcionar una salida más detallada y formateada, demostrando diferentes maneras de presentar resultados en C.

Modifiquemos el archivo power_calculation.c:

cd ~/project
nano power_calculation.c

Añade el siguiente código completo:

#include <stdio.h>
#include <math.h>

void print_power_result(int base, int exponent, int result) {
    // Formato de impresión básico
    printf("Resultado Básico: %d^%d = %d\n", base, exponent, result);

    // Impresión formateada con alineación
    printf("Resultado Formateado: %2d elevado a la potencia de %2d es igual a %5d\n",
           base, exponent, result);

    // Notación científica para números grandes
    printf("Notación Científica: %d^%d = %.2e\n", base, exponent, pow(base, exponent));
}

int calculate_power_loop(int base, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    return result;
}

int main() {
    int base, exponent;

    printf("Ingrese el número base: ");
    scanf("%d", &base);

    printf("Ingrese el exponente: ");
    scanf("%d", &exponent);

    int power_result = calculate_power_loop(base, exponent);

    // Llama a la función para imprimir los resultados
    print_power_result(base, exponent, power_result);

    return 0;
}

Compila el programa:

gcc power_calculation.c -o power_calculation -lm

Ejecuta el programa:

./power_calculation

Ejemplo de salida:

Ingrese el número base: 5
Ingrese el exponente: 3
Resultado Básico: 5^3 = 125
Resultado Formateado:  5 elevado a la potencia de  3 es igual a   125
Notación Científica: 5^3 = 1.25e+02

Explicación del código:

  • print_power_result() demuestra múltiples formatos de impresión.
  • La impresión básica muestra el cálculo simple.
  • La impresión formateada utiliza especificadores de ancho para la alineación.
  • La notación científica es útil para números grandes.
  • %.2e muestra el número en formato científico con 2 decimales.

Resumen

En este laboratorio, aprendiste a leer los valores de la base y el exponente del usuario y luego a calcular la potencia utilizando dos métodos diferentes: un bucle manual y la función incorporada pow(). Implementaste la función de cálculo de potencia basada en bucles y la llamada a la función pow(), y luego comparaste los resultados. Esto te permitió comprender los diferentes enfoques para calcular potencias y exponentes en la programación en C.