Пример 5.1.

Вычислить значение суммы членов бесконечного ряда

paskal34

при x = 0.1 с точностью до члена ряда с модулем, меньшим E=10-10.

Для вычисления очередного члена ряда будем использовать рекуррентное соотношение, связывающее его с предыдущим членом a(n+1) = q*a(n). Применение рекуррентных формул позволяет избежать вычисления факториала и возведения в произвольную степень. Рекуррентный коэффициент q найдем из выражений для текущего и следующего членов ряда

paskal35 и        paskal36 .

Деля второе выражение на первое, получим

paskal37

Значение начального члена ряда задаем до цикла путем прямого присваивания (номер начального члена n в разных вариантах равен 0 или 1, правильное значение определяется по формуле текущего члена). В нашем задании n=0, a=x.

Блок- схема алгоритма приведена на рисунке.

paskal38

Листинг программы

program prg_5_1;

{$mode objfpc}{$H+}

uses

Classes, SysUtils, RusTrans;

var

a,e,q,s,x: real;

n: integer;

begin

writeln(Rus(‘Введите точность’));             // Ввод данных

write(‘e=’);

readln(e);

writeln(Rus(‘Введите аргумент’));

write(‘x=’);

readln(x);

n := 0;                                                          // Инициализация цикла

a := x;

s := a;

while abs(a)>E do                                // Начало цикла

begin                                                    // Тело цикла

q:=-x*x/(2*n+2)/(2*n+3);

a:=a*q;

s:=s+a;

n:=n+1;

end;

writeln;

writeln(Rus(‘Результат’));                  // Вывод результатов

writeln(Rus(‘Сумма s=’),s:8:3);

writeln(Rus(‘Число членов ряда n=’),n);

readln;

end.

Консоль перед закрытием программы:

paskal39

TwitterSEO CommunityВаау!News2.ruChippKoricaSMI2Google BookmarksDiggI.uaЗакладки YandexLinkstoreMyscoopCommunizmRu-marksWebmarksRuspaceLinkomaticKli.kzWeb-zakladkaZakladok.netRedditdeliciousMa.gnoliaTechnoratiSlashdotYahoo My WebБобрДобр.ruMemori.rurucity.comМоёМесто.ruMister Wong



Copyright © 2009-2010 Программирование на паскале.