Вывод текущей стоимости
В этом шаге вы улучшите программу расчета текущей стоимости, добавив форматированный вывод и обработку ошибок для повышения удобства использования.
Обновите файл present_value.c, добавив улучшенное форматирование и валидацию:
nano ~/project/present_value.c
Измените код, добавив улучшенное форматирование вывода:
#include <stdio.h>
#include <math.h>
int main() {
double future_value, rate, time, present_value;
// Валидация ввода
printf("Калькулятор текущей стоимости\n");
printf("----------------------------\n");
printf("Введите будущую стоимость (должна быть положительной): ");
if (scanf("%lf", &future_value) != 1 || future_value <= 0) {
printf("Ошибка: Неверная будущая стоимость. Пожалуйста, введите положительное число.\n");
return 1;
}
printf("Введите годовую процентную ставку (в десятичном виде, например, 0.05 для 5%%): ");
if (scanf("%lf", &rate) != 1 || rate < 0) {
printf("Ошибка: Неверная процентная ставка. Пожалуйста, введите неотрицательное число.\n");
return 1;
}
printf("Введите период (в годах, должен быть положительным): ");
if (scanf("%lf", &time) != 1 || time <= 0) {
printf("Ошибка: Неверный период. Пожалуйста, введите положительное число.\n");
return 1;
}
// Вычисление текущей стоимости
present_value = future_value / pow((1 + rate), time);
// Форматированный вывод
printf("\n--- Расчет текущей стоимости ---\n");
printf("Будущая стоимость: $%.2f\n", future_value);
printf("Годовая ставка: %.2f%%\n", rate * 100);
printf("Период: %.2f лет\n", time);
printf("Текущая стоимость: $%.2f\n", present_value);
return 0;
}
Компилируйте и запустите обновлённую программу:
gcc -o present_value present_value.c -lm
./present_value
Пример вывода:
Калькулятор текущей стоимости
----------------------------
Введите будущую стоимость (должна быть положительной): 1000
Введите годовую процентную ставку (в десятичном виде, например, 0.05 для 5%): 0.05
Введите период (в годах, должен быть положительным): 3
--- Расчет текущей стоимости ---
Будущая стоимость: $1000.00
Годовая ставка: 5.00%
Период: 3.00 лет
Текущая стоимость: $862.07
Основные улучшения:
- Добавлена валидация ввода для предотвращения некорректных значений.
- Улучшен форматирование вывода с ясными метками.
- Улучшена обработка ошибок для пользовательского ввода.
- Добавлены описательные подсказки и сводка расчета.