Логические выражения
Как известно, логическая константа может принимать только два значения: FALSE (ложь) и TRUE (истина). Переменные логического типа объявляются ключевым словом BOOLEAN в разделе описания переменных VAR и также могут принимать только два значения FALSE или TRUE (FALSE<TRUE).
Для данных логического типа значению FALSE соответствует в компьютере число 0, значению TRUE – число 1, которые записываются в ячейку памяти длиной 1 байт [6, 7].
Для значений TRUE и FALSE справедливы следующие функции:
ord (FALSE) = 0; ord (TRUE) = 1;
succ (FALSE) = TRUE;
pred (TRUE) = FALSE.
Простым логическим выражением называется выражение, содержащее только логические операнды (константы или переменные типа Boolean). В сложных логических выражениях кроме логических операндов используются бинарные и/или унарные логические операции, а также стандартные функции (табл. 2) и операции отношений: <, <=, >, >=, =, <> .
Операции отношения также относятся к операциям логического типа. Их можно использовать для проверки соотношений между переменными и константами типов real, integer, char, string. Например: a < b, x>=0, x=y и т.д.
К бинарным операциям относятся логические операции: AND (логическое "И"), OR (логическое "ИЛИ"), XOR ("исключающее ИЛИ"), а к унарным - операция NOT (отрицание "НЕ").
В логических выражениях без скобок согласно приоритету логических операций (см. табл. 1) сначала выполняется операция NOT, затем AND, после неё OR и XOR , а в последнюю очередь - операции отношений.
Логические операции используют понятия алгебры логики (булевой алгебры). Они применяются в задачах, когда нужно проверить какое-либо сложное условие.
Операция конъюнкции and (логическое умножение) в логическом выражении A and B дает результат true (истина), если A и B имеют значение true, иначе во всех остальных случаях – false (ложь).
Операция дизъюнкции or (логическое сложение) в логическом выражении A or B дает результат false, если A и B одновременно имеют значение false, во всех остальных случаях – true.
Операция инверсии not (логическое отрицание) в логическом выражении not A дает результат true, если A = false и, наоборот, при A = true выражение not A примет значение false.
Для переменных логического типа определена также операция присваивания.
Пример:
VAR С, D: REAL;
X, Y, A, B: BOOLEAN;
BEGIN
X :=A OR B;
Y := (C>0) AND (C<D); …
END.
Логический результат дает стандартная функция ODD(x) проверки на нечетность числа x, функции EOLN (f) проверки конца строки и EOF(f) определения конца файла f.
Условный оператор IF
Условный оператор позволяет проверить некоторое условие и в зависимости от результата проверки этого условия выполнить то или иное действие, т.е. создать ветвление в программе.
Структура условного оператора в полной форме имеет следующий вид:
IF <условие> THEN <оператор1> ELSE <оператор2>;
(если) (то) (иначе)
где <условие> - это выражение логического типа, которое может принимать только два значения: TRUE (истина) или FALSE (ложь).
Правило выполнения условного оператора. Вначале вычисляется значение <условия>, стоящего за IF. Если результат условия истинен (TRUE), то выполняется только <оператор1>, а <оператор2> пропускается и выполняется следующий оператор. В противном случае выполняется <оператор2>, а <оператор1> пропускается и выполняется следующий оператор в программе.
Структура условного оператора в сокращенной форме следующая:
IF <условие> THEN <оператор1>;
Здесь в случае ложности <условия>, стоящего за IF, пропускается <оператор1> и выполняется следующий за ним оператор программы.
В качестве <оператор1> или <оператор2> по синтаксису может выполняться только один оператор Паскаля. Для выполнения после THEN или после ELSE неcкольких операторов применяется составной оператор с операторными скобками ( BEGIN … END ) .
Несколько условных опеpатоpов могут быть вложены друг в друга. Ниже приведен пример вложения для трёх условных опеpатоpов:
IF <условие1> THEN
IF <условие2> THEN
IF <условие3> THEN <оператор3> ELSE <оператор4>
ELSE <оператор2>
ELSE <оператор1>;
Дата: 2019-02-02, просмотров: 224.