отдельно каждое действие из этой процедуры(умножение на число, умножение на степень 10) работает..а вместе никак..
код:
Код
procedure TForm1.Button11Click(Sender: TObject);
var
k,j,n,l,i:integer;
rezyltat,chislo1,chislo2:string; massiv1,massiv2,massiv3,massiv4:array[1..100] of integer;
max,dlina1,dlina2,ostatok:integer;
begin
chislo1:=edit2.text;
chislo2:=edit3.Text;
ostatok:=0;
dlina1:=length(chislo1);
dlina2:=length(chislo2);
max:=dlina1+dlina2;
for i:=1 to max do massiv1[i]:=0;
for i:=1 to max do massiv2[i]:=0;
for i:=1 to max do massiv3[i]:=0;
for i:=1 to max do massiv4[i]:=0;
for i:=dlina1 downto 1 do
massiv1[max-dlina1+i]:=strtoint(chislo1[i]);
for i:=dlina2 downto 1 do
massiv2[max-dlina2+i]:=strtoint(chislo2[i]);
for i:=max downto max-dlina1 do
begin
for j:=max downto 1 do
begin
massiv3[j]:=(massiv1[j]*massiv2[i]+ostatok) mod 10;
ostatok:=(massiv1[j]*massiv2[i]+ostatok) div 10;
end;
for j:=1 to i-1 do begin
ostatok:=massiv3[1];
for k:=1 to max-1 do
massiv3[k]:=massiv3[k+1];
massiv3[max]:=ostatok;
end;
for l:=max downto 1 do
begin
massiv4[l]:=(massiv4[l]+massiv3[l]+ostatok) mod 10;
ostatok:=(massiv4[l]+massiv3[l]+ostatok) div 10;
end;
end;
for i:=1 to max do
insert(inttostr(massiv4[i]),rezyltat,i);
if rezyltat[1]='0' then delete(rezyltat,1,1);
label5.Caption:=rezyltat;
end;
var
k,j,n,l,i:integer;
rezyltat,chislo1,chislo2:string; massiv1,massiv2,massiv3,massiv4:array[1..100] of integer;
max,dlina1,dlina2,ostatok:integer;
begin
chislo1:=edit2.text;
chislo2:=edit3.Text;
ostatok:=0;
dlina1:=length(chislo1);
dlina2:=length(chislo2);
max:=dlina1+dlina2;
for i:=1 to max do massiv1[i]:=0;
for i:=1 to max do massiv2[i]:=0;
for i:=1 to max do massiv3[i]:=0;
for i:=1 to max do massiv4[i]:=0;
for i:=dlina1 downto 1 do
massiv1[max-dlina1+i]:=strtoint(chislo1[i]);
for i:=dlina2 downto 1 do
massiv2[max-dlina2+i]:=strtoint(chislo2[i]);
for i:=max downto max-dlina1 do
begin
for j:=max downto 1 do
begin
massiv3[j]:=(massiv1[j]*massiv2[i]+ostatok) mod 10;
ostatok:=(massiv1[j]*massiv2[i]+ostatok) div 10;
end;
for j:=1 to i-1 do begin
ostatok:=massiv3[1];
for k:=1 to max-1 do
massiv3[k]:=massiv3[k+1];
massiv3[max]:=ostatok;
end;
for l:=max downto 1 do
begin
massiv4[l]:=(massiv4[l]+massiv3[l]+ostatok) mod 10;
ostatok:=(massiv4[l]+massiv3[l]+ostatok) div 10;
end;
end;
for i:=1 to max do
insert(inttostr(massiv4[i]),rezyltat,i);
if rezyltat[1]='0' then delete(rezyltat,1,1);
label5.Caption:=rezyltat;
end;
Сообщение отредактировано: volvo -