Читать онлайн «Вычислительные методы обработки и планирования экспериментов: Лабораторный практикум»

Автор Радченко Ю.С.

МИНИСТЕРССТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Физический факультет Кафедра радиофизики Лабораторный практикум по курсу «Вычислительные методы обработки и планирования эксперимента» для студентов 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.