Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 129
#1

Задача с использованием цикла for

02.11.2012, 15:00. Просмотров 1030. Ответов 7
Метки нет (Все метки)

Добрый день!
Требуется совет, учу по книге Луфоре...
Есть задача:
7. Напишите программу, рассчитывающую сумму денег, которые вы получи-
те при вложении начальной суммы с фиксированной процентной ставкой
дохода через определенное количество лет. Пользователь должен вводить
с клавиатуры начальный вклад, число лет и процентную ставку. Приме-
ром результата работы программы может быть следующий:
Введите начальный вклад: 3000
Введите число лет: 10
Введите процентную ставку: 5.5
Через 10 лет вы получите 5124.43 доллара.
В конце первого года вы получите 3 000 + (3 000*0.055) = 3165 долларов.
В конце следующего года вы получите 3 165 + (3 165*0.055) = 3339.08 дол-
ларов. Подобные вычисления удобно производить с помощью цикла for.
вот моё так сказать решение:
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
//using namespace std;
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    double contrib;
    cout << "Enter the initial contribution: ";
    cin >> contrib;
    cout << endl;
 
    double period;
    cout << "Enter the number of years: ";
    cin >> period;
    cout << endl;
 
    double rate;
    cout << "Enter interest: ";
    cin >> rate;
    cout << endl;
 
    //double total;
    double sirate;
    sirate = rate / 100;
    for (int i = 1; i <= 10; ++i)
    {       
        contrib += (contrib * sirate);
 
        cout << "After 10 years? you get: " << contrib;
        cout << endl;
    }
 
    return 0;
}

И тут вопрос, как сделать вот это:
В конце первого года вы получите 3165 долларов.
В конце следующего года вы получите 3339.08
...
Через 10 лет вы получите 5124.43

Возможно ли это сделать прочитав циклы? Направьте на путь истинный ))
Или как вариант выводить через счетчик цикла, т.е.
C++ (Qt)
1
2
3
for (int i = 1; i <= 10; i++)
...
cout << "bla-bla-bla " << i << endl;
это предположение

Добавлено через 8 минут
прошу прощение, все это делается через if

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 15:00
Ответы с готовыми решениями:

Задача C++ с использованием цикла
Здравствуйте! Мне нужно по этому алгоритму написать программу на С++: алг...

Задача с использованием операторов цикла на с++
Ребят, помогите &quot;решите задачу тремя способами, используя операторы цикла do...

вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле цикла
вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с...

Программа с использованием цикла
Даны положительные числа A и B (A&gt; B). На отрезке длины A размещено максимально...

Распараллеливание цикла For с использованием OpenMP
Всем привет. Задался целью изучить OpenMP, что бы в дальнейшем уметь...

7
grsfan
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 10
02.11.2012, 15:00 #2
Ну а что хорошая концепция, в for цикле считаешь года вплоть до 10-го. А в теле цикла реализуй математику. Исходный вклад ты знаешь, процентную годовую ставку знаешь, ну и создай переменную в которую ты будешь записывать сумму накопленную за год (равную сумме процентов плюс сумму которую вкладчик имеет в начале каждого года).
0
Sashokk84
1 / 1 / 0
Регистрация: 02.11.2012
Сообщений: 7
02.11.2012, 15:02 #3
Если я правильно понял вопрос ,то думаю будет что-то типа этого
for (int i = 1; i <= 10; i++)
{
if( i = 3 )
cout << ....//через 3 года

if( i = 10 )
cout << ....//через 10 лет
}
0
Lana_levchuk
6 / 6 / 3
Регистрация: 21.10.2012
Сообщений: 26
02.11.2012, 15:18 #4
В условии требуется вывод только последней итоговой суммы, а не ежегодной. Если оставаться в рамках условия, то:

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
25
26
27
28
29
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL,"Russian");
    int n, vklad,i;
    float per, summ;
    do
    {
    cout<<"Введите сумму вклада: "<<endl;
    cin>>vklad;
    cout<<"Введите процентную ставку:" <<endl;
    cin>>per;
    cout<<"Введите количество лет: "<<endl;
    cin>>n;
    for (i=1; i<=n; i++)
        {
        summ=vklad*(per/100);
        summ=summ+vklad;
        vklad=summ;
        }
    cout<<"Итоговая сумма равна "<<summ<<" руб."<<endl;
    cout<<endl;
    }
    while (vklad!=0);
    return 0;
}
Добавлено через 2 минуты
Ну или так, если задаться целью выводить ежегодную:
C++
1
2
3
4
5
6
7
for (i=1; i<=n; i++)
        {
        summ=vklad*(per/100);
        summ=summ+vklad;
        vklad=summ;
        cout<<"Итоговая сумма за "<<i<<"лет равна: "<<summ<<endl;
        }
