Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование.doc
Скачиваний:
4
Добавлен:
27.10.2018
Размер:
1.46 Mб
Скачать

Модульна структура програми. Створення інтерфейсу користувача

Модуль - это кусок программы, компилируемый отдельно от остальных ее частей. Именно возможность раздельной компиляции и является основным преимуществом модулей.

Простейшая модульность программы может достигаться за счет применения процедур и функций, однако этого не всегда достаточно. Если все подпрограммы содержатся в одном файле, то исправление единственной ошибки в какой-либо подпрограмме приведет к неизбежной перекомпиляции всего кода. А при современных размерах программ компиляция может длиться даже не минуты, а часы.

Кроме того, если коллектив программистов пишет одну большую программу (а именно в таких условиях работают сегодня все производители программного обеспечения), то каждому из них нужно обеспечить более или менее независимый "фронт работ". Даже два человека не могут одновременно исправлять один и тот же файл, иначе конфликт обновлений будет гарантирован. Что уж тут говорить о проектах, над которыми работают десятки и даже сотни человек! В такой ситуации модули, которые хранятся каждый в отдельном файле и могут быть отредактированы, откомпилированы и протестированы независимо от остальных частей программы, являются наилучшим решением этой проблемы.

Несколько модулей, являющихся составными частями одной программы, объединяются в библиотеку. Например, вместе с компилятором языка Pascal поставляются стандартные библиотеки, содержащие важнейшие подпрограммы обработки данных.

Стандартные модули языка Pascal

Перечислим самые распространенные модули, входящие в состав стандартных библиотек языка Pascal. Подробное описание этих библиотек можно найти в любом справочном издании1).

System

Модуль System является основным: в нем содержатся все изученные нами стандартные процедуры и функции обработки арифметических выражений, множеств, строк и т.п. Специального подключения этот модуль не требует: его содержимым можно пользоваться по умолчанию.

Напомним, что этот модуль содержит следующие типы подпрограмм:

  1. подпрограммы для обработки величин порядковых типов данных (dec, inc, odd, pred, succ);

  2. арифметические функции;

  3. функции преобразования типов данных (chr, ord, round, trunc);

  4. процедуры управления процессом выполнения программы (break, continue, exit, halt);

  5. подпрограммы обработки строк (concat, copy, delete, insert, length, pos, str, val);

  6. подпрограммы файлового ввода и вывода;

  7. подпрограммы динамического распределения памяти (dispose, freemem, getmem, new);

  8. функции для работы с указателями и адресами (addr);

  9. а также некоторые другие подпрограммы (например, 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).