- •Системное программное обеспечение (pascal)
- •2. Статические и динамические структуры
- •3. Динамическое размещение данных
- •4. Указатели
- •4.1. Описание указателя.
- •4.2. Выделение динамической памяти.
- •4.3. Задание значения указателю.
- •4.4. Операция разыменования.
- •4.5. Освобождение динамической памяти.
- •4.5.3. Освобождение фрагментов динамической памяти.
- •5. Динамическая структура – список
- •5.1. Линейные списки.
- •5.1.1. Особенности линейных списков.
- •5.1.2. Линейный односвязный список.
- •6.1.2. Основные операции над стеком.
- •7. Обратная польская запись (постфиксная запись) и ее использование
- •7.1. Обратная польская запись.
- •7.2. Метод Дейкстра.
- •7.2.1. Приоритеты операций.
- •7.2.2. Использование стека.
- •II. Контрольные вопросы
- •III. Последовательность выполнения индивидуального задания.
Системное программное обеспечение (pascal)
Лабораторный курс
доцента кафедры информационных систем и компьютерных технологий
Пановой Т.В. (panova_tat@rambler.ru)
Лабораторная работа №1
Тема:
Динамические структуры и организация данных
Цель: формирование навыков
использования и обработки динамических структур данных – списков;
использования организации данных – стека, простой очереди, дека;
оформления подпрограмм обработки в отдельном модуле.
I. Теоретические сведения.
1. Модульное программирование
При проектировании программ больших размеров применяется технология модульного программирования, которая предполагает выделение групп подпрограмм в отдельные библиотеки – модули, компилируемые отдельно от основной программы.
1.1. Понятие модуля.
Модуль – это автономно компилируемая программная единица, включающая в себя раздел объявлений программных ресурсов, предназначенных для использования другими модулями и программами, раздел описаний объявленных подпрограмм и локальных объектов модуля и инициирующую часть, операторы которой исполняются перед началом работы программы, использующей этот модуль.
Модуль, в отличие от программы, не может быть запущен на выполнение самостоятельно.
1.2. Использование модуля.
Для использования библиотеки (модуля) после заголовка программы и глобальных директив компилятора задается специальное предложение
Uses <список_имен_модулей>;
Исходный текст модуля располагается в файле с расширением .pas. Транслируется модуль отдельно от программы и помещается после трансляции в файл с расширением .tpu, а затем на этапе компоновки (сборки) модуль подключается к оттранслированной программе.
1.3. Структура модуля.
1.3.1. Заголовок модуля состоит из зарезервированного слова Unit и следующего за ним имени модуля:
Unit <имя_модуля>;
1.3.2. Интерфейсная часть начинается с зарезервированного слова Interface, содержит объявления всех глобальных объектов модуля, доступных программам и модулям, к которым подключена данная библиотека.
Interface
<объявления>
1.3.3. Часть реализации начинается с зарезервированного слова Implementation, следуют описания всех подпрограмм, объявленных в интерфейсной секции, а также в ней могут быть объявлены локальные для модуля объекты:
Implementation
<описания>
1.3.4. Часть инициализации является необязательной, начинается с операторной скобки begin и состоит из операторов, исполняемых до передачи управления основной программе и обычно используемых для подготовки к ее работе.
Заканчивается модуль операторной скобкой end с точкой.
2. Статические и динамические структуры
Структура данных – это совокупность физически и логически взаимосвязанных данных.
Статическая структура данных – это совокупность фиксированного количества данных постоянной размерности с неизменным характером связей между ними.
Переменные статических структур могут изменять только свое значение, а их структура и множество допустимых значений остаются неизменными, поэтому размер памяти, занимаемой такими переменными, остается постоянным.
Динамическая структура данных – это совокупность данных, количество, размерность и характер взаимосвязей между которыми могут меняться в процессе выполнения программы, поэтому размер памяти, занимаемый такой структурой, заранее может быть неизвестен.