Vyacheslavovich1431
?>

Встречено '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; в чем проблема

Информатика

Ответы

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

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

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

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

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

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Встречено '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; в чем проблема
Ваше имя (никнейм)*
Email*
Комментарий*