Как вычислить квадратный корень на языке Pascal без использования процедур и функций? - Pascal ABC
Формулировка задачи:
Нужно найти квадратный корень без использования sqrt, ln и и т.д.
Есть формула Лагранжа yn+1*[(1 + 1/k) - y4/(k*x)]
Или формула Ньютона yn+1= 1/k*[(k - 1)*yn+x/(yk-1n)]
где k = 2, x = число под корнем
Решение задачи: «Как вычислить квадратный корень на языке Pascal без использования процедур и функций?»
textual
Листинг программы
- var x,x0,x1,e:real;
- begin
- repeat
- write('Введите значение x>=0 x=');
- readln(x);
- until x>=0;
- repeat
- write('Введите точность e>0 e=');
- readln(e);
- until e>0;
- x0:=1;
- x1:=0.5*(x0+x/x0);
- while abs(x0-x1)>e do
- begin
- x0:=x1;
- x1:=0.5*(x0+x/x0);
- end;
- writeln('Квадратный корень=',x1:0:5);
- end.
Объяснение кода листинга программы
- Создаются переменные x, x0, x1, e типа real.
- В цикле повторяется запрос значения переменной x, пока x>=0.
- В цикле повторяется запрос точности e, пока e>0.
- Инициализируется x0=1 и x1=0.5*(x0+x/x0).
- Запускается цикл while, который выполняется до тех пор, пока abs(x0-x1)>e.
- Внутри цикла while значения x0 и x1 обновляются: x0 становится x1, а x1 становится 0.5*(x0+x/x0).
- Выводится значение x1 с точностью до 5 знаков после запятой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д