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

7.5. Задания

1. В задачах Cond_2иm.0оформить процедуры ввода и вывода входных данных. Разместить процедуры в отдельном модуле.

2. В задаче mas_3преобразовать вариант с внутренними процедурами, разместив процедуры в отдельном модуле.

3. В задаче mas_3оформить процедуры ввода и вывода входных данных так, чтобы файловые переменные и операции с файлами были локализованы в процедурах. Разместить процедуры в отдельном модуле.

7.6. Обработка многомодульных программ в среде турбо-Паскаль

● Стандартный процесс обработки программы, написанной на языке высокого уровня, состоит из трех шагов:

- трансляция(компиляция) программы; результат -объектный модульв машинных кодах или на ассемблере в относительных адресах и с неразрешенными внешними ссылками (т.е. с отсутствующими адресами вызываемых модулей);

- редактирование межмодульных связей("линковка"); результат -разрешение внешних ссылок, состоящее в установлении связей между модулями программы;

- загрузка(размещение модуля в оперативной памяти по конкретному адресу; результат –исполняемый модуль) ивыполнение.

Особенностью обработки программ в среде турбо-Паскаль является совмещение этапа редактирования связей с этапом компиляции, из-за чего головной модуль programи внешние модули компилируются по-разному.

Результатом компиляции программной единицы programявляется .exe-модуль. Результатом компиляции программной единицыunitявляется специфический для турбо-Паскаляtpu-модуль. К моменту компиляции программыprogram все используемые ею модули должны быть откомпилированы, так как компилятор ищет готовые .tpu-файлы.

● Порядок подготовки многомодульной программы к исполнению неоднозначен и зависит от используемых опций компилятора.

Возможные режимы компиляции: Compile, Make, Build.

Опция Compile– компиляция файла, находящегося в текущем окне. Если в компилируемой программе содержатся обращения к нестандартным модулям, последние должны быть заранее откомпилированы и храниться на диске в виде .tpu-файлов.

Для сохранение результатов компиляции на диске следует:

  • в поле опции Options/Directories/Exe&Tpudirectoryзадать имя директории, где будет сохранен результат компиляции;

  • проверить значение опции Compile/Destination: если это значение –Disk, то нажатьEsc; значение сохранится; если значение –Memory,то нажатьEnter; значение изменится наDisk.

Опция Make– компилируется файл, заданный опциейCompile/Primaryfileили, если он не указан, последний редактировавшийся файл; при этом предварительно компилируются все модули,упомянутые вUsesи нескомпилированные или измененные.

Опция Build– перекомпилируются все файлы с расширением .pas, имена которых указаны в оператореUsesкомпилируемого модуля.

● Реально существует только две схемы компиляции многомодульных программ, которыми и следует пользоваться.

Компиляция снизу (раздельная)

В режиме Compileкомпилируются все модулиUnit(результат компиляции – файлы .tpuна диске), а затем -Program(результат компиляции и одновременного редактирования связей - .exe).

Компиляция сверху

В режиме BuildилиMakeинициируется компиляция головного модуля (Program). Используемые им модулиUnitавтоматически компилируются по цепочке.

Этот способ кажется предпочтительным из-за своей простоты для программиста, так как достаточно запустить на компиляцию только главный модуль. Однако он имеет два серьезных взаимосвязанных недостатка:

  • отсутствие контроля компиляции отдельных модулей;

  • приобретение навыка обработки многомодульных программ по жесткой схеме, нетипичной для других языков (например, для Фортрана и Си).

Поэтому эта схема может быть рекомендована только после приобретения навыка раздельной компиляции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]