Нахождения суммы ряда - Pascal
Формулировка задачи:
Составить алгоритм и программу нахождения суммы ряда с заданной точкой Е. Использовать рекуррентные соотношения при вычислении очередного члена ряда. Для оценки правильности результата предусмотреть вычисление по контрольной формуле. Вычисление суммы заканчивается,если модуль очередного слагаемого оказывается меньше заданного значения точности (Е),причем для этих рядов (при |X|<1) абсолютная величина суммы всех отброшенных членов ряда при этом оказывается меньше Е.
Ряд:
Контрольная формула:
Решение задачи: «Нахождения суммы ряда»
textual
Листинг программы
const
EPS = 0.0001;
var
i: LongWord;
x, sum, sumi: Real;
begin
Write('Input x='); ReadLn(x);
sumi := -1; i := 0; sum := 0;
while (Abs(sumi) * (2 * Sqr(i) + 1) > EPS) do
begin
Inc(i);
sumi := -sumi * Sqr(x) / (2 * i) / (2 * i - 1);
sum := sum + sumi * (2 * Sqr(i) + 1);
end;
WriteLn('Sum=', sum:0:4);
WriteLn(' F=', (1 + x * Sin(x) / 2 + Cos(x) * (Sqr(x) / 2 - 1)):0:4);
end.
Объяснение кода листинга программы
- Объявляется константа
EPS(точность вычисления) со значением0.0001. - Объявляются переменные:
i(целочисленный тип),x,sum,sumi(все переменные вещественного типа). - Пользователю выводится сообщение
Input x=и считывается введённое им значение для переменнойx. - Устанавливаются начальные значения переменных:
sumiравно-1,iравно0,sumравно0. - Вводится цикл
while, который будет выполняться, пока условиеAbs(sumi) * (2 * Sqr(i) + 1) > EPSистинно. - Пока условие выполнено, выполняются следующие шаги:
- Увеличивается значение
iна 1 при помощи функцииInc(). - Пересчитывается значение
sumiпо формулеsumi := -sumi * Sqr(x) / (2 * i) / (2 * i - 1). - Обновляется значение
sumс помощью формулыsum := sum + sumi * (2 * Sqr(i) + 1).
- Увеличивается значение
- После завершения цикла выводится значение суммы
sumс точностью4десятичных знаков. - Также выводится значение функции
F(предположительно, вычисленное выражение) с точностью4десятичных знаков. Таким образом, данный код вычисляет сумму ряда и значение функции для заданного значенияx.