Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаБобарыкинаИнформатика.doc
Скачиваний:
64
Добавлен:
03.05.2015
Размер:
8.84 Mб
Скачать

Программирование разветвляющихся алгоритмов

2.1. Цель работы. Освоить програмирование разветвляющихся конструкций.

2.2. Справочный материал. Ветвление программы осуществляется условными операторами

IF . . . THEN . . . ELSE если . . . то . . . иначе

SELECT CASE . . . END SELECT выбор ветви по значению параметра

2.2.1. Оператор IF . . . THEN можно записать в блочной или линейной форме. Линейная форма используется, если проверяется одно или два условия:

IF c$ = “ yTHEN PRINT h ELSE INPUT d$ если c$ = “y”, то печать h, иначе ввод d$.

IF x < 10 THEN y = 1 ELSE IF x < 100 THEN y = 2 ELSE y = 3

Если предполагается проверять больше, чем два условия, то желательно применять блочную форму, используя метки (номер строки или букву с двумя точками, например - а:):

10 IF x < 10 THEN 40 если x < 10, то идем в 40 строку

20 IF x < 100 THEN 50 если x < 100, то идем в 50 строку

30 y = 2: GOTO 60 если не выполнены условия 10 и 20, то y = 2

40 y=1: GOTO 60 если выполнено условие 10, то y = 1

50 y = 3 если выполнено условие 10, то y = 3

60 PRINTy=”; y печать результата «у= …»

70 END

Структура считается линейной, если после первого THEN в строке есть метка ли арифметический оператор.

2.2.2. При проверке сложных условий можно использовать более современную конструкцию SELECT . . . END SELECT :

SELECT CASE a выбор по значению параметра “a”

CASE IS = 1 для случая a = 1

x = y * z x = y * z

CASE IS > 10 для случая a > 10

x = a * z x = a * z

CASE 30 TO 50 для случая 30  a  50

x = a + z * y x = a + z * y

CASE 50 TO 70 , 150 TO 200 для случая 50  a  70 и 150  a 200

x = y / a x = y / a

CASE 70 TO 90 , IS > 200 для случая 70  a  90 и a > 200

x = a + y x = a + y

CASE ELSE для всех остальных значений a

x = a x = a

END SELECT конец выбора по параметру

2.3. Пример:

;

Программа:

2.3.1 2.3.2

10 x = 3 x = 3

20 Input “a b “ ; a , b input “a b “ ; a , b

30 c = a - b c = a - b

40 IF c > 0 THEN 70 SELECT CASE a

50 IF c < 0 THEN 80 CASE IS > b

60 z = 0 : GOTO 90 z = LOG(c) / LOG(10) *x

70 z = LOG(c) / LOG(10) *x: GOTO 90 CASE IS < b

80 z = c ^ x z = c ^ x

90 PRINT «z=”;z CASE ELSE

100 END z = 0

END SELECT

PRINT “z=”;z

END

Результаты: