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. %des el especificador de formato para enteros.&basey&exponentpasan 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
exponentveces. - La función
pow()demath.hproporciona un cálculo de potencia incorporado. - El flag
-lmes necesario para enlazar la biblioteca matemática al compilar. - Convertimos el resultado de
pow()aintpara 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.
%.2emuestra 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.



