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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

16

 

 

 

 

 

 

 

а)

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x, y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

нет 3

 

 

 

 

 

 

нет

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x > y

 

x = y

 

F = y - x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

да

 

 

 

 

 

6

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F = x y

 

 

 

 

F = x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.3.9

 

 

 

 

 

 

1) x =10,

 

 

 

 

2) x =1,

 

 

3) x = 25,5,

y =15;

 

 

 

 

 

 

y =1;

 

 

 

 

y =13.

б)

Начало

1

A, B, x

 

2

 

 

 

 

 

 

F = AB

 

 

 

 

3

0 < P < 5

нет

4

P = 5

нет

 

 

 

5

да

 

6

да

 

 

 

 

 

 

 

y = xp

 

 

y =5x2

 

 

7

y

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

Рис.3.10

 

 

 

A = 2,

A = 5,

 

A = 2,5,

 

 

=1,

 

 

3)

 

1) B

2) B = 6,

B = 2,

 

 

 

 

 

 

 

 

x = 3;

x =1;

 

x = 2.

17

в) Начало

1

A, B, C, x

2

нет

3

нет

x > 0

x =0

4

да

 

y=

x

 

5

 

да

 

 

6

 

 

 

 

 

 

 

 

y =

x

 

 

y = 10

 

 

 

 

 

 

 

 

 

 

 

2

 

7

F = Ay2+By+C

8

F

 

 

 

Конец

 

 

 

 

 

 

 

Рис. 3.11

 

 

 

 

x = 4,

 

x = 0,

 

 

x = −6,

1)

2)

 

=1,

3)

 

= 0,

 

A = B

C = A

 

A = B = C =1;

 

 

 

 

 

 

 

 

 

C = 0;

 

 

B =1.

 

12.Составить алгоритм, в результате выполнения которого все числа x, y, z удваиваются, если xyz, и заменяются на их абсолютные величины в противном случае.

13.Вывести номер четверти координатной плоскости, которой принадлежит заданная точка.

14.Самолет летит из пункта А в пункт В со средней скоростью V. Соста-

вить алгоритм для нахождения времени полета t1, если есть встречный ветер, скорость которого V1, и времени t2, если ветра нет. Расстояние между пунктами A и B считать известным и равным S.

15.По условию предыдущей задачи составить алгоритм для нахождения t3, если возможен и попутный ветер, скорость которого V2.

IV. Циклический вычислительный процесс

Циклы - многократно повторяемые этапы вычислений. Вычислительные процессы, содержащие циклы, называются циклическими. В зависимости от количества повторений цикла различаются два основных типа: циклы с из-

18

вестным числом повторений и итерационные циклы. По структуре циклы разбиваются на простые (не содержат внутри себя других циклов) и сложные (содержащие внутри себя один или несколько циклов). На блоксхеме цикл изображают как замкнутый контур. Тем самым и показывается неоднократное выполнение блоков, составляющих цикл.

4.1 Простые циклы с заданным числом повторений

Рассмотрим алгоритм вычисления суммы n слагаемых a1, a2,…an по

 

n

формуле

S = a1 + a2 +.... + an = ai .

 

i=1

 

Начало

1

 

n, a1, a2,…,an

2

S = 0

 

3

i = 1

 

4

S = S + a i

5

i = i+1

 

да 6

i n

 

нет

7

S

Для получения значения S необходимо многократно (n раз) выполнить операцию сложения. При каждом выполнении операции сложения к предыдущему результату добавляется значение последующего слагаемого, т.е. многократно выполняется участок алгоритма вида

S = S + ai .

Инструкцией S= S + ai можно осуществить постепенное последовательное накопление суммы, если предварительно выполнено действие S=0.

Конец

Рис.4.1

Для того, чтобы при каждом очередном выполнении инструкции S=S+ai слагаемое ai было новым, в цикле наряду с этой инструкцией должна выполнятся инструкция перехода к следующему слагаемому i=i+1; до цикла должно быть выполнено действие i=1.

Инструкции цикла не должны выполняться бесконечно: последним слагаемым должно быть слагаемое an. Поэтому в контур цикла включается блок проверки текущего значения i. Если это значение еще не превышает п, то вновь выполняются инструкции { S = S + ai и i = i+1 }. Когда зна-

чение i превысит n, их выполнение должно прекратиться. Поэтому указанный блок в общем случае называется блоком проверки условия и изображается с двумя выходами (рис.4.1, блок 6): линия потока, изображающая один из выходов, входит в контур цикла, другая, соответствующая случаю i > n,

i = m1, m2, h

19

означает завершение цикла и передачу управления на блок вывода результатов.

Аналогично накапливается и произведение с той лишь разницей, что для его накопления используется инструкция S=S ai, а начальное значение произведения должно быть равно единице. Переменная, значение которой изменяется в цикле в заданных пределах и определяет момент окончания цикла, называется параметром цикла (в рассматриваемом примере i -параметр цикла).

