profile
Опубликовано 5 лет назад по предмету Информатика от Mariiaaa

Паскаль
procedure F(n: integer);
begin
if n <= 5 then
begin
F(n + 2);
writeln (n);
F(n + 3)
end
end

Чему равна сумма всех чисел, напечатанных на экране при выполнении
вызова F(l)? (И КАК)

  1. Ответ
    Ответ дан Аккаунт удален
    Ответ: 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)


    1. Ответ
      Ответ дан Mariiaaa
      Откуда от Вызов F(8)
      Процедура вывела 3? а от Вызов F(4)
      Вызов F(6)
      Процедура вывела 4
    2. Ответ
      Ответ дан Аккаунт удален
      Откуда? От рекурсии, конечно же!