Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача про циклы. Рассчет долга по условию...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
lFOXl
В паскале силен на очень мелком уровне, требуют решить задачу, вот уже по всякому писал, хоть убей не могу правильно указать цикличность...

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

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

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.

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

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

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

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

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

Еще раз спасибо за помощь, наконец-то все по своим местам! good.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.