
- •Var «Имя переменной »:set of «базовый тип » ;
- •Построение множеств :
- •Массив множеств.
- •Операция со множествами .
- •Операция включения и исключения одиночного элемента: реализуется с помощью .
- •Достоинство и недостатки множеств:
- •1 Способ : через определение соответствие типа
- •2 Способ : в разделе описания переменных:
- •Массивы записей
- •Записи со стартовыми значениями .
- •Вложенные записи
- •Оператор присоединения.
- •Вариантные записи .
- •Глобальные и локальные переменные
- •Вызов подпрограмм .
- •Формальные и фактические параметры .
- •Параметры подпрограмм.
- •Параметры – переменные.
- •Параметры –константы.
- •Функции
- •Обособленный вызов функций
- •Вложенные подпрограммы
- •Дальний и ближний вызов подпрограмм . Дальний вызов
- •Ближний вызов.
- •Подпрограмма с не типизированными параметрами .
- •Опережающее описание подпрограмм .
- •Рекурсивные подпрограммы
- •Внешние подпрограммы.
- •Процедуры и функции как параметры подпрограмм .
- •Расположение блоков программы в памяти .
- •Сегментный и адресный типы данных .
- •Динамическое распределение памяти
- •Динамические структуры используются в следующих случаях :
- •Ссылочный тип данных . Работа с адресами.
- •Синтаксис описания переменой ссылочного типа :
- •Основные операции с ссылочными переменными
- •Операция разыменования к указателям типа pointer .
- •Присваивание разыменование ссылок
- •Операция сравнивания
- •Процедуры работы с динамической памятью
- •Выделение блока памяти.
- •Процедура освобождения памяти
- •Выделение блока памяти из кучи
- •Процедура очистки памяти
- •Процедура маркировки адреса динамической памяти.
- •Процедура освобождения памяти
- •Функции анализа свободной памяти в «куче»
- •Управление размерами динамической памяти и размером стека.
- •Предопределенные указатели Администратор дп(кучи) .
- •Особенности при выделение блоков
- •Анализ ресурсов дп при размещение динамических данных.
- •Линейные динамические списки.
- •Определение элемента однонаправленного линейного списка.
- •Организация динамических списков и операции над ними.
- •1.Организация списка типа стек.
- •2.Формирование списка типа очередь(fifo).
- •Добавление элемента
- •Просмотр списка
- •Вставка элемента
- •Удаление узла из существующего списка.
- •Удаление текущего узла списка.
- •Удаление всего списка.
- •Открытие файла на запись (перезапись).
- •Буфер ввода-вывода.
- •Запись данных в файл.
- •Чтение данных из файла(read,readln).
- •Файлы ввода/вывода. Текстовые файлы. Процедуры работы с текстовыми файлами. Запись и чтение в текстовый файл информации различного типа (числовая, строковая). Процедуры работы с текстовым файлами.
- •Запись и чтение символьной информации.
- •Запись и чтение числовой информации
- •Запись и чтение строковой информации.
- •Типизированные файлы.
- •Доступ к компонентам файла осуществляется с помощью следующих процедур:
- •Добавление записи в типизированный файл
- •Удаление записи
- •Другие функции используемые при прямом доступе
- •Не типизированные файлы и операции над ними.
- •Структура модуля .
- •Var «библиотечные переменные »
- •Раздел реализации.
- •Компиляция модулей .
- •Подключение модулей
- •Закольцованность модуля.
Структура модуля .
Структура модуля отображает правило построения модуля ю
Модуль разделен на 4 части :
Unit
«имя модуля » - заголовок модуля
Interface
«Интерфейсная часть » - раздел объявлений
Implementation
«исполняемая часть » - раздел реализации
[Begin
«инициирующая часть »]
End; Раздел инициализации
Заголовок модуля . Заголовок определяет имя модуля , по которому модуль будет подключаться к программе . Имя модуля , стоящее после ключевого слова Unit должно совпадать с именем файла , в который помещается исходный текст модуля (совпадать может только 8 символов имении , так как файл определяется 8-ю символами ).Если текст модуля находится в файле Modul_1.Pas , то заголовок будет unit modul_1;
Раздел объявлений . Этот раздел модуля начинается с ключевого слова Interface . в этом разделе описываются типы , константы , переменные , которые будут доступны основной программе , в которой этот модуль будет подключаться и другим модулям , которые подключают исходный .
В той же части описываются заголовки процедур и функций , составляющие библиотеку подпрограмм . (Не допустимыми заголовки с директивами Interrupt и forward ). Перечисленные процедуры и функции могут использовать в тех программах где подключается модуль .
Если в модуле необходимо использовать константы , типы , объявленные в других модулях , то перечислением имен других модулей .
Unit Modul_1;
Interface
Uses modul_2;
Type
«библиотечные типы »
Const
«библиотечные константы»
Var «библиотечные переменные »
«Заголовки библиотечных процедур и функции »
Procedure P1(x:byte);
Procedure
P1 (x:byte);
Function F1 (ch:char):byte;
……………..
Раздел реализации.
Этот раздел модуля начинается с ключевого слова Implementation. Этот раздел состоит из тел процедур и функций , заголовки которых объявлены в разделены объявлений . Процедуры и функции , в этом разделе должны описываться в той же последовательности , что и в разделе объявлений. Причем заголовки процедур и функций могут описываться в сокращенном виде , то есть без указания параметров , но если заголовок описывается полностью , то список формальных параметров должен совпадать со списками параметров , в разделе объявлений.
В этот разделе могут также описываться типы , константы , переменные , которые буду считаться локальными по отношению к этому модулю и не будут доступны из программы, подключающей этот модуль .
Если в процедурах необходимо использовать переменные , объявленные в других модулях , то иcпользуется директива Uses
В этом разделе могут быть описаны процедуры и функции, которые не были объявлены в интерфейсной части (в разделе объявление ) раздела объявленный . Эти процедуры не будут доступны программе
, подключающей модуль , но будут доступны внутри модуля .
Unit modul_1;
Interface
….
Procedure P1 (x:byte);
Procedure
P1 (x,y:byte);
Function f1 (ch:char ):byte;
Implementation
Uses
Type «Локальные типы »
const «локальные константы»
Var
«локальные
переменные»
Procedure
P1;
Begin
«тело Р1»;
End;
Procedure P2;
Begin
«тело Р2»; «Библиотечные процедуры»
End;
Function F1;
Begin
«тело F1»;
End;
P
rocedure
L1;
Begin «Локальная процедура»
End;
Раздел инициализации. Этот Раздел является завершающей частью модуля .Часто эта часть в модуле отсутствует тогда модуль завершается словом End. .
Если же эта часть существует , то она начинается с ключевого Begin , после которого указываются операторы , составляющие фрагменты программы .
Эти операторы будут выполнятся перед выполнением программы , подключающей модуль . Обычно эта часть модуля используется для подготовки работы основной программы , в этой части инициализируются переменные , открываются (инициируются файлы) и т.д.
ЛЕКЦИЯ № 17
Модульность программ. Правила подключения модулей, загрузка в память, перекрытие библиотечных данных. Закольцованность модулей.