Дошёл до такого вот момента
Uses Crt;
Var x,b,z,l,c,r,d,i,u,um:Longint;
k:byte; s:string;
Begin
ClrScr;
{------------------------------------------------------}
TextColor(white);
GotoXY(15,1); WriteLn('Izvlechenia korna kvadratnogo');
WriteLn('Vvedite chislo');
WriteLn(' ЪДДДДДДДД');
Write(' \і'); ReadLn(x);
GotoXY(15,4);Write('=');
{------------------------------------------------------}
for k:=2 to 5 do
begin
GotoXY(6,3*k);Write('ДДДДДДДДДДД');
end;
{------------------------------------------------------}
str(x,s);
l:=round(length(s)/2)-1;
b:=x; z:=1; r:=0;
{------------------------------------------------------}
while b>=100 do
begin
b:=b div 100;
z:=z*100
end;
{------------------------------------------------------}
c:=9;
while c*c>b do c:=c-1;
r:=r*10+c;
d:=c*c;
x:=x-d*z; {x=3654321}
ReadKey; GotoXY(8,5); Write(d);
ReadKey; GotoXY(16,4); Write©;
{------------------------------------------------------}
l:=l-1; {l=2}
z:=z div 100; {z=10000}
b:=x; {b=3654321}
for i:=1 to l do b:=b div 100; {b=365}
ReadKey; GotoXY(8,7); Write(b);
c:=9;
while (20*r+c)*c>b do c:=c-1; {c=7}
r:=r*10+c; {r=27}
u:=r*2-c; {u=47}
um:=u*c; {um=47*7=329}
ReadKey; GotoXY(3,7); Write(u);
ReadKey; GotoXY(4,8); Write©;
ReadKey; GotoXY(8,8); Write(um);
ReadKey; GotoXY(17,4); Write©;
{------------------------------------------------------}
l:=l-1; {l=1}
b:=x; {b=3654321}
b:=b-um*z; {b=364321}
z:=z div 100; {z=100}
for i:=1 to l do b:=b div 100;
ReadKey; GotoXY(9,10); Write(b); {b=3643}
c:=9;
while (20*r+c)*c>b do c:=c-1;
r:=r*10+c;
u:=r*2-c;
um:=u*c;
ReadKey; GotoXY(3,10); Write(u);
ReadKey; GotoXY(5,11); Write©;
ReadKey; GotoXY(9,11); Write(um); {3276}
ReadKey; GotoXY(18,4); Write©;
{------------------------------------------------------}
l:=l-1; {l=0}
b:=b*z+x mod 100;
b:=b-um*z;
z:= z div 100;
for i:=1 to l do b:=b div 100;
ReadKey; GotoXY(10,13); Write(b);
c:=9;
while (20*r+c)*c>b do c:=c-1;
r:=r*10+c;
u:=r*2-c;
um:=u*c;
ReadKey; GotoXY(3,13); Write(u);
ReadKey; GotoXY(6,14); Write©;
ReadKey; GotoXY(10,14); Write(um);
ReadKey; GotoXY(19,4); Write©;
{------------------------------------------------------}
b:=b-um;
ReadKey; GotoXY(11,16); Write(b);
ReadLn;
End.
Немогу загнать всё это в цикл. Ввожу семизначное число 7654321 и над ним эксперементирую.
Другие семи и восьми значные тоже считает, до запятой.
Надо чтобы и по короче числа брал, вместо того чтобы нули писал в конце.
Может где-то перемудрил. Помогите довести до ума пожалуйста!