Алгоритм Разветвляющейся Структуры
Каждое отдельное направление называется ветвью вычислений. Выбор той или иной ветви вычислений осуществляется проверкой некоторого условия.
Типы разветвляющихся алгоритмов
+ -
|
|
выполняется Действие 1
или Действие 2
2. Обход + -
|
Одна из ветвей не содержит
Действий.
Множественный выбор
Обобщение разветвления.
|
|
|
|
Операторы управления
Оператор безусловного перехода GOTO
Оператор GOTO позволяет изменить последовательность выполнения программы.
Формат оператора
GOTO m
m –метка перехода.
При выполнении оператора управление передается строке, отмеченной меткой.
Имя метки состоит из букв и цифр.
При указании метки, не объявленной в программе или объявленной дважды, появляется сообщение об ошибке.
Фрагмент программы | Результат выполнения программы |
PRINT “Здравствуй ” GOTO F PRINT “ Мой друг” F: PRINT “ Вася” | Здравствуй Вася |
А = 2: В = 3 GOTO L C= A + B: PRINT “ C=”;C L: C= A * B: PRINT “ C=”;C | C = 6 |
Операторы передачи управления по вычислению
Формат оператора
ON а.в. GOTO m1[, m2[ , …] ]
а.в. – арифметическое выражение округляется до целого значения от 0 до 255.
Действие оператора состоит в вычислении числового выражения, выборе метки, порядковый номер которой равен вычисленному значению, и передаче управления в соответствующее место программы.
Если значение а.в. равно 0 или превосходит число меток в списке, то управление передается следующему оператору.
Фрагмент программы | Исходные данные | Результат выполнения программы |
INPUT С ON C GOTO F1, F2 K = 1:GOTO F3 F1: K=2:GOTO F3 F2: K=3 F3: PRINT “К=”; K | при С = 0 или при С > 2 | K= 1 |
при С = 1 | K= 2 | |
при С = 2 | K= 3 |
Оператор условного перехода IF THEN
Оператор IF THEN [ELSE]позволяет изменить последовательность выполнения программы в зависимости от некоторого условия.
Формат оператора
IF л.в. THEN
Оператор 1.1
. . .
[оператор 1.n]
[EXIT IF]
[ELSE
[оператор 2.1
. . .
[оператор 2.m]]]
END IF
Операторный блок IF состоит из THEN - ветви с операторами 1.1 ... 1.n и ELSE – ветви с операторами 2.1 ... 2.m.
Если л.в. – ''истина'', то выполняется THEN – ветвь, в противном случае - ELSE– ветвь. Затем работа продолжается с оператора, следующего за END IF (если ход работы не изменяется операторами EXIT IF или GOTO).
Если л.в. – ''ложь'', но ELSE отсутствует, то выполняется оператор, следующий за END IF.
Фрагмент программы | Исходные данные | Результат выполнения программы |
INPUT ''Ввод А, В''; А, В IF А = В THEN PRINT “ 1 ветвь А = В” ELSE IF А < В THEN PRINT “ 2 ветвь А < В ” ELSE PRINT “3 ветвь А > В” END IF END IF | при А = 2 В = 3 | 2 ветвь А < В |
при А = 5 В = 5 | 1 ветвь А = В | |
при А = 10 В = 7 | 3 ветвь А > В |