Понятие логического выражения


Логическое выражение, в отличие от арифметического, содержит операции отношения (=, <, >, <=, >=, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание - 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;


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

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

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

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