Логические операции. операция значение not Отрицание and Логическое умножение (коньюнкция) И or Логическое сложение (дизьюнкция)
операция
| значение
| not
| Отрицание
| and
| Логическое умножение (коньюнкция) И
| or
| Логическое сложение (дизьюнкция) ИЛИ
| xor
| Исключающее ИЛИ
| =
| равно
| <>
| не равно
| <
| меньше
| <=
| не больше
| >
| больше
| >=
| не меньше
|
ПОРЯДОК ВЫПОЛНЕНИЯ ОПЕРАЦИЙ
Операция
| Приоритет
| Вид операции
| @, NOT
| Первый (высший)
| Унарная операция
| *, /, DIV, MOD, AND
| Второй
| Операция типа умножение
| +, -, OR, XOR
| Третий
| Операция типа сложения
| =, <>, <, >, <=, >=, IN
| Четвертый (низший)
| Операция отношения
|
Для определения старшинства операций имеется четыре основных правила:
1. Операнд, находящийся между двумя операциями с различными приоритетами, связывается с операцией, имеющей более высокий приоритет.
2. Операция, находящаяся между двумя операциями с равными приоритетами, связывается с той операцией, которая находится слева.
3. Выражение, заключенное в скобки, перед выполнением вычисляется как отдельный операнд.
4. Операции с равным приоритетом производятся слева направо с возможным регулированием порядка выполнения скобками.
Типы данных
Паскаль имеет развитую систему типов данных. Их принято делить на группы:
1. Простые типы:
▪ скалярные:
- целые;
- вещественные;
- символьные;
- булевский (логический) тип;
- перечислимые;
▪ ограниченные;
2. Составные типы:
▪ регулярные (массивы);
▪ комбинированные (записи);
▪ файловые;
▪ множественные;
▪ строковые;
▪ объекты;
3. Ссылочные типы;
4. Процедурные типы.
Базовыми в системе типов являются простые типы. Составные типы по определенным правилам строятся из простых. Ссылочные типы образуются из любых других типов. Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из простых. Первичными в иерархии типов являются скалярные типы, представляющие традиционные в языках программирования множества значений (целые, вещественные, символьные, булевские.
Таблица Скалярные типы
Название
| Идентификатор
| Множество допустимых значений
| Размер памяти
| Целые типы
| Короткий целый
| Shortint
| -128..127
| 1 байт
| Байтовый
| Byte
| 0..255
| 1 байт
| Слово
| Word
| 0..65 535
| 2 байта
| Целый
| Integer
| -32 768..32 767
| 2 байта
| Длинный целый
| Longint
| -2147483648.. 2147483647
| 4 байта
| Вещественные типы
| Вещественный
| Real
| -1,7х1038.. -2,9х10-39,
| 6 байт
|
|
| 2,9x10-39.. 1,7х1038
|
| С одинарной точностью
| Single
| -3,4x1038.. -1,5x10-45,
| 4 байт
|
|
| 1,5х1045.. 3,4х1038
|
| Символьный
| Символьный
| Char
| Символы из расширенного набора символов кода ASCII
| 1 байт
| Булевский
| Булевский
| Boolean
| False, True
| 1 байт
| Вопросы для повторения:
1. Какого типа будет результат деления 15/4 (16/4, 16.4/2)?
2. Какие из приведенных ниже записей вещественных чисел являются неправильными и почему?
б) -6.1
е) 0.1Е-5
к) 0.31
| 3. Определить тип результата следующих выражений:
а) I*I+J*J+2*K/2; б) X<Y
в) SIN(X)+2*COS(Y)+Z; г) I+SQRT(J), если известно, что I,J, K:INTEGER; X, Y, Z:REAL.
4. Вычислить значения выражений, если А =2,5; В=7,8; С= -17,3; М=5; Х=8,7; E=TRUE:
а) (А+В)/С*М
б) 2+Х*Х/(Х+(А+В)/5)
в) (А<В) AND (X+A<B) OR (C<M) OR Е
5. Какого типа будет значение выражения: 10/2 + 5?
6. Можно ли утверждать, что в Паскале значение выражения (1/3)*3–1 равно нулю?
7. Укажите порядок выполнения операций в выражении: –a mod b + a div b*c.
8. Есть ли разница (с точки зрения языка Паскаль) между числами 100 и 100.0, между 20 и 2Е1?
Не нашли, что искали? Воспользуйтесь поиском:
|