Отримання знань

дистанційна підтримка освіти школярів


Тут ви можете виконати завдання чи задати питання по змiсту цього уроку.

Михальов Володимир (StarRover) 2013-11-17 19:35:04
{SumLong}
Const
MaxDig=1000;
Osn=10000;
Type
Tlong=array[0..MaxDig] of integer;
var
a,b,c:Tlong;
procedure ReadLong(var A:Tlong);
var
ch:char;
i,k:integer;
begin
FillChar(A,SizeOf(A),0);
Read(ch);
While Not(ch in ['0'..'9']) do Read(ch);
While ch in ['0'..'9'] do begin
for i:=A[0] downto 1 do begin
A[i+1]:=A[i+1]+LongInt(A[i]*10) Div Osn;
A[i]:=LongInt(A[i]*10) Mod Osn;
end;
A[1]:=A[1]+Ord(ch)-Ord('0');
if A[A[0]+1]>0 then Inc(A[0]);
Read(ch);
end;
end;
procedure WriteLong(Const A:Tlong);
var
ls,s:string;
i:integer;
begin
Str(Osn Div 10, Ls);
Write(A[A[0]]);
for i:=A[0]-1 downto 1 do begin
Str(A[i],s);
while Length(s) Write(s);
end;
WriteLn;
end;
procedure SumLongTwo(A,B:Tlong; var c:Tlong);
var
i,k:integer;
begin
FillChar(C,SizeOf(C),0);
if A[0]>B[0] then k:=A[0] else k:=B[0];
for i:=1 to k do begin
C[i+1]:=(C[i]+B[i]+A[i]) div Osn;
C[i]:=(C[i]+B[i]+A[i]) mod Osn;
end;
if C[k+1]=0 then C[0]:=k else C[0]:=k+1;
end;
begin
Assign(Input,'input.txt');
Reset(Input);
ReadLong(a); ReadLong(b);
Close(Input);
SumLongTwo(a,b,c);
Assign(Output,'output.txt');
Rewrite(Output);
WriteLong(c);
Close(Output);
end.
Михальов Володимир (StarRover) 2013-11-17 19:39:31
Помилка в стрічці
procedure SumLongTwo(A,B:Nlong; var c:Tlong);
Потрібно:
procedure SumLongTwo(A,B:Tlong; var c:Tlong);

Повернутися до уроку

Повернутися до перелiку уроків курсу

В системі: гості - (1); користувачі - (0)