Вычисление текущей стоимости будущей суммы в C

CBeginner
Практиковаться сейчас

Введение

В этом лабораторном практикуме вы научитесь вычислять текущую стоимость будущей суммы с использованием языка программирования C. Практикум охватывает основные шаги, включая ввод финансовых параметров (будущая стоимость, процентная ставка и период), а затем применение формулы текущей стоимости для расчета текущей стоимости. Практикум предоставляет пошаговое руководство с примерами кода, чтобы помочь вам понять и реализовать вычисление текущей стоимости на C.

Практикум демонстрирует, как использовать функцию scanf() для чтения пользовательского ввода, хранения его в виде чисел с плавающей запятой двойной точности, а затем выполнять вычисление текущей стоимости, используя формулу: Текущая стоимость (PV) = Будущая стоимость (FV) / (1 + Ставка)^Период. Вычисленная текущая стоимость затем выводится на консоль, позволяя вам увидеть результат вычисления.

Чтение будущей стоимости, ставки и периода

В этом шаге вы узнаете, как читать основные финансовые параметры для расчета текущей стоимости: будущую стоимость, процентную ставку и период.

Сначала создайте новый файл C для расчета текущей стоимости:

cd ~/project
nano present_value.c

Теперь напишем код для чтения входных значений:

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

int main() {
    double future_value, rate, time;

    printf("Введите будущую стоимость: ");
    scanf("%lf", &future_value);

    printf("Введите годовую процентную ставку (в десятичном виде): ");
    scanf("%lf", &rate);

    printf("Введите период (в годах): ");
    scanf("%lf", &time);

    printf("Ввод:\n");
    printf("Будущая стоимость: %.2f\n", future_value);
    printf("Процентная ставка: %.2f%%\n", rate * 100);
    printf("Период: %.2f лет\n", time);

    return 0;
}

Компилируем программу:

gcc -o present_value present_value.c -lm

Пример вывода при запуске программы:

Введите будущую стоимость: 1000
Введите годовую процентную ставку (в десятичном виде): 0.05
Введите период (в годах): 3
Ввод:
Будущая стоимость: 1000.00
Процентная ставка: 5.00%
Период: 3.00 лет

Этот код демонстрирует, как:

  • Использовать scanf() для чтения пользовательского ввода будущей стоимости, процентной ставки и периода
  • Хранить ввод как числа с плавающей запятой двойной точности
  • Выводить введенные значения для подтверждения правильности ввода

PV = FV/(1+R)^T

В этом шаге вы реализуете вычисление текущей стоимости, используя финансовую формулу: Текущая стоимость (PV) = Будущая стоимость (FV) / (1 + Ставка)^Период.

Измените предыдущий файл present_value.c, включив в него вычисление:

nano ~/project/present_value.c

Обновите код, добавив вычисление текущей стоимости:

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

int main() {
    double future_value, rate, time, present_value;

    printf("Введите будущую стоимость: ");
    scanf("%lf", &future_value);

    printf("Введите годовую процентную ставку (в десятичном виде): ");
    scanf("%lf", &rate);

    printf("Введите период (в годах): ");
    scanf("%lf", &time);

    // Вычисление текущей стоимости
    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
Введите период (в годах): 3

Результаты вычислений:
Будущая стоимость: 1000.00
Процентная ставка: 5.00%
Период: 3.00 лет
Текущая стоимость: 862.07

Ключевые моменты в этом коде:

  • Использование функции pow() из <math.h> для вычисления (1 + ставка)^период
  • Реализация формулы текущей стоимости: PV = FV / (1 + R)^T
  • Вывод подробных результатов вычислений

Вывод текущей стоимости

В этом шаге вы улучшите программу расчета текущей стоимости, добавив форматированный вывод и обработку ошибок для повышения удобства использования.

Обновите файл 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

Основные улучшения:

  • Добавлена валидация ввода для предотвращения некорректных значений.
  • Улучшен форматирование вывода с ясными метками.
  • Улучшена обработка ошибок для пользовательского ввода.
  • Добавлены описательные подсказки и сводка расчета.

Резюме

В этом лабораторном практикуме вы изучите, как получать необходимые финансовые параметры для расчета текущей стоимости, включая будущую стоимость, процентную ставку и период. Затем вы реализуете расчет текущей стоимости, используя финансовую формулу: Текущая стоимость (PV) = Будущая стоимость (FV) / (1 + Ставка)^Период. Практикум демонстрирует, как использовать язык программирования C для запроса данных у пользователя, выполнения расчета и отображения полученной текущей стоимости.