Условие задачи:
Банк предлагает три вида депозитов на 3 месяца ( годовых), на 6 месяцев (
годовых) и на 12 месяцев (
годовых). Какой депозит принесёт больше дохода при многолетнем вложении.
Алгоритм решения:
Для решения данной задачи нужно использовать формулу вычисления сложных процентов: [latex]{(1+\frac{p}{100\%})}^n[/latex], где [latex]p-[/latex]процентная ставка за расчетный период, а [latex]n-[/latex]количество расчетных периодов. Для депозита на [latex]3[/latex] месяца получаем формулу [latex]{(1+\frac{p_3}{4\times100\%})}^4[/latex], для депозита на [latex]6[/latex] месяцев получаем формулу [latex]{(1+\frac{p_6}{2\times100\%})}^2[/latex], для депозита на [latex]12[/latex] месяцев получаем формулу [latex](1+\frac{p_{12}}{100\%})[/latex]. Программа будет сравнивать полученные результаты и выводить максимальный.
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> using namespace std; int main() { double p3, p6, p12; cin >> p3 >> p6 >> p12; double profit3, profit6, profit12; profit3 = (1 + p3/400.0)*(1 + p3/400.0)*(1 + p3/400.0)*(1 + p3/400.0); profit6 = (1 + p6/200.0)*(1 + p6/200.0); profit12 = (1 + p12/100.0); cout<<profit3<<" "<<profit6<<" "<<profit12<<endl; cout << (profit3 > profit6 ? (profit3 > profit12 ? ("На 3 месяца") : ("На 12 месяцев")) : (profit6 > profit12 ?("На 6 месяцев") : ("На 12 месяцев"))); return 0; } |
Тесты:
Входные данные | Выходные данные | Входные данные | Выходные данные | ||||
Срок вклада | Ставка(%) | Прибыль | Выгода | Срок вклада | Ставка(%) | Прибыль | Выгода |
3 месяца | 1 | 1.01004 | 3 месяца | 10 | 1.10381 | ||
6 месяцев | 10 | 1.1025 | 6 месяцев | 20 | 1.21 | ||
12 месяцев | 30 | 1.3 | На 12 месяцев | 12 месяцев | 30 | 1.3 | На 12 месяцев |
Входные данные | Выходные данные | Входные данные | Выходные данные | ||||
Срок вклада | Ставка(%) | Прибыль | Выгода | Срок вклада | Ставка(%) | Прибыль | Выгода |
3 месяца | 4 | 1.0406 | На 3 месяца | 3 месяца | 1 | 1.01004 | |
6 месяцев | 4 | 1.0404 | 6 месяцев | 38 | 1.4161 | На 6 месяцев | |
12 месяцев | 4 | 1.04 | 12 месяцев | 9 | 1.09 |
Входные данные | Выходные данные | Входные данные | Выходные данные | ||||
Срок вклада | Ставка(%) | Прибыль | Выгода | Срок вклада | Ставка(%) | Прибыль | Выгода |
3 месяца | 1 | 1.01004 | 3 месяца | 11 | 1.11462 | ||
6 месяцев | 20 | 1.21 | 6 месяцев | 5 | 1.05062 | ||
12 месяцев | 25 | 1.25 | На 12 месяцев | 12 месяцев | 17 | 1.17 | На 12 месяцев |
Рассмотрим работу данной программы на реальных предложениях этого банка для депозитов «Плюс срочный» и «Стандарт срочный».
Плюс срочный | Входные данные | Выходные данные | Стандарт срочный | Входные данные | Выходные данные | ||
Срок вклада | Ставка(%) | Прибыль | Выгода | Срок вклада | Ставка(%) | Прибыль | Выгода |
3 месяца | 23.5 | 1.25653 | 3 месяца | 22.5 | 1.24471 | ||
6 месяцев | 24.5 | 1.26001 | На 6 месяцев | 6 месяцев | 23.5 | 1.24881 | На 6 месяцев |
12 месяцев | 25.5 | 1.255 | 12 месяцев | 24.5 | 1.245 |
В результате получили, что эти оба депозита выгодны при сроке вклада на [latex]6[/latex] месяцев. По тестам видно, что депозит «Плюс срочный» при вкладе на [latex]6[/latex] месяцев приносит большую прибыль, чем депозит «Стандарт срочный». Посчитаем, на сколько первый депозит выгоднее второго, для этого воспользуемся формулой: разница[latex]=[/latex](первый депозит[latex]-[/latex]второй депозит)[latex]\div[/latex]второй депозит[latex]\times{100\%}[/latex]. Подставив значения, получим — на [latex]\approx0.89685\%[/latex].
Здесь можно посмотреть решение задачи на ideone.com
— Вы решаете какую-то другую задачу. Пожалуйста, прочтите условие.
— Вы не точно скопировали условие. Потеряли переменные в которых хранятся исходные данные. Пожалуйста, сделайте как в условии задачи.
— Пожалуйста, сделайте тесты в форме одной таблицы с колонками для исходных данных и результата.
— В качестве тестов, Вы просто привели то, что выводит Ваша программа. А она в любом случае сравнивает три одинаковых значение и всегда выводит equal. Так нельзя. Тесты нужно сосчитать самой. Потом на них проверить работу программы.
— Какое значение может иметь сумма вклада? Она ведь не может повлиять на то какой из трёх депозитов более выгодный.
— Какой смысл присваивать max = 0 и тут же max = P1?
— Лейтмотивом у вас звучит «Введем переменные .. С помощью их вычислим…». Так не бывает. Переменные позволяют хранить результаты вычислений, но не помогают их произвести. Помогает формула. А формул у Вас и нет. Там какие-то странности, чтобы трижды повторить умножение суммы вклада на 0.01 и поместить одно и тоже число в три разные переменные.
Игорь Евгеньевич, я исправила ошибки, проверьте, пожалуйста
— Уже намного лучше. Осталось одно существенное замечание. Даже если продолжительность депозита 3 месяца, указывается годовой процент. Т.е. если указано 24% годовых при вкладе на 3 месяца, то за эти 3 месяца будет начислено только 6%, т.к. период составляет четвёртую часть года. Т.е. Вам нужно годовой процент разделить на 4 для 3-х месячных депозитов и на 2 для 6-ти месячного.
— Прокомментируйте с помощью Вашей программы данные о реальных депозитных предложениях какого-либо банка. Например, здесь есть данные для одного из банков. Хотелось бы прочитать в вашей статье какой из банковских продуктов выгоднее для вкладчика и на сколько (в процентах).
— Попробуйте что-либо сделать с фразой «чтобы ухватить как можно больше значений». Проблема в слове «ухватить», которое стилистически диссонирует с остальным текстом. Лучше всего вообще выбросить это предложение — оно мало, что поясняет. А заодно можно убрать и нумерацию абзацев в которой и вовсе нет смысла.
Зачтено. Теперь можете класть свою стипендию на депозит.