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

Вклады, простые и сложные проценты (вопрос из учебника С. Прата) - C++

Восстановить пароль Регистрация
 
sunplant
0 / 0 / 0
Регистрация: 07.04.2010
Сообщений: 11
07.04.2010, 01:15     Вклады, простые и сложные проценты (вопрос из учебника С. Прата) #1
Изучаю книгу С. Прата. В главе 5 у него присутствует такая задача:
Дафна сделала вклад на сумму $100 под простые проценты, которые составляют 10%.
Итак, ежегодно ее вкладдаетдоход в сумме 10% от первоначального вклада, или $10:
проценты = 0.1 x исходный баланс
В то же время Клео сделала вклад на сумму $100 под сложные проценты, которые составляют 5%. Другими словами, 5% от текущего остатка, с учетом начисленных ранее процентов:
проценты = 0.05 x текущий баланс.
Доход Клео за первый год составит 5% от суммы вклада $100, что даст остаток $105. В следующем году ее доход в виде 5% от суммы $105 составит $5.25 и т.д. Напишите программу, которая определяет, сколько лет потребуется для того, чтобы сумма вклада Клео превысила сумму вклада Дафны, а затем отображает сумму обоих вкладов в этот момент.
Я задачу попробовал решитьтак:

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
#include<iostream>
using namespace std;
const int Arsize = 35;
int j=2;
int i=2;
int main()
{
double x[Arsize];
x[0] = 100.0;
x[1] = 105.0;
int y[Arsize];
y[0] = 100;
y[1] = 110;
while (x[i] < y[j])
{
x[i] = (x[i - 1] * 0.05) + x[i - 1]; 
y[j] = y[j-1] + 10; 
cout << "x " << i << "= " << x[i] << " \t";
cout << "y "<< j << "= " << y[j] << endl;
++i;
++j;
}
cout << "End" << endl;
return 0;
}
Только почему-то цикл не прерывается, когда x[i] становится больше y[j]!
Не подскажите, в чем проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
07.04.2010, 02:07     Вклады, простые и сложные проценты (вопрос из учебника С. Прата) #2
вот так сделай
C++
1
while (x[i-1] < y[j-1])
или используй цикл, который проверяет условие после выполнения тела цикла
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.04.2010, 05:52     Вклады, простые и сложные проценты (вопрос из учебника С. Прата) #3
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
#include <stdio.h>
#include <stdlib.h>
 
int main(void) /* ANSI C89 */
{
    double daf, cle;
    double dafper, cleper;
    long years;
    
    daf = 100.0;
    dafper = daf*0.1;
    
    cle = 100.0;
    cleper = cle*0.05;
    
    years = 0;
    while (daf >= cle) {
        daf += dafper;
        cle += cleper;
        cleper = cle*0.05;
        years++;
    }
    
    printf("Daf: %g ; Cle: %g ;" " ", daf, cle);
    printf("Years: %ld" "\n", years);
    
    return EXIT_SUCCESS;
}
Добавлено через 4 минуты
это сохраняет проценты для cle

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 <stdio.h>
#include <stdlib.h>
 
int main(void) /* ANSI C89 */
{
    double daf, cle;
    double dafper, cleper;
    long years;
    
    daf = 100.0;
    dafper = daf*0.1;
    
    cle = 100.0;
    cleper = 0.0;
    
    years = 0;
    while (daf >= cle) {
        cleper = cle*0.05;
 
        daf += dafper;
        cle += cleper;
        years++;
    }
    
    printf("Daf: %g ; Cle: %g ;" " ", daf, cle);
    printf("Years: %ld" "\n", years);
    
    return EXIT_SUCCESS;
}


Добавлено через 10 минут
там подколка, первые проценты появляются только после первого года
то есть, пока год не прошёл, проценты прибавлять нельзя
Zusul
1 / 1 / 0
Регистрация: 22.10.2012
Сообщений: 8
22.10.2012, 19:11     Вклады, простые и сложные проценты (вопрос из учебника С. Прата) #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
#include<iostream>
using namespace std;
const int iTYear = 100;
main()
{
    double iDafM;
    cout << "Enter the amount Dafin's money: ";
    cin >> iDafM;
    int iD;
    iD = iDafM;
    
    double iKlM;
    cout << "Enter the amount Kleo's money: ";
    cin >> iKlM;
    int i = 1;
    for(; i < iTYear, iDafM >= iKlM ; ++i)
    {
        cout << i << " Year(s):  ";
        iDafM = iD * 0.10 + iDafM;
        cout << "Dafin get " <<  iDafM;
        iKlM = iKlM * 0.05 + iKlM;
        cout << " Kleo get " << iKlM  << endl;
    }
 cout << "Ponadobitsy " << i << "year(s)";
 
 
    return 0;
}
Yandex
Объявления
22.10.2012, 19:11     Вклады, простые и сложные проценты (вопрос из учебника С. Прата)
Ответ Создать тему
Опции темы

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