Таким образом, для циклов с известным числом повторений задаются:

-начальное и конечное значения параметра цикла;

-закон изменения параметра цикла при каждом его повторении;

-количество необходимых повторений цикла или условие окончания цикла.

Для циклов с известным

Начало

1

n, a1, a2,…,an

2 S = 0

3

i = 1,n

4

S = S + a i

5

S

Конец

Рис. 4.2

числом повторений в блок-схемах можно использовать блок вида

.

Внутри этого блока записываются границы изменения m1 и m2 параметра цикла i и шаг. Это позволяет сделать блок-схему более компактной. Одна из линий потока входит в контур цикла, другая линия потока, соответствующая окончанию цикла, связывает данный блок с тем блоком, который должен выполняться по окончании цикла. Например, блок-схема на рис.4.1 с использованием данного блока будет иметь вид, приведенный на рис.4.2. Если параметр цикла с каждым шагом увеличивается на единицу, то шаг в блоке цикла, как правило, не указывается.

Пример 1.

Составить алгоритм

для вычисления функции

y =

x2

на отрезке a xb с шагом

x.

x2 + cx + d

 

Решение. Переменная y вычисляется сначала при x=a, затем при x=a+ x, затем при x=a+2 x и так до тех пор, пока очередное приращение x не приведет к выполнению условия x>b. В этом случае вычисления должны быть прекращены. Алгоритм для этой задачи приведен на рис.4.3, на котором блок 1 означает ввод значений постоянных c и d, необходимых для вычисления функции y и границ отрезка a, b. Затем в соответствии с заданием переменной x присваивается значение x=a (блок 2), и вычисляется для этого случая значение y (блок 3). Результат вычисления выводится на печать

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

(блок 4). После

этого переменной x присваивается новое значение x=a+

x

(блок 5)

и проверяется условие xb (блок 6). Если условие выполняется, то

 

 

 

 

Начало

в блоке 3 происходит вычисление y для

 

 

 

 

этого значения x, т.е. предыдущий этап

 

 

 

1

 

 

 

 

 

 

 

 

a, b ,c, d

вычислений

повторяется.

При

x > b

 

 

 

 

решение должно закончиться.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

x = a

 

Возможны случаи, когда цикличе-

 

 

 

 

 

ские вычисления надо производить в за-

 

 

3

 

 

 

 

 

 

висимости от дополнительных условий.

 

 

 

 

 

x

2

 

Тогда алгоритм с подобными вычисле-

 

 

y =

 

 

 

 

 

 

 

 

 

ниями будет иметь циклическую раз-

 

 

x

2

+ cx

+ d

 

 

 

 

 

ветвляющуюся структуру (разветвление

 

 

4

 

 

 

 

 

 

 

 

 

 

 

y

 

 

в цикле).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

x = x +

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

6

x b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

 

 

 

 

 

 

Пример 2.

 

Рис.4.3

 

 

 

 

 

 

 

Составить алгоритм для вычисления на отрезке 0 x 2π с

 

 

 

Начало

 

 

шагом π 6 функции y=2sin 0,9 x и за-

 

 

 

 

 

тем для вычисления u=2,5 y, если y 0,

 

 

1

 

 

 

 

 

 

 

 

x=0

 

 

 

а если y> 0, то u = 1,5 y+1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение. Алгоритм приведен на

 

 

2

 

 

 

 

 

 

рис.4.4.

Так как в данном примере

в

 

 

y =2sin 0,9x

 

выражениях отсутствуют неизвестные

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

параметры,

то в алгоритме нет блока

да

 

y > 0

 

 

ввода

данных, а после блока начала

 

 

 

 

 

 

 

нет

алгоритма

сразу следует блок 1,

оз-

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

начающий,

что переменной x

присваи-

u = 1,5 y+1

 

 

 

 

 

u = 2,5 y

 

 

 

 

 

 

 

 

 

вается

начальное значение

0.

После

 

 

6

 

 

 

 

 

 

этого должно быть сделано вычисление

 

 

 

x, u

 

 

 

y = 2 sin 0,9 x (блок 2) и в соответст-

 

 

7

 

 

 

 

 

 

вии с заданием проверено условие y>0

 

 

 

 

 

 

 

 

(блок 3). Если это условие выполня-

 

 

x =x + π /6

 

 

 

 

 

 

 

 

 

 

ется,

то

происходит

вычисление

 

 

8

x ≤ 2π

 

 

и =1,5 y+1, в противном случае u=2,5 y

 

да

 

 

 

(блоки 4 и 5). После вывода на печать

 

 

 

 

 

нет

 

 

 

 

 

 

 

 

результата вычислений u переменной x

 

 

 

 

 

 

 

 

 

 

 

 

Конец

 

 

присваивается новое значение x=x+π 6

 

 

Рис.4.4

 

 

 

 

 

 

 

 

 

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