• Ниже на языке прогаммирования паскаль записаны две рекурсивные функции (процедуры): F и G. Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(20)?
    Procedure F(n: integer) ; forward;
    Procedure G(n: integer) ; forward;

    procedure F(n: integer) ;
    Begin
    Write ('*');
    If n > 10 then F(n-2) else G(n);
    End;

    Procedure G(n: integer) ;
    Begin
    Write ('**');
    If n > 1 then F(n-3);
    End;
    Обьясните пожалуйста, как это делать, если можете, то распишите пожалуйста подробно.

Ответы 4

  • У нас учительница сама не понимает, как это сделать, а я и подавно не могу понять
  • А почему программа считает F(7) если надо чтобы n было больше 10? Можете объяснить?
    • Автор:

      salazar
    • 5 лет назад
    • 0
  • Спасибо большое!!!!
  • Все нормальные люди делают это так:procedure F(n:integer); forward;procedure G(n:integer); forward;procedure F(n:integer);begin  Writeln('Вызов F(',n,') - *');  //Write('*');  If n>10 then F(n-2) else G(n);  Writeln('Завершение F(',n,')')end;procedure G(n: integer) ;begin  Writeln('Вызов G(',n,') - **');  //Write('**');  If n>1 then F(n-3);  Writeln('Завершение G(',n,')')end;begin  F(20)end.РезультатВызов F(20) - *Вызов F(18) - *Вызов F(16) - *Вызов F(14) - *Вызов F(12) - *Вызов F(10) - *Вызов G(10) - **Вызов F(7) - *Вызов G(7) - **Вызов F(4) - *Вызов G(4) - **Вызов F(1) - *Вызов G(1) - **Завершение G(1)Завершение F(1)Завершение G(4)Завершение F(4)Завершение G(7)Завершение F(7)Завершение G(10)Завершение F(10)Завершение F(12)Завершение F(14)Завершение F(16)Завершение F(18)Завершение F(20)Считаем звездочки, их 17. Осталось оформить ответ, сделав вид, что это не программная выдача, а "я такой умный, на бумажке расписал".А "ненормальные люди" и в самом деле делают это вручную, не понимая, что ручной разбор рекурсии такой длины - это глупость.
    • Автор:

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

Войти через Google

или

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

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

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