Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Длинная арифметика

Автор: Anastacia Adesso 12.10.2006 13:26

Ой.. Я зашла в ФАК.. Нашла процедуру которая отнимает одно число от другого.. А что там за sdvig и с чем его едят не понимаю..
А что это?

procedure SubLongTwo(a,b:Plong;const sdvig:integer);
var i,j:integer;
begin
for i:=1 to b^[0] do
begin
dec(a^[i+sdvig],b^[i]);
j:=i;
while (a^[j+sdvig]<0) and (j<=a^[0]) do
begin
inc(a^[j+sdvig],_osn);
dec(a^[j+sdvig+1]);
inc(j);
end;
end;
i:=a^[0];
while (i>1) and (a^[i]=0) do dec(i);
a^[0]:=i;
end;
{a>=b*(_osn^sdvig); a<-- a-b*(_osn^sdvig) }


М
Не забываем пользовться тегами


Автор: volvo 12.10.2006 16:56

Anastacia Adesso, самую нижнюю строку внимательно читала (ту, которая закомментирована)?

{ a <-- a-b*(_osn^sdvig) }


Т.е., если тебе нужно, чтобы выполнилось A := A - B*1, то вызывай процедуру со значением sdvig = 0