- •1.2.5. Лексика, синтаксис и семантика языков программирования
- •2.1. Алфавит языка
- •2.2. Структура программы
- •2.3. Концепция типа для данных
- •2.4. Стандартные типы данных
- •2.5. Перечисляемые и ограниченные типы
- •2.6. Константы
- •2.7. Переменные
- •2.8. Инициализация переменных
- •3.1. Оператор присваивания
- •3.2. Операторы ввода и вывода
- •3.3. Выражения
- •3.4. Составной оператор
- •3.5. Условный оператор
- •3.6. Оператор варианта
- •3.7. Цикл с предусловием
- •3.8. Цикл с постусловием
- •3.9. Цикл с параметром
- •3.10. Операторы завершения цикла
- •3.11. Метки и операторы перехода
2.3. Концепция типа для данных
В математике принято классифицировать переменные в соответствии с некоторыми важными характеристиками. Производится строгое разграничение между вещественными, комплексными и логическими переменными, между переменными, представляющими отдельные значения и множество значений и так далее.
При обработке данных на ЭВМ такая классификация еще более важна. В любом алгоритмическом языке каждая константа, переменная, выражение или функция бывают определенного типа.
Как и в стандарте языка Pascal, в Delphi существует правило: тип явно задается в описании переменной или функции, которое предшествует их использованию. Концепция типа имеет следующие основные свойства:
-
любой тип данных определяет множество значений, к которому принадлежит константа, которые может принимать переменная или выражение, или вырабатывать операция или функция;
-
тип значения, задаваемого константой, переменной или выражением, можно определить по их виду или описанию;
-
каждая операция или функция требует аргументов фиксированного типа и выдает результат фиксированного типа.
Транслятор может использовать информацию о типах для проверки вычислимости и правильности различных конструкций. Тип определяет:
-
возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
-
внутреннюю форму представления данных в ЭВМ;
-
операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня. И для стандарта языка Pascal, и для Delphi характерна разветвленная структура типов. Кроме того, предусмотрен механизм создания новых типов, поэтому общее количество типов, используемых в программе, может быть сколь угодно большим. В Delphi все типы можно разбить на группы следующим образом:
-
Простые:
-
Порядковые
-
Целые
-
Логические
-
Символьный
-
Перечисляемые
-
Ограниченные (тип-диапазон)
-
Вещественные
-
Дата-время
Структурированные:
-
Массивы
-
Записи
-
Множества
-
Файлы
-
Указатели
-
Строки
-
Процедурные типы
-
Варианты
-
Классы
К простым типам данных относятся стандартные, ограниченные и перечисляемые типы. Стандартные типы включают целые, действительные, символьный, логические и адресный типы. К типам, определяемым программистом, относятся перечисляемые и ограниченные типы.
Из группы стандартных типов можно выделить порядковые типы, которые характеризуются следующими свойствами:
-
все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
-
к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
-
к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
-
к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.