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

Циклы - C++

Восстановить пароль Регистрация
 
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 09:44     Циклы #1
Добрый день!
Хочу попросить помощи в решении следующей задачи:
Условие 1:
Напишите программу, рассчитывающую сумму денег, которую вы получите при вложении начальной суммы с фиксированной процентной ставкой дохода через определенное количество лет. Пользователь должен вводить с клавиатуры начальный вклад, число лет и процентную ставку.
Пример: в конце первого года вы получите: 3000+(3000*0,055) = 3165 долларов.
В конце следующего года вы получите 3165+(3165*0,055) = 3339,08 и так далее.

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

Я смог решить задачу с первым условием, но никак не могу построить алгоритм для решения второго условия. Иду по следующему пути:
х - стартовая сумма
у - сумма накоплений на счете по прошествии i лет
r - процентная ставка
Предполагаю, что нужно создать цикл для следующей формулы:

у <= x + (x * (r/100), при i = 1, 2, 3 ... n

Подскажите, пожалуйста, решение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2011, 09:44     Циклы
Посмотрите здесь:

Циклы C++
Циклы C++
C++ Циклы (for, while, do while)
C++ Циклы do и while
C++ Циклы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
01.02.2011, 10:33     Циклы #2
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
    double sum,procent;
    int kol_let;
    std::cin >> sum;
    std::cin >> procent;
    std::cin >> kol_let;
 
    for(int i=0; i<kol_let;i++){
        sum = sum + ((sum/100)*procent);
    }
 
    std::cout << sum << std::endl;
 
    system("pause");
}
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 10:34  [ТС]     Циклы #3
Спасибо, но это решение первого условия. Со вторым проблема
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
01.02.2011, 10:36     Циклы #4
2.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    double sum,procent,zaprash;
    int kol_let=0;
    std::cin >> sum;
    std::cin >> procent;
    //std::cin >> kol_let;
    std::cin >> zaprash;
    do
    {
        sum = sum + ((sum/100)*procent);
        kol_let++;
    }
    while(sum < zaprash);
    std::cout << kol_let << std::endl;
 
    system("pause");
}
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 10:51  [ТС]     Циклы #5
Цитата Сообщение от NiRamz Посмотреть сообщение
2.
C++
1
2
3
4
5
6
do
{
sum = sum + ((sum/100)*procent);
kol_let++;
}
while(sum < zaprash);
Не работает цикл, пытался аналогично решить.
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
01.02.2011, 10:55     Циклы #6
почему не работает? точнее что конкретно в нем не работает то
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 11:04  [ТС]     Циклы #7
Цитата Сообщение от NiRamz Посмотреть сообщение
почему не работает? точнее что конкретно в нем не работает то
Вывод конечного результата. Запрос первоначальной суммы - ввод, запрос процента - ввод, запрос желаемой суммы - ввод. Перевод на новую строку и все.
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
01.02.2011, 11:23     Циклы #8
вот результат..
Миниатюры
Циклы  
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 11:34  [ТС]     Циклы #9
Цитата Сообщение от NiRamz Посмотреть сообщение
вот результат..
Подскажите, тогда, пожалуйста, в чем отличие:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    int sumMon, necesSum;
    float perRate;
    int yearQuan = 0;
    cout << "Insert your sum: ";
    cin >> sumMon;
    cout << "Insert rate: ";
    cin >> perRate;
    cout << "Insert necessary sum for you: ";
    cin >> necesSum;
    do
    {
        sumMon = sumMon + (sumMon / 100 * perRate);
        yearQuan++;
    } while(sumMon <= necesSum);
    cout << yearQuan;
    return 0;
}
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
01.02.2011, 11:41     Циклы #10
в условии цикла while
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 12:08  [ТС]     Циклы #11
Цитата Сообщение от NiRamz Посмотреть сообщение
в условии цикла while
знак "=" не играет значения.

Добавлено через 25 минут
Вот это код рабочий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    double sumMon, necesSum, perRate;
    int yearQuan = 0;
    cout << "Insert your sum: ";
    cin >> sumMon;
    cout << "Insert rate: ";
    cin >> perRate;
    cout << "Insert necessary sum for you: ";
    cin >> necesSum;
    do
    {
        sumMon = sumMon + (perRate / 100 * sumMon);
        yearQuan++;
    }
    while(sumMon < necesSum);
    cout << yearQuan;
    return 0;
}
Проблемы были:
1. В типе переменных.
2. В формуле пересчета суммы на процент.

Хотя не понял почему это является проблемами.
NiRamz
209 / 209 / 16
Регистрация: 26.12.2010
Сообщений: 691
01.02.2011, 12:28     Циклы #12
Цитата Сообщение от zabuka Посмотреть сообщение
знак "=" не играет значения
попробуйте мой вариант с "=" и без него. увидете что влияет.
Цитата Сообщение от zabuka Посмотреть сообщение
Вот это код рабочий:
опять же, из условия убрали "="))
zabuka
 Аватар для zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
01.02.2011, 13:13  [ТС]     Циклы #13
Цитата Сообщение от NiRamz Посмотреть сообщение
попробуйте мой вариант с "=" и без него. увидете что влияет.

опять же, из условия убрали "="))
Пробывал, результат тоже самый ))
и мой переписанный под Ваш алгоритм код и с "=" и без него работает. Компиляторы?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2011, 22:56     Циклы
Еще ссылки по теме:

Циклы C++
Циклы в С++ C++
Циклы while do.while C++

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

Или воспользуйтесь поиском по форуму:
AmiGOmen
 Аватар для AmiGOmen
1 / 1 / 0
Регистрация: 06.08.2011
Сообщений: 8
22.08.2011, 22:56     Циклы #14
Цитата Сообщение от zabuka Посмотреть сообщение
знак "=" не играет значения.

Добавлено через 25 минут
Вот это код рабочий:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    double sumMon, necesSum, perRate;
    int yearQuan = 0;
    cout << "Insert your sum: ";
    cin >> sumMon;
    cout << "Insert rate: ";
    cin >> perRate;
    cout << "Insert necessary sum for you: ";
    cin >> necesSum;
    do
    {
        sumMon = sumMon + (perRate / 100 * sumMon);
        yearQuan++;
    }
    while(sumMon < necesSum);
    cout << yearQuan;
    return 0;
}
Проблемы были:
1. В типе переменных.
2. В формуле пересчета суммы на процент.

Хотя не понял почему это является проблемами.
Тоже столкнулся, смена типа переменных помогла, а я мучился все думал в чем проблема)))
Yandex
Объявления
22.08.2011, 22:56     Циклы
Ответ Создать тему
Опции темы

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