Понятие логического выражения
Логическое выражение, в отличие от арифметического, содержит операции отношения (=, <, >, <=, >=, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание - NOT, логическое умножение (логическое “И”) - AND, логическое сложение (логическое “ИЛИ”) - OR, исключающее “ИЛИ” - XOR, эквивалентность - EQV.
Результатом выполнения логического выражения может быть “Истина” (не 0) или “Ложь” (0). Например, NOT 7<9 всегда принимает значение “Ложь”, что соответствует значению 0, а 4>3 AND 7<9 принимает значение “Истина”, что соответствует -1.
В табл. 7 приведено описание логических операций. Здесь T (true) - “Истина”, а F (false) “Ложь”.
Таблица 7
Значения операндов | NOT x | x AND y | x OR y | x XOR y | х EQV y | |
X | Y | |||||
T | T | F | T | T | F | T |
T | F | F | F | T | T | F |
F | T | T | F | T | T | F |
F | F | T | F | F | F | T |
Порядок вычисления логического выражения:
· вычисляются значения арифметических выражений;
· вычисляются значения операций отношения;
· вычисляются операторы NOT, затем AND и после – OR, XOR, EQV.
Пример 4. Вычислить значение логического выражения при 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 AND 1 OR 0 1 OR 0 = ? |
Разветвляющиеся алгоритмические структуры в языках программирования реализуются операторами условного перехода. В QB для программирования условных переходов используются три типа операторов: однострочный IF, блочный IF и оператор выбора SELECT CASE.
УсловныйоператорIF … THEN
Однострочная форма записи
IFвыражениеTHEN оператор 1 |
где IF, THEN–зарезервированные слова языка, означающие соответственно ЕСЛИ, ТО;
выражениеможет быть логическим или арифметическим. Ненулевое значение арифметического выражения интерпретируется как «Истина», а нулевое – как «Ложь».
Порядок выполнения условного оператора поясняется рис.11.
Рис. 11 Схема сокращенного условного оператора
Например,
IFage< 15 THENPRINT “Ребенок” IFd-4 THENbeta=0.002 IFlambda<1 OR beta=3 THENPRINTlambda, beta IF i THEN epsilon=0.0001 |
Многострочная форма записи
Пример
IFвыражениеTHEN операторы END IF |
Порядок выполнения оператора следующий: если значение выражения«Истина», то выполняются операторы следующей строки; если значение выражения «Ложь», то управление передается оператору, следующему после ENDIF. Слово ENDIF записывается через пробел.
Например,
IF x>0 THEN y=SQR(x) z=1+y p=4 END IF |
Однострочная форма оператора IF … THEN … ELSE
IF выражение THEN оператор 1 ELSE оператор 2 |
где ELSE – зарезервированное слово, означающее ИНАЧЕ.
Порядок выполнения условного оператора поясняется рис.12.
Рис.12 Схема полного условного оператора
Если выражение принимает значение «Истина», то выполняется оператор 1; если же оно принимает значение «Ложь», то выполняется оператор 2. В любом случае далее выполняется оператор, стоящий в программе непосредственно за условным оператором. Однострочная форма оператора IF … THEN … ELSE в программе записывается в одну строку.
Например,
IF angle <=0 THEN PRINT “острыйугол” ELSE PRINT “тупойугол” |
Многострочная форма записи оператора IF … THEN … ELSE
IFвыражениеTHEN оператор 1 ELSE оператор 2 ENDIF |
Например,
IF age<=7 THEN PRINT “Дошкольник” ELSE PRINT “Школьник или взрослый” ENDIF |
Пример вложения операторов (IF …THEN … ELSE)
IF age >7 THEN IF age <=17 THEN PRINT “школьник” ELSE PRINT “взрослый” END IF ELSE PRINT “дошкольник” ENDIF |
Эквивалент вложенных операторов – оператор IF … THEN … ELSEIF
IF выражение 1 THEN блок операторов 1 ELSEIFвыражение 2 THEN блок операторов 2 ELSEIFвыражение 3 THEN блок операторов 3 ............. ELSE ‘ необязательный элемент конструкции блок операторов n ENDIF |
Порядок выполнения оператора следующий: если значение выражения 1 «Истина» - выполняется блок операторов 1 и далее управление передается оператору следующему после ENDIF. Если выражение 1 «Ложь», то проверяется значение следующего выражения и так далее. После выполнения любого блока операторов управление всегда передается оператору, следующему после ENDIF. Конструкций типа ELSEIFможет быть несколько. Блок операторов n, следующий за ELSE, выполняется в том случае, если последовательные проверки всех выражений выше дали значение «Ложь». Конструкции ELSEIF и ELSE могут отсутствовать. Особенностью оператора является то, что слово THEN должно быть последним в строке, а слово ELSE – единственным. Слово ELSEIFзаписывается слитно, а слово ENDIF – через пробел.
Например,
IF age <7 THEN PRINT “дошкольник” ELSEIF age <17 THEN PRINT “школьник” ELSEIF age<23 THEN PRINT “студент” ELSEIF age <55 THEN PRINT “специалист” ELSE PRINT “пенсионер” END IF | INPUT C$ IF C$ >=“A” AND C$ <= “Z” THEN PRINT “ ПРОПИСНАЯБУКВА “ ; C$ ELSEIF C$ >= “a” AND C$ <= “z” PRINT “ СТРОЧНАЯБУКВА “; C$ ELSEIF C$ >= “0” AND C$ <= “9” PRINT “ЦИФРА”; C$ ELSE PRINT “ СПЕЦИАЛЬНЫЙ СИМВОЛ”; C$ ENDIF |
Дата добавления: 2016-05-31; просмотров: 2427;