Результаты выполнения логических операций
Таблица 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(' раму'); // Результат - Мама мыла РАМУ