Встречено '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;
в чем проблема
Рассмотрим последовательность вызовов функций:
1. Функция F вызывает функцию G с аргументом n - 1.
2. Внутри функции G, она вызывает функцию F с аргументом n.
3. Внутри функции F, она вызывает функцию G с аргументом n - 2.
4. Внутри функции G, она вызывает функцию F с аргументом n - 1.
Таким образом, при каждом вызове одной из функций, они будут вызывать друг друга в бесконечном цикле, что приводит к ошибке в программе.
Для исправления этой проблемы, нужно переработать алгоритм исходной программы таким образом, чтобы вызовы функций были организованы без циклических зависимостей.