- •Контрольные вопросы экзамену
- •2 Семестр
- •Группы символов языка Паскаль.
- •Структура языка Паскаль.
- •Понятие лексемы языка, категории лексем.
- •Зарезервированных слова в языке Паскаль.
- •Понятие идентификатора, допустимая длина идентификаторов, разновидности идентификаторов, стандартные идентификаторы.
- •Формы записи чисел в языке паскаль.
- •Использование комментариев.
- •Символы используемые в качестве разделителей лексем.
- •Разделы описаний и объявлений языка Паскаль.
- •Раздел операторов.
- •Виды констант.
- •Стандартные типы языка паскаль.
- •Интервальный и перечисляемый типы данных.
- •Порядковые типы и их свойства.
- •Совместимость типов данных.
- •Выражения и их использование.
- •Операции и операнды, приоритет и классификация операций.
- •Синтаксис выражений
- •Операции
- •Арифметические операции
- •Унарные арифметические операции
- •Логические операции
- •Булевские операции
- •Операция со строками
- •Операции над символьными указателями
- •Операции над множествами
- •Операции отношения
- •Сравнение простых типов
- •Сравнение строк
- •Сравнение упакованных строк
- •Сравнение указателей
- •Сравнение символьных указателей
- •Сравнение множеств
- •Проверка на принадлежность к множеству
- •Операция @
- •Использование операции @ для переменной
- •Использование операции @ для процедуры или функции или метода
- •Стандартные функции языка Паскаль. Арифметические функции
- •Функции преобразования типов
- •Функции для величорядкового типа
- •Функция ord
- •Функция chr
- •Функции succ и pred
- •3 Семестр
Сравнение простых типов
Когда операции =, <>, <, >, >= или <= применяются для операндов простых типов, то это должны быть совместимые типы. Однако, если один операнд имеет вещественный тип, то другой может быть целого типа.
Сравнение строк
Операции отношения =, <>, <, >, >= или <= могут применятся для сравнения строк согласно порядку расширенного набора символов кода ASСII. Любые два значения строковых данных можно сравнить, поскольку все значения строковых данных совместимы.
Значения символьного типа совместимы со значениями строкового типа, и при их сравнении символьное значение обрабатывается как строковое значение с длиной 1. Когда со значением строкового типа сравнивается упакованное строковое значение из N элементов, то оно обрабатывается, как значение строкового типа длиной N.
Сравнение упакованных строк
Операции отношения =, <>, <, >, >= или <= могут применятся также для двух упакованных значений строкового типа, если они содержат одинаковое число элементов. Если число элементов равно n, то операция соответствует сравнению двух строк, каждая из которых имеет длину n.
Сравнение указателей
Операции = и <> могут использоваться для сравнения операндов типа указатель. Два указателя равны только в том случае, если они ссылаются на один и тот же объект.
Сравнение символьных указателей
При разрешении по директиве компилятора {$X+} расширенного синтаксиса операции =, <>, <, >, >= или <= могут применятся к значениям PChar. Заметим, однако, что эти операции отношения предполагают, что два сравниваемые указателя ссылаются на один и тот же символьный массив.. По этой причине в сравнении участвуют только смещения двух значений-указателей. Если указатели ссылаются на разные символьные массивы, результат будет не определен.
Сравнение множеств
Если операндами являются множества a и b, то при их сравнении получаются следующие результаты:
1. Выражение a=b истинно (= True) только когда a и b содер жат одни и те же элементы, в противном случае a<>b.
2. Выражение a = b истинно, когда каждый элемент множества а является также элементом множества b.
3. Выражение a = b истинно, когда каждый элемент множества b является также элементом множества a.
Проверка на принадлежность к множеству
Операция in возвращает истинное значение (True), когда значение элемента порядкового типа является элементом операнда множественного типа, в противном случае он возвращает значение False.
Операция @
Операция @ используется в адресном коэффициенте для вычисления адреса переменной, процедуры, функции или метода. В Таблице 6.9 показан операнд и типы результата.
адресный коэффициент
¦ ---- ---------------------- L--¦ @ +--T-----¦
ссылка не переменную +----------------------->
L---- ¦ L----------------------- ^
¦ -------------------------- ¦
+---->¦ идентификатор процедуры +-----------+
¦ L-------------------------- ¦
¦ ------------------------ ¦
+---->¦ идентификатор функции +-------------+
¦ L------------------------ ¦
¦ ---------------------------------- ¦
L---->¦ уточненный идентификатор метода +---
L----------------------------------
Операция создания указателя Таблица 6.9
-------------T-----------T-----------------------T-------------¦
Операция ¦ Действие ¦ Типы операндов ¦Тип результата¦
+------------+-----------+-----------------------+--------------+
¦ @ ¦ Получение ¦ Ссылка на переменную, ¦ Указатель ¦
¦ ¦ указателя ¦ процедуру или иденти- ¦ (совмести- ¦
¦ ¦ ¦ фикатор функции. ¦ мый с nil) ¦
L------------+-----------+-----------------------+---------------
Операция @ возвращает адрес операнда, то есть строит значение-указатель, ссылающееся на этот операнд.