Условные выражения

В языке Pascal есть ряд операций для работы с логическим типом данных - boolean.

Логическая переменная может принимать только два значения - True(истина) или False(ложь).

Операции сравнения

Сравнение - это простые условные выражения, которые сравнивают два логических значения, и возвращают True или False.

Free Pascal поддерживает такие операции сравнения:

Равно = (эквивалентно)

Возвращает True, если сравниваемые объекты равны, в ином случае возвращает False.

Не равно <>

Возвращает True, если сравниваемые объекты не равны, в ином случае - False.

Больше >

Возвращает True, если значение больше второго, иначе - False.

Больше равно >=

Возвращает True, если значение первой переменной больше или равно второй.

Меньше <

Возвращает True, если первое значение меньше второго, иначе - False.

Меньше равно <=

Возвращает True, если значение первой переменной меньше или равно второй.

Пример программы с операциями сравнения:

program Compare;
var
  x, y : integer;
begin
  x := 7;
  y := 42;
  writeln(x = y);  //Ложь
  writeln(x <> y); //Истина
  writeln(x > y);  //Ложь
  writeln(x < y);  //Истина
  readln;
end.

С помощью операций сравнения можно сравнивать различные типы данных - числа, символы, строки, логические значения, только сравниваемые переменные должны быть одного и того же типа.

Логические операции

Для составных условных конструкций применяются логические операции. В Паскале поддерживаются следующие логические операции and, or, not, xor.

Логическое отрицание not

Возвращает True, если выражение равно False, в ином случае возвращает True.

Логическое умножение and (конъюнкция)

Первый операнд Второй операнд Результат операции and
0 0 0
0 1 0
1 0 0
1 1 1

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

Первый операнд Второй операнд Результат операции or
0 0 0
0 1 1
1 0 1
1 1 1

Исключающее или xor (строгая дизъюнкция)

Первый операнд Второй операнд Результат операции xor
0 0 1
0 1 0
1 0 0
1 1 1

Логические операции применяются не только к значениям типа boolean и логическим выражениям. Их можно применять к числовым значениям. При этом они работают с представлениями чисел в двоичной системе. Поскольку операции работают с битами числа, они называются битовыми.

Пример битовых операций:

program BitOperation;
var
  a, b, c : Int8;
begin
  a := not 120;   //a = -121
  b := 30 and 21; //b = 20
  c := 42 or 21;  //c = 63
  writeln('a = ', a);
  writeln('b = ', b);
  writeln('c = ', c);
  readln;
end.     

not(17010) = not(011110002) = 100001112 = -12110

3010 and 2110 = 000111102 and 000101012 = 000101002 = 2010

4210 or 2110 = 001010102 and 000101012 = 001111112 = 6310

Приоритет операций

  1. Наибольший приоритет имеет оператор not;
  2. Второй по приоритету and;
  3. Дальше выполняется or;
  4. В завершение идут операторы сравнения < > <= >= = <>.

Смотрите также: