Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 129
#1

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

02.11.2012, 15:00. Просмотров 1003. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задача с использованием цикла for (C++):

Задача C++ с использованием цикла - C++
Здравствуйте! Мне нужно по этому алгоритму написать программу на С++: алг массив (арг цел i, k, арг вещ таб X, рез вещ a) | ...

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

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

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

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

Программу с использованием цикла с постусловием - C++
Помогите пожалуйста написать программу с этим циклом. Вычислить и напечатать таблицу значений функции Z=1/(sqrt(1-x^2)^3) для 0&lt;=x&lt;=2...

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 / 0
Регистрация: 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 / 0
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 12:45
Привет! Вот еще темы с ответами:

Переписать код с использованием цикла while - C++
здравствуйте, помогите мне пожалуйста переделать код, нужно что б было через while\ #include &lt;iostream&gt; using namespace std; ...

Составить и отладить программу с использованием цикла for - C++
Дано число а (1 &lt; a &lt; 1,5). Среди чисел 1+1/2, 1+1/3, … найти первое, меньшее а.

Составить и отладить программу с использованием цикла for - C++
Объясните пожалуйста, не понимаю этого вообще ни как. Дано n вещественных чисел. Заменить те из них, у которых остаток от деления на m...

Составление программы с с использованием оператору цикла - C++
Сколько членов последовательности 1/2,2/3,3/4,4/5... надо суммировать, чтобы сумма превысила данное значение S&gt; 0?Составление программы...


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

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

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