Calcular Prestações de Empréstimo em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a calcular prestações de hipoteca usando a linguagem C. O laboratório cobre os passos essenciais, incluindo a leitura do valor principal, da taxa de juros e do número de prestações, e, em seguida, a aplicação da fórmula de cálculo de prestações de hipoteca para determinar a prestação mensal. No final deste laboratório, você terá um programa C funcional que pode calcular prestações de hipoteca com base na entrada do utilizador.

O laboratório percorre todo o processo, desde a criação de um novo ficheiro C até à implementação do cálculo da prestação e à impressão do resultado. Este exercício prático ajudará a desenvolver as suas competências em matemática financeira e cálculos de juros usando a programação C.

Ler o Capital Inicial, Taxa e Número de Prestações

Neste passo, aprenderemos a ler as entradas essenciais para calcular as prestações de uma hipoteca: o valor principal, a taxa de juro e o número de prestações.

Primeiro, vamos criar um novo ficheiro C para a nossa calculadora de prestações de hipoteca:

cd ~/project
nano mortgage_calculator.c

Agora, vamos escrever o código para ler os valores de entrada:

#include <stdio.h>

int main() {
    double principal, taxa;
    int num_prestacoes;

    // Solicitar e ler o valor principal
    printf("Introduza o valor principal do empréstimo: ");
    scanf("%lf", &principal);

    // Solicitar e ler a taxa de juro anual (como um decimal)
    printf("Introduza a taxa de juro anual (como um decimal): ");
    scanf("%lf", &taxa);

    // Solicitar e ler o número de prestações
    printf("Introduza o número total de prestações: ");
    scanf("%d", &num_prestacoes);

    // Imprimir os valores de entrada para verificar
    printf("\nDetalhes do Empréstimo:\n");
    printf("Capital Inicial: $%.2f\n", principal);
    printf("Taxa de Juro Anual: %.2f%%\n", taxa * 100);
    printf("Número de Prestações: %d\n", num_prestacoes);

    return 0;
}

Compilar e executar o programa:

gcc mortgage_calculator.c -o mortgage_calculator
./mortgage_calculator

Exemplo de saída:

Introduza o valor principal do empréstimo: 200000
Introduza a taxa de juro anual (como um decimal): 0.05
Introduza o número total de prestações: 360

Detalhes do Empréstimo:
Capital Inicial: $200000.00
Taxa de Juro Anual: 5.00%
Número de Prestações: 360

Vamos decompor o código:

  • Usamos double para o capital inicial e a taxa para lidar com valores decimais
  • scanf() é usado para ler as entradas do utilizador
  • O especificador de formato %lf é usado para valores double
  • %d é usado para o número inteiro de prestações
  • Imprimimos as entradas para verificar se foram capturadas corretamente

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

Neste passo, iremos implementar a fórmula de cálculo de prestações de hipoteca utilizando as entradas do passo anterior.

Vamos modificar o ficheiro mortgage_calculator.c existente:

cd ~/project
nano mortgage_calculator.c

Atualize o código para calcular a prestação mensal:

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

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // Taxa de juro mensal
    double monthly_rate = rate / 12;

    // Calcular o pagamento usando a fórmula da hipoteca
    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 ler o valor principal
    printf("Introduza o valor principal do empréstimo: ");
    scanf("%lf", &principal);

    // Solicitar e ler a taxa de juro anual (como um decimal)
    printf("Introduza a taxa de juro anual (como um decimal): ");
    scanf("%lf", &rate);

    // Solicitar e ler o número de prestações
    printf("Introduza o número total de prestações: ");
    scanf("%d", &num_payments);

    // Calcular a prestação mensal
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // Imprimir os valores de entrada e o pagamento calculado
    printf("\nDetalhes do Empréstimo:\n");
    printf("Capital Inicial: $%.2f\n", principal);
    printf("Taxa de Juro Anual: %.2f%%\n", rate * 100);
    printf("Número de Prestações: %d\n", num_payments);
    printf("Prestação Mensal: $%.2f\n", monthly_payment);

    return 0;
}

Compile o programa com a biblioteca matemática:

gcc mortgage_calculator.c -o mortgage_calculator -lm

Execute o programa:

./mortgage_calculator

