Предмет: Информатика,
автор: Mariiaaa
Паскаль
procedure F(n: integer);
begin
if n <= 5 then
begin
F(n + 2);
writeln (n);
F(n + 3)
end
end
Чему равна сумма всех чисел, напечатанных на экране при выполнении
вызова F(l)? (И КАК)
Ответы
Автор ответа:
0
Ответ: 13.
А получается он вот так:
procedure F(n:integer);
begin
Writeln('Вызов F(',n,')');
if n <= 5 then begin
F(n + 2);
writeln('Процедура вывела ',n);
F(n + 3)
end
end;
begin
f(1)
end.
Результат работы программы:
Вызов F(1)
Вызов F(3)
Вызов F(5)
Вызов F(7)
Процедура вывела 5
Вызов F(8)
Процедура вывела 3
Вызов F(6)
Процедура вывела 1
Вызов F(4)
Вызов F(6)
Процедура вывела 4
Вызов F(7)
А получается он вот так:
procedure F(n:integer);
begin
Writeln('Вызов F(',n,')');
if n <= 5 then begin
F(n + 2);
writeln('Процедура вывела ',n);
F(n + 3)
end
end;
begin
f(1)
end.
Результат работы программы:
Вызов F(1)
Вызов F(3)
Вызов F(5)
Вызов F(7)
Процедура вывела 5
Вызов F(8)
Процедура вывела 3
Вызов F(6)
Процедура вывела 1
Вызов F(4)
Вызов F(6)
Процедура вывела 4
Вызов F(7)
Автор ответа:
0
Откуда от Вызов F(8)
Процедура вывела 3? а от Вызов F(4)
Вызов F(6)
Процедура вывела 4
Процедура вывела 3? а от Вызов F(4)
Вызов F(6)
Процедура вывела 4
Автор ответа:
0
Откуда? От рекурсии, конечно же!
Похожие вопросы
Предмет: Английский язык,
автор: Dorrin
Предмет: Математика,
автор: akhmetovaaymzhan01
Предмет: Математика,
автор: baishanovasanali11
Предмет: Математика,
автор: стрелец7