uses crt;
var
s,s1:string;
a:array[1..300]of integer;
x,y,z,buf,code,i,k:integer;
begin
readln(s,s1);
For i:=length(s) downto 1 do
begin
val(s[i],x,code);
val(s1[length(s1)-k],y,code);
inc(k);
z:=x+y;
if z>=10 then
begin
buf:=z div 10;
a[i-1]:=buf;
a[i]:=a[i]+(z mod 10);
end else begin a[i]:=buf+z;buf:=0; end;
end;
For i:=1 to length(s) do
write(a[i]);
end.
Вариант 2
uses crt;
var a,b,c:array[1..255] of byte;
i,k,n:byte;
begin
clrscr;
randomize;
writeln('n ');
readln(n);
for i:=1 to n do
begin
a[i]:=random(10);
b[i]:=random(10);
end;
for i:=1 to n do
write(a[i],' ');
writeln;
writeln('+');
for i:=1 to n do
write(b[i],' ');
for i:=n+1 downto 2 do
begin
c[i]:=c[i]+(a[i-1]+b[i-1]) mod 10;
c[i-1]:=(a[i-1]+b[i-1]) div 10;
end;
writeln;
writeln('=');
if c[1]<>0 then write(c[1],' ');
for i:=2 to n+1 do
write(c[i],' ');
readln;
end.