IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Извлечения корня квадратного, Задача на целые числа
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 27
Пол: Мужской
Реальное имя: г

Репутация: -  0  +


Нужно было составить программу демонстрирующая извлечения корня квадратного.
Дошёл до такого вот момента
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 и над ним эксперементирую.
Другие семи и восьми значные тоже считает, до запятой.
Надо чтобы и по короче числа брал, вместо того чтобы нули писал в конце.
Может где-то перемудрил. Помогите довести до ума пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 5:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name