Вычисление суммы ряда, подскажите, где в цикле ошибка - Pascal

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

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

Помогите пожалуйста найти ошибку, не знаю почему, но при запуске не считает сумму Вычислить сумму элементов бесконечного ряда с заданной точностью e = 0,00001. Условием окончания вычислений считать Sn <= e. Значение x задать самостоятельно. ∞ ∑ ((-1)^n )*(6+(0,3x)^(3+n))/(2n+2)! n=1
Листинг программы
  1. Program rediska;
  2. var
  3. c,n:integer;
  4. s,a,x,s1,delta,e,h,y:real;
  5. f:longint;
  6. begin
  7. write('Введите х =');
  8. readln(x);
  9. //начальные значения
  10. s:=0;
  11. n:=0;
  12. y:=0.3*x;
  13. a:=exp(3*ln(y));
  14. f:=1*2;
  15. e:=0.00001;
  16. repeat
  17. s1:=s; //в s1 хранится значение s для сравнения
  18. n:=n+1; //cчетчик слагаемых
  19. c:=-c; //значение (-1) для первого n-го слагаемого
  20. a:=a*y; //вычисление 0,3*х в степени (3+n) n-го слагаемого
  21. h:=a+6;
  22. f:=f*(2*n+1)*(2*n+2); //факториала n-го слагаемого
  23. s:=s+c*h/f; //добавление n-го слагаемого к общей сумме
  24. delta:=abs(s-s1); //проверка условия окончания цикла
  25. until delta<=e;
  26. //вывод результата на экран
  27. writeln('при x=',x,' сумма ', n, 'элементов=',s);
  28. end.

Решение задачи: «Вычисление суммы ряда, подскажите, где в цикле ошибка»

textual
Листинг программы
  1. const e = 0.00001;
  2. var x, s, a, b, t: double;
  3.     n: integer;
  4. begin
  5.   write('x = ');
  6.   readln(x);
  7.   x := 0.3 * x;
  8.   n := 1;
  9.   a := -0.25;
  10.   b := -x * x * x / 24;
  11.   s := a + b;
  12.   repeat
  13.     inc(n);
  14.     a := -a / 4 / (n + 0.5) / (n + 1);
  15.     b := -x * b / 4 / (n + 0.5) / (n + 1);
  16.     t := a + b;
  17.     s := s + t
  18.   until abs(t) <= e;
  19.   write('Sum = ', s:0:5, ', terms: ', n);
  20.   readln
  21. end.

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

  1. Объявляются и инициализируются переменные:
    • e - считается равным 0.00001
    • x - введенное значение с клавиатуры
    • s, a, b, t - временные переменные для вычислений
    • n - устанавливается в начальное значение 1
  2. Программа запрашивает ввод значения x с клавиатуры и умножает его на 0.3.
  3. Вычисляются начальные значения для a и b:
    • a устанавливается в -0.25
    • b вычисляется как -x * x * x / 24
  4. Вычисляется значение суммы s равное a + b.
  5. Выполняется цикл repeat-until для расчета суммы ряда:
    • Увеличивается счетчик n на 1
    • Вычисляются новые значения a и b по формулам
    • Новое значение t устанавливается как a + b
    • Новое значение s прибавляется к сумме t
    • Цикл выполняется до тех пор, пока абсолютное значение t не будет меньше или равно e
  6. Выводится значение вычисленной суммы s с точностью до 5 знаков после запятой и количество terms (членов ряда) n.
  7. Конец программы. В цикле repeat-until выполняются формулы для вычисления суммы ряда. Ошибка в цикле не присутствует, но для правильного вычисления суммы ряда нужно убедиться, что формула для b соответствует уравнению ряда.

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


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

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

14   голосов , оценка 4.143 из 5

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

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

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