Контрольная работа: Программирование на Турбо Паскале
else if not(i=n) and (j=m)
then begin{рекурсивнаяветвь}
Writeln('│','Вход ',k:7,'│',s:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');
tsum:=sum1(n,m,i+1,1,s+a[i,j],k+1,a);
sum1:=tsum;
Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')
end {рекурсивнаяветвь}
else begin{рекурсивнаяветвь}
Writeln('│','Вход ',k:7,'│',s:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');
tsum:=sum1(n,m,i,j+1,s+a[i,j],k+1,a);
sum1:=tsum;
Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')
end; {рекурсивная ветвь}
end;{восходящая рекурсия}
function sum2(n,m,i,j,k : integer; a : matrix):integer;{нисходящаярекурсия}
var
tsum :integer;
begin
if (i=n) and (j=m)
then begin {терминальнаяветвь}
Writeln('│','Терм. ветвь':12,'│',a[i,j]:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');
sum2:=a[i,j];
end {терминальнаяветвь}
else if not(i=n) and (j=m)
then begin{рекурсивнаяветвь}
Writeln('│','Вход ',k:7,'│',0:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');
tsum:=sum2(n,m,i+1,1,k+1,a)+a[i,j];
sum2:=tsum;
Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')