Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ что получится в результате выполнения ф-ции?

Автор: Lizard 6.04.2004 16:51

ответ 18, но у меня как не знающего паскаль 15

объясните почему


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Altair 6.04.2004 17:30

Итак, запустите эту прогу: (это то же самое только для лентяев, которые не могут запустить трасировщик)

Код
uses crt;

function F(X:integer):integer;
begin
Writeln('X====',x);
If X=1 then
begin
writeln('x=1 ->> f:=0 ');
f:=0
end else
if odd(x) then
begin
writeln('­Ґ зҐв­®Ґ -->> f:=f(3*x+1)+1');
f:=f(3*x+1)+1
end else
begin
writeln('зҐв­®Ґ f:=f(x div 2)+2');
f:=F(X div 2)+2
end;
end;

begin
clrscr;
writeln(F(26));
end.

тогда узнаете почему 18!
18 потому что в результате выполнения получаем 0 а потом складываем!
А если вы занимались когда нибудь ПРОЛОГОМ, то вот дерево вывода(присоед.)
-------------
Вам повезло, что я первый увидел вашу тему, AlaRic закрыл бы сразу, и правильно сделал бы, ПРАВИЛА РАЗДЕЛА для кого???????
-------------
В следующий раз тоже сразу закрою, без ответа!


Эскизы прикрепленных изображений
Прикрепленное изображение