Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебники 80125

.pdf
Скачиваний:
13
Добавлен:
01.05.2022
Размер:
563.38 Кб
Скачать

31

г) f (x) = (1)i

 

 

cosix ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

д) f (x)=cos x +

cos 2x

+

cos 3x

+ +

cos nx

 

+ ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

n2

 

е) f (x)=

cos2x

+

cos 4x

+

cos6x

+

;

 

 

 

 

 

 

 

3 5

 

5 7

 

 

 

 

1 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ж) f (x)= 2

x

1

+

(x 1)3

 

+

(x 1)5

+

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+1

 

 

 

3(x +1)3

 

 

 

5(x +1)5

 

 

 

x

 

 

 

 

 

 

 

 

з) f (x)= x

 

 

x3

 

 

+

x5

 

 

 

x7

 

+

;

 

 

 

2!32

 

4!52

 

6!72

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и) f (x)= x

 

 

x3

 

+ +(1)n

 

 

x2n+1

 

 

+

 

1!3

 

n!(2n +1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18.Определить условие сходимости, получить рекуррентную формулу и вычислить сумму членов ряда

y = xn + 12 xn1 + 13 xn3 + + 1n x + n1+1 + n +1 2 x1 +

с точностью ε.

4.3. Вложенные циклы

Алгоритмы циклической структуры могут быть сложнее рассмотренных выше. Например, часто встречаются циклические вычисления со сложными циклами, т.е. когда цикл содержит в себе один или несколько циклов. Конструкция, в которой цикл содержит внутри себя другие циклы, называется вложенным циклом. Цикл, охватывающий другие циклы, называется внешним, остальные циклы - внутренними. Правила организации как внешнего, так и внутренних циклов такие же, как и для простого. Параметры этих циклов меняются не одновременно, т. е. при одном значении параметра внешнего цикла параметр внутреннего цикла принимает по очереди все значения.

Пример 1. Составить алгоритм для вычисленияz = (x2 +1) arctg xy +11 ,

если х изменяется на отрезке 0х4 с шагом 1, а у – на отрезке 2 у3 с шагом 0,5. Данное условие означает, что при каждом значении х необходимо перебирать все возможные значения у.

Решение. Из блок-схемы алгоритма (рис.4.12) следует, что вначале в блоках 1, 2 значениям х и у присваиваются начальные значения х=0 и у=2, затем вычисляется величина z (блок 3), результаты вычислений выводятся на печать (блок 4). Кроме z на печать целесообразно вывести и значения переменных х и у, которым это значение z соответствует.

В блоке 5 величине у присваивается новое значение, равное сумме предыдущего значения и величины шага изменения у. Для полученного значения у

 

32

проверяется условие

у 3 (блок 6), и если это условие выполняется, то

Начало

вновь вычисляется значение z (блок 3)

и печатаются значения х, у, z (блок 4).

11

Затем значение у увеличивается на ве-

x = 0

личину шага, и процесс будет повто-

2

ряться до тех пор, пока у станет боль-

y = 2

ше 3.

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Это означает, что для одного

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

конкретного значения х и всех возмож-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y 1

2

 

 

 

 

 

 

 

 

 

 

z = (х

+1) arctg

 

ных значений у вычисления для полу-

 

x +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чения z выполнены и можно теперь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

присваивать новое значение величине х

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, y, z

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(т.е. х = х+1, блок 7). Для нового значе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ния х повторяются все операции, изло-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y + 0,5

 

 

 

 

женные выше, т. е. проводится цикл

 

 

 

 

 

y =

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

действий в блоках 3, 4, 5, 6. Этот цикл

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

будет повторяться столько раз, сколько

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

значений примет величина х при усло-

У 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y 3

 

 

 

 

 

вии х 4. Когда это условие перестанет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

выполняться, то все вычисления долж-

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ны быть закончены.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = x + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да 8

x 4

нет

Конец

Рис. 4.12

Пример 2. Определить с точностью ε = 0,01 значение аргумента, при котором функция y = ax - ln x достигнет минимума, при х, изменяющемся от 0,2

до 10.

Решение. Можно было бы решать эту задачу, взяв шаг изменения аргумента равным 0,01. Однако это приведет к увеличению времени счета. Поэтому решение задачи разбивается на два этапа:

1)определение грубого значения минимума функции при большом шаге изменения аргумента, например 0,3;

