Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора - 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.
Объяснение кода листинга программы
- Создается функция Sum, которая принимает три параметра: X, eps и N. Внутри функции объявлены переменные S, Sl и N, инициализированные нулем.
- В блоке if проверяется, является ли абсолютное значение X меньше или равно единице. Если это так, то функция Sum выводит ноль и завершает свою работу.
- Если условие из пункта 2 не выполняется, то переменные Sl и S инициализируются соответственно как 1/X и 0.
- Затем происходит цикл repeat, который выполняется до тех пор, пока отношение Sl/ (N*2 - 1) не станет меньше или равно eps.
- В каждой итерации цикла значение Sl делится на (N2 - 1), а S увеличивается на Sl/ (N2 - 1).
- После завершения цикла значение S сохраняется в переменной Sum.
- В основной части программы объявляются переменные eps, X, Y, X0 и X1.
- Задаются начальное и конечное значения X, размер шага dX и точность eps.
- Выводится сообщение с запросом начального значения X.
- Выводится сообщение с запросом конечного значения X.
- Выводится сообщение с запросом размера шага dX.
- Выводится сообщение с запросом значения точности eps.
- Выводится пустая строка.
- Выводится сообщение « X | Arth(X) | N».
- Выводится сообщение «--------------------------------».
- Задается начальное значение X.
- Запускается цикл repeat, который выполняется до тех пор, пока X не станет больше X1.
- В каждой итерации цикла вызывается функция Sum с параметрами X, eps и N.
- Если N равно нулю, то выводится сообщение с результатом в формате «X:10:4 | n/a | N:4».
- Если N не равно нулю, то выводится сообщение с результатом в формате «X:10:4 | X | Y:10:4 | N:4».
- Значение X увеличивается на dX.