
681
.pdf
Существует большое количество алгоритмов, в которых команды должны быть выполнены последовательно одна за другой. Такие последовательности команд будем называть действиями, а алгоритмы, состоящие из таких серий, линейными.
Алгоритм, в котором команды выполняются последовательно одна за другой, называется линейным алгоритмом. Его структура представлена в табл. 7.
|
Таблица 7. Линейный алгоритм |
|||
Школьный АЯ |
Язык блок-схем |
|||
|
|
|
|
|
|
|
Действие 1 |
|
|
|
|
|
|
|
|
|
|
|
|
Действие 1 |
|
Действие 2 |
|
|
Действие 2 |
|
|
|
|
… |
|
|
|
|
. |
|
|||
Действие n |
|
|||
|
.. |
|
||
|
|
Действие n |
|
|
|
|
|
|
|
|
|
|
|
|
Алгоритмическая структура «Ветвление»
В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в алгоритмической структуре «Ветвление» та или иная серия команд выполняется в зависимости от истинности условия.
Условные выражения могут быть простыми и сложными. Простое условие включает в себя два числа, две переменных или два арифметических выражения, которые сравниваются между собой с использованием операций сравнения. Например: a>b; a·c=b; 2·8=4·4 и т.д. Сложное условие – это последовательность простых условий, объединенных между собой знаками логических операций. Например: a>b И a>c.
Структура «Ветвление» существует в двух основных вариантах (табл.
8):
если – то;
если – то – иначе.
108

|
|
Таблица 8. Структура «Ветвление» |
Школьный АЯ |
|
Язык блок-схем |
|
если – то |
если условие |
|
|
|
да |
|
|
нет |
|
то действия |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
все |
|
|
|
|
|
|
|
|
|
|
действия |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
если – то – иначе
если условие то действия 1
иначе действия 2 да
нет
все
|
|
действия 2 |
действия 1 |
|
|
|
|
|
|
|
|
Пример записи алгоритма на школьном алгоритмическом языке и в виде блок-схемы. Проверить, можно ли построить треугольник, если известны 3 стороны. Вывести результат на экран.
Алг Площадь треугольника (арг цел a, b, c, рез лит S)
Дано a>0, b>0, c>0
Надо S=”Треугольник можно построить ” или S=“Треугольник построить нельзя”
Нач
Ввод a, b, c
Если a+b>c И a+c>b И b+c>a
то S:=”Треугольник построить можно” иначе S:=”Треугольник построить нельзя”
все вывод S
кон
109

Начало
Ввод a,b,c
|
да |
(b+c>a) И |
нет |
|
|
(a+c>b) |
|||
|
|
|
|
|
|
|
И (a+b>c) |
|
|
|
|
|
|
|
S:=”Треугольник по- |
|
S:=”Треугольник по- |
||
строить можно” |
|
строить нельзя” |
||
|
|
|
|
|
|
|
|
|
|
Вывод S
Конец
Алгоритмическая структура «Выбор»
Алгоритмическая структура «Выбор» применяется для реализации ветвления со многими вариантами серий команд. В структуру выбора входят несколько условий, проверка которых осуществляется в строгой последовательности их записи в команде выбора. При истинности одного из условий выполняется соответствующая последовательности команд.
Структура «Выбор» существует в двух основных вариантах (табл. 9):
110

-выбор
-выбор – иначе.
Таблица 9. Структура «Выбор»
|
Школьный АЯ |
|
|
|
Язык блок-схем |
||||||||
|
|
|
выбор |
|
|
|
|
|
|
|
|
||
Выбор |
|
|
|
|
|
да |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
условие 1 |
|
|
действия 1 |
|
|
|
|
|||
при условие 1: действия 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
при условие 2: действия 2 |
|
|
нет |
|
|
|
|
|
|
|
|
||
… |
|
|
|
|
|
да |
|
|
|
|
|
|
|
при условие N: действия N |
|
|
условие 2 |
|
|
действия 2 |
|
|
|
|
|||
все |
|
|
|
нет. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
условие N |
да |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
действия N |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
выбор - иначе |
|
|
|
|
|
|
|
|
|||
Выбор |
|
|
|
|
|
да |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
условие 1 |
|
|
действия 1 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
||||||
при условие 1: действия 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
при условие 2: действия 2 |
|
|
нет |
|
|
|
|
|
|
|
|
||
… |
|
|
|
|
|
|
|
|
|
|
|
||
при условие N: действия N |
|
|
условие 2 |
да |
|
|
|
|
|
|
|
||
|
|
|
|
действия 2 |
|
|
|
|
|||||
иначе |
действия N+1 |
|
|
|
|
|
|
|
|||||
все |
|
|
|
нет. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
да |
|
|
|
|
|
|
|
|
|
|
|
условие N |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
действия N |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
действия N+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111

