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

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

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

 
 Ответить  Открыть новую тему 
> Задача про циклы. Рассчет долга по условию...
lFOXl
сообщение 4.03.2010 20:43
Сообщение #1


Новичок
*

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

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


В паскале силен на очень мелком уровне, требуют решить задачу, вот уже по всякому писал, хоть убей не могу правильно указать цикличность...

Задача:
В понедельник Т одолжил 2р. Во вторник в два раза больше, и отдал половину долга.
Каждый следующий день Т занимал в два раза больше рублей чем в предидущий, отдавая из них целую часть от половины долга.
Сколько в целом займет Т через n недель, сколько будет должен, сколько вернет.

Помогите пожалуйста, уже не могу прямо... wacko.gif

Сообщение отредактировано: lFOXl - 4.03.2010 20:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 4.03.2010 22:17
Сообщение #2


mea culpa
*****

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

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


Может, так?

var i,dolg,sum,backsum,n:integer;
begin
dolg:=2;sum:=2;backsum:=0;
writeln('Vvedite kolichestvo nedel');
readln(n);
for i:=2 to n*7 do begin
inc(sum,dolg);
inc(dolg,dolg*2);
inc(backsum,dolg div 2);
dolg:=dolg div 2;
end;
writeln('Polniy zaim = ',sum);
writeln('Dolg = ',dolg);
writeln('Vozvracjeno = ',backsum);
readln;
end.



--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
lFOXl
сообщение 5.03.2010 12:24
Сообщение #3


Новичок
*

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

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


Хм, я примерно так же делал... но вот проблемма.
За одну неделю получаеться Занял 39, Должен 19, а отдал 54.

Он не мог отдать больше чем занял, да и если каждый день занимал в два раза больше чем в предидущий, то за неделю он должен занять больше, чем 39....
За пять недель пишет вообще что возвратил "-23463"...

У меня вот с этим морока, где-то не то что то с рассчетом, цикл неверно образован

Сообщение отредактировано: lFOXl - 5.03.2010 12:25
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unconnected
сообщение 5.03.2010 12:56
Сообщение #4


mea culpa
*****

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

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


Тогда так:

var i,dolg,sum,backsum,n:longint;
begin
dolg:=2;sum:=2;backsum:=0;
writeln('Vvedite kolichestvo nedel');
readln(n);
for i:=2 to n*7 do begin
dolg:=dolg*2;
inc(sum,dolg);
inc(backsum,dolg div 2);
end;
writeln('Polniy zaim = ',sum);
writeln('Dolg = ',dolg);
writeln('Vozvracjeno = ',backsum);
readln;
end.



А отрицательное число - это потому, что значения уже не помещались в Integer. Я исправил на LongInt, на 4х неделях отрабатывает.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
lFOXl
сообщение 5.03.2010 13:28
Сообщение #5


Новичок
*

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

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


Спасибо!!!
Я понял теперь ошибки.
Во первых я обьявлял исходное значение переменных уже в
 for i:=2 to n*7 do begin

Во вторых longint. В первый раз слышу, странно что дали такую задачу а про эту штуку не рассказали.
В третьих я вообще по другому выводил целую часть.

Еще раз спасибо за помощь, наконец-то все по своим местам! good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 22.06.2025 9:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"