Даны два длинных целых числа (256+) требуется сложить эти числа - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Даны два длинных целых числа (256+ символов) требуется сложить эти числа,и подсчитать что получилось

Решение задачи: «Даны два длинных целых числа (256+) требуется сложить эти числа»

textual
Листинг программы
var a,b,c:array[1..10000] of byte;
    na,nb,i,j,n,p:integer;
begin
randomize;
write('Количество знаков числа A na=');
readln(na);
write('Количество знаков числа B nb=');
readln(nb);
writeln('Число 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('Число 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('Число C:');
for i:=1 to n do
write(c[i]);
end.

Объяснение кода листинга программы

  1. Создаются две переменные типа array[1..10000] of byte: a и b.
  2. Задаются две переменные типа integer: na и nb.
  3. Числа a и b заполняются случайными значениями от 0 до 9.
  4. Если количество знаков числа A (na) больше количества знаков числа B (nb), то:
    • увеличивается значение переменной n до na.
    • для каждого i от 1 до na-nb: значение b[i] обновляется как b[i-1].
    • значение b[1] устанавливается в 0.
  5. Если количество знаков числа B (nb) больше количества знаков числа A (na), то:
    • увеличивается значение переменной n до nb.
    • для каждого i от 1 до nb-na: значение a[i] обновляется как a[i-1].
    • значение a[1] устанавливается в 0.
  6. Если количество знаков числа B (nb) равно количеству знаков числа A (na), то:
    • увеличивается значение переменной n до nb.
    • для каждого i от 1 до nb: значение a[i] обновляется как a[i-1].
    • значение a[1] устанавливается в 0.
  7. В цикле суммируются числа a[i], b[i] и p для каждого i от 1 до n.
  8. Если сумма a[i], b[i] и p для i=1 больше 9, то:
    • число a[i] приводится к десятичной форме с помощью операции mod 10.
    • значение p устанавливается в 1.
    • увеличивается значение переменной n на 1.
    • для каждого j от n до 2: значение c[j] обновляется как c[j-1].
    • значение c[1] устанавливается в 1.
  9. Выводится число c[1].
  10. Если значение c[1] больше 9, то:
    • число c[1] приводится к десятичной форме с помощью операции mod 10.
    • увеличивается значение переменной n на 1.
    • для каждого j от n до 2: значение c[j] обновляется как c[j-1].
    • значение c[1] устанавливается в 1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы