Любые
данные (константы, переменные, свойства, значения функций или выражений)
в Object Pascal характеризуются своими типами.
Тип
переменной указывается при её описании (объявлении в разделе Var),
а тип константы распознаётся компилятором автоматически в зависимости
от указанного значения (для именованной константы может быть явно
указан при объявлении в разделе Const).
Тип
определяет множество значений, которые могут принимать элементы данных,
и совокупность допустимых над ними операций, а также формат внутреннего
представления данных в памяти компьютера.
Object
Pascal характеризуется разветвлённой структурой встроенных типов данных
(рис.
2.2).
Порядковыми
типами называются те, в которых значения упорядочены и для каждого
из них можно указать предыдущее и последующее значения.
Простыми
являются типы, которые не содержат других типов, и данные этих типов
одновременно содержат только одно значение.
В Object
Pascal для хранения одних и тех же данных можно использовать разные
типы. Гибкое применение разных типов данных позволяет существенно
сэкономить объём памяти, занимаемой переменными. Чаще всего начинающие
программисты используют такие типы данных, как Integer (целый), Real
(вещественный), Boolean (логический), Char (символьный), String (строковый).
Целые
типы данных
Целые
типы данных используются для представления целых чисел (табл.
2.1).
Максимальную
производительность обеспечивают типы Integer и Cardinal.
Приведённые
в табл.
2.1 затраты памяти могут изменяться, поэтому, если требуется достоверно
знать затраты памяти для того или иного типа, следует пользоваться
функцией SizeOf.
Действительные
(вещественные) типы данных
Действительные
типы данных предназначены для хранения чисел, имеющих дробную часть
(табл.
2.2).
Максимальную
производительность обеспечивает тип Real. Тип Extended обладает максимальной
точностью. Тип Currency используется для представления денежных величин.
Булевы
(логические) типы данных
Переменные
булевых типов данных представляют логические значения true (истина)
и false (ложь).
Символьные
типы данных
Символьные
типы предназначены для хранения одного символа.
Символьный
тип CHAR представляет собой тип данных, предназначенный для хранения
одного символа (буквы, знака или кода). Множеством значений этого
типа являются символы, упорядоченные в соответствии с расширенным
набором символов кода ASCII. При вызове функции Ord(Ch), где Ch –
переменная символьного типа, возвращается порядковый номер символа.
Значение
для переменных типа CHAR задаётся в апострофах.
Ch:='a';
Также
можно задавать значение, используя знак #, указав код ASCII для символа.
Ch:=#65
В Object
Pascal определён символьный тип Char. К символам применимы следующие
функции:
Chr(x):Char
– возвращает символ с кодом, равным целочисленному выражению х;
Upcase(c):Char
– преобразует символ к верхнему регистру.
Структурные
типы данных
К структурным типам относятся:
-
строки;
-
массивы;
-
множества;
-
записи;
-
файлы;
-
классы.
Строки
Строки
обеспечивает тип String, который представляет строку с максимальной
длиной около 2*1031 символов.
Тип
string (строка) широко используется для обработки текстов. Он во многом
похож на одномерный массив символов ARRAY[0..N] of CHAR.
Однако,
в отличие от последнего, количество символов в строке может меняться
от 0 до N, где N – максимальное количество символов в строке. Строка
объявляется типа string[N]. Для обращения к отдельному символу строки
можно указать название строковой переменной и номер (позицию) этого
символа в квадратных скобках, например, str [2].
Массивы
Одним
из определяющих свойств структурированных типов данных является то,
что они состоят из нескольких элементов.
Любой
из структурированных типов данных (массивы, записи, множества, файлы)
характеризуется множественностью образующих этот тип элементов, т.
е. переменная или константа структурированного типа имеет несколько
компонент.
Массивы
– упорядоченные последовательности однотипных объектов, обозначаемые
одним именем. Необходимость в использовании массивов возникает, когда
требуется связать и использовать ряд родственных величин.
Например,
многократные замеры температуры воздуха в течение года удобно рассматривать
как совокупность вещественных величин, объединённых в один сложный
объект – массив измерений. Доступ к содержимому конкретного элемента
массива осуществляется по его номеру (индексу).
Индексная
переменная, служащая для указания отдельного элемента массива, должна
быть простого типа. Количество индексных позиций определяет мерность
массива (одномерный, двумерный и т. д.). Различают массивы статические
и динамические.
Статический
массив представляет собой массив, границы индексов и, соответственно,
размеры которого задаются при объявлении – известны до компиляции
программы.
Наряду
с термином «массив», часто можно встретить термины «матрица», «вектор»,
«таблица». Суть этих терминов одна и та же. При описании массива используются
зарезервированные слова ARRAY и OF.
За словом
ARRAY в квадратных скобках указывается тип «диапазон». Он задаётся
левой и правой границами изменения индекса массива.
За словом
OF указывается тип элементов, образующих массив.
<идентификатор>:ARRAY[нач.индекс.. кон.индекс] OF <тип компонент>
Пример:
Var
A:ARRAY[1..10] of real ; //статический одномерный массив;
B: ARRAY[1..10, 1..100] of real; //статический двумерный массив.
Множества
Множества
представляют собой совокупность выбранных из предопределённого набора
значений. Все элементы множества принадлежат одному порядковому типу,
число элементов во множестве не может превышать 256.
Формат
описания множественного типа:
Set of <тип элементов>;
Переменная
множественного типа может содержать любое количество элементов своего
множества – от нуля до максимального. Значения множественного типа
заключаются в квадратные скобки. Пустое множество обозначается [].
Выражения
При
выполнении программы осуществляется обработка данных, в ходе которой
с помощью выражений вычисляются и используются различные значения.
Выражение
представляет собой конструкцию, определяющую состав данных, операции
и порядок выполнения операций над данными.
Выражение
состоит из операндов, знаков операций, круглых скобок.
Операнды
представляют собой данные, над которыми выполняются действия. Операндами
могут быть константы, переменные, элементы массивов, обращения к функциям
и свойства компонентов.
Операции
определяют действия, которые производятся над операндами.
Операции
могут быть унарными и бинарными.
Унарная
операция относится к одному операнду, и её знак записывается перед
операндом, например, -х.
Бинарная
операция выражает отношение между двумя операндами, и её знак записывается
между операндами, например, х+у.
Круглые
скобки используются для изменения порядка выполнения операций.
В простейшем
случае выражение может состоять из одной переменной, константы, обращения
к функции или свойства компонента.
В зависимости
от типов операций и операндов, выражения могут быть арифметическими,
логическими и строковыми.