Выполнение арифметических операций с многоразрядными числами- Pascal(Паскаль)

uses crt;
var a,b,c:array[byte] of byte;
    na,nb,i,j,n,p:byte;
begin
clrscr;
randomize;
write('Kolichestvo znakov  chisla A na=');
readln(na);
write('Kolichestvo znakov chisla B nb=');
readln(nb);
writeln('Chislo A:');
a[1]:=random(9)+1;
for i:=2 to na do
a[i]:=random(10);
for i:=1 to na do
write(a[i]);
writeln;
writeln('Chislo B:');
b[1]:=random(9)+1;
for i:=2 to nb do
b[i]:=random(10);
for i:=1 to nb do
write(b[i]);
writeln;
if na>nb then
  begin
    n:=na;
    for i:=1 to na-nb do
      begin
        nb:=nb+1;
        for j:=nb downto 2 do
        b[j]:=b[j-1];
        b[1]:=0;
      end;
   end
else if nb>na then
   begin
     n:=nb;
     for i:=1 to nb-na do
       begin
         na:=na+1;
         for j:=na downto 2 do
         a[j]:=a[j-1];
         a[1]:=0;
       end;
    end
else if nb=na then n:=na;
p:=0;
for i:=n downto 1 do
  begin
   c[i]:=a[i]+b[i]+p;
   if (c[i]>9)and(i>1) then
      begin
       c[i]:=c[i] mod 10;
       p:=1;
      end
    else p:=0;
  end;
if c[1]>9 then
  begin
    c[1]:=c[1] mod 10;
    n:=n+1;
    for j:=n downto 2 do
    c[j]:=c[j-1];
    c[1]:=1;
  end;
writeln('Chislo C:');
for i:=1 to n do
write(c[i]);
readln
end.

Leave a Comment

− 3 = 3