2)повторение процесса в районе минимума при шаге изменения аргумента, равном 0,01.

Таким образом, при первом нахождении минимума шаг изменения аргумента h равен 0,3, а его начальное значение х= 0,2. При повторном нахо-

ждении минимума шаг равен 0,01, а х0 = х min - 0,3.

Схема алгоритма решения задачи приведена на рис 4.13.

Во внутреннем цикле осуществляется поиск наименьшего значения

 

 

Начало

 

 

1

 

 

a

 

2

 

 

h = 0,3 x = 0,2

 

y mi n = y (0,2)

 

33

 

 

y = ax - lnx

 

4

y < y min

 

 

нет

 

5

да

 

y min = y

 

 

 

 

x min = x

 

 

x =x + h

да

6

x 10

 

 

 

нет

 

7

h = 0,01

 

 

 

 

да

 

8

нет

 

 

 

x = x min - 0,3

 

 

h = 0,01

 

9

 

 

 

x min

 

 

Конец

Рис. 4.13

33

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

происходит при y y min . После окончания внутреннего цикла проверяется условие h = 0,01.Если выполнение условия имеет место, то осуществляется выход из внешнего цикла. В противном случае задаются новое начальное значение переменной х, новый шаг h и внешний цикл повторяется еще один раз.

 

 

 

34

 

 

 

 

 

 

Пример 3. Вычислить суммы положительных элементов каждой строки мат-

рицы А (4,5)

а (1,1)

а (1,2)

а (1,3)

а (1,4)

а (1,5);

 

 

 

 

 

 

 

 

а (2,1)

а (2,2)

а (2,3)

а (2,4)

а (2,5);

 

 

 

 

а (3,1)

а (3,2)

а (3,3)

а (3,4)

а (3,5);

 

 

 

 

а (4,1)

а (4,2)

а (4,3)

а (4,4)

а (4,5).

 

 

 

Элементы матрицы обозначим а kl, где k = 1,2,3,4; l = 1,2,3,4,5. Согласно

условию задачи в результате ее решения получим вектор Сk , каждый элемент

которого получается путем последовательного сложения всех положитель-

ных элементов фиксированной строки k данной матрицы. Для каждой строки

k необходимо перебрать все элементы этой строки путем последовательного

изменения l от 1 до 5 с шагом 1 (l - номер столбца)

с целью сравнения каж-

дого элемента k-й строки с 0; если элемент аkl положительный, то произво-

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

После получения суммы положительных

элементов одной строки осуще-

ствляется переход к следующей

строке путем увеличения текущего значе-

ния k на единицу. Цикл по k является внешним, а по l - внутренним. Схема

 

 

 

алгоритма

решения приведена на рис

 

Начало

 

4.14. Блок 2 организует внешний цикл,

 

1

 

блок 3 задает начальное значение сум-

 

А

 

мы, блок 4 организует внутренний цикл.

 

2

 

В сложных циклах каждый цикл управ-

 

 

ляется своими параметром. В блоке 5

 

k = 1,4

 

 

 

проверяется знак элемента матрицы, а

 

 

 

3

 

 

блок 6

накапливает сумму,

если эле-

cк= 0

 

мент положительный, в противном слу-

 

 

 

4

 

чае сумма остается неизменной. Блоки,

 

 

входящие во внешний цикл,

выполня-

4

l = 1,5

 

 

ются

при

решении

задачи

4

раза

 

 

 

 

 

 

