|
|
|
|
|
|
|
|
|
|
|
|
|
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 удваиваются, если x≤ y≤ z, и заменяются на их абсолютные величины в противном случае.
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,
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 ≤ x≤ b с шагом |
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) |
и проверяется условие x≤ b (блок 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 |
|
|
|
|
|
|
|
|
|
||||