Imprimir Valor Presente
En este paso, mejorarás el programa de cálculo del valor presente añadiendo una salida formateada y manejo de errores para una mejor experiencia de usuario.
Actualiza el archivo present_value.c con una mejor formatación y validación:
nano ~/project/present_value.c
Modifica el código para incluir una mejor formatación de la salida:
#include <stdio.h>
#include <math.h>
int main() {
double valor_futuro, tasa, tiempo, valor_presente;
// Validación de entrada
printf("Calculadora de Valor Presente\n");
printf("-----------------------------\n");
printf("Ingrese el Valor Futuro (debe ser positivo): ");
if (scanf("%lf", &valor_futuro) != 1 || valor_futuro <= 0) {
printf("Error: Valor futuro inválido. Ingrese un número positivo.\n");
return 1;
}
printf("Ingrese la Tasa de Interés Anual (en decimal, ej. 0.05 para 5%): ");
if (scanf("%lf", &tasa) != 1 || tasa < 0) {
printf("Error: Tasa de interés inválida. Ingrese un número no negativo.\n");
return 1;
}
printf("Ingrese el Periodo de Tiempo (en años, debe ser positivo): ");
if (scanf("%lf", &tiempo) != 1 || tiempo <= 0) {
printf("Error: Periodo de tiempo inválido. Ingrese un número positivo.\n");
return 1;
}
// Calcular el Valor Presente
valor_presente = valor_futuro / pow((1 + tasa), tiempo);
// Salida formateada
printf("\n--- Cálculo del Valor Presente ---\n");
printf("Valor Futuro: $%.2f\n", valor_futuro);
printf("Tasa Anual: %.2f%%\n", tasa * 100);
printf("Periodo de Tiempo: %.2f años\n", tiempo);
printf("Valor Presente: $%.2f\n", valor_presente);
return 0;
}
Compila y ejecuta el programa actualizado:
gcc -o present_value present_value.c -lm
./present_value
Ejemplo de salida:
Calculadora de Valor Presente
-----------------------------
Ingrese el Valor Futuro (debe ser positivo): 1000
Ingrese la Tasa de Interés Anual (en decimal, ej. 0.05 para 5%): 0.05
Ingrese el Periodo de Tiempo (en años, debe ser positivo): 3
--- Cálculo del Valor Presente ---
Valor Futuro: $1000.00
Tasa Anual: 5.00%
Periodo de Tiempo: 3.00 años
Valor Presente: $862.07
Mejoras clave:
- Se añadió validación de entrada para evitar entradas inválidas.
- Se mejoró la formatación de la salida con etiquetas claras.
- Se mejoró el manejo de errores para las entradas del usuario.
- Se añadieron indicaciones descriptivas y un resumen del cálculo.