
- •1.Язык Object Pascal. Алфавит языка. Операторы. Выражения. Структура программы.
- •2. Простые типы данных. Преобразование типов. Приведение типов. Составной оператор.
- •3. Управляющие конструкции языка.
- •3.1 Безусловные конструкции
- •3.2 Условные конструкции.
- •3.3 Циклические конструкции.
- •4. Комментарии в крограммах. Директивы.
- •5. Структурные типы данных.
- •5.3 Записи.
- •6. Подрограммы.
- •6.1 Процедуры и функции. Состав. Синтаксис.
- •6.2 Список формальных параметров.
- •6.3 Параметры-значения. Параметры-переменные. Параметры-константы. Нетипизированные параметры.
- •6.4 Передача массивов в подпрограммы. Параметры типа открытый массив.
- •6.5 Локальные переменные. Область видимости. Время жизни.
- •6.6 Рекурсия. Виды рекурсии. Опережающее описание подпрограмм.
- •6.7 Процедурные типы
- •7. Модули
- •7.1 Назначение. Синтаксис.
- •8. Файлы
- •8.1 Общий алгоритм работы с файлом.
- •8.2 Подпрограммы для открытия файла.
- •8.3 Типизированные файлы. Режимы доступа к файлу. Переменная Filemode.
- •8.4 Обработка ошибок ввода-вывода.
- •8.5 Нетипизированные файлы.
- •8.6 Текстовые файлы
- •9. Динамическая память и указатели.
- •9.1 Указатель. Синтаксис. Допустимые операции.
- •9.2 Типизированные и нетипизированные указатели.
- •9.3 Операция резадресации (разыменования) указателя. Операции взятия адреса. Пустой указатель.
- •10. Типы с управляемым временем жизни.
- •10.1 Длинные строки. Механизм подсчета ссылок.
- •12.2 Динамические массивы.
- •11. Динамические структуры данных. Связные списки. Вставка и удаление узлов.
- •11.1 Односвязные списки. Структура. Особенности обработки.
- •11.2 Двусвязные списки
- •11.3 Кольцевые списки.
- •12. Отладка программ.
- •12.1 Виды программных ошибок.
- •12.2 Отладка программ.
- •12.3 Принципы контрактного программирования.
- •12.4 Принципы модульного тестирования.
- •12.5 Трассировка. Точки контрольного останова
- •12.6 Ведение протокола программы.
- •12.8 Основные принципы оформления исходного кода программы.
- •13. Алгоритмы
- •13.1 Алгоритм последовательного поиска.
- •13.2 Алгоритм бинарного поиска.
- •13.3 Алгоритм интерполирующего поиска.
- •13.4 Алгоритм вставки элемента в отсортированный массив.
- •13.5 Алгоритм поиска минимального (максимального) элемента массива.
- •13.6 Алгоритм пузырьковой сортировки.
- •13.7 Алгоритм сортировки перемешиванием.
- •13.8 Алгоритм сортировки прочесыванием.
- •13.9 Алгоритм сортировки методом выбора.
- •13.10 Алгоритм сортировки методом вставок.
- •13.11 Алгоритм сортировки методом Шелла.
- •13.12 Алгоритм сортировки слиянием.
- •13.13 Алгорим быстрой сортировки (сортировка Хоара).
8.3 Типизированные файлы. Режимы доступа к файлу. Переменная Filemode.
Типизированные файлы–это такой вид файлов, в котором содержатся записи одного типа и фиксированной длины. Часто используется или для организации небольших баз данных, хранения конфигураций, иногда для импорта/экспорта в специальных форматах.Это файлы произвольного доступа. Это означает, возможность чтения или записи любого элемента файла в произвольном порядке. По сути, типизированный файл аналогичен одномерному массиву, только этот массив располагается не в оперативной памяти.
Типизированный файл содержит специальный указатель файла, он определяет текущую позицию в файле (текущий активный элемент). Любые операции чтения или записи производятся с активным элементом (с текущей позицией), после выполнения операции записи или чтения указатель файла смещается на один элемент вправо. Положением указателя файла можно управлять, с помощью процедуры seek.
Типизированный файл описывается следующим образом:
var FileVar: file of <тип>;
Здесь тип это или предопределенный или пользовательский типы. В качестве типов не могут фигурировать динамические структуры, такие как динамические массивы, длинные строки или любые указатели.
Подпрограммы для работы с типизированными файлами
function read (var F; V1, V2, …);
|
Читает из типизированного файла F последовательность переменных V1, V2, … того же типа, что и компоненты файла.
|
function write (var F; V1, V2, …);
|
Записывает переменные V1, V2, … в типизированный файл
|
procedure Seek (var F; N: Longint);
|
Смещает указатель файла F к требуемому компоненту: N – номер компонента файла.
|
function FileSize (var F):LongInt;
|
Возвращает количество компонентов файла.
|
function FilePos (var F):LongInt;
|
Возвращает текущую позицию в файле.
|
procedure Truncate(var F);
|
Удаляет все компоненты из файла, начиная с текущей позиции.
|
Режим, в котором будет открыт файл при использовании процедуры Reset, определяется значением переменной Filemode, описанной в модуле System.
Режимы работы с файлом, определяемые переменной Filemode:
fmOpenRead
|
Файл открывается только для чтения (значение 0).
|
fmOpenWrite
|
Файл открывается только для записи (значение 1).
|
fmOpenReadWrite
|
Файл открывается для чтения и записи (значение 2).
|
Режимы общего доступа, определяемые переменной Filemode
fmShareExclusive
|
Запрет на чтение и на запись для других процессов.
|
fmShareDenyWrite
|
Запрет на запись для других процессов.
|
fmShareDenyNone
|
Полный доступ для других процессов.
|