Лекция 13 Модульная структура программы
Методы работы с модулями. Стандартные модули языка Pascal. Создание модульных программ. Передача в программу аргументов из командной строки.
Содержание
Модульность программ 1
Стандартные модули языка Pascal 2
System 2
Crt 2
Wincrt 2
Printer 2
Winprn 3
Dos 3
Windos 3
Strings 3
Graph 3
Overlay 3
Winapi 3
Подключение модулей 3
Создание модульной программы 4
Структура модуля 4
Название 4
Секция внешних связей 4
Секция реализации 6
Секция инициализации 8
Взаимодействие модулей 8
Компиляция модулей 9
Пример модуля 9
Передача аргументов из командной строки 10
Модульность программ
Модуль - это кусок программы, компилируемый отдельно от остальных ее частей. Именно возможность раздельной компиляции и является основным преимуществом модулей.
Простейшая модульность программы может достигаться за счет применения процедур и функций, однако этого не всегда достаточно. Если все подпрограммы содержатся в одном файле, то исправление единственной ошибки в какой-либо подпрограмме приведет к неизбежной перекомпиляции всего кода. А при современных размерах программ компиляция может длиться даже не минуты, а часы.
Кроме того, если коллектив программистов пишет одну большую программу (а именно в таких условиях работают сегодня все производители программного обеспечения), то каждому из них нужно обеспечить более или менее независимый "фронт работ". Даже два человека не могут одновременно исправлять один и тот же файл, иначе конфликт обновлений будет гарантирован. Что уж тут говорить о проектах, над которыми работают десятки и даже сотни человек! В такой ситуации модули, которые хранятся каждый в отдельном файле и могут быть отредактированы, откомпилированы и протестированы независимо от остальных частей программы, являются наилучшим решением этой проблемы.
Несколько модулей, являющихся составными частями одной программы, объединяются в библиотеку. Например, вместе с компилятором языка Pascal поставляются стандартные библиотеки, содержащие важнейшие подпрограммы обработки данных.
Стандартные модули языка Pascal
Перечислим самые распространенные модули, входящие в состав стандартных библиотек языка Pascal. Подробное описание этих библиотек можно найти в любом справочном издании.
System
Модуль System является основным: в нем содержатся все изученные нами стандартные процедуры и функции обработки арифметических выражений, множеств, строк и т.п. Специального подключения этот модуль не требует: его содержимым можно пользоваться по умолчанию.
Напомним, что этот модуль содержит следующие типы подпрограмм:
подпрограммы для обработки величин порядковых типов данных ( dec, inc, odd, pred, succ );
арифметические функции;
функции преобразования типов данных ( chr, ord, round, trunc );
процедуры управления процессом выполнения программы ( break, continue, exit, halt );
подпрограммы обработки строк ( concat, copy, delete, insert, length, pos, str, val );
подпрограммы файлового ввода и вывода;
подпрограммы динамического распределения памяти ( dispose, freemem, getmem, new );
функции для работы с указателями и адресами (addr);
а также некоторые другие подпрограммы (например, exclude, include, random, randomize, upcase ).
Crt
Модуль Crt служит для организации "хорошего" вывода на экран. Подробнее о содержимом этого модуля мы расскажем в следующей лекции.
Wincrt
Модуль WinCrt предназначен для создания программ, поддерживающих простейший оконный интерфейс.
Printer
Модуль Printer позволяет производить вывод информации не на консоль, а на принтер (под операционной системой DOS).
Winprn
Модуль WinPrn является аналогом модуля Printer для операционной системы Windows.
Dos
Модуль Dos позволяет обмениваться информацией с операционной системой. Системное время, прерывания, состояния параметров окружения, процедуры обработки процессов, работа с дисковым пространством - всем этим занимается модуль Dos.
Windos
Модуль WinDos является аналогом модуля Dos для операционной системы Windows.
Strings
Модуль Strings позволяет перейти от стандартных строк языка Pascal к строкам, ограниченным нулем. В отличие от обычных строк, чья длина не может превышать 255 символов, эти строки могут состоять из 65 535 символов, причем конец каждой такой строки помечен символом #0.
Graph
Модуль Graph содержит разнообразнейшие подпрограммы, которые позволяют создавать на экране различные рисунки из многоцветных геометрических фигур. Модуль управляет также палитрами, фактурами фона и шрифтами.
Overlay
Модуль Overlay предоставляет возможность делать большие программы оверлейными (многократно использующими одну и ту же область памяти).
Winapi
Модуль WinApi отвечает за создание динамических библиотек. Этот модуль свойственен лишь поздним версиям языка Pascal (например, Turbo Pascal 7.0).