Скачиваний:
288
Добавлен:
26.03.2015
Размер:
1.3 Mб
Скачать

17

В примере 9 рассматривается двумерный массив, элементы которого являются переменными с двумя индексами. Поэтому для перебора всех элементов массива в блок-схеме алгоритма на рис. 2.13 необходимо изменять два параметра: i

номер строки; j – номер столбца.

2.5.Алгоритмы вычисления степенных полиномов

Вычисление степенных полиномов вида Y = a1 xn +a2 xn-1 +…+an +an+1 наиболее целесообразно проводить по формуле Горнера, при использовании кото-

рой степенной полином переписывается в виде Y = (…((a1 x + a2 )x + a3)x + …+ +an )x+an+1.Такая запись полинома существенно сокращает время вычислений, так как наиболее трудоемкая операция, cвязанная с возведением в степень переменной x в данном случае заменяется расчетом порекуррентной формуле Y = ak x + ak+1, где k = 1,2,…,n. Коэффициенты полинома сводятся в массив, включающий (n+1) элемент. Начальное значение переменной Y, задаваемое перед циклом должно быть равно коэффициенту a1 при x в старшей степени, а параметр цикла должен изменяться от 2 до n+1.

Пример 10. Составить алгоритм вычисления полинома степени n, при начальном значении переменной Y = a1 и заданных значениях массива коэффициентов полинома A(n+1).Блок-схема алгоритма приведена на рис. 2.14.

Начало

Ввод x,n,A(n+1)

Y= a1

k=2,n+1

Y= Y*x + ak

1

18

Рис. 2.14

1

Вывод Y

Конец

Рис. 2.14. Окончание

2.6. Алгоритмы нахождения наибольшего (наименьшего) из множества значений

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

Ymax =Yi , если Yi > Ymax; или

Ymax = Ymax, если Yi < Ymax.

Для применения указанной формулы при первом выполнении цикла необходимо в качестве начального значения Ymax взять заведомо небольшое число, например – (1030). Тогда после первого выполнения Ymax примет значение Y1, так как Y1 наверняка больше – (1030 ). При втором выполнении цикла Ymax сравнивается с Y2 и находится наибольшее из Y1 и Y2 и так далее. Аналогичным образом находится наименьшее среди набора элементов, при использовании формулы

Ymin = Yi, если Yi < Ymin;

или

Ymin =Ymin, если Yi >Ymin .

Начальное значение переменной в этом случае следует принимать Ymin = 1030 . Пример 11. Найти наибольшее значение функции Y=abs(a) eax-x^2 при изме-

нении аргумента x от 0 до a с шагом h. Блок-схема алгоритма решения данного примера приведена на рис. 2.15. Значения коэффициента а и шага h вводятся в

режиме диалога. После присвоения переменной Ymax минимального значения организуется цикл по переменной x, для каждого значения которой вычисляется функция Y. На каждом шаге вычисления осуществляется сравнение значений функций Y и Ymax . Если Y > Ymax, то Ymax присваивается значение Y, в против-

19

ном случае значение Ymax остается неизменным. По завершении цикла на печать выводится максимальное значение функции Ymax.

Начало

Ввод a,h

Ymax = - (1030 )

x=0,a,h

Y =abs(x)eax-x^2

нет

Y> Ymax

да

Ymax =Y

Вывод Y

Конец

Рис. 2.15

20

Пример12. Найти наименьший элемент массива (x1,x2,…,x10 ) и его порядковый номер. Особенностью решения является то, что необходимо найти не только минимальный по значению элемент, но и его порядковый номер. Для этого следует всякий раз, когда в цикле выполняется условие xi<x min , присваивать не только x min=x i , но и i min = i. В качестве начального значения x min целесообразно задать значения x1, а цикл выполнить при изменении i от 2 до 10. Блоксхема алгоритма решения данного примера приведена на рис. 2.16. По окончании цикла значения x min и i min выводятся на печать.

Начало

Ввод мас-

сива X(10)

xmin = x1,

imin =1

i = 2,10

xi < xmin

нет

да

xmin = xi,

imin = i

Вывод xmin

Конец

Рис. 2.16

21

Пример 13. Упорядочить элементы массива ( а1 , а2 , …,а10 ), расположив их по убыванию в том же массиве.

Начало

1

Ввод A(10)

2

 

 

1

k= 1,9

3

 

amax = a(k)

4

nmax = k

 

i = k+1,10

5

 

 

6

a(i) amax

 

 

7

amax = ai,

 

nmax = i

 

 

8

amax = a(k)

 

a(k) = amax

 

Вывод a(k)

9

 

Конец

 

Рис. 2.17

 

Соседние файлы в папке Книги