Примеры команд если и выбор приведены в табл. 10.
Таблица 10. |
Структуры «Если» и «Выбор» |
Школьный АЯ |
Язык блок - схем |
1 |
2 |
если x>0
то y:=sin(x) да x>0 нет
все
y:=sin(x)
если a>c |
|
да |
|
|
нет |
||
то a:=a**2; c:=c/2 |
|
a>c |
|||||
|
|
|
|
|
|||
иначе a:=a/2; c:=c**2 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
все |
|
|
|
|
|
|
|
a:=a**2; c:=c/2 |
|
a:=a/2; c:=c**2 |
|||||
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выбор |
x=0 |
да |
|
y:=cos( |
|
|
|
|
|
|
|
||||
при x=0: y:=cos(x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
при x=1: y:=sin(x) |
нет |
|
|
|
|
|
|
при x=-1: y:=0 |
|
да |
|
|
|
|
|
все |
x=1 |
|
y:=sin(x |
|
|
|
|
|
|
|
|
||||
|
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x=-1 |
да |
|
|
|
|
|
|
y:=0 |
|
|
|
|||
|
|
|
|
|
|
||
|
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
112

Выбор |
a>4 |
да |
a:=sqrt( |
|
при a>4: a:=sqrt(a) |
нет |
|
|
|
|
|
|
||
при a<4: a:=a**2 |
|
|
|
|
иначе a:=a-2 |
a<4 |
да |
|
|
a:=a**2 |
|
|||
все |
|
|||
|
нет
a:=a-2
Алгоритмическая структура «Цикл»
В алгоритмическую структуру «Цикл» входит серия команд, выполняемых многократно. Такая последовательность команд называется телом цикла.
Циклические алгоритмические структуры бывают двух типов:
-циклы со счетчиком, в которых тело цикла выполняется определенное количество раз (циклы типа для);
-циклы с условием, в которых тело цикла выполняется, пока условие истинно (циклы типа пока).
Когда заранее известно, какое число повторений тела цикла необходимо выполнить, можно воспользоваться циклической структурой со счетчиком
(табл. 11).
|
Таблица 11. Структура «Цикл со счетчиком» |
|||||||
Школьный АЯ |
|
|
|
Язык блок - схем |
||||
нц для i от i1 до i2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i=i1, i2 |
|
|
|||
|
|
|
|
|||||
тело цикла (последовательность дейст- |
|
|
|
|
|
|
|
|
вий) |
|
|
|
|
|
|
|
|
кц |
|
|
|
тело цикла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Часто бывает так, что необходимо повторить тело цикла, но заранее неизвестно, какое количество раз это надо сделать. В таких случаях количество повторений зависит от некоторого условия, которое необходимо записать после слова пока (табл. 12 ).
Таблица 12. Структура «Цикл пока»
113

Школьный АЯ |
|
Язык блок - схем |
||||
нц пока условие |
|
|
|
|
нет |
|
|
|
|
|
|||
|
|
|
|
|||
|
|
|
|
|
||
тело цикла (последовательность дейст- |
|
|
условие |
|
||
|
|
|
||||
вий) |
|
|
|
да |
|
|
кц |
|
|
|
|
||
|
|
|
тело цикла |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примеры команд для и пока приведены в табл. 13.
|
Таблица 13. Примеры структур циклов |
Школьный АЯ |
Язык блок - схем |
s:=0
i=1, 30
нц для i от 1 до 30 s:=s+i
кц |
s:=s+i |
||
|
|
|
|
|
|
|
|
i:=1;p:=1 |
i<=30 |
нет |
||
|
||||
нц пока i<=30 |
|
|
|
|
p:=p*i |
|
да |
|
|
i:=i+1 |
|
|
||
p:=p*i |
|
|
||
кц |
|
|
||
i:=i+1 |
|
|
||
|
|
|
||
|
|
|
|
|
Пример записи алгоритма на школьном алгоритмическом языке и в виде блок-схемы. Дан массив А(N). Вычислить сумму четных элементов массива.
Алг Сумма (арг цел n, i, арг цел таб А[1:N], рез цел S) Дано N>0
Надо S – сумма четных элементов
нач
Ввод N; S:=0
Нц для I от 1 до N
Ввод A[I]
114

Если mod(A[I],2)=0 то S:=S+A[I]
все
кц
вывод “S = “ , S
кон
Начало
Ввод N
S:=0
i=1, N
Ввод A[I]
да |
Mod |
нет |
|
(A[I],2) |
|
S:=S+A[I] |
|
|
Вывод S
Конец
115

Практические задания
1. Опишите следующие схемы условных операторов на школьном АЯ:
а) |
|
|
b) |
нет |
|
||||
|
x>0 |
нет |
|
Y=0 |
z=x/y |
||||
|
y=x2+z2 |
||||||||
|
|
|
|||||||
|
|
|
|
||||||
|
да |
|
|
|
|
|
да |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
y=x2 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
c) |
да |
|
d) |
да |
|
||||||
a>b |
b=a2+b |
|
a>0, |
b=a2+b |
|||||||
|
|
||||||||||
|
|
|
|
|
b>0 |
|
|
||||
|
|
|
|
|
|
||||||
нет |
|
|
|
|
нет |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
a=a+b2 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a=a+b
z=a+b
2.Составьте блок-схему вычисления функции у по формуле y=24x– 1,5x2+1,5x3 при значениях х от 1 до 9,9 включительно с шагом 0,1.
3.Присвойте переменной max наибольшее из значений a, b, c.
4.Составьте на школьном АЯ и в виде блок-схемы фрагмент программы, выполняющей следующие вычисления:
если x<–3, то у 6x csin x
если –3x<=x<0, то y 5ax3 b ccos x
если x=0, то y 10
если x>1, то y x2 ccos x
2
5.Вычислите значение y для переменных а=3; b=4; c=5:
a)Если a-b/c**2>=b-c/a**c
то y=a-b/c*6*(b-c)**2*a/b иначе y=b/c/b*a**3*c**a/b
Все
б) Если a>b
116

то y=c
иначе Если b>c
то y=a
иначе Если c>a
то y=b
иначе y=c
все
6. Вычислите значение к после выполнения алгоритма.
Начало
k=0
x=1
x<=10
да |
Mod (x,2)=0 |
нет |
k:=k+1
x=x+1
к
Конец
7.Напишите программу на школьном АЯ, которая по введенному времени года (1 – зима, 2 – весна, 3 – лето, 4 – осень) выдавала соответствующие этому времени года месяцы (например: 1 – декабрь, январь, февраль).
8.Вычислите и выведите на экран значения функции
117