Консультация № 188769
02.02.2016, 20:33
0.00 руб.
0 5 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Ниже записаны две рекурсивные
функции: F и G

Паскаль
function F(n: integer): integer;
begin
if n > 2 then
F := F(n - 1) + G(n - 2)
else
F := n;
end;
function G(n: integer): integer;
begin
if n > 2 then
G := G(n - 1) + F(n - 2)
else
G := n+1;
end;

Чему будет равно значение, вычисленное алгоритмом при выполнении вызова
F(6)?

Обсуждение

давно
Мастер-Эксперт
17387
18345
02.02.2016, 20:59
общий
Я сомневаюсь, что такая программа будет работать. Ведь внутри функции F вызывается не определённая выше функция G. Но я далёк от программирования, поэтому моё мнение факультативно.
Об авторе:
Facta loquuntur.
давно
Посетитель
7438
7205
02.02.2016, 22:04
общий
это ответ
Здравствуйте, Посетитель - 399097!
Вызов указанных рекурсивных функций даст в итоге F(6) = 17
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
02.02.2016, 22:05
общий
Адресаты:
Это рекурсия, мил человек
И прекрасно работает...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Мастер-Эксперт
17387
18345
02.02.2016, 22:11
общий
02.02.2016, 22:11
Адресаты:
Я ведь написал:
Цитата: Гордиенко Андрей Владимирович
Но я далёк от программирования, поэтому моё мнение факультативно.

В TurboPascal7, кстати, сообщение о соответствующей ошибке появилось. Специально проверил, чтобы развеять собственные сомнения. Так что пока остаюсь при своём мнении - мне, дилетанту, позволительно.
Об авторе:
Facta loquuntur.
давно
Старший Модератор
312929
1973
03.02.2016, 04:06
общий
Адресаты:
Цитата: Гордиенко Андрей Владимирович
В TurboPascal7, кстати, сообщение о соответствующей ошибке появилось

В вопросе, судя по всему, приведён только фрагмент программы. Выше в ней наверняка есть строчка с предварительным описанием функции G:
[code lang=pascal]function G; forward;[/code]
при наличии которой ошибки не будет.
Форма ответа