Как вычислить квадратный корень на языке 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.

Объяснение кода листинга программы

  1. Создаются переменные x, x0, x1, e типа real.
  2. В цикле повторяется запрос значения переменной x, пока x>=0.
  3. В цикле повторяется запрос точности e, пока e>0.
  4. Инициализируется x0=1 и x1=0.5*(x0+x/x0).
  5. Запускается цикл while, который выполняется до тех пор, пока abs(x0-x1)>e.
  6. Внутри цикла while значения x0 и x1 обновляются: x0 становится x1, а x1 становится 0.5*(x0+x/x0).
  7. Выводится значение x1 с точностью до 5 знаков после запятой.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы