Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
TYPE
Numbers=RECORD
a:ARRAY 1000 OF INTEGER;
N:INTEGER;
END;
........
PROCEDURE Summ(OUT res:Numbers;IN a,b:Numbers); (*Проверена*)
VAR
max,i,sum:INTEGER;
BEGIN (*Суммирование*)
IF a.N>b.N THEN
max:=a.N;
ELSE
max:=b.N;
END;
i:=0;
sum:=0;
WHILE i<=max DO
IF i<=a.N THEN
sum:=sum+a.a[i];
END;
IF i<=b.N THEN
sum:=sum+b.a[i];
END;
res.a[i]:=sum MOD 10;
sum:=sum DIV 10;
i:=i+1;
END;
IF sum>0 THEN
res.N:=max+1;
res.a[max+1]:=sum;
ELSE
res.N:=max;
END;
END Summ;
Кусок из написанной одним энтузиастом-программером реализации длинной арифметики (комментарии сохранены)
4 байта под каждую десятичную цифру. Много? Зато все понятно, как в школе ;)
шесть + семь = три, единица на ум пошла...
Дык. А в чем говнокод? В том, что человек писал понятный даже начинающему код? Так на паскале и иже с ними только такой код писать и надо - простой и понятный.
Use gmplib.org, Luke.