(напр., блок 7), а блоки внутреннего

5

akl > 0

 

цикла - 20 раз (напр., блок 5).

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ck = сk + akl

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

С

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

Рис.4.14

 

 

 

 

 

 

 

 

 

 

 

35

 

 

 

 

 

 

Пример 4.

Составить блок-схему алгоритма

вычисления значений функции

у по формуле

 

 

 

 

 

 

 

 

 

уi j = ln zi

sin xj ,

где i = 1, 2, …,10;

j = 1, 2,…,15.

 

Решение. Результатом решения этой задачи будет множество чисел, ко-

торое можно представить следующей матрицей произведений ln zi sin xj

 

 

lnz1 sinx1

lnz1 sinx2 ...

lnz1 sinx15

 

 

 

 

lnz2 sinx1

lnz2 sinx2 ...

lnz2

sinx15

.

 

 

 

LLLLLLLLLLLLLLLLLLL

 

 

 

 

 

 

 

lnz10 sinx1

lnz10 sinx2 ...

lnz10 sinx15

 

 

 

Особенность этого примера состоит в том, что при организации алго-

 

 

 

ритма с вложенным циклом во внешнем

 

Начало

 

цикле по i одновременно с изменением

 

 

 

величины zi следует вычислять

зна-

 

1

 

чение

промежуточной

переменной

 

Zi, Xi

 

a = ln zi для того, чтобы при каждом

 

2

 

значении i вычисление

ln zi произво-

 

 

дилось

только один раз для всех хj.

 

i =1,10

 

 

 

 

Блок-схема алгоритма с вычислением

 

3

 

значений промежуточной переменной а

 

a = ln zi

 

во

внешнем

цикле

 

приведена

на

 

4

 

рис.4.15.

 

 

 

 

 

j= 1,15

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

yij = a sinxj

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

yij

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

Рис.4.15

 

 

 

 

 

 

 

 

Пример 5.

Составить блок-схему алгоритма вычисления функции z по фор-

муле

 

 

 

 

 

 

 

 

 

zij =

cos xi sin y j ,

где

i =1,2,...,n;

j =1,2,...,m.

 

 

 

Так как на значения хi не накладываются никакие ограничения, то

cosxi может быть и отрицательным числом,

что исключает автоматическое

повторение вычислений в цикле по i из-за того, что не будет существовать

36

действительного значения квадратного корня из cosxi . Следовательно, в цикле алгоритма по параметру i необходимо проверить выполнение условия cos xi 0. Если это условие не выполняется, то согласно алгоритму, представленному на рис.4.16, выводится на печать (блок 8) сообщение о том, что для

Начало

1

 

xi, yj

2

 

i = 1,n

3

 

a = cosxi

4

нет

a

0

да

 

5

a

a =

6

 

j =1,m

7

 

zij = a sin yij

8

 

zij

 

9

 

Печать сообщ.

Конец

Рис.4.16

данного i значение cos xi вычислить невозможно и осуществляется переход

квычислениям с новым значением i.

Вблок-схеме этого алгоритма реализованы линейная, разветвляющаяся и циклические структуры.

 

 

 

37

 

 

 

 

 

Пример 6.

Составить блок-схему алгоритма упорядочения элементов векто-

ра (одномерного массива) В(b1,b2, … bn) в порядке возрастания их значений.

Решение. Последовательность действий,

задаваемая алгоритмом,

блок-

 

 

 

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

 

Начало

4.17, заключается в следующем. Попар-

 

1

 

но сравниваются между собой все со-

 

 

седние

элементы

 

вектора

В.

Если

 

n,b1,b2,…,bn

 

 

bi>bi+1, то их необходимо поменять

 

 

 

 

2

 

местами, иначе элементы bi и

bi+1 ос-

 

j = 1,

n - 1

таются на своих местах, затем сравни-

 

 

 

вается очередная пара элементов (т. е.

 

3

 

bi+1>bi+2) и т. д. После первого про-

 

