Вычисление суммы ряда - Pascal ABC (12668)

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

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

Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x).
Листинг программы
  1. Program rabota3;
  2. uses crt;
  3. Var x,y, s, f, x_nach, delta_x, eps, t: Real;
  4. koy:real;
  5. i,x_kon:integer;
  6. Begin
  7. y:=0;
  8. write(' x= ');
  9. readln(x_nach);
  10. write('количество итераций ');
  11. readln(x_kon);
  12. for i:=1 to x_kon do
  13. y:=y+((2*i-1)*exp(ln(x_nach)*(2*i+1)))/(2*i*(2*i+1));
  14. koy:=pi/2.0-(x+y);
  15. writeln('функция= ',koy:5:5);
  16. f:=(Pi/2)-ArcTan(X/SQRT(1-X*X));
  17. writeln('arccos= ',f);
  18. End.

Решение задачи: «Вычисление суммы ряда»

textual
Листинг программы
  1. uses crt;
  2. var x, s, f, x_nach, x_kon, delta_x, eps, t: Real;
  3.     n:Integer;
  4. Begin
  5. WriteLn('ввод исходных данных:');
  6. repeat
  7. Write('|x_nach|<1 =');
  8. ReadLn(x_nach);
  9. until abs(x_nach)<1;
  10. repeat
  11. Write('x_nach<x_kon<1 =');
  12. ReadLn(x_kon);
  13. until(x_kon>x_nach)and(x_kon<1);
  14. repeat
  15. Write('x_kon-x_nach > delta_x=');
  16. ReadLn(delta_x);
  17. until delta_x<x_kon-x_nach;
  18. repeat
  19. Write('eps>0 =');
  20. ReadLn(eps);
  21. until eps>0;
  22. clrscr;
  23. WriteLn('Для  x=',x_nach:0:3,' до ',x_kon:0:3,' шаг=',delta_x:0:3,' точность=',eps:0:6);
  24. WriteLn;
  25. Writeln('----------------------------------');
  26. WriteLn('|  x    | n  |    s    |    f    |');
  27. WriteLn('----------------------------------');
  28. x:=x_nach;
  29. Repeat
  30.  t:=x;
  31.  s:=x;
  32.  n:=0;
  33.  if x=0 then f:=pi/2
  34.  else if x>0 then f:=arctan(sqrt(1 - sqr(x))/x)
  35.  else f:=pi+arctan(sqrt(1 - sqr(x))/x);
  36.  While (Abs(t)>eps) Do
  37.   Begin
  38.    n:=n+1;
  39.    t:=t*x*x*(2*n-1)/(2*n);
  40.    s:=s+t/(2*n+1);
  41.   End;
  42.  s:=pi/2-s;
  43.  WriteLn('|',x:6:3,' |',n:2,'  |',s:8:5,' |',f:8:5,' |');
  44.  x:=x+delta_x;
  45. Until(x>x_kon);
  46. WriteLn('----------------------------------');
  47. End.

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

  1. В первой строке кода используется библиотека crt, которая не является стандартной библиотекой языка Pascal ABC. Поэтому этот код не будет работать в большинстве сред разработки Pascal ABC.
  2. Переменные x, s, f, x_nach, x_kon, delta_x, eps, t объявлены с типами Real, что означает, что они могут содержать числа с плавающей точкой.
  3. Переменная n объявлена как Integer, что означает, что она может содержать только целочисленные значения.
  4. В цикле repeat-until используется условие abs(x)<1 для остановки цикла. Это условие проверяет, что значение переменной x меньше 1.
  5. В цикле repeat-until используется условие (x_kon>x_nach)and(x_kon<1), которое проверяет, что значение переменной x_kon больше x_nach, но меньше 1.
  6. В цикле repeat-until используется условие delta_x<x_kon-x_nach, которое проверяет, что разница между x_kon и x_nach меньше чем значение переменной delta_x.
  7. В цикле repeat-until используется условие eps>0, которое проверяет, что значение переменной eps больше 0.
  8. В цикле repeat-until используется условие (x>x_kon), которое проверяет, что значение переменной x больше x_kon.
  9. В цикле repeat-until значение переменной x увеличивается на delta_x.
  10. В цикле repeat-until значение переменной s вычисляется как pi/2 - s.
  11. Значение переменной n увеличивается на 1 в каждой итерации цикла.
  12. Значение переменной s вычисляется как pi/2 - s.
  13. Значение переменной f вычисляется как arctan(sqrt(1 - sqr(x))/x) или pi+arctan(sqrt(1 - sqr(x))/x), в зависимости от значения x.
  14. В конце программы выводится сообщение с исходными данными и результатами вычислений.

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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