Рекурсия, извлечение квадратного корня - Free Pascal

Узнай цену своей работы

Формулировка задачи:

ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ РЕКУРСИИ УСЛОВИЕ : Вычислить значение X = sqrt a , используя рекуррентную формулу Xn = (1/2)(Xn-1+a/Xn-1) , в качестве начального приближения использовать значение X0=0.5(1+a). Хотелось бы с обьеснением

Решение задачи: «Рекурсия, извлечение квадратного корня»

textual
Листинг программы
  1. uses crt;
  2. function Sq(x:real;n:integer):real;
  3. begin
  4. if n=0 then Sq:=0.5*(1+x)
  5. else Sq:=(Sq(x,n-1)+x/Sq(x,n-1))/2;
  6. end;
  7.  
  8. var x:real;
  9.     n:integer;
  10. begin
  11. clrscr;
  12. repeat
  13. write('Введите значение x>=0  x=');
  14. readln(x);
  15. until x>=0;
  16. repeat
  17. write('Введите число итераций  n>0  n=');
  18. readln(n);
  19. until n>0;
  20. writeln('Квадратный корень=',Sq(x,n):0:5);
  21. readln
  22. end.

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

В данном коде реализована функция Sq, которая вычисляет квадратный корень числа x методом рекурсии. В первой строке кода функции проверяется базовый случай - если значение n равно 0, то функция возвращает результат равный 0.5*(1+x), так как при n=0 формула для вычисления квадратного корня имеет такой вид. В противном случае, вторая строка кода функции рекурсивно вызывает функцию Sq, передавая в нее значения x и n-1, и результат этой функции (Sq(x,n-1)) используется в формуле биномиального распределения для вычисления значения функции Sq. Значение x и n сохраняются в переменных x и n соответственно. После ввода значений x и n, вызывается функция Sq с передачей ей этих значений, и результат выводится на экран.

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


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

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

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы