Форум программистов, компьютерный форум CyberForum.ru

Расчет сложного процента - C++

Восстановить пароль Регистрация
 
Vladisalv3v
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 3
27.01.2013, 02:01     Расчет сложного процента #1
Ребят, подскажите почему не получается правильно подсчитать процент в конце каждого года?
Суть задачи: вносим депозит в банк 1000$ под 5% годовых.
Доход остается на депозите, нужно подсчитать сумму денег после каждого года на протяжении 10 лет.
Желательно посчитать с помощью структуры "for"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
 
{
    //amount - сумма на депозите к концу года
    //principal - первоначальный вклад
 
    double amount, principal = 1000.0, rate = 0.5;
 
    cout  << "year" << "Amount" << endl;
 
    for (int year = 1; year <= 10; year++) {
       amount = principal * pow(1.0 + rate, year);
       cout << year << amount << endl;}
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2013, 02:01     Расчет сложного процента
Посмотрите здесь:

printf - знак процента на экран C++
C++ Разработать программу для определения процента повторения заданного слова в тексте
Написание программы расчета процента побед C++
Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. C++
Разработать алгоритм и программу для определения процента гласных символов в тексте C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
27.01.2013, 02:08     Расчет сложного процента #2
во первых
Цитата Сообщение от Vladisalv3v Посмотреть сообщение
5%
это не 0.5 а 0.05
во вторых
Цитата Сообщение от Vladisalv3v Посмотреть сообщение
for (int year = 1; year <= 10; year++) {
amount = principal * pow(1.0 + rate, year);
cout << year << amount << endl;}
ты как то больно сложно делаешь
C++
1
2
3
for (int year = 1; year <= 10; year++) {
          principal = principal *(1.0 + rate);
           cout << year << principal << endl;}
Vladisalv3v
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 3
27.01.2013, 02:25  [ТС]     Расчет сложного процента #3
Цитата Сообщение от ValeryS Посмотреть сообщение
во первых

это не 0.5 а 0.05
во вторых

ты как то больно сложно делаешь
C++
1
2
3
for (int year = 1; year <= 10; year++) {
          principal = principal *(1.0 + rate);
           cout << year << principal << endl;}


понял, спасибо большое!

Добавлено через 14 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
во первых

это не 0.5 а 0.05
во вторых

ты как то больно сложно делаешь
C++
1
2
3
for (int year = 1; year <= 10; year++) {
          principal = principal *(1.0 + rate);
           cout << year << principal << endl;}
а ты пробывал запустить?
У меня такэже бред выводит.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
27.01.2013, 02:38     Расчет сложного процента #4
Цитата Сообщение от Vladisalv3v Посмотреть сообщение
а ты пробывал запустить?
нет конечно
Цитата Сообщение от Vladisalv3v Посмотреть сообщение
У меня такэже бред выводит.
а в чем бред то заключается?
может пробел виноват
C++
1
cout << year <<" "<< principal << endl;
а то числа то подряд выводились
11050
21102,5
eisenheim
 Аватар для eisenheim
18 / 8 / 1
Регистрация: 06.06.2011
Сообщений: 268
27.01.2013, 03:07     Расчет сложного процента #5
Сам смотри! Ты увеличиваешь 'amount':
C++
1
amount = principal * pow(1.0 + rate, year);
При этом, 'principal' остаётся неизменным. И ты его же и выводишь:
C++
1
cout << year << principal << endl;
А он ведь, не меняется! Меняется у тебя 'amount'. Вот его и нужно выводить:
C++
1
cout << year <<" "<< amount << endl;
Вуаля
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
27.01.2013, 09:38     Расчет сложного процента #6
eisenheim,
ты програмку то из двух постов коментируешь?
Цитата Сообщение от eisenheim Посмотреть сообщение
Сам смотри! Ты увеличиваешь 'amount':
Цитата Сообщение от eisenheim Посмотреть сообщение
При этом, 'principal' остаётся неизменным. И ты его же и выводишь:
здесь
Цитата Сообщение от Vladisalv3v Посмотреть сообщение
for (int year = 1; year <= 10; year++) {
* * * *amount = principal * pow(1.0 + rate, year);
* * * *cout << year << amount << endl;}
как видишь меняется и выводится amount
а здесь


Цитата Сообщение от ValeryS Посмотреть сообщение
for (int year = 1; year <= 10; year++) {
* * * * * principal = principal *(1.0 + rate);
* * * * * *cout << year << principal << endl;}
а здесь меняется и выводится principal никаким amount не пахнет
Vladisalv3v
0 / 0 / 0
Регистрация: 27.01.2013
Сообщений: 3
02.02.2013, 01:47  [ТС]     Расчет сложного процента #7
Цитата Сообщение от ValeryS Посмотреть сообщение
нет конечно

а в чем бред то заключается?
может пробел виноват
C++
1
cout << year <<" "<< principal << endl;
а то числа то подряд выводились
11050
21102,5

можешь объяснит как этот символ << " " << поменял всю суть вывода.
С ним все получается.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
02.02.2013, 02:51     Расчет сложного процента #8
Цитата Сообщение от Vladisalv3v Посмотреть сообщение
можешь объяснит как этот символ << " " << поменял всю суть вывода.
выводишь пробел
по шагам
Цитата Сообщение от ValeryS Посмотреть сообщение
cout << year <<" "<< principal << endl;
<< year выводим год
<<" " выводим пробел
<< principal выводим значение
<< endl выводим перевод строки
vallinor
2 / 2 / 0
Регистрация: 20.04.2015
Сообщений: 19
07.05.2015, 08:55     Расчет сложного процента #9
Добрый день! Подскажите пожалуйста, осваиваю С++ по книге Дейтелов. Сегодня столкнулся с такой задачей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Расчет сложного процента
#include <cstdlib>  //функция управления процессом
#include <iostream> //функция ввода вывода
#include <iomanip>  //функция работы с форматированием вывода
#include <math.h>     //библиотека сложных математических операций
 
using namespace std;    //использование в программе команд библиотеки iostream
 
main()  //главная функция
{   //начало программы
    
    double amont, principal=1000.0, rate=0.05;   //задаем переменные
    
    setlocale(LC_ALL,"RUSSIAN");    //локаль параметров - вводи в программу русский язык
    cout <<"Год " <<setw(21) <<"Сумма депозита \n"; //вывод на экран
    
    for(int year=1; year<=10; year++)   //указываем условия цикла
        amont=principal*pow(1.0+rate, year);    //расчет депозита
        cout <<setw(3)<< year <<setiosflags(ios::fixed | ios::showpoint)
             <<setw(21)<<setprecision(2)<<amont<<endl;  //вывод на экран с форматированием
    system("pause");    //приостановка процесса программы
    return 0;   //указывает на успешное завершение программы
}   //конец программы
выдаются ошибки
In function 'int main()'::
name lookup of 'year' changed for ISO 'for' scoping [-fpermissive]
(if you use '-fpermissive' G++ will accept your code)
E:\MyDocuments\С++\31\Makefile.win [Build Error] [Objects/MingW/main.o] Error 1

Подскажите пожалуйста, что может быть не так? (Сорри что спрашиваю в этой теме - просто чтобы не плодить кучу одинаковых тем)
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
07.05.2015, 09:03     Расчет сложного процента #10
Цитата Сообщение от vallinor Посмотреть сообщение
что может быть не так?
а он тебе ясно пишет
Цитата Сообщение от vallinor Посмотреть сообщение
In function 'int main()'::
Цитата Сообщение от vallinor Посмотреть сообщение
main() *//главная функция
C++
1
int main()//!!!
vallinor
2 / 2 / 0
Регистрация: 20.04.2015
Сообщений: 19
07.05.2015, 10:22     Расчет сложного процента #11
Сменил на int main() - все равно ошибки те же.

Красным выделяется строка с этим кодом

C++
1
cout <<setw(3)<< year <<setiosflags(ios::fixed | ios::showpoint)
Gr1f0nn
82 / 81 / 42
Регистрация: 30.09.2012
Сообщений: 408
07.05.2015, 15:04     Расчет сложного процента #12
vallinor, в вашем варианте область видимости переменной year ограничивалась циклом for, поэтому при попытке вывести ее результат ниже, вам выдавалась ошибка.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Расчет сложного процента
#include <cstdlib>  //функция управления процессом
#include <iostream> //функция ввода вывода
#include <iomanip>  //функция работы с форматированием вывода
#include <math.h>     //библиотека сложных математических операций
 
using namespace std;    //использование в программе команд библиотеки iostream
 
int main()  //главная функция
{   //начало программы
 
    double amont, principal=1000.0, rate=0.05;   //задаем переменные
    int year = 1;  //<<<<<--------- !!!!!!!
 
    setlocale(LC_ALL,"RUSSIAN");    //локаль параметров - вводи в программу русский язык
    cout <<"Год " <<setw(21) <<"Сумма депозита \n"; //вывод на экран
 
    for(; year<=10; year++)   //указываем условия цикла
        amont=principal*pow(1.0+rate, year);    //расчет депозита
    cout <<setw(3)<< year <<setiosflags(ios::fixed | ios::showpoint)
        <<setw(21)<<setprecision(2)<<amont<<endl;  //вывод на экран с форматированием
    system("pause");    //приостановка процесса программы
    return 0;   //указывает на успешное завершение программы
}   //конец программы

Или выводите результат после каждой итерации:

C++
1
2
3
4
5
6
for(int year = 1; year<=10; year++)   //указываем условия цикла
{
        amont=principal*pow(1.0+rate, year);    //расчет депозита
    cout <<setw(3)<< year <<setiosflags(ios::fixed | ios::showpoint)
        <<setw(21)<<setprecision(2)<<amont<<endl;  //вывод на экран с форматированием
}
vallinor
2 / 2 / 0
Регистрация: 20.04.2015
Сообщений: 19
07.05.2015, 16:47     Расчет сложного процента #13
Большое спасибо. По вашему первому варианту выводил почему то 11 год и Депозит только а вот по второму варианту все прошло как надо.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
08.05.2015, 00:34     Расчет сложного процента #14
а не пробовал сам программы писать?
или по жизни
Цитата Сообщение от vallinor Посмотреть сообщение
Большое спасибо.
????
обучение есть осознание своих ошибок,а не поиск чужих
скажи по чесноку нашел ошибки у себя?
или скинул кодGr1f0nn, чтобы сдать преподу?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2015, 06:02     Расчет сложного процента
Еще ссылки по теме:

C++ Разработать алгоритм и программу для определения процента слов в тексте, начинающиеся с заданного символа
C++ Расчёт сложного процента
C++ Разработать алгоритм и программу для определения процента гласных символов в тексте!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vallinor
2 / 2 / 0
Регистрация: 20.04.2015
Сообщений: 19
08.05.2015, 06:02     Расчет сложного процента #15
ValeryS, эммм....я как бы на самостоятельном обучении - Самоучитель Дейтелов штудирую с недавнего времени. А у себя ошибку нашел - скобки блин не поставил для цикла for.
Yandex
Объявления
08.05.2015, 06:02     Расчет сложного процента
Ответ Создать тему
Опции темы

Текущее время: 23:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru