В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
dashok270307
dashok270307
20.05.2022 18:09 •  Информатика

Встречено 'function', а ожидался оператор

function F(n: integer): integer;
begin
if n > 1 then
F := F(n - 1) + G(n - 1)
else
F := 2*n;
end;
function G(n: integer): integer;
begin
if n > 1 then
G := G(n - 1) + F(n)
else
G := n - 2;
end;
в чем проблема

Ответ:
GlennRee
GlennRee
28.01.2024 01:19
Проблема заключается в том, что функция F в своем теле вызывает функцию G, а функция G в своем теле вызывает функцию F. Это приводит к циклическому вызову функций, что недопустимо в данном контексте.

Рассмотрим последовательность вызовов функций:

1. Функция F вызывает функцию G с аргументом n - 1.
2. Внутри функции G, она вызывает функцию F с аргументом n.
3. Внутри функции F, она вызывает функцию G с аргументом n - 2.
4. Внутри функции G, она вызывает функцию F с аргументом n - 1.

Таким образом, при каждом вызове одной из функций, они будут вызывать друг друга в бесконечном цикле, что приводит к ошибке в программе.

Для исправления этой проблемы, нужно переработать алгоритм исходной программы таким образом, чтобы вызовы функций были организованы без циклических зависимостей.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?