i= 1 , n - j

смотра всех элементов на позицию n

 

 

 

будет поставлен наибольший элемент.

нет

4

 

При втором просмотре с выполнением

 

указанных действий второй по величи-

bi > bi+1

 

 

 

 

не элемент будет перемещен на пози-

 

 

да

цию n-1 и т.д. После ( n-1)-го просмотра

 

5

 

все элементы вектора В будут упорядо-

 

T = bi

чены в порядке их возрастания. В про-

 

bi = bi+1

 

цессе попарного сравнения элементов

 

bi+1 =T

 

 

 

целесообразно исключить из сравнения

 

6

 

те упорядоченные

элементы,

которые

 

 

уже перемещены на

соответствующие

 

b1,b2,…,bn

 

позиции согласно их значениям. В со-

 

 

 

 

 

 

ответствии с этим параметр внешнего

 

Конец

цикла блок-схемы рис. 4.17 j ограничи-

 

вается величиной n-1 (количество про-

 

 

 

 

Рис.4.17

смотров), а параметр внутреннего цикла

 

ограничивается величиной n-j.

 

 

 

 

 

В блоке 4 производится попарное сравнение смежных элементов. Если

условие bi>bi+1 выполняется, то в блоке 5 осуществляется обмен местами i-го

и i+1-го элемента.

Здесь Т-

промежуточная переменная, необходимая для

обмена bi и bi+1. В процессе каждого просмотра (т.е. изменения параметра

внешнего цикла j) восстанавливается начальное значение параметра внут-

реннего цикла по i (переход от блока 3 к блоку 2),что позволяет сравнивать

вновь попарные элементы, начиная с первого.

 

 

 

 

 

Контрольные вопросы и упражнения

1.Дать определение сложного цикла.

2.Какой цикл называется внешним (внутренним)?

38

3. Вычислить наибольшие значения функции yi = 2ebi x5x2 , если bi заданно массивом (b1, b2 ,… ,b20). Аргумент х изменяется от –2 до 2 с шагом 0,1. Все наибольшие значения запомнить в массиве С.

4. Найти значение аргумента х для функции y= aebx+cx2 , при котором дости-

гается максимум, с точностью до ε = 0,005. Значение х изменяется от -2 до 2 с шагом 0,2. Функция имеет один максимум.

5.Вычислить сумму квадратов элементов матрицы А(M,N), лежащих ниже (выше) главной диагонали.

6.Дана матрица А (m,n). Получить вектор С(m), элементы которого равны сумме квадратов элементов соответствующей строки матрицы А:

n

Ci = aij2 , i =1,2,K,m.

j=1

7.Определить количество положительных элементов каждого столбца матрицы А (10×20) и запомнить их в массиве М.

8.Вычислить компоненты вектора С (с1, с2,…,с10), если Сi (i=1,2,…,10) определяются как сумма элементов соответствующей строки матрицы А (10,20), стоящих на четных позициях.

9.Дана матрица В (10,20). Определить и вывести на печать номера позиций всех нулевых элементов заданной матрицы.

10.Найти среднее арифметическое положительных элементов каждого

столбца матрицы Х(15 × 25) при условии, что в каждом столбце есть хотя бы один положительный элемент.

11.Найти наименьший элемент матрицы А (15 × 25), также номера строки и столбца, в которых он находится.

12.Найти наибольшие элементы каждой строки матрицы Х(10 × 10) и записать их в массив Y.

13.Вычислить суммы элементов каждой строки матрицы Х(20×20), определить наименьшее значение этих сумм и номер соответствующей строки.

14.Найти минимальные элементы каждой строки матрицы Х(20×20) и поместить их на главную диагональ, а диагональные элементы записать на место минимальных.

15.Определить в матрице A(M,N) наименьший из наибольших элементов каждой строки и его координаты (номер строки и столбца).