Exemplo de saída:

Introduza o valor principal do empréstimo: 200000
Introduza a taxa de juro anual (como um decimal): 0.05
Introduza o número total de prestações: 360

Detalhes do Empréstimo:
Capital Inicial: $200000.00
Taxa de Juro Anual: 5.00%
Número de Prestações: 360
Prestação Mensal: $1073.64

Pontos chave sobre a fórmula de cálculo de prestações de hipoteca:

  • P é o valor principal do empréstimo
  • R é a taxa de juro mensal (taxa anual dividida por 12)
  • N é o número total de prestações
  • A função pow() da biblioteca <math.h> é usada para calcular expoentes
  • Compilamos com -lm para ligar a biblioteca matemática

Imprimir o Pagamento

Neste passo final, iremos melhorar a nossa calculadora de hipotecas para fornecer uma análise detalhada do pagamento e formatar a saída para melhor legibilidade.

Vamos modificar o ficheiro mortgage_calculator.c para adicionar informações mais abrangentes sobre o pagamento:

cd ~/project
nano mortgage_calculator.c

Atualize o código com a impressão melhorada do pagamento:

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

double calculate_mortgage_payment(double principal, double rate, int num_payments) {
    // Taxa de juro mensal
    double monthly_rate = rate / 12;

    // Calcular o pagamento usando a fórmula da hipoteca
    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--- Detalhes do Pagamento da Hipoteca ---\n");
    printf("Capital Inicial:        $%10.2f\n", principal);
    printf("Taxa de Juro Anual:      %10.2f%%\n", rate * 100);
    printf("Número Total de Pagamentos: %d\n", num_payments);
    printf("Pagamento Mensal:       $%10.2f\n", monthly_payment);
    printf("Pagamentos Totais:        $%10.2f\n", total_payment);
    printf("Juros Totais Pagos:      $%10.2f\n", total_interest);
}

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

    // Solicitar e ler o valor principal
    printf("Introduza o valor principal do empréstimo: ");
    scanf("%lf", &principal);

    // Solicitar e ler a taxa de juro anual (como um decimal)
    printf("Introduza a taxa de juro anual (como um decimal): ");
    scanf("%lf", &rate);

    // Solicitar e ler o número de pagamentos
    printf("Introduza o número total de pagamentos: ");
    scanf("%d", &num_payments);

    // Calcular o pagamento mensal
    double monthly_payment = calculate_mortgage_payment(principal, rate, num_payments);

    // Imprimir informações detalhadas sobre o pagamento
    print_payment_details(principal, rate, num_payments, monthly_payment);

    return 0;
}

Compile o programa:

gcc mortgage_calculator.c -o mortgage_calculator -lm

Execute o programa:

./mortgage_calculator

Exemplo de saída:

Introduza o valor principal do empréstimo: 200000
Introduza a taxa de juro anual (como um decimal): 0.05
Introduza o número total de pagamentos: 360

--- Detalhes do Pagamento da Hipoteca ---
Capital Inicial:        $  200000.00
Taxa de Juro Anual:          5.00%
Número Total de Pagamentos: 360
Pagamento Mensal:       $    1073.64
Pagamentos Totais:        $  386510.40
Juros Totais Pagos:      $  186510.40

Melhorias chave:

  • Adicionada uma nova função print_payment_details() para saída formatada
  • Calcula os pagamentos totais e os juros totais
  • Utilização de formatação para alinhar valores decimais
  • Fornece uma análise clara e legível dos detalhes da hipoteca

Resumo

Neste laboratório, aprendemos a ler as entradas essenciais para calcular prestações de hipoteca, incluindo o valor principal, a taxa de juro e o número de pagamentos. Em seguida, implementamos a fórmula de cálculo de prestações de hipoteca utilizando estas entradas para calcular o valor da prestação mensal. Finalmente, imprimimos o pagamento calculado para apresentar o resultado.

Os passos-chave abordados neste laboratório são: ler o valor principal, a taxa e o número de pagamentos a partir da entrada do utilizador e, em seguida, aplicar a fórmula de pagamento da hipoteca para calcular a prestação mensal. O programa garante que as entradas são capturadas corretamente e fornece uma saída clara dos detalhes do empréstimo e do pagamento calculado.