Вопрос по информатике:
Ниже на языке прогаммирования паскаль записаны две рекурсивные функции (процедуры): 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;
Обьясните пожалуйста, как это делать, если можете, то распишите пожалуйста подробно.
- 04.09.2018 23:46
- Информатика
- remove_red_eye 18655
- thumb_up 15
Ответы и объяснения 1
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. Осталось оформить ответ, сделав вид, что это не программная выдача, а "я такой умный, на бумажке расписал".
А "ненормальные люди" и в самом деле делают это вручную, не понимая, что ручной разбор рекурсии такой длины - это глупость.
- 05.09.2018 07:45
- thumb_up 35
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.