IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Рост вклада в банке с процентами, Что не так в коде? Всё время получается число 426
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


С использованием оператора цикла с параметром For

В 1626 году индейцы продали остров Манхэттэн за K долларов. Если бы эти деньги были помещены в банк на текущий счёт и ежегодный прирост составлял p%, какова бы была стоимость капитала в 2011 году?

Проверять на числах: p:=6.5% K:=20

Мой код (что то тут не так)

var
i:integer;

p,k,z,s: real;
begin
writeln('Введите количество процентов');
read(p);
writeln('Введите сумму покупки острова');
read(k);
for i:=1 to 385 do
s:=k*(1+(p/100));
z:=s*k;
write(z);
end.


Сообщение отредактировано: Lapp -


--------------------
DesignFootball.Ru - Первый русскоязычный сайт о футбольной форме.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Потому что у вас ничего не накапливается вы 385 раз вычисляете одно и тоже число s и затем умножаете на одно и тоже число,в общем у вас одни константы,есть 2 варианта,вы для каждого года будете получать стоимость,либо для каждого года будете высчитывать процент.
Второе как то так:

for i:=1 to 385 do
s:=s*(1+p/100);


Изначально s:=1;
Кстати приоритет операции деления выше чем суммирования,так что внутренние скобки не обязательны.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(Krjuger @ 8.06.2011 23:01) *

Потому что у вас ничего не накапливается вы 385 раз вычисляете одно и тоже число s и затем умножаете на одно и тоже число,в общем у вас одни константы,есть 2 варианта,вы для каждого года будете получать стоимость,либо для каждого года будете высчитывать процент.
Второе как то так:

for i:=1 to 385 do
s:=s*(1+p/100);


Изначально s:=1;
Кстати приоритет операции деления выше чем суммирования,так что внутренние скобки не обязательны.


var
i:integer;
p,k,z,s: real;
begin
writeln('Ââåäèòå êîëè÷åñòâî ïðîöåíòîâ');
read(p);
writeln('Ââåäèòå ñóììó ïîêóïêè îñòðîâà');
read(k);
for i:=1 to 385 do
s:=s*(1+p/100);
z:=s*k;
write(z);
end.


Теперь всегда получается 0


--------------------
DesignFootball.Ru - Первый русскоязычный сайт о футбольной форме.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Я же сказал
Цитата
Изначально s:=1;

До начала цикла надо инициализировать это самое s

var
i:integer;
p,k,z,s: real;
begin
writeln('Ââåäèòå êîëè÷åñòâî ïðîöåíòîâ');
read(p);
writeln('Ââåäèòå ñóììó ïîêóïêè îñòðîâà');
read(k);
s:=1;
for i:=1 to 385 do
s:=s*(1+p/100);
z:=s*k;
write(z);
end.



Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(Krjuger @ 8.06.2011 23:43) *

Я же сказал

До начала цикла надо инициализировать это самое s

var
i:integer;
p,k,z,s: real;
begin
writeln('Ââåäèòå êîëè÷åñòâî ïðîöåíòîâ');
read(p);
writeln('Ââåäèòå ñóììó ïîêóïêè îñòðîâà');
read(k);
s:=1;
for i:=1 to 385 do
s:=s*(1+p/100);
z:=s*k;
write(z);
end.




Получилось 677062856159.56.
Спасибо. С меня +


--------------------
DesignFootball.Ru - Первый русскоязычный сайт о футбольной форме.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.11.2022 8:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name