Calcular Pagos Hipotecarios en C

CBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a calcular pagos hipotecarios utilizando el lenguaje de programación C. El laboratorio cubre los pasos esenciales, incluyendo la lectura del monto principal, la tasa de interés y el número de pagos, y luego la aplicación de la fórmula de cálculo de pagos hipotecarios para determinar el pago mensual. Al final de este laboratorio, tendrás un programa C funcional que puede calcular pagos hipotecarios basados en la entrada del usuario.

El laboratorio recorre el proceso completo, desde la creación de un nuevo archivo C hasta la implementación del cálculo de pagos e impresión del resultado. Este ejercicio práctico te ayudará a desarrollar tus habilidades en matemáticas financieras y cálculos de interés utilizando la programación en C.

Leer el Capital, la Tasa y el Número de Pagos

En este paso, aprenderemos a leer las entradas esenciales para calcular los pagos hipotecarios: el capital principal, la tasa de interés y el número de pagos.

Primero, creemos un nuevo archivo C para nuestra calculadora de pagos hipotecarios:

cd ~/project
nano mortgage_calculator.c

Ahora, escribamos el código para leer los valores de entrada:

#include <stdio.h>

int main() {
    double principal, rate;
    int num_payments;

    // Solicitar e ingresar el capital principal
    printf("Ingrese el capital principal del préstamo: ");
    scanf("%lf", &principal);

    // Solicitar e ingresar la tasa de interés anual (como decimal)
    printf("Ingrese la tasa de interés anual (como decimal): ");
    scanf("%lf", &rate);

    // Solicitar e ingresar el número total de pagos
    printf("Ingrese el número total de pagos: ");
    scanf("%d", &num_payments);

    // Imprimir los valores de entrada para verificarlos
    printf("\nDetalles del Préstamo:\n");
    printf("Capital: $%.2f\n", principal);
    printf("Tasa de Interés Anual: %.2f%%\n", rate * 100);
    printf("Número de Pagos: %d\n", num_payments);

    return 0;
}

Compile y ejecuta el programa:

gcc mortgage_calculator.c -o mortgage_calculator
./mortgage_calculator

Salida de ejemplo:

Ingrese el capital principal del préstamo: 200000
Ingrese la tasa de interés anual (como decimal): 0.05
Ingrese el número total de pagos: 360

Detalles del Préstamo:
Capital: $200000.00
Tasa de Interés Anual: 5.00%
Número de Pagos: 360

Desglose del código:

  • Usamos double para el capital y la tasa para manejar valores decimales.
  • scanf() se utiliza para leer las entradas del usuario.
  • El especificador de formato %lf se utiliza para valores double.
  • %d se utiliza para el número entero de pagos.
  • Imprimimos las entradas para verificar que se capturaron correctamente.

Pago = P*(R*(1+R)^N)/((1+R)^N -1)

En este paso, implementaremos la fórmula de cálculo de pagos hipotecarios utilizando las entradas del paso anterior.

Modifiquemos el archivo mortgage_calculator.c existente:

cd ~/project
nano mortgage_calculator.c

Actualiza el código para calcular el pago mensual:

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

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // Tasa de interés mensual
    double monthly_rate = rate / 12;

    // Calcular el pago utilizando la fórmula hipotecaria
    double payment = principal *
        (monthly_rate * pow(1 + monthly_rate, num_payments)) /
        (pow(1 + monthly_rate, num_payments) - 1);

    return payment;
}

int main() {
    double principal, rate;
    int num_payments;

    // Solicitar e ingresar el capital principal
    printf("Ingrese el capital principal del préstamo: ");
    scanf("%lf", &principal);

    // Solicitar e ingresar la tasa de interés anual (como decimal)
    printf("Ingrese la tasa de interés anual (como decimal): ");
    scanf("%lf", &rate);

    // Solicitar e ingresar el número total de pagos
    printf("Ingrese el número total de pagos: ");
    scanf("%d", &num_payments);

    // Calcular el pago mensual
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // Imprimir los valores de entrada y el pago calculado
    printf("\nDetalles del Préstamo:\n");
    printf("Capital: $%.2f\n", principal);
    printf("Tasa de Interés Anual: %.2f%%\n", rate * 100);
    printf("Número de Pagos: %d\n", num_payments);
    printf("Pago Mensual: $%.2f\n", monthly_payment);

    return 0;
}

Compila el programa con la biblioteca matemática:

