Методы работы с модулями. Стандартные модули языка Pascal. Создание модульных программ. Передача в программу аргументов из командной строки.
Содержание
Модульность программ
Модуль — это кусок программы, компилируемый отдельно от остальных её частей. Именно возможность раздельной компиляции и является основным преимуществом модулей.
Простейшая модульность программы может достигаться за счёт применения процедур и функций, однако этого не всегда достаточно. Если все подпрограммы содержатся в одном файле, то исправление единственной ошибки в какой–либо подпрограмме приведёт к неизбежной перекомпиляции всего кода. А при современных размерах программ компиляция может длиться даже не минуты, а часы.
Кроме того, если коллектив программистов пишет одну большую программу (а именно в таких условиях работают сегодня все производители программного обеспечения), то каждому из них нужно обеспечить более или менее независимый «фронт работ». Даже два человека не могут одновременно исправлять один и тот же файл, иначе конфликт обновлений будет гарантирован. Что уж тут говорить о проектах, над которыми работают десятки и даже сотни человек! В такой ситуации модули, которые хранятся каждый в отдельном файле и могут быть отредактированы, откомпилированы и протестированы независимо от остальных частей программы, являются наилучшим решением этой проблемы.
Несколько модулей, являющихся составными частями одной программы, объединяются в библиотеку. Например, вместе с компилятором языка Pascal поставляются стандартные библиотеки, содержащие важнейшие подпрограммы обработки данных.
Стандартные модули языка Pascal
Перечислим самые распространённые модули, входящие в состав стандартных библиотек языка Pascal. Подробное описание этих библиотек можно найти в справочнике Паскаль Тум Су: стандартные библиотеки Turbo 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 предназначен для создания программ, поддерживающих простейший оконный интерфейс. Является близнецом модуля Crt и доступен только при компиляции программ для Windows.
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).