Сравнить скорость сходимости (число слагаемых для достижения заданной точности Е) - 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.
Объяснение кода листинга программы
- Создаются переменные e, s, si, t, n, k, i, которые будут использоваться в коде.
- Переменная e инициализируется значением 0.00001. Это будет использоваться для сравнения точности вычислений.
- Переменная s инициализируется значением 2. Это будет начальное значение для сравнения в циклах.
- Переменная si инициализируется значением 0. Это будет использоваться для отслеживания предыдущего значения переменной s.
- Переменная t инициализируется значением 1. Это будет использоваться для деления в цикле.
- Переменная n инициализируется значением 1. Это будет использоваться для отслеживания количества итераций в цикле.
- Запускается цикл while, который будет выполняться до тех пор, пока разница между значениями s и si больше заданной точности e.
- Внутри цикла переменная si обновляется, чтобы она была равна текущему значению s.
- Переменная n увеличивается на 1.
- Переменная t делится на n и присваивается переменной s.
- Значение s обновляется, чтобы оно было равно сумме предыдущих значений s и t.
- Цикл while повторяется, начиная с шага 7.
- После завершения цикла while, выводится сообщение о том, как было выполнено вычисление (разложение в ряд или цепная дробь) и количество итераций, которое было выполнено.
- Переменная s обновляется, чтобы она была равна 1.
- Переменная k инициализируется значением 1.
- Переменная s инициализируется значением 2.
- Запускается цикл while, который будет выполняться до тех пор, пока разница между значениями s и si больше заданной точности e.
- Внутри цикла переменная si обновляется, чтобы она была равна текущему значению s.
- Переменная s обновляется, чтобы она была равна 0.
- Для каждого i от k вниз до 1, выполняется проверка, является ли i нечетным числом. Если это так, то переменная s присваивается значению 1/i-s.
- Если i четное, то переменная s присваивается значению 1/(2+s).
- Переменная k увеличивается на 1.
- Цикл while повторяется, начиная с шага 17.
- После завершения цикла while, выводится сообщение о том, как было выполнено вычисление (разложение в ряд или цепная дробь) и количество итераций, которое было выполнено.
- Выводится сообщение о том, что количество итераций в цикле для разложения в ряд и цепной дроби одинаковое.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д