Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯВУ лекции.doc
Скачиваний:
18
Добавлен:
27.10.2018
Размер:
592.38 Кб
Скачать

Директивы компилятора

Директивы компилятора предназначены для контроля процесса компиляции.

Синтаксис: {$директива}

Object Pascal содержит следующие основные директивы.

{$INCLUDE ‘1.txt’} – текст из файла ‘1.txt’ вставляется вместо директивы в программу и компилируется как часть программы.

{$RESOURCE ‘App.res’}

или

{$R ‘App.res’} – двоичные ресурсы из файла ‘App.res’ после компиляции включаются в исполняемый файл.

Директивы режима компиляции - позволяют использовать различные настройки компиляции в разных частях программы.

Например

{$WARNINGS OFF} – отключить предупреждающие сообщения при компиляции.

Директивы условной компиляции – позволяют в зависимости от настроек компилировать различные части программы.

Структура:

{$IF Defined(name)}

текст программы, компилируемый, если определено имя name

{$ELSEIF Version > 2.0 }

текст программы, компилируемый, если константа Version > 2.0

{$ELSE}

текст программы, компилируемый, в другом случае

{$IFEND}

Чтобы определить или удалить имя используются директивы:

{$DEFINE name} – определяет имя name

{$UNDEF name} – удаляет имя name

Тип данных

В математике принято классифицировать переменные в соответствии с некоторыми важными характеристиками. Производится строгое разграничение между вещественными, комплексными и логическими переменными, между переменными, представляющими отдельные значения и множество значений и так далее.

При обработке данных на ЭВМ такая классификация еще более важна. В любом алгоритмическом языке каждая константа, переменная, выражение или функция бывают определенного типа.

В языке Object Pascal существует правило: тип явно задается в описании переменной или функции, которое предшествует их использованию. Концепция типа языка Object Pascal имеет следующие основные свойства:

- любой тип данных определяет множество значений, к которому принадлежит константа, которые может принимать переменная или выражение, или вырабатывать операция или функция;

- тип значения, задаваемого константой, переменной или выражением, можно определить по их виду или описанию;

- каждая операция или функция требует аргументов фиксированного типа и выдает результат фиксированного типа.

Отсюда следует, что транслятор может использовать информацию о типах для проверки вычислимости и правильности различных конструкций.

Тип определяет:

-возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;

-внутреннюю форму представления данных в ЭВМ;

-операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня.

В языке Object Pascal существуют простые и структурированные типы данных, а также еще несколько видов типов данных, которые по своим свойствам не относятся ни к тем, ни к другим. Типы данных также классифицируются на стандартные и определяемые. Стандартные типы можно сразу использовать для объявления переменных. Для определяемых типов, их параметры и структуру необходимо сначала описать в разделе объявления типа и затем использовать для объявления переменных.

Простые

Порядковые

Целый Стандартный (С)

Символьный С

Логический С

Перечисляемый Определяемый (О)

Интервальный О

Вещественный С

Структурированные

Массив О

Запись О

Множество О

Файл С или О

Класс О

Строковой С

Адресный (указатель) С или О

Процедурный О

Изменяемый (Variant) С

Для любого типа данных или переменной применима стандартная функция SizeOf(<имя_типа>|<имя_переменной>), которая возвращает количество байт требуемое для хранения данных указанного типа или типа указанной переменной.

амя 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Простые порядковые типы характеризуются следующими свойствами:

- все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;

- к любому порядковому типу может быть применена стандартная функция Ord(<имя_типа>), которая в качестве результата возвращает порядковый номер конкретного значения в типе <имя_типа>;

- к любому порядковому типу могут быть применены стандартные функции Pred(<имя_типа>) и Succ(<имя_типа>), которые возвращают предыдущее и последующее значения соответственно;

- к любому порядковому типу могут быть применены стандартные функции Low(<имя_типа>) и High(<имя_типа>), которые возвращают наименьшее и наибольшее значения величин типа <имя_типа>.

Раздел объявления типов:

type

<имя_типа>=<описание_типа>;

[…]

<имя_типа> имя нового определяемого типа данных или синонима для стандартного типа данных.

<описание_типа> зависит от вида объявляемого типа данных.

Например:

type

b=byte;

Тип b будет означать то же, что и стандартный целый тип byte

type

rec=record

a:real;

b:byte;

end;

Тип rec – новый определяемый тип запись, с указанной структурой.