Оформление процедуры для сложения - Pascal ABC

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

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

Даются 2 числа в типе char. Нужно посчитать их сумму. Программа написана и работает исправно. При попытке записать программу( а конекретно сложение )через процедуру, программа не работает. ввод чисел(ввод работает):
само сложение(дойдя до выполнения процедуры сложения программа дальше не идет):
что неправильно?Как оформить?

Решение задачи: «Оформление процедуры для сложения»

textual
Листинг программы
const nmax=100;
type massiv=array[1..nmax+1] of char;
//ввод числа
procedure chislo(var a:massiv;var n:integer;k:integer);
var i:integer;
begin
repeat
write('Введите количество цифр ',k,' числа от 1 до 100 n=');
readln(n);
until n in [1..100];
writeln(k,' число');
for i:=1 to n do
 begin
  if i=1 then a[i]:=chr(1+random(9)+ord('0'))
  else a[i]:=chr(random(10)+ord('0'));
  write(a[i]);
 end;
writeln;
end;
//приведение чисел к одному размеру
procedure norma(var a,b:massiv;n1,n2:integer;var n:integer);
var i,j:integer;
begin
if n1>n2 then
 begin
  n:=n1;
  for i:=1 to n1-n2 do
   begin
    for j:=n downto 2 do
    b[j]:=b[j-1];
    b[1]:='0';
   end;
 end
else if n2>n1 then
 begin
  n:=n2;
  for i:=1 to n2-n1 do
   begin
    for j:=n downto 2 do
    a[j]:=a[j-1];
    a[1]:='0';
   end;
 end;
end;
//сложение
procedure slog(a,b:massiv; var c:massiv; var n:integer);
var x,y,s,i:integer;
begin
i:=n;
s:=0;
while i>=1 do
 begin
  x := ord(a[i]) - ord('0');
  y := ord(b[i]) - ord('0');
  c[i]:=chr(((x+y+s)mod 10)+ord('0'));
  s:=(x+y+s) div 10;
  dec(i);
 end;
if s<>0 then
 begin
  inc(n);
  for i:=n downto 2 do
  c[i]:=c[i-1];
  c[1]:=chr(s+ord('0'));
 end;
writeln('Сумма');
for i:=1 to n do
write (c[i]);
end;
var a,b,c:massiv;
    n1,n2,n:integer;
begin
randomize;
chislo(a,n1,1);
chislo(b,n2,2);
norma(a,b,n1,n2,n);
slog(a,b,c,n);
end.

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

  1. Ввод числа - процедура chislo.
  2. Нормализация чисел - процедура norma.
  3. Сложение - процедура slog.
  4. Объявлены константы и типы данных.
  5. Создание и инициализация массивов a, b, c.
  6. Вызов процедур для ввода чисел и их нормализации.
  7. Вызов процедуры slog для сложения чисел.
  8. Вывод результата сложения.

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


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

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

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