Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора - Turbo Pascal (29513)

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

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

Вычислить и вывести на экран в виде таблицы значения функции, заданной с по- мощью ряда Тейлора, на интервале от x-нач до x-кон с шагом dx с точностью ε. Та- блицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. С комментариями пожалуйста!

Решение задачи: «Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора»

textual
Листинг программы
function Sum(X, eps : Real; var N : Integer) : Real;
var
  S, Sl : Real;
begin
  N := 0;
  if Abs(X) <= 1 then
    begin Sum := 0; Exit; end;
    
  Sl := 1/X;  S := Sl;
  repeat
    Inc(N);
    Sl := Sl / X / X;
    S := S + Sl / (N*2 - 1);
  until Abs(Sl/ (N*2 - 1)) < eps;
  Sum := S;
end;
 
var
  eps, X, Y, X0, X1, dX : Real;
  N : Integer;
begin
  Write(' Начальное значение X = '); ReadLn(X0);
  Write('  Конечное значение X = '); ReadLn(X1);
  Write('       Размер шага dX = '); ReadLn(dX);
  Write('Значение точности eps = '); ReadLn(eps);
  WriteLn;
  
  WriteLn('  X        |  Arth(X)  |    N');
  WriteLn('--------------------------------');
  X := X0;
  repeat
    Y := Sum(X, eps, N);
    if N = 0 then
      WriteLn(X:10:4, ' |    n/a    | ', N:4)
    else
      WriteLn(X:10:4, ' |', Y:10:4, ' | ', N:4);
    X := X + dX;
  until X > X1;
end.

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

  1. Создается функция Sum, которая принимает три параметра: X, eps и N. Внутри функции объявлены переменные S, Sl и N, инициализированные нулем.
  2. В блоке if проверяется, является ли абсолютное значение X меньше или равно единице. Если это так, то функция Sum выводит ноль и завершает свою работу.
  3. Если условие из пункта 2 не выполняется, то переменные Sl и S инициализируются соответственно как 1/X и 0.
  4. Затем происходит цикл repeat, который выполняется до тех пор, пока отношение Sl/ (N*2 - 1) не станет меньше или равно eps.
  5. В каждой итерации цикла значение Sl делится на (N2 - 1), а S увеличивается на Sl/ (N2 - 1).
  6. После завершения цикла значение S сохраняется в переменной Sum.
  7. В основной части программы объявляются переменные eps, X, Y, X0 и X1.
  8. Задаются начальное и конечное значения X, размер шага dX и точность eps.
  9. Выводится сообщение с запросом начального значения X.
  10. Выводится сообщение с запросом конечного значения X.
  11. Выводится сообщение с запросом размера шага dX.
  12. Выводится сообщение с запросом значения точности eps.
  13. Выводится пустая строка.
  14. Выводится сообщение « X      | Arth(X) | N».
  15. Выводится сообщение «--------------------------------».
  16. Задается начальное значение X.
  17. Запускается цикл repeat, который выполняется до тех пор, пока X не станет больше X1.
  18. В каждой итерации цикла вызывается функция Sum с параметрами X, eps и N.
  19. Если N равно нулю, то выводится сообщение с результатом в формате «X:10:4 | n/a | N:4».
  20. Если N не равно нулю, то выводится сообщение с результатом в формате «X:10:4 | X | Y:10:4 | N:4».
  21. Значение X увеличивается на dX.

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


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

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

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