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

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


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

Михальов Володимир (StarRover) 2013-11-18 10:41:59
{MultiLong}
Const
Nmax=2000;
Type
Digit=0..9;
Tlong=Array[1..Nmax] of Digit;
var
a,b,c:Tlong;
s:string;
logic:boolean;
Procedure ReadLong(s:string; var A:Tlong; var OK:boolean);
var
i:integer;
begin
FillChar(A,SizeOf(A),0);
i:=Length(S);
OK:=True;
while (i>=1)and OK do begin
if s[i] in ['0'..'9']
then A[Length(S)-i+1]:=Ord(s[i])-48
else OK:=False;
i:=i-1;
end;
end;
Function LengthLong(A:TLong):integer;
var
i:integer;
begin
i:=Nmax;
while (i>1)and(A[i]=0) do i:=i-1;
LengthLong:=i;
end;
Procedure Mult(A,B:Tlong;var C:Tlong);
var
i,j:integer;
p:Digit;
t:0..99;
begin
FillChar(C,SizeOf(C),0);
for i:=1 to LengthLong(A) do begin
p:=0;
for j:=1 to LengthLong(B) do begin
t:=A[i]*B[j]+p+C[i+j-1];
C[i+j-1]:=t mod 10;
p:=t div 10;
end;
C[i+j]:=p;
end;
end;
Procedure WriteLong(A:Tlong);
var
i:integer;
begin
for i:=LengthLong(A) downto 1 do Write(A[i]);
WriteLn;
end;
begin
repeat
ReadLn(s);
ReadLong(s,a,logic);
until logic;
repeat
ReadLn(s);
ReadLong(s,b,logic);
until logic;
Mult(a,b,c);
WriteLong(c);
end.

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

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

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