Imprimir Valor Presente
Neste passo, você aprimorará o programa de cálculo de valor presente adicionando saída formatada e tratamento de erros para melhorar a experiência do usuário.
Atualize o arquivo present_value.c com formatação e validação aprimoradas:
nano ~/project/present_value.c
Modifique o código para incluir uma melhor formatação de saída:
#include <stdio.h>
#include <math.h>
int main() {
double valor_futuro, taxa, tempo, valor_presente;
// Validação de entrada
printf("Calculadora de Valor Presente\n");
printf("-----------------------------\n");
printf("Digite o Valor Futuro (deve ser positivo): ");
if (scanf("%lf", &valor_futuro) != 1 || valor_futuro <= 0) {
printf("Erro: Valor futuro inválido. Por favor, digite um número positivo.\n");
return 1;
}
printf("Digite a Taxa de Juros Anual (em decimal, ex.: 0.05 para 5%): ");
if (scanf("%lf", &taxa) != 1 || taxa < 0) {
printf("Erro: Taxa de juros inválida. Por favor, digite um número não negativo.\n");
return 1;
}
printf("Digite o Período de Tempo (em anos, deve ser positivo): ");
if (scanf("%lf", &tempo) != 1 || tempo <= 0) {
printf("Erro: Período de tempo inválido. Por favor, digite um número positivo.\n");
return 1;
}
// Calcular o Valor Presente
valor_presente = valor_futuro / pow((1 + taxa), tempo);
// Saída formatada
printf("\n--- Cálculo do Valor Presente ---\n");
printf("Valor Futuro: R$%.2f\n", valor_futuro);
printf("Taxa Anual: %.2f%%\n", taxa * 100);
printf("Período de Tempo: %.2f anos\n", tempo);
printf("Valor Presente: R$%.2f\n", valor_presente);
return 0;
}
Compile e execute o programa atualizado:
gcc -o present_value present_value.c -lm
./present_value
Exemplo de saída:
Calculadora de Valor Presente
-----------------------------
Digite o Valor Futuro (deve ser positivo): 1000
Digite a Taxa de Juros Anual (em decimal, ex.: 0.05 para 5%): 0.05
Digite o Período de Tempo (em anos, deve ser positivo): 3
--- Cálculo do Valor Presente ---
Valor Futuro: R$1000.00
Taxa Anual: 5.00%
Período de Tempo: 3.00 anos
Valor Presente: R$862.07
Melhorias-chave:
- Adição de validação de entrada para evitar entradas inválidas.
- Formatação de saída aprimorada com rótulos claros.
- Tratamento de erros aprimorado para entradas do usuário.
- Prompts descritivos e resumo do cálculo adicionados.