0
D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 129
02.11.2012, 15:53  [ТС] #5
всем спасибо, я сделал вот так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
 
//using namespace std;
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    double contrib;
    cout << "Enter the initial contribution: ";
    cin >> contrib;
    cout << endl;
 
    double period;
    cout << "Enter the number of years: ";
    cin >> period;
    cout << endl;
 
    double rate;
    cout << "Enter interest: ";
    cin >> rate;
    cout << endl;
 
    double sirate;
    sirate = rate / 100;
    for (int i = 1; i <= 10; ++i)
    {       
        contrib += (contrib * sirate);
 
        int count = i;
 
        if (count == 1)
        {
            cout << "v konce 1 goda vi poluchite: " << contrib << endl;
        }
        else if (count > 1 && count < period)
        {
            cout << "v konce sled goda, vi poluchite: " << contrib << endl;
        }
        if (count == period)
        {
            cout << "After " << period << " years, you get: " << contrib << endl;
        }
    }
    return 0;
}
черновик конечно

Добавлено через 13 минут
Цитата Сообщение от Sashokk84 Посмотреть сообщение
Если я правильно понял вопрос ,то думаю будет что-то типа этого
for (int i = 1; i <= 10; i++)
{
if( i = 3 )
cout << ....//через 3 года

if( i = 10 )
cout << ....//через 10 лет
}
у Вас присвоение идет
if( i = 3 )
if( i = 10 )

Добавлено через 6 минут
Цитата Сообщение от Lana_levchuk Посмотреть сообщение
В условии требуется вывод только последней итоговой суммы, а не ежегодной. Если оставаться в рамках условия, то:
Свет, я конечно не знаю, но исходя из этого:

В конце первого года вы получите 3165 долларов.
В конце следующего года вы получите 3339.08

Я вот и подумал, что надобно ежегодно расписать, хотя мой вариант чуток усложнил задачу, ну и не беда ))
0
Lana_levchuk
6 / 6 / 3
Регистрация: 21.10.2012
Сообщений: 26
02.11.2012, 15:57 #6
Цитата Сообщение от D_bl_M Посмотреть сообщение
Свет, я конечно не знаю, но исходя из этого:

В конце первого года вы получите 3165 долларов.
В конце следующего года вы получите 3339.08

Я вот и подумал, что надобно ежегодно расписать, хотя мой вариант чуток усложнил задачу, ну и не беда ))
Не ищешь легких путей))) Там много издержек перевода
0
D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 129
02.11.2012, 16:05  [ТС] #7
Цитата Сообщение от Lana_levchuk Посмотреть сообщение
Не ищешь легких путей))) Там много издержек перевода
Вообще не хотелось бы искать не легких путей ))) в итоге можно загрузнуть..
Издержки? В том то и дело, хотя где их нет
Вон лежит новая книга Страуструпа, там тоже не мед ))
0
Sashokk84
1 / 1 / 0
Регистрация: 02.11.2012
Сообщений: 7
03.11.2012, 12:45 #8
Цитата Сообщение от D_bl_M Посмотреть сообщение
Цитата Сообщение от Sashokk84 Посмотреть сообщение
Если я правильно понял вопрос ,то думаю будет что-то типа этого
for (int i = 1; i <= 10; i++)
{
if( i = 3 )
cout << ....//через 3 года
if( i = 10 )
cout << ....//через 10 лет
}
у Вас присвоение идет
if( i = 3 )
if( i = 10 )
Ну да, я ещё новичок, частенько путаю = и ==...
0
03.11.2012, 12:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 12:45

Найти факториал с использованием цикла for
Задача 5. (1-5.cpp, 15.dsp) *Написать программу вычисления факториала числа...

Программу с использованием цикла с постусловием
Помогите пожалуйста написать программу с этим циклом. Вычислить и напечатать...

Переписать код с использованием цикла while
здравствуйте, помогите мне пожалуйста переделать код, нужно что б было через...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru