19.12.2009, 22:22
общий
это ответ
Здравствуйте, Уразбаева Элина .
Немного подправил ваш код в части умножения в столбик. С удивлением узнал, что функция StrToInt не преобразует строки в числа если число больше maxint, поэтому преобразование тоже изменено.
Приложение:
Edit4.Text:='';
//Обнуляем массивы M1, M2, Mas
FillChar(M1,SizeOf(M1),0);
FillChar(M2,SizeOf(M2),0);
FillChar(Mas,SizeOf(Mas),0);
Edit2.Text:=Trim(Edit2.Text);
Edit3.Text:=Trim(Edit3.Text);
L1:=Length(Edit2.Text);
L2:=Length(Edit3.Text);
For i:= 1 to L1 do
begin
M1[L1-i+1]:= StrToInt(Edit2.Text[i]);
end;
For i:= 1 to L2 do
begin
M2[L2-i+1]:= StrToInt(Edit3.Text[i]);
end;
For i:=1 to N do
begin
For j:=1 to N do
begin
Mas[i,j+(i-1)]:= (M1[j] * M2[i]+Mas[i,j+(i-1)]) mod 10;
Mas[i,i+j]:= (M1[j] * M2[i]) div 10;
end;
end;
S:=0;
For k:=1 to 2*N do
begin
For i:=1 to N do
begin
S:=S+Mas[i,k];
end;
P[k]:= S mod 10;
S:= S div 10;
end;
For k:=1 to 2*N do
begin
Edit4.Text:=Edit4.Text+IntToStr(P[2*N-k+1]);
end;
end;
end.