Как вычислить квадратный корень на языке 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 знаков после запятой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д