Опубликован: 06.09.2005 | Уровень: для всех | Доступ: свободно
Лекция 13:

Модульная структура программы

< Лекция 12 || Лекция 13: 1234 || Лекция 14 >
Аннотация: Методы работы с модулями. Стандартные модули языка Pascal. Создание модульных программ. Передача в программу аргументов из командной строки.

Модульность программ

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

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

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

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

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

Перечислим самые распространенные модули, входящие в состав стандартных библиотек языка Pascal. Подробное описание этих библиотек можно найти в любом справочном издании1Например, "Справочник по процедурам и функциям Borland Pascal with Objects 7.0" (сост. И.И. Дериев, С.В. Токарь. Киев: Диалектика, 1993) или "Программирование на языке Turbo Pascal (версии 6.0 и 7.0). Справочник по процедурам, функциям, диагностическим сообщениям" (сост. В.С. Зубов, М., 1997)..

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).

< Лекция 12 || Лекция 13: 1234 || Лекция 14 >
Евгения Поздеева
Евгения Поздеева
Ольга Стебакова
Ольга Стебакова

Вот фрагмент лекции 5 (статья 4):

Проверка множества на пустоту может быть осуществлена довольно просто:

pusto:= true;   for i:= 1 to N do 

if set_arr[i] then begin pusto:= false; break end; {мне кажется здесь должно быть так:

if set_arr[i]<>0 then begin pusto:= false; break end;}

Хотелось бы знать это ошибка в теории или я просто не поняла лекцию?