Помощь - Поиск - Пользователи - Календарь
Полная версия: что получится в результате выполнения ф-ции?
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lizard
ответ 18, но у меня как не знающего паскаль 15

объясните почему
Altair
Итак, запустите эту прогу: (это то же самое только для лентяев, которые не могут запустить трасировщик)
Код
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 закрыл бы сразу, и правильно сделал бы, ПРАВИЛА РАЗДЕЛА для кого???????
-------------
В следующий раз тоже сразу закрою, без ответа!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.