Function F(n: integer): integer; begin if n>2 then F:=F(n-1)+G(n-2); else F:=n+1; end;...

0 голосов
475 просмотров

Function F(n: integer): integer;
begin
if n>2 then
F:=F(n-1)+G(n-2);
else
F:=n+1;
end;

function G(n: integer): integer;
begin
if n>2 then
G:=G(n-1)+F(n-2);
else
G:=n;
end;

Чему будет равно значение, вы­чис­лен­ное при вы­пол­не­нии вы­зо­ва G(7)?


Информатика (56 баллов) | 475 просмотров
Дан 1 ответ
0 голосов

Чтобы заработал этот код надо добавить первой строкой:
function G(n:integer):integer;forward;
Так как в функции F присутствует вызов функции G, которая описана далее в программе.


function G(n: integer): integer; forward;
function F(n: integer): integer;
begin
  if n > 2 then
    F := F(n - 1) + G(n - 2)
  else
    F := 1;
end;

function G(n: integer): integer;
begin
  if n > 2 then
    G := G(n - 1) + F(n - 2)
  else
    G := 1;
end;

begin
  writeln(F(7));
end.

Ответ: 13

(166 баллов)