Алгоритм Разветвляющейся Структуры

Каждое отдельное направление называется ветвью вычислений. Выбор той или иной ветви вычислений осуществляется проверкой некоторого условия.

Типы разветвляющихся алгоритмов

 
 


+ -

Действие 2
1. Разветвление

Действие 1
В зависимости от Условия

выполняется Действие 1

или Действие 2

2. Обход + -

Действие
Частный случай разветвления.

Одна из ветвей не содержит

Действий.

 

 
 


Множественный выбор

Обобщение разветвления.

Д n
Д3  
Д2  
Д1  
В зависимости от Условия выполняются Действия одной из нескольких ветвей.

 

Операторы управления

Оператор безусловного перехода 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 ветвь А > В