МИНИСТЕРССТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Физический факультет
Кафедра радиофизики
Лабораторный практикум
по курсу
«Вычислительные методы
обработки
и планирования эксперимента»
для студентов 2 курса дневного отделения
по спец. 071500
(радиофизика и электроника),
200. 200
(микроэлектроника и п/п)
Составители:
Доц. Ю. С. Радченко
К. ф. -м. н. Т. М. Овчинникова
Воронеж 2000
2
ЛАБОРАТОРНАЯ РАБОТА № 1
МОДУЛЬНАЯ ОРГАНИЗАЦИЯ ПРОГРАММ НА PASCAL VAX/VMS
ОБЩИЕ СВЕДЕНИЯ. Программы, созданные в среде PASCAL для ОС VAX/ VMS,
могут быть построены по модульному принципу. При этом взаимодействие файлов с моду-
лями может быть выполнено на следующих этапах работы:
1. Работа с файлами на языке PASCAL.
2. Работа с файлами в объектных кодах.
3. Работа ЕХЕ-файлов с файлами данных. Рассмотрим эти варианты.
1. Директива %INCLUDE
Директива %INCLUDE позволяет обращаться к тексту файла, написанного на языке
PASCAL, во время компиляции основной программы.
Когда компилятор обнаруживает эту
директиву, он останавливает чтение исходного файла и начинает чтение включаемого файла
до его конца. Затем продолжается компиляция исходного файла со строки, следующей за
%INCLUDE. Включаемые модули не являются самостоятельными компиляционными еди-
ницами. Директива %INCLUDE может быть в любом месте программы, где разрешен ком-
ментарий. Формат директивы %INCLUDE:
%INCLUDE 'спецификация файла'
Пример 1. Основной файл INCLUDE_TEST. PAS
Program Include_test(input, output);
%INCLUDE 'CLS. PAS'
begin
CLS;
end. Включаемый файл CLS. PAS
Procedure CLS;
begin
write(CHR(155),'2J');
end.
2. Компиляционная единица MODULE
На языке PASCAL имеется две компиляционные единицы: программы - PROGRAM и
модули - MODULE. Модуль может быть скомпилирован, но самостоятельно он не может ра-
ботать. Командой ОС LINK объектные модули могут быть подключены к объектному файлу
основной программы. Пример 2. Файл A_CLS Файл B_CLS
Program a_cls(output); Module b_cls(output);
Procedure CLS; external; [global] Procedure CLS;
begin begin
CLS; write(chr(155),'2J')
end. end;
end.
3
Порядок действия следующий
VAX> PAS А,В (* этап компиляции программы и модуля *)
VAX> LINK А,В (* этап компоновки программы и модуля *)
VAX> RUN А (* исполнение программы * )
В программе используются атрибуты EXTERNAL, а в модуле GLOBAL. В основной
программе приводится только заголовок процедуры, а вместо тела ставится директива EX-
TERNAL.