• помогите разобрать программу пожалуйста

    Запишите подряд без пробелов и разделителей вес числа, которые будут напечатаны при выполнении вызова F9
    procedure F(n: integer);
    begin
    if n>0 then
    begin
    write (n);
    F(n-2);
    F(n div 4);
    end
    end;

Ответы 1

  • procedure F(n: integer);begin  if n>0 then begin    Write (n);    F(n-2);    F(n div 4);    endend;begin  F(9);end.На выходе будет 97531112Если нужна трассировка, её можно сделать примерно так:procedure F(n: integer);begin  Writeln('Вход');  if n>0 then begin    Writeln ('В выходную строку: ',n);    Writeln('Вызов F(n-2)');    F(n-2);    Writeln('Вызов F(n div 4)');    F(n div 4);    end;    Writeln('Выход')end;begin  F(9);end.Результат трассировки:ВходВ выходную строку: 9Вызов F(n-2)ВходВ выходную строку: 7Вызов F(n-2)ВходВ выходную строку: 5Вызов F(n-2)ВходВ выходную строку: 3Вызов F(n-2)ВходВ выходную строку: 1Вызов F(n-2)ВходВыходВызов F(n div 4)ВходВыходВыходВызов F(n div 4)ВходВыходВыходВызов F(n div 4)ВходВ выходную строку: 1Вызов F(n-2)ВходВыходВызов F(n div 4)ВходВыходВыходВыходВызов F(n div 4)ВходВ выходную строку: 1Вызов F(n-2)ВходВыходВызов F(n div 4)ВходВыходВыходВыходВызов F(n div 4)ВходВ выходную строку: 2Вызов F(n-2)ВходВыходВызов F(n div 4)ВходВыходВыходВыход
    • Автор:

      liberty
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years