gcc mortgage_calculator.c -o mortgage_calculator -lm

Ejecuta el programa:

./mortgage_calculator

Salida de ejemplo:

Ingrese el capital principal del préstamo: 200000
Ingrese la tasa de interés anual (como decimal): 0.05
Ingrese el número total de pagos: 360

Detalles del Préstamo:
Capital: $200000.00
Tasa de Interés Anual: 5.00%
Número de Pagos: 360
Pago Mensual: $1073.64

Puntos clave sobre la fórmula de pago hipotecario:

  • P es el capital del préstamo.
  • R es la tasa de interés mensual (tasa anual dividida por 12).
  • N es el número total de pagos.
  • La función pow() de <math.h> se utiliza para calcular exponentes.
  • Se compila con -lm para enlazar la biblioteca matemática.

Imprimir el Pago

En este paso final, mejoraremos nuestra calculadora hipotecaria para proporcionar un desglose detallado del pago y formatear la salida para una mejor legibilidad.

Modifiquemos el archivo mortgage_calculator.c para agregar información de pago más completa:

cd ~/project
nano mortgage_calculator.c

Actualiza el código con una impresión de pago mejorada:

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

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // Tasa de interés mensual
    double monthly_rate = rate / 12;

    // Calcular el pago utilizando la fórmula hipotecaria
    double payment = principal *
        (monthly_rate * pow(1 + monthly_rate, num_payments)) /
        (pow(1 + monthly_rate, num_payments) - 1);

    return payment;
}

void print_payment_details(double principal, double rate, int num_payments, double monthly_payment) {
    double total_payment = monthly_payment * num_payments;
    double total_interest = total_payment - principal;

    printf("\n--- Desglose del Pago Hipotecario ---\n");
    printf("Capital del Préstamo:        $%10.2f\n", principal);
    printf("Tasa de Interés Anual:        %10.2f%%\n", rate * 100);
    printf("Número Total de Pagos: %d\n", num_payments);
    printf("Pago Mensual:       $%10.2f\n", monthly_payment);
    printf("Pagos Totales:        $%10.2f\n", total_payment);
    printf("Intereses Totales Pagados:   $%10.2f\n", total_interest);
}

int main() {
    double principal, rate;
    int num_payments;

    // Solicitar e ingresar el capital principal
    printf("Ingrese el capital principal del préstamo: ");
    scanf("%lf", &principal);

    // Solicitar e ingresar la tasa de interés anual (como decimal)
    printf("Ingrese la tasa de interés anual (como decimal): ");
    scanf("%lf", &rate);

    // Solicitar e ingresar el número total de pagos
    printf("Ingrese el número total de pagos: ");
    scanf("%d", &num_payments);

    // Calcular el pago mensual
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // Imprimir información detallada del pago
    print_payment_details(principal, rate, num_payments, monthly_payment);

    return 0;
}

Compila el programa:

gcc mortgage_calculator.c -o mortgage_calculator -lm

Ejecuta el programa:

./mortgage_calculator

Salida de ejemplo:

Ingrese el capital principal del préstamo: 200000
Ingrese la tasa de interés anual (como decimal): 0.05
Ingrese el número total de pagos: 360

--- Desglose del Pago Hipotecario ---
Capital del Préstamo:        $  200000.00
Tasa de Interés Anual:         5.00%
Número Total de Pagos: 360
Pago Mensual:       $    1073.64
Pagos Totales:        $  386510.40
Intereses Totales Pagados:   $  186510.40

Mejoras clave:

  • Se agregó una nueva función print_payment_details() para una salida formateada.
  • Se calculan los pagos totales y los intereses totales.
  • Se utiliza el formato para alinear los valores decimales.
  • Se proporciona un desglose claro y legible de los detalles de la hipoteca.

Resumen

En este laboratorio, aprendimos a leer las entradas esenciales para calcular los pagos de una hipoteca, incluyendo el capital principal, la tasa de interés y el número de pagos. Luego, implementamos la fórmula de cálculo del pago hipotecario utilizando estas entradas para calcular el monto del pago mensual. Finalmente, imprimimos el pago calculado para mostrar el resultado.

Los pasos clave cubiertos en este laboratorio son: leer el capital principal, la tasa y el número de pagos de la entrada del usuario, y luego aplicar la fórmula de pago hipotecario para calcular el pago mensual. El programa asegura que las entradas se capturan correctamente y proporciona una salida clara de los detalles del préstamo y el pago calculado.