- •Оглавление
- •Введение
- •Основные этапы решения задач на эвм
- •Анализ постановки задачи и ее предметной области
- •Формальное решение задачи
- •Алгоритмизация
- •Основные средства представления алгоритмов
- •Визуальные алгоритмы
- •Процесс программирования
- •Языки программирования
- •Язык программирования Pascal
- •Среда программирования Delphi
- •Событийная модель ос Windows
- •Концепция объектно-ориентированного программирования
- •Delphi. Основные характеристики продукта
- •Высокопроизводительный компилятор в машинный код
- •Быстрая разработка приложения из прототипов
- •Структурное объектно-ориентированное программирование
- •Создание приложения в Delphi
- •Свойства в Delphi
- •События в Delphi
- •Основные понятия алгоритмического языка Состав языка
- •Основные символы
- •Элементарные конструкции
- •Выражения
- •Комментарии
- •Директивы компилятора
- •Тип данных
- •Приведение типов
- •Простые типы данных Целые типы данных
- •Битовая арифметика
- •Вещественные типы данных
- •Логический тип данных
- •Символьный тип данных
- •Структура программы
- •Константы
- •Переменные
- •Операторы Оператор присваивания
- •Оператор перехода
- •Структурные операторы
- •Операторы управления выполнением цикла
- •Оператор варианта
- •Подпрограммы
- •Перечисляемый тип данных
- •Интервальный тип данных
- •Структурированные типы данных Массивы
- •Строковой тип данных (строки)
- •Множества
- •Файлы. Файловый тип
- •Текстовые файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Последовательный и прямой доступ к компонентам файла
- •Процедурный тип
- •Вариантный тип
- •Адресный тип. Указатели
- •Динамические переменные
- •Динамические структуры данных
- •Динамические массивы
- •Очереди
- •Статические методы
- •Виртуальные методы
- •Динамические методы
- •Методы обработки сообщений
- •Конструкторы и деструкторы
- •Замещенные методы
- •Абстрактные методы
- •Свойства
- •Обработчики событий
- •Список рекомендуемой литературы
Директивы компилятора
Директивы компилятора предназначены для контроля процесса компиляции.
Синтаксис: {$директива}
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(<имя_типа>|<имя_переменной>), которая возвращает количество байт требуемое для хранения данных указанного типа или типа указанной переменной.
амя
- все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
- к любому порядковому типу может быть применена стандартная функция Ord(<имя_типа>), которая в качестве результата возвращает порядковый номер конкретного значения в типе <имя_типа>;
- к любому порядковому типу могут быть применены стандартные функции Pred(<имя_типа>) и Succ(<имя_типа>), которые возвращают предыдущее и последующее значения соответственно;
- к любому порядковому типу могут быть применены стандартные функции Low(<имя_типа>) и High(<имя_типа>), которые возвращают наименьшее и наибольшее значения величин типа <имя_типа>.
Раздел объявления типов:
type
<имя_типа>=<описание_типа>;
[…]
<имя_типа> имя нового определяемого типа данных или синонима для стандартного типа данных.
<описание_типа> зависит от вида объявляемого типа данных.
Например:
type
b=byte;
Тип b будет означать то же, что и стандартный целый тип byte
type
rec=record
a:real;
b:byte;
end;
Тип rec – новый определяемый тип запись, с указанной структурой.