Это и есть искомое рекуррентное соотношение.
Отдельно посчитаем первое , входящее в сумму, то есть : =–х. Теперь, зная , подставим его в правую часть рекуррентного соотношения, получим ; подставив в правую часть, получим и так далее. В программе это реализуется следующим образом – в цикле одновременно с подсчетом 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 Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|