Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Это и есть искомое рекуррентное соотношение.




Отдельно посчитаем первое , входящее в сумму, то есть :

=–х.

Теперь, зная , подставим его в правую часть рекуррентного соотношения, получим ; подставив в правую часть, получим и так далее.

В программе это реализуется следующим образом – в цикле одновременно с подсчетом s считается и следущее слагаемое ak.

program pr5;

var s,x,a:real;

k,n:integer;

Begin

writeln(¢введите x,n¢);

readln(x,n);

s=0;

a:=-x;

for k:=1 to n do

Begin

s:=s+a;

a:=-a*x/(k+1);

end;

writeln(¢s=¢,s)

End.

Данная техника позволяет избежать вычисления больших степеней и факториалов, они постепенно “накапливаются” в а от шага к шагу.

Пример 5. Сумма

В рассмотренном примере 4 мы получили рекуррентное соотношение за счёт свойства сокращаемости степеней и факториалов. Косинус таким свойством не обладает., поэтому, обозначив , придём к рекуррентному соотношению, в котором будет присутствовать отношение косинусов. Это не лучший вариант, поэтому предлагается за а обозначать только то, что что сможет сократиться при делении, а всё остальное добавлять в процессе вычисления суммы. В нашем случае положим как и прежде . Фрагмент программы, считающий s будет теперь выглядеть следующим образом:

s:=0;

a:=-x;

for k:=1 to n do

Begin

s:=s+a*cos(k*x);

a:=-a*x/(k+1);

end;

Одномерные массивы

 

Одномерным массивом называется упорядоченная совокупность однотипных элементов (компонент массива), рассматриваемых как единое целое. Каждый элемент массива снабжается индексом (номером). Поэтому массив можно назвать совокупностью переменных с индексами. В качестве индекса может быть переменная или выражение дискретно-упорядоченного типа, как правило типа integer. Индекс не может быть типа real, так как этот тип не является дискретно-упорядоченным. Говоря более точно, множество индексов должно определяться заданием типа-диапазона, который указывается при описании массива в квадратных скобках за словом array (см. ниже). Количество элементов массива называется размером массива.

Описание массивов.

Описать какую-либо переменную как массив можно двумя способами.

1 способ. Определяется тип массива следующим образом:

type < имя типа >=array[< диапазон индексов >] of < тип компонент >;

<диапазон индексов> задается нижней и верхней границами изменения индекса массива.

Затем описывается переменная массива как принадлежащая типу < имя типа >:

var < имя переменной >: < имя типа >;

Например, массив a из 10 вещественных чисел (т.е. набор переменных с индексами a1, a2, …, a10 можно описать так:

type mass=array[1..10] of real;

var a:mass;

2 способ. Описать переменную как массив можно и непосредственно без предварительного описания типа:

var < имя переменной >:array[< диапазон индексов >] of < тип компонент >;

В нашем примере

var a:array[1..10] of real;

В этом случае тип массива будет безымянным.

Замечание. В нашем примере массива из 10 чисел можно было бы сделать следующие описания:

var a:array[0..9] of real;

или

var a:array[-4..5] of real;

Это бы по прежнему означало, что a есть массив из 10 вещественных чисел, только занумерованных соответственно от 0 до 9 либо от –4 до 5

Обращение к элементам массива.

При использовании какого-либо элемента массива в программе его индекс ставится в квадратные скобки сразу же за именем массива, например, i-й элемент массива a (ai) записывается как a[i].

Ввод массива.

В любом случае ввод (и вывод) массива осуществляется в цикле.

1. Единовременный ввод:

var a:array[1..10] of real;

k:integer;

............

writeln(¢введите 10 чисел’);

for k:=1 to 10 do read(a[k]);

2. Поэлементный ввод:

var a:array[1..10] of real;

k:integer;

............

for k:=1 to 10 do

begin

writeln(¢введите a[’,k,’]’);

read(a[k]);

end;

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...