
- •Информатика и информационные технологии. Конспект лекций
- •Оглавление
- •Лекция № 1. Введение в информатику
- •1. Информатика. Информация. Представление и обработка информации
- •2. Системы счисления
- •3. Представление чисел в эвм
- •4. Формализованное понятие алгоритма
- •Лекция № 2. Язык Pascal
- •1. Введение в язык Pascal
- •2. Стандартные процедуры и функции
- •3. Операторы языка Pascal
- •Лекция № 3. Процедуры и функции
- •1. Понятие вспомогательного алгоритма
- •2. Процедуры в Pascal
- •3. Функции в Pascal
- •4. Опережающие описания и подключение подпрограмм. Директива
- •Лекция № 4. Подпрограммы
- •1. Параметры подпрограмм
- •2. Типы параметров подпрограмм
- •Лекция № 5. Строковый тип данных
- •1. Строковый тип в Pascal
- •2. Процедуры и функции для переменных строкового типа
- •3. Записи
- •4. Множества
- •Лекция № 6. Файлы
- •1. Файлы. Операции с файлами
- •2. Модули. Виды модулей
- •Лекция № 7. Динамическая память
- •1. Ссылочный тип данных. Динамическая память. Динамические переменные
- •2. Работа с динамической памятью. Нетипизированные указатели
- •Лекция № 8. Абстрактные структуры данных
- •1. Абстрактные структуры данных
- •2. Стеки
- •3. Очереди
- •Лекция № 9. Древовидные структуры данных
- •1. Древовидные структуры данных
- •2. Операции над деревьями
- •I. Построение дерева
- •II. Поиск узла с заданным значением ключевого поля
- •3. Примеры реализации операций
- •Лекция № 10. Графы
- •1. Понятие графа. Способы представления графа
- •2. Представление графа списком инцидентности. Алгоритм обхода графа в глубину
- •3. Представление графа списком списков. Алгоритм обхода графа в ширину
- •Лекция № 11. Объектный тип данных
- •1. Объектный тип в Pascal. Понятие объекта, его описание и использование
- •2. Наследование
- •3. Создание экземпляров объектов
- •4. Компоненты и область действия
- •Лекция № 12. Методы
- •1. Методы
- •2. Конструкторы и деструкторы
- •3. Деструкторы
- •4. Виртуальные методы
- •5. Поля данных объекта и формальные параметры метода
- •Лекция № 13. Совместимость типов объектов
- •1. Инкапсуляция
- •2. Расширяющиеся объекты
- •3. Совместимость типов объектов
- •Лекция № 14. Ассемблер
- •1. Об ассемблере
- •2. Программная модель микропроцессора
- •3. Пользовательские регистры
- •4. Регистры общего назначения
- •5. Сегментные регистры
- •6. Регистры состояния и управления
- •Лекция № 15. Регистры
- •1. Системные регистры микропроцессора
- •2. Регистры управления
- •3. Регистры системных адресов
- •4. Регистры отладки
- •Лекция № 16. Программы на Ассемблере
- •1. Структура программы на ассемблере
- •2. Синтаксис ассемблера
- •3. Директивы сегментации
- •Лекция № 17. Структуры команд на Ассемблере
- •1. Структура машинной команды
- •2. Способы задания операндов команды
- •3. Способы адресации
- •Лекция № 18. Команды
- •1. Команды пересылки данных
- •2. Арифметические команды
- •Лекция № 19. Команды передачи управления
- •1. Логические команды
- •2. Команды передачи управления
2. Модули. Виды модулей
Модуль(1Ж1Т) в Pascal – это особым образом оформленная библиотека подпрограмм. Модуль, в отличие от программы, не может быть запущен на выполнение самостоятельно, он может только участвовать в построении программ и других модулей. Модули позволяют создавать личные библиотеки процедур и функций и строить программы практически любого размера.
Модуль в Pascal представляет собой отдельно хранимую и независимо компилируемую программную единицу. В общем случае модуль – это совокупность программных ресурсов, предназначенных для использования другими программами. Под программными ресурсами понимаются любые элементы языка Pascal: константы, типы, переменные, подпрограммы. Модуль сам по себе не является выполняемой программой, его элементы используются другими программными единицами.
Все программные элементы модуля можно разбить на две части:
1) программные элементы, предназначенные для использования другими программами или модулями, такие элементы называют видимыми вне модуля;
2) программные элементы, необходимые только для работы самого модуля, их называют невидимыми (или скрытыми).
В соответствии с этим модуль, кроме заголовка, содержит три основные части, называемыми интерфейсной, исполнимой и инициализируемой.
В общем случае модуль имеет следующую структуру:
unit <имя модуля>; {заголовок модуля}
interface
{описание видимых программных элементов модуля}
implementation
{описание скрытых программных элементов модуля}
begin
{операторы инициализации элементов модуля}
end.
В частном случае модуль может не содержать части реализации и части инициализации, тогда структура модуля будет такой:
unit <имя модуля>; {заголовок модуля}
interface
{описание видимых программных элементов модуля}
implementation
end.
Использование в модулях процедур и функций имеет свои особенности. Заголовок подпрограммы содержит все сведения, необходимые для ее вызова: имя, перечень и тип параметров, тип результата для функций. Эта информация должна быть доступна для других программ и модулей. С другой стороны, текст подпрограммы, реализующий ее алгоритм, другими программами и модулями не может быть использован. Поэтому заголовки процедур и функций помещают в интерфейсную часть модуля, а текст – в часть реализации.
Интерфейсная часть модуля содержит только видимые (доступные для других программ и модулей) заголовки процедур и функций (без служебного слова forward). Полный текст процедуры или функции помещают в часть реализации, причем заголовок может не содержать списка формальных параметров.
Исходный текст модуля должен быть откомпилирован с помощью директивы Make подменю Compile и записан на диск. Результатом компиляции модуля является файл с расширением. TPU (Turbo Pascal Unit). Основное имя модуля берется из заголовка модуля.
Для подключения модуля к программе необходимо указать его имя в разделе описания модулей, например:
uses Crt, Graph;
В том случае, если имена переменных в интерфейсной части модуля и в программе, использующей этот модуль, совпадают, обращение будет происходить к переменной, описанной в программе. Для обращения к переменной, описанной в модуле, необходимо применить составное имя, состоящее из имени модуля и имени переменной, разделенных точкой. Использование составных имен применяется не только к именам переменных, а ко всем именам, описанным в интерфейсной части модуля.
Рекурсивное использование модулей запрещено.
Если в модуле имеется раздел инициализации, то операторы из этого раздела будут выполнены перед началом выполнения программы, в которой используется этот модуль.
Перечислим, какие бывают виды модулей.
1. Модуль SYSTEM.
Модуль SYSTEM реализует поддерживающие подпрограммы нижнего уровня для всех встроенных средств, таких как ввод-вывод, работа со строками, операции с плавающей точкой и динамическое распределение памяти.
Модуль SYSTEM содержит все стандартные и встроенные процедуры и функции Pascal. Любая подпрограмма Pascal, не являющаяся частью стандартного Pascal и не находящаяся ни в каком другом модуле, содержится в модуле System. Этот модуль автоматически используется во всех программах, и его не требуется указывать в операторе uses.
2. Модуль DOS.
Модуль Dos реализует многочисленные процедуры и функции Pascal, которые эквивалентны наиболее часто используемым вызовам DOS, как, например, GetTime, SetTime, DiskSize и так далее.
3. Модуль CRT.
Модуль CRT реализует ряд мощных программ, предоставляющих полную возможность управления средствами компьютера PC, такими, как управление режимом экрана, расширенные коды клавиатуры, цвета, окна и звуковые сигналы. Модуль CRT может использоваться только в программах, работающих на персональных компьютерах IBM PC, PC AT, PS/2 фирмы IBM и полностью совместимых с ними.
Одним из основных преимуществ использования модуля CRT является большая скорость и гибкость при выполнении операций работы с экраном. Программы, не работающие с модулем CRT, выводят на экран информацию с помощью средств операционной системы DOS, что связано с дополнительными непроизводительными затратами. При использовании модуля CRT выводимая информация посылается непосредственно в базовую систему ввода-вывода (BIOS) или для еще более быстрых операций непосредственно в видеопамять.
4. Модуль GRAPH.
С помощью процедур и функций, входящих в этот модуль, можно создавать различные графические изображения на экране.
5. Модуль OVERLAY.
Модуль OVERLAY позволяет уменьшить требования к памяти программы DOS реального режима. Фактически можно писать программы, превышающие общий объем доступной памяти, поскольку в каждый момент в памяти будет находиться только часть программы.