Результаты выполнения логических операций



Таблица 3.6. Результаты выполнения логических операций

Знак операции

Операция

Операнд 1

Операнд 2

Результат

not

Отрицание

False

True

True

False

and

Конъюнкция (логическое И)

False

False

False

False

True

False

True

False

False

True

True

True

or

Дизъюнкция (логическое ИЛИ)

False

False

False

False

True

True

True

False

True

True

True

True

xor

Исключающая дизъюнкция (исключающее ИЛИ)

False

False

False

False

True

True

True

False

True

True

True

False

Для установки отношений между двумя значениями вы можете использовать операции отношения или сравнения. В языке Object Pascal имеется шесть операций отношения:

  • = — равенство;
  • < — меньше;
  • > — больше;
  • <= — меньше или равно;
  • >= — больше или равно;
  • <> — не равно.

Если операция отношения истинна, то результатом ее выполнения является значение True, например истинным является выражение 4 < 10; в противном случае — результат False, например 12 <> 12.

Рассмотрим теперь такой немаловажный вопрос: в каком порядке выполняются те или иные операции? Если в сложном выражении записаны несколько операций подряд, то последовательность их выполнения определяется старшинством. Для того чтобы был четкий порядок выполнения операции, в языке Object Pascal существует такое понятие, как приоритет.

Приоритет определяет старшинство операций и служит для установления порядка выполнения операций. Операции с более высоким уровнем приоритета выполняются раньше остальных.

По приоритету все операции делятся на четыре уровня:

  • первый (наивысший) уровень приоритета. К нему относятся операции @
    и not;
  • второй уровень приоритета — операции *, /, div, mod, and, shl, shr и as;
  • третий уровень приоритета — операции +, -, or и хоr;
  • четвертый (самый низкий) уровень приоритета — операции =, <>, <, >, <=, >=, in и is.

Если подряд идут несколько операций с одинаковым приоритетом, то операции выполняются слева направо.

Строковые выражения

Строковые выражения содержат строковые операции и функции. Для строк в Object Pascal определена одна операция — операция объединения строк (конкатенации строк). Знаком операции конкатенации является +. Операндами для этой операции могут быть строки, упакованные строки, а также символы. В то же время, если один из операндов имеет тип WideChar, другой операнд должен быть длинной строкой. Результат операции объединения строк — строка символов. Этот результат совместим со всеми строковыми типами языка. В то же время, если количество символов после операции объединения строк превысит 255, то результатом станут первые 255 символов, а оставшиеся будут просто отброшены.

Для строк определены также следующие функции:

  • Concat (s1, s2, ..., sn) — возвращает строку, представляющую собой объединение строк s1 ... sn;
  • Copy(S; Index, Count) — возвращает строковое значение, являющееся подстрокой строки S, начиная с символа под номером Index, и длиной Count;
  • Length (s) — возвращает целое число, равное количеству символов в строке s;
  • Pos(Substr; s) — возвращает целое число, определяющее позицию первого символа, начиная с которого подстрока Substr входит в строку s. Если такой подстроки в строке нет, то результатом будет 0;
  • Trim(s) — возвращает строку, полученную в результате отбрасывания от строки s пробелов и управляющих символов в начале и конце строки;
  • TrimLeft(s) — возвращает строку, полученную в результате отбрасывания от строки s пробелов и управляющих символов в начале строки;
  • TrimRight(s) — возвращает строку, полученную в результате отбрасывания от строки s пробелов и управляющих символов в конце строки.

Кроме перечисленных выше функций существует несколько дополнительных функций для преобразования одних типов данных в другие:

  • DateToStr (Date) — возвращает строку, полученную в результате преобразования значения даты Date в строку;
  • FioatToStr (value) — возвращает строку, полученную в результате преобразования вещественного числа value в строку;
  • IntToStr (value) — возвращает строку, полученную в результате преобразования целого числа value в строку;
  • LowerCase (s) — возвращает строку, полученную в результате преобразования строки s в строку символов нижнего регистра (прописные буквы);
  • StrToDate(s) — возвращает значение типа "дата", полученное в результате преобразования строки s в значение даты;
  • StrToDateTime(s) — возвращает значение типа "дата и время", полученное в результате преобразования строки s в значение даты и времени;
  • StrToFloat (s) — возвращает значение вещественного типа, полученное в результате преобразования строки s в вещественное число;
  • StrToInt(s) — возвращает целочисленное значение, полученное в результате преобразования строки s в целое число;
  • StrToTime (s) — возвращает значение типа "время", полученное в результате преобразования строки s в значение времени;
  • TimeToStr (time) — возвращает строку, полученную в результате преобразования значения времени time в строку;
  • UpperCase (s) — возвращает строку, полученную в результате преобразования строки s в строку символов верхнего регистра (заглавные буквы);

Приведем примеры строковых выражений:

  • S:='Мама'; // Результат в переменной S - слово Мама
  • S:=s + ' мыла'; // Результат - Мама мыла
  • S:=s + Uppercase(' раму'); // Результат - Мама мыла РАМУ


Содержание раздела