Сравнить скорость сходимости (число слагаемых для достижения заданной точности Е) - Pascal ABC

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

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

Сравнить скорость сходимости (число слагаемых для достижения заданной точности Е) при вычислении числа е с помощью ряда и бесконечной дроби:

Решение задачи: «Сравнить скорость сходимости (число слагаемых для достижения заданной точности Е)»

textual
Листинг программы
uses crt;
var e,s,si,t:real;
    n,k,i:integer;
begin
e:=0.00001;
s:=2;
si:=0;
t:=1;
n:=1;
while abs(s-si)>e do
 begin
  si:=s;
  n:=n+1;
  t:=t/n;
  s:=s+t
 end;
writeln('Разложением в ряд s=',s:0:5,' n=',n);
k:=1;
s:=2;
si:=0;
while abs(s-si)>e do
 begin
  si:=s;
  s:=0;
  for i:=k downto 1 do
  if odd(i) then s:=1/(i-s)
  else s:=1/(2 + s);
  k:=k+1;
 end;
s:=s+1;
writeln('Цепной дробью     s=',s:0:5,' n=',k);
if n<k then write('Разложением в ряд быстрее')
else if n>k then write('Цепной дробью быстрее')
else write('Одинаковое количесто итераций обоими способами')
end.

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

  1. Создаются переменные e, s, si, t, n, k, i, которые будут использоваться в коде.
  2. Переменная e инициализируется значением 0.00001. Это будет использоваться для сравнения точности вычислений.
  3. Переменная s инициализируется значением 2. Это будет начальное значение для сравнения в циклах.
  4. Переменная si инициализируется значением 0. Это будет использоваться для отслеживания предыдущего значения переменной s.
  5. Переменная t инициализируется значением 1. Это будет использоваться для деления в цикле.
  6. Переменная n инициализируется значением 1. Это будет использоваться для отслеживания количества итераций в цикле.
  7. Запускается цикл while, который будет выполняться до тех пор, пока разница между значениями s и si больше заданной точности e.
  8. Внутри цикла переменная si обновляется, чтобы она была равна текущему значению s.
  9. Переменная n увеличивается на 1.
  10. Переменная t делится на n и присваивается переменной s.
  11. Значение s обновляется, чтобы оно было равно сумме предыдущих значений s и t.
  12. Цикл while повторяется, начиная с шага 7.
  13. После завершения цикла while, выводится сообщение о том, как было выполнено вычисление (разложение в ряд или цепная дробь) и количество итераций, которое было выполнено.
  14. Переменная s обновляется, чтобы она была равна 1.
  15. Переменная k инициализируется значением 1.
  16. Переменная s инициализируется значением 2.
  17. Запускается цикл while, который будет выполняться до тех пор, пока разница между значениями s и si больше заданной точности e.
  18. Внутри цикла переменная si обновляется, чтобы она была равна текущему значению s.
  19. Переменная s обновляется, чтобы она была равна 0.
  20. Для каждого i от k вниз до 1, выполняется проверка, является ли i нечетным числом. Если это так, то переменная s присваивается значению 1/i-s.
  21. Если i четное, то переменная s присваивается значению 1/(2+s).
  22. Переменная k увеличивается на 1.
  23. Цикл while повторяется, начиная с шага 17.
  24. После завершения цикла while, выводится сообщение о том, как было выполнено вычисление (разложение в ряд или цепная дробь) и количество итераций, которое было выполнено.
  25. Выводится сообщение о том, что количество итераций в цикле для разложения в ряд и цепной дроби одинаковое.

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


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

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

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