Операторы для разветвляющихся вычислительных процессов


Разветвляющейся называют программу, которая является записью разветвляющегося алгоритма. В разветвляющихся программах часто требуется обеспечить иной порядок выполнения операторов. Для этого используются оператор безусловного перехода, оператор условного перехода и оператор множественного выбора.

Оператор безусловного перехода GOTO n

Оператор безусловного перехода служит для перехода из одной точки (строки) программы к другой. Общий вид оператора:

GOTO n

где GOTO - имя оператора (переводится – «перейти к...»;

n - номер строки программы.

Пример 1.Пример 2.

30 x=x+1 40 x=3*A

40 y=(x+2)*2 50 GOTO 70

50 GOTO 30 60 y=2*x

70 z=5*x

В первом примере оператор перехода обеспечивает бесконечное циклическое выполнение двух операторов. В втором примере оператор GO TO 70 позволяет обойти 60 строку программы.

Логические выражения в QBASIC

Логическое выражение - это отношение, либо формула, составленная из отношений, круглых скобок и символов логических операций. В QBASIC значение “истина” (TRUE) = -1, “ложь” (FALSE) = 0.

Операции отношения:

=равно (2 = 2; x = y)

<> не равно (2 <> 3; x <> y)

< меньше, чем (2 < 3; x < y)

> больше, чем (4 > 3; x > y)

<= меньше, или равно (1<=1; x <= y)

>= больше или равно (2>=2; x >= y)

Логические операции описываются служебными словами:

AND логическое умножение (конъюнкция);

OR логическое сложение (дизъюнкция);

NOT логическое отрицание;

XOR исключающее или;

EQU эквивалентность;

IMP импликация.

Операция AND («и») вырабатывает истинное значение в том случае, когда истинны оба ее аргумента.

Операция OR («или») вырабатывает истинное значение в том случае, когда истинным является хотя бы один из ее аргументов.

Операция XOR вырабатывает истинное значение, когда значения ее аргументов не совпадают.

Операция NOT А истинна тогда и только тогда, когда А ложно.

Операция EQU вырабатывает истинное значение, когда значения ее аргументов одновременно истинны или одновременно ложны.

Операция IMP вырабатывает ложное значение, когда А истинно и значение истина в других случаях.

Правила выполнения логических операций:

- Вычисляются значения арифметических выражений;

- Вычисляются значения отношений;

- Вычисляются операции NOT, затем AND и после - OR.

Пример 1.

x= 10

PRINT “(ЗНАЧЕНИЕ X<20 )=“; X<20

END

Результат: (ЗНАЧЕНИЕ X<20) = -1

Если X=100, то (ЗНАЧЕНИЕ X<20) = 0

Пример 2. Вычислить значение логического выражения при X=3 и Y=-2

(X<7) AND (X -Y< X^2) OR(ABS(Y) >3)

(3<7)AND(3-(-2)<3*3)OR(ABS(-2)>3)=(3<7)AND(5<9)OR(2>3)=

1 1 OR 0 =

1 OR 0 =1-истинно

Условный оператор IF … THEN … ELSE

Оператор IF THEN ELSE осуществляет условное ветвление, основанное на оценке логического выражения. Этот оператор можно записать в линейной или блочной форме.

Линейная форма

IF логическое выражение THEN операторы 1 [ELSE операторы 2],

где IF (если), THEN (то), ELSE (иначе) - служебные слова языка QBASIC;

Операторы 1 - операторы, выполняющиеся при значении логического выражения «истина»;

Операторы 2 - операторы, выполняющиеся при значении логического выражения «ложь».

Два варианта оператора (рис. 7.3):

1). IF условие THEN P1 ELSE P2

2). IF условие THEN P1

 

 
 

       
   
 
 

Вариант 1: Вариант 2:

Рис. 7.3 Бок-схема оператора IF THEN ELSE

Пример 1.

IF X<Y THEN A=X: B=Y ELSE A=Y: B=X

PRINT “A=“; A; ”B=“;B

Пример 2.

Y=SIN (X)

IF (2<=X) AND (X<=10) THEN Y=COS (X): Z=Y*X

Y = 2: Z=10

Блочная форма

Кроме простого оператора IF в языке QBASIC предусмотрен структурный оператор IF, позволяющий программировать более сложные разветвляющиеся структуры, не пользуясь при этом оператором безусловного перехода GOTO и позволяющий упростить чтение программ. Общий вид оператора:

IF условие 1 THEN

блок операторов 1

ELSE IF условие 2 THEN

блок операторов 2

.........

[ELSE]

блок операторов n

END IF

где параметры условие 1, условие 2 являются логическими выражениями.

Пример.

REM УСЛОВНЫЙ ОПЕРАТОР

INPUT C$

IF C$ >=“A” AND C$ <= “Z” THEN

PRINT “ ПРОПИСНАЯ БУКВА “ ; C$

ELSE IF C$ >= “a” AND C$ <= “z”

PRINT “ СТРОЧНАЯ БУКВА “; C$

ELSE IF C$ >= “0” AND C$ <= “a”

PRINT “ЦИФРА”; C$

ELSE

PRINT “ СПЕЦИАЛЬНЫЙ СИМВОЛ”; C$

ENDIF

Особенности работы оператора:

- Операторы IF... END IF могут быть вложенными, т.е. внутри одного из блоков операторов может содержаться другой условный оператор.

- Поскольку вещественные переменные - приближенные числа, то условие X=Y можно, например, заменить: ABS(X -Y) < 0.001

- Предпочтительная конструкция: IF условие THEN P1 : GOTO n , которая наиболее соответствует принципам структурного программирования.



Дата добавления: 2021-07-22; просмотров: 435;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.012 сек.