Материал: Основы алгоритмизации вычислительных процессов. методические указания по курсу «Информатика» для студентов I-го курса всех специальностей. Авдеев В.П., Венгерова Г.Т

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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 из-за того, что не будет существовать

Источник: https://studfile.net/preview/16569448/