Операторы для разветвляющихся вычислительных процессов
Разветвляющейся называют программу, которая является записью разветвляющегося алгоритма. В разветвляющихся программах часто требуется обеспечить иной порядок выполнения операторов. Для этого используются оператор безусловного перехода, оператор условного перехода и оператор множественного выбора.
Оператор безусловного перехода 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 , которая наиболее соответствует принципам структурного программирования.
Дата добавления: 2016-04-02; просмотров: 1055;