Уважаемые подписчики! Отныне все создаваемые нами подпрограммы мы будем помещать на хранение в модуль Problem, который вы всегда сможете получить в своё распоряжение, перейдя по ссылке http://a-morgun.narod.ru/a08-01/a0008-0001-0002.html .
Сегодня мы с вами познакомимся со средствами ИСП, которые обеспечивают работу с модулями, а также несколько подробнее рассмотрим уже известные нам средства компиляции и выполнения обычных программ.
ТЕХНОЛОГИЯ РАБОТЫ С МОДУЛЯМИ
1. Средства компиляции и выполнения обычных программ в ИСП.
Меню Compile главного окна ИСП содержит разнообразные команды компиляции, которые применимы для обычных программ.
1). С помощью команды CompileаCompile (<Alt + F9>) компилируется программа, находящаяся в текущем окне текстового редактора ИСП, а также создаётся EXE-файл с выполняемой программой.
В результате выполнения команды на экране появляется окно со служебной информацией и сообщением об успешном (successful) завершении компиляции. Для снятия окна достаточно нажать произвольную клавишу. Если будет найдена синтаксическая ошибка, то компилятор в специальной строке сообщит о её типе и установит курсор в окне редактора на место найденной ошибки.
Имя созданного EXE-файла совпадает с именем исходного файла с текстом программы, и по умолчанию этот файл будет помещен в тот же каталог, где находится исходный файл с текстом программы. Если же необходимо размещать создаваемые EXE-файлы в другом каталоге, то его следует указать в поле EXE & TPU directory диалогового окна Directories, получаемого в результате выполнения команды OptionsаDirectories....
При работе в ИСПBorland Pascal EXE-файл всегда размещается только на диске. А вот при использовании ИСПTurbo Pascal для окончательного определения места расположения создаваемого EXE-файла дополнительно должна быть выполнена команда CompileаDestination.
При этом в результате компиляции выполняемая программа может быть получена или на диске (Disk), или в памяти (Memory). В последнем случае после завершения работы с ИСП выполняемая программа будет утрачена.
2). С помощью команды CompileаTarget... выполняется установка режима компиляции программы в ИСПBorland Pascal. Для этого в диалоговом окне Target переключатель TargetPlatform следует установить в положение Real mode Application и нажать кнопку
OK.
Меню Run главного окна ИСП содержит разнообразные команды, связанные с запуском на выполнение обычной программы, текст которой находится в текущем окне редактора.
3). Команда RunаRun (<Ctrl + F9>) – компиляция и выполнение программы.
Если программа уже была откомпилирована ранее, то её выполнение начнётся сразу же.
Отметим, что прекратить выполнение “зациклившейся” программы можно с помощью Диспетчера задач Windows, окно которого вызывается нажатием клавиш <Alt + Ctrl + Delete>. В нём следует выбрать вкладку Приложения, выделить задачу “Borland (Turbo) Pascal 7.0” и нажать кнопку Снять задачу.
2. Работа с модулями программиста.
Теперь мы рассмотрим команды, которые используются для компиляции и выполнения программ, имеющих модульную структуру.
Напомним, что модулем Unit называется оформляемая по определённым правилам и автономно компилируемая совокупность описаний типов, констант, переменных и подпрограмм. В результате компиляции образуется файл машинного кода модуля. Этот файл не является выполняемым и воспользоваться им, как самостоятельной единицей, невозможно. Его можно только подключить к той или иной программе, считающейся первичной, в качестве вспомогательного.
Условия работы с программами и модулями несколько отличаются при использовании разных версий среды программирования: TURBO.EXE (Turbo Pascal) или BP.EXE (Borland Pascal).
Ещё раз напомним, что при работе в ИСП Turbo Pascal следует обратить внимание на выбор места размещения машинного кода, образуемого в результате компиляции. Есть возможность поместить его либо в память (Memory), либо на диск (Disk). Первый вариант (Memory) используется при отладке программы, когда достаточно убедиться в её правильности и работоспособности. После этого машинный код, образованный в памяти, сразу
же утрачивается. Второй вариант (Disk) используется при необходимости образовать машинный код длительного хранения и неоднократного дальнейшего использования. Этот же второй вариант в ряде случаев автоматически реализуется для модулей, результаты компиляции которых обязательно должны быть сохранёны на диске, с тем чтобы ими могла воспользоваться компилируемая первичная программа.
В отличие от ИСПTurbo Pascal, результаты компиляции в ИСП Borland Pascal всегда размещаются только на диске.
Каждый модуль и первичная программа, которая эти модули использует, создаются в отдельных окнах ИСП. При этом могут возникать определённые технологические неудобства, связанные, например, с необходимостью частых переходов между окнами. На этот случай в ИСП предусмотрены средства, частично упрощающие работу с комплексом в составе первичной программы и отдельных модулей.
Для обеспечения комплексной работы следует выполнить команду CompileаPrimary file..., с помощью которой можно назначить первичную программу. При этом в поле Primary program file диалогового окна Primary File следует указать имя файла с расширением PAS, содержащего текст первичной программы. Теперь компилироваться в первую
очередь будет всегда именно эта программа, независимо от того, что находится в текущем окне текстового редактора ИСП. Так будет во всех случаях компиляции с помощью команд RunаRun (<Ctrl + F9>), CompileаMake (<F9>) и
CompileаBuild.
Теперь предположим, что некая программа определена в качестве Primary program file, но возникла необходимость компиляции совсем другой программы, находящейся в текущем окне текстового редактора ИСП. В этом случае первичная программа будет проигнорирована, если воспользоваться командой компиляции CompileаCompile (<Alt + F9>).
И наконец, если программа модули не использует, то имеющееся назначение первичной программы только мешает. В этом случае целесообразно избавиться от неё, выбрав команду CompileаClear primary file. В результате, независимо от вида команды компиляции, всегда будет компилироваться только та программа, которая находится в текущем окне редактора ИСП.
Теперь отметим различия разновидностей команд компиляции:
1). Команда RunаRun (<Ctrl + F9>). Компилируется и запускается на выполнение программа, текст которой находится в текущем окне текстового редактора ИСП. При этом в отношении компиляции действуют те же правила, что и при выполнении команды компиляции CompileаMake (<F9>). Попытка выполнить рассматриваемую команду в отношении модуля приводит к появлению сообщения об ошибке “Cannot run a unit”.
2). Команда компиляции CompileаCompile (<Alt + F9>). Компилируется та программная единица, текст которой находится в текущем окне редактора ИСП. Если компилировалась первичная программа, то результирующий машинный код записывается в файл с расширением EXE. Если компилировался модуль программиста, то результирующий
машинный код записывается в файл с расширением TPU. В обоих случаях имя созданного файла совпадает с именем файла, содержащего исходный текст программной единицы. Модули, подключаемые к компилируемой программной единице, должны быть откомпилированы и размещены на диске заранее.
3). Команда компиляции CompileаMake (<F9>). Если имя первичного файла не было определено, то эта команда выполняется точно так же, как и предыдущая. В противном случае, независимо от содержимого текущего окна редактора, выполняется компиляция первичного файла. В процессе компиляции выполняется проверка всех подключённых к программе модулей,
и те из них, которые были изменены, перекомпилируются.
4). Команда компиляции CompileаBuild. Эта команда отличается от предыдущей тем, что перекомпилируются все без исключения модули, подключаемые к данной первичной программе, независимо от того, вносились в них изменения или нет.
При работе с модулями важно правильно ориентироваться в системе каталогов ИСП. Все их разновидности можно видеть в диалоговом окне Directories, которое появляется в результате выполнения команды OptionsаDirectories.... Однако, чаще всего целесообразно использовать простейшую систему хранения, которая состоит в том, что все файлы, имеющие
отношение к данной программе, собираются в один и тот же каталог. При этом могут быть полезными нижеследующие рекомендации:
1). Поле EXE & TPU directory диалогового окна Directories следует очистить. При этом создаваемые в результате компиляции файлы с расширениями EXE и TPU будут помещаться в каталог, являющийся текущим. Разумеется, это имеет смысл только в том случае, если, приступая к работе с ИСП, вы назначаете текущим (команда FileаChange dir…) каталог, содержащий исходные тексты компилируемых программных единиц.
2). В поле Unit directories диалогового окна Directories следует указать перечень каталогов, в которых будет осуществляться поиск файлов с модулями, которые должны подключаться к компилируемой первичной программе. Если таких каталогов несколько, то их отделяют друг от друга знаком ‘;’.
3). После всех вышеуказанных настроек каталогов необходимо выполнить команду OptionsаSave. Благодаря этому, все параметры работы ИСП, установленные во время настройки, будут сохранены в файле конфигурации.
Уважаемые подписчики! На следующем занятии мы вернёмся к алгоритмам и подпрограммам с ветвлениями.
Уважаемые подписчики!
С уважением, Александр.
При необходимости задать вопрос, проконсультироваться, уточнить или обсудить что-либо обращайтесь через Гостевую книгу моего персонального сайта http://a-morgun.narod.ru. При этом настоятельно рекомендую пользоваться браузером Internet Explorer.