Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2020, 12:53   #1
Eugeny19841
Новичок
Джуниор
 
Регистрация: 28.09.2019
Сообщений: 3
По умолчанию вопрос по работе программы с рекурсией

Добрый день! Подскажите, пожалуйста, почему не работает программа. Пишет, что неизвестное имя G. Хотя функция прописана?
procedure F(n: integer);
begin
if n mod 5=0 then G(n-50)
else F(n-3);
end;
procedure G(n: integer);
begin
writeln('*');
if n > 0 then F(n-1)
end;
begin
F(51);
end.
Eugeny19841 вне форума Ответить с цитированием
Старый 12.01.2020, 13:46   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Потому что видна она только ниже объявления, а вы пытаетесь к ней обратиться выше. В вашем случае это взаимная рекурсия (функции вызывают друг друга). Для того, чтобы обратиться к процедуре G, ее заголовок надо описать выше процедуры F:
Код:
procedure G(n: integer); Forward;
Директива Forward позволяет описать заголовок подпрограммы до реализации, сделав ее тем самым видимой ниже этого описания.
Arigato вне форума Ответить с цитированием
Старый 12.01.2020, 13:55   #3
Eugeny19841
Новичок
Джуниор
 
Регистрация: 28.09.2019
Сообщений: 3
По умолчанию

Cпасибо, благодарю!
Eugeny19841 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по работе с потоками donich.aleksei Общие вопросы Delphi 6 14.09.2017 20:08
Вопрос о работе Questionier Свободное общение 15 19.01.2015 07:17
СИ, вопрос по работе цикла... Immoralist Помощь студентам 10 25.04.2012 16:06
Вопрос по работе с Qt CarmaC Общие вопросы C/C++ 3 16.07.2011 13:52
Объясните алгоритм программы с рекурсией на паскале Lostsage Помощь студентам 4 20.01.2009 20:10