- •10.Алфавит Турбо Паскаля. Идентификаторы. Стандартные идентификаторы Турбо Паскаля. Служебные слова. Алфавит
- •Имена и идентификаторы
- •12.Понятие константы. Типы констант в Турбо Паскале. Раздел констант программы на Турбо Паскале.
- •13.Переменная. Раздел переменных программы на Турбо Паскале. Понятие типа значения. Раздел типов программы на Турбо Паскале.
- •Раздел типов
- •14.Классификация типов значений в Турбо Паскале. Стандартные и упорядоченные типы.
- •15.Стандартный тип символьный. Кодирование символьной информации. Кодировочные таблицы. Символьные типы
- •16.Стандартный тип целый. Операции и стандартные функции над целыми в Турбо Паскале. Дополнительные целые типы Турбо Паскаля. Целые типы
- •17.Стандартный тип логический. Логические операции.
- •18.Стандартный тип вещественный. Операции и стандартные функции над значениями вещественного типа. Дополнительные вещественные типы Турбо Паскаля. Вещественные типы
- •20.Понятие оператора в алгоритмическом языке. Классификация операторов Турбо Паскаля.
- •II группа – производные операторы. К производным операторам относятся: составной оператор, выбирающий оператор, оператор цикла и оператор присоединения.
- •21.Операторы присваивания. Типы операторов присваивания в Турбо Паскале.
- •24. Условные операторы: полный и сокращенный.
- •25.Оператор варианта Case.
- •27.Операторы цикла с параметром. Использование операторов цикла с параметром для вычисления конечных сумм и произведений.
- •28.Оператор цикла с предусловием.
- •29.Оператор цикла с постусловием.
- •31.Операторы перехода. Метки операторов. Раздел меток программы на Турбо Паскале. Пустой и составной операторы. Оператор перехода
- •Пустой оператор
- •Раздел меток
- •55.Модули в Турбо Паскале. Структура модуля.
Раздел типов
В программе наряду со встроенными типами можно вводить и другие типы значений. В отличие от встроенных каждый такой тип должен быть явно задан. Ему дается имя, после чего для указания требуемого типа достаточно указать его имя.
<раздел типов>::=<пусто>| type <описание типа>{;<описание типа>};
<описание типа>::=<имя типа>=<тип>
<тип>::=<имя типа>|<задание типа>
В алгоритмическом языке с каждым типом связаны:
структура программного элемента, т.е. интерпретация памяти;
множество допустимых значений;
совокупность возможных операций с ним.
Задавая тип, нельзя задать операции над его данными.
Ранее были рассмотрены стандартные типы значений, которые определены самим языком и не должны вводиться в программе. Программист может вводить в употребление и другие, удобные для него типы значений. Простейшие из них – перечислимые и ограниченные типы. Оба эти класса относятся к скалярным типам, т.е. каждое их значение состоит из единственного данного (является тривиальной структурой).
14.Классификация типов значений в Турбо Паскале. Стандартные и упорядоченные типы.
Все имеющиеся в Паскале типы значений, или просто типы, можно разбить на две группы: основные (простые) и производные. Основные типы являются элементарными и каждое значение этих типов состоит из единственного данного, т.е. является тривиальной структурой данных. Все основные типы данных, кроме ссылочного типа, принято называть скалярными. Скалярные типы либо относятся к стандартным, которые зафиксированы в языке, либо определяются программистом с помощью соответствующих заданий типов. Поскольку для каждого определяемого типа в программе должно содержаться явное его задание (описание), то такие типы иначе называют описанными скалярными типами. Стандартные типы в программе описываться не должны.
В языке OBJECT PASCAL имеется 7 групп основных типов:
целые;
логические (булевы);
символьные;
перечни;
интервальные (диапазоны);
вещественные;
дата-время.
Среди простых типов перечень и интервальный тип определяются программистом, а остальные – встроенные. Первые пять групп типов относятся к порядковым.
Порядковые типы обладают тем свойством, что среди элементов соответствующего множества допустимых значений установлен линейный порядок, т.е. относительно любых двух различных его элементов определено, какой из них предшествует другому. Для порядковых типов существует ряд встроенных стандартных функций:
Операции |
Выполняемые действия |
Low(T) |
Минимальное значение типа T |
High(T) |
Максимальное значение типа T |
Ord(X) |
Порядковый номер значения X |
Pred(X) |
Возвращает предыдущее значение для X |
Succ(X) |
Возвращает следующее значение для X |
Dec(X) |
Уменьшает X на единицу |
Inc(X) |
Увеличивает X на единицу |
Производные типы образуются из других типов, которые могут быть основными или производными. В общем случае значение производного типа является нетривиальной структурой данных. В Паскале любой производный тип, используемый в программе, должен быть определен в ней, а так как определение типа производится с помощью описания типа, то все производные типы принято относить к описанным.
Следует подчеркнуть, что любой описанный тип, т.е. тип, ввоиый в употребление программистом, определяет лишь множество знаеий этого типа – набор же допустимых операций над ними и правила упорядочения зафиксированы в языке и не могут быть изменены по желанию программиста.
К структурированным производным типам относятся:
множества;
массивы;
записи;
файлы;
объектный тип (тип класса);
тип ссылки на класс.
Каждый тип должен быть каким-либо образом специфицирован для выделения его среди всех возможных типов. В ряде языков для этой цели используются спецификаторы из числа служебных слов. В Паскале же в качестве спецификаторов типов используются не служебные слова, а обычные имена (идентификаторы). Это связано с тем, что в Паскале набор допустимых типов жестко не фиксируется, так что заранее просто невозможно зафиксировать соответствующий набор служебных слов. Поэтому при введении в употребление нового типа значений с помощью соответствующего описания этому типу дается некоторое имя, которое и выполняет роль спецификатора типа.
Для достижения единообразия и большего удобства, за стандартными типами (не требующими явного описания в программе) закреплены стандартные имена. В стандарте Паскаля предусмотрено четыре стандартных типа значений: целый, вещественный, символьный и логический.