Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информатике.doc
Скачиваний:
465
Добавлен:
17.03.2015
Размер:
3.59 Mб
Скачать

20. Алгоритмы вычисления суммы функционального ряда. Использование рекуррентных формул. Пример

Вычисление суммы числового ряда

Числовой ряд – это последовательность чисел, подчиняющаяся определенному закону.

Например:

Ряд натуральных чисел: 1, 2, 3, 4, 5, 6, …

Закон: каждый следующий элемент ряда на 1 больше предыдущего.

Задача: вычислить сумму чисел от 1 до 100.

Решение: обозначим сумму чисел - S.

Идея решения: каждое число от 1 до 100 нужно прибавлять к сумме.

Программа:

Program z1;

Var s, a: integer;

Begin

S:=0;

For a:=1 to 100 do

Begin

S:=S + a;

End;

Writeln(‘s=‘,s);

End.

Рекуррентная формула— формула вида, выражающая каждый член последовательностичерезpпредыдущих членов.

Общая проблематика вычисленийс использованием рекуррентных формул является предметом теориирекурсивных функций.

Примеры

  • Вычисление факториаланатурального числа:

причём

  • Вычисление чисел Фибоначчизадаётся формулами:

  • Значение интегралаудовлетворяет рекуррентной формуле:

  • Решение дифференциального уравнения Бесселяможет быть записано в видестепенного ряда:

Чтобы определить коэффициенты , достаточно установить, чтодля всехn⩾ 1. После чего сразу получается известный результат:

  • Длина стороны при удвоении числа сторон вписанного правильного многоугольника:

где R— радиусописанной окружности.

  • Существует формула, выражающая общий член линейной рекуррентной последовательностичерез корни её характеристического многочлена. Например, дляпоследовательности Фибоначчитакой формулой являетсяформула Бине.

21. Поиск минимального и максимального элементов массива.

Одной из наиболее распространенных задач обработки массивов является поиск минимального (максимального) элемента.

Пример 31. В массиве X из 20 вещественных чисел поменять местами наибольшие и наименьшие элементы.

Уточним пространство решений. В массиве X может присутствовать несколько максимальных и минимальных элементов. Возможен неординарный случай для этой задачи, который состоит в том, что все элементы массива равны между собой. Переменные, используемые в программе, и их тип описаны в следующей таблице:

Эту задачу нужно решать с помощью двух последовательных просмотров массива X. Целью первого просмотра является вычисление наибольшего МАХ и наименьшего МIN значений элементов массива X. В начале просмотра значение первого элемента Х[1] считается одновременно наибольшим и наименьшим, что справедливо в том случае, если в массиве всего один элемент. Далее со второго элемента Х[2] и до последнего Х[20] сравниваются значение текущего элемента с MIN. Если значение текущего элемента меньше, то оно с этого момента считается минимальным. По окончании цикла в рабочей ячейке MIN окажется число, равное значению наименьшего элемента. Аналогично поступаем для нахождения МАХ.

Далее нужно сравнить между собой MIN и МАХ. Если эти величины равны между собой, то массив состоит из 20 равнозначных элементов. Следовательно, переставлять их местами нет необходимости. Если MIN≠МАХ, то нужно наименьшим элементам присвоить значение МАХ, а наибольшим элементам присвоить значение MIN. Эти действия являются основой для второго просмотра массива X.

PROGRAM PR31;

VAR

X: ARRAY [ 1.. 20] OF REAL;

I: INTEGER;

MIN, MAX: REAL;

BEGIN

WRITELN('Введите массив X, из 20 вещественных чисел');

FOR I := 1 ТО 20 DO READ(X[I]);

MIN :=Х[1];

МАХ :=Х[1];

FOR I := 2 ТО 20

DO BEGIN

IF MIN>X[I]

THEN MIN := X[I];

IF MAX<X[I]

THEN MAX := X[I];

END;

IF MIN <> MAX

THEN FOR I := 1 TO 20

DO BEGIN

IF MAX = X[I]

THEN X[I] := MIN

ELSE IF MIN = X[I]

THEN X[I]:=MAX;

END;

WRITELN('Элементы массива X имеют значения:');

FOR I := 1 TO 20 DO WRITE(X[I]: 4:1,' ');

WRITELN

END.