16.Дана матрица А(10×15). Проверить знак произведения всех элементов каждой строки и вывести эти произведения на печать; прекратить данный процесс при выявлении отрицательного знака у произведения элементов.

20

i + j

 

где значения хi заданы

 

17. Вычислить zi =

 

,

массивом

xi

j=1

 

 

 

1, х2,…,х40). Результаты запомнить в массиве z. При решении использовать приемы: во внутреннем цикле - накопление произведения, во внешнем цикле - запоминание результатов.

39

 

 

 

 

 

 

15 10 a

i

+b

 

18. Вычислить значения функции z = ∑∏

 

k

, где значения ai заданным

 

 

2

 

 

 

 

 

 

i=1 k =1

 

 

 

массивом 1, а2,… а15), а значения bk изменяются от 1 с шагом 0,1.

 

 

 

 

20 n

k

 

 

 

 

 

 

 

 

 

xi

 

 

 

 

 

 

 

19. Вычислить

z = ∑∑

,

где значения хi заданы

массивом

 

 

 

 

i=1 k =1

K

 

 

 

 

 

 

1, х2,…,х20).

 

 

 

 

 

 

 

 

20. .Вычислить значения функции y по формулам

 

а)

yij

= ai

sinxj ,

i =1,2,K,M;

 

j =1,2,K,N ;

 

б)

yij

= lg cos ai sin x j ,

 

i =1, 2,K,10,

 

j =1, 2,K,10 .

 

 

Учесть, что cosai

может быть и не положительным числом, тогда

значение lgcosai не определено.

в) y=xz/(x3-2), где переменная х принимает 20 различных значений и изменяется по закону арифметической прогрессии (xi+1=xi+ x); значения х0 и х

заданы. Переменная z принимает 30 различных значений:

 

z1, z2,…,z30.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

г)

y = z ln

 

x

 

, где

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

z = (z1, z2 ,..., z8 ),

zi+1 = zi + z;

z1 и

z заданы;

 

 

x = (x1, x2 ,..., x10 ),

xi+1 = xi +

x;

x1 и x заданы.

 

 

 

1

 

 

6

 

x j

 

 

 

 

 

 

 

 

 

 

 

д)

yij =

 

 

 

 

,

i =1, 2,...,10;

 

 

j =1,2,...,10.

 

ci

K!

 

 

 

 

k =1

 

 

 

 

 

 

ai

+b

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

10

 

 

 

 

21. Вычислить значение функции z = ai

,

где аi заданы массивом

 

2

1, а2,…, а20), b

 

 

 

 

 

 

i=1

 

k =1

 

 

 

изменяется от 0 с шагом 0,1.

 

 

 

 

22. Вычислить значение функции z =

ai

+bj

;

ai ,bj

,ck заданы массивами из

 

 

10, 8 и 5 элементов соответственно.

ck

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

23. Найти 3 наибольших элемента массива 1, а2,…,а30).

 

24. Упорядочить элементы массива 1, х2,…х60), расположив их по

убыва-

нию в массиве Y.

 

 

 

 

 

 

 

 

 

 

 

25. Упорядочить

 

 

 

в порядке убывания элементы каждой строки матрицы

A(M, N).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

40

БИБЛИОГРАФИЧЕСКИЙ СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Информатика: учеб. /Под ред. Н.Б. Макаровой. – Финансы и стати-

стика. – 2003. – 768 с.

2. Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика. – М.: Academia. – 2001. – 816 с.

3.Информатика. Базовый курс. /Симонович В.С. и др. - СПБ.: Изд-во

«Питер», 2000. – 640 с.

4.Острейковский В.А. Информатика: учеб. для вузов. – М.: Высш. ш к., 2000. – 511 с.

5.Лапчик М.П., Семакин И.Г., Хеннер Е.К. Методика преподавания ин-

форматики /Под. ред. М.П. Ланчика. - М.: Academia. – 2002. – 580 с.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]