• Tidak ada hasil yang ditemukan

Подготовка программы на фортране для выполнения

Процесс подготовки програм м ы можно представить в виде схемы рис. 4.8. Из схемы видно, что процесс подготовки состоит из нескольких шагов:

1) С п о м о щ ь ю р е д а к т о р а текстов со зд а етс я ф ай л, сод ер ж ащ и й и сход н ы й текст п р о г р а м м ы на ф ортран е.

2) Т ранслятор с языка ф ортран преобразует исходный файл в файл в объектном коде.

3) П остроитель задач преобразует файл в объектном коде в файл образа задачи, готовый к выполнению.

4) П о команде R U N програм м ы M C R файл образа задачи запускается на выполнение.

Д ля иллю страции схемы прохождения ф ортран-програм м ы рас­

см отри м програм м у вычисления значения функции f [ x ) = x 2 + 0,01 sin(x)

в точке х 0, значения х 0 подлежит вводить с терминала, f ( x 0)— вы­

водить на терминал.

РЕДАКТОР ТЕКСТА ( EDI) I X

ИСХОДНАЯ ПРОГРАММА НА ФОРТРАНЕ

ТРАНСЛЯТОР( F O R )

О Б Ъ Е К Т Н Ы Й КОД Р А С П Е Ч А Т К А ПРОГРАММЫ (Л И С Т И Н Г )

СИСТЕМНАЯ БИБЛИОТЕКА |

ЗЕ

ПОСТРОИТЕЛЬ ЗАДАЧ (ТК В) |

О БРАЗ ЗА Д А Ч И

1 К А Р Т А П А М Я Т И ^ f

К О М А Н Д А M C R

ВЫПОЛНЕНИЕ ЗАДАЧИ Рис. 4.8

Э т а п 1. Вход в систему. Схема прохождения ф ортран -п рограм ­ м ы состоит из следующих этапов:

_> H E L 3,162 < C R >

PA SSW O RD DIM A 5 < CR >

О С РВ M U L T I - U S E R SYSTEM G O O D M O R N IN G

_>

Э т а п 2. Вызов програм м ы «Редактор текста» (ED I), ввод текста программы :

^ EDI PR O G . FTN < C R >

C R E A T IN G NEW FILE PA G E 0

IN P U T

REA L X O ,FX < C R >

R EA D (5,10)XO < C R >

10 F O R M A T (E13.6) < C R >

F X = X O * *2 + 0.01 *SIN(XO) < CR >

W R IT E (5,10) FX < C R >

E N D < C R >

< C R >

1 E X < C R >

EXIT

Э т а п 3. Вызов транслятора с ф ортрана (FOR):

F O R PRO G , LP: = P R O G < CR >

Э т а п 4. Вызов построителя задач (ТКВ):

^ ТКВ PR O G = P R O G < C R >

Э т а п 5. Запуск задачи на выполнение:

>_ R U N PR O G < C R >

После запуска задачи P R O G на выполнение произойдет прерывание и задача перейдет в ожидание запланированного ввода значения х 0 по заказанном у ф орм ату Е13.6. Пусть требуется вычислить значение /(0 ,3 ). Т огда м ож но набрать на терминале

3.0Е —01 < C R >

После наж атия клавиш и возврата каретки задача P R O G выполня­

ется и на терминал будет выведено значение /(0 ,3 ).

Ч тобы вычислить значение /(0 ,5 ), потребуется новый запуск задачи на выполнение

_> RUN PR O G < C R >

ввод с терм инала значения 0,5 и т. д.

Заверш ается работа в системе вы ходом из ОС РВ.

Э т а п 6. Выход из системы

>_ BYE < CR >

HAVE A G O O D M O R N IN G

Д ата время им я терминала L O G G E D O F F

Рассмотренные этапы 1— 6 представляю т собой простейший дисплейный сеанс пользователя в ОС РВ.

4.3.8. Редактор. Текстовый редактор в режиме д иалога позволяет создавать или корректировать исходные програм м ы и другие текстовые м атериалы в символьном виде.

И нструм ентальная програм м а текстовый редактор вызывается к о м а н д о й E D I п р о г р а м м ы M C R :

_> ED I < C R >

EDI >

В ответ на подсказку «ED I > » пользователь долж ен ввести спецификацию редактируемого файла, которая имеет вид

УСТР: [К И П ] И М Я Ф А Й ЛА . ТИ П

Пусть пользователь вош ел в систему с К ИП, равны м 3,162, и системным устройством является D K 0 :. Т огда для создания в каталоге 3,162 на DK0: файла T E X T .F T N или для редактирования существующ его ф айла с таким же именем в ответ на подсказку

«ED I > » необходимо ввести следую щ ую строку:

EDI > T E X T .F T N < C R >

151

Если создается новый файл, то редактор печатает C R E A T IN G NEW FILE

I NP UT

и переходит в режим ввода текста с терминала. Если файл с указанны м именем существует, то текстовый редактор считывает в оперативную пам ять (в блочный буфер) первый блок текста из ф айла (весь файл может состоять из одного блока), печатает PA G E О

и в режиме ком анд ждет ввода первой команды.

Редактор текста допускает два режима работы: режим ком анд и режим ввода. Переход из режима команд в режим ввода осуществляется командой IN SER T. Все строки, вводимые с этого м ом ента, будут добавлены к файлу как новый текст, следующий за текущей строкой. Д ля перехода из режима ввода в режим ком анд необходимо ввести символ < C R > как первый символ в строке. Текстовый редактор выводит при этом символ подсказки

« * » , которы й означает, что установлен режим команд.

У казатель текущей строки всегда указывает на первый сим вол в строке. После считывания в блочный буфер первого блока текста из редактируемого файла указатель текущей строки устанав­

ливается на начало первой строки. Н екоторые ком анды редак­

тирования м огут перемещ ать указатель текущей строки.

Редактор можно вызывать укороченной командой, после кото­

рой не будет подсказки «E D I», например _> EDI T E X T .F T N < CR >

О с н о в н ы е к о м а н д ы т е к с т о в о г о р е д а к т о р а Все команды вводятся в ответ на приглашение « * » . И м я ком анды отделяется пробелом от ее параметров, каж дая ком ан да заканчивается символом < C R > .

Команда PRINT (напечатать) Ф орм ат: Р [N ]

К ом анда распечатывает текущую строку и следующие за ней N — 1 строк на терминале. Последняя распечатываемая строка становится текущей. Если N не указано, то значение N под­

разумевается равны м I. Ввод C R эквивалентно команде Р 1.

Пример.

* Р10 < C R >

Распечатать на терминале 10 строк начиная с текущей.

Команда DELET (удалить) Ф ормат: D [N ]

К ом анда вызывает удаление текстовых строк следующим образом:

152

1) Если задается « + N » , то текущ ая строка и N —1 строк, следующих за текущей, удаляю тся. Текущей строкой становится строка, следую щ ая за последней удаленной строкой.

2) Если задается « —N», то удаляю тся N строк, предшеству­

ющих текущей строке. У казатель текущей строки остается неиз­

менным.

Если N не указано, то значение подразумевается равны м + 1 . Пример.

* D12 < C R >

У далить 12 строк начиная с текущей.

Команда LOCATE (определить место) Ф ормат: [N] L подстрока.

К ом анда исследует блочный буфер начиная со строки, следу­

ющей за текущей строкой, и ищет строку, содерж ащ ую заданную подстроку (подстрока — часть строки). Числовое значение N, пред­

шествующее команде, запраш ивает поиск N -ro появления заданной подстроки. У казатель строки устанавливается на строке, содерж а­

щей указанную подстроку. Если N не указано, то значение N подразумевается равны м + 1 .

Пример.

* L (A I.C T .X ) < C R >

IF (A I.C T .X ) G O ТО 25

Команда CHANGE (заменить) Ф ормат: С /П О Д С Т Р О К А 1/П О Д С Т РО К А 2

К ом анда осуществляет поиск подстроки 1 (часть строки 1) в текущей строке, и если находит ее, то зам еняет на подстроку 2. Н ачальным и конечным ограничителем подстроки м ож ет быть лю бой символ, которы й не содержится в указанной подстроке, например, наклонная черта.

Пример.

Пусть исходный текст програм м ы содержит строку X = X — F I * A LPH A

тогд а после выполнения команды

С / —F I / + BETA < C R >

получим следую щий результат:

Х = Х + B ETA * A LPH A

Команда LINE CHANGE (заменить строку) Ф орм ат [N ] L С /П О Д С Т Р О К А 1 /П О Д С Т РО К А 2

К ом анда зам еняет подстроку 1 на подстроку 2 в текущей строке и N —1 строках за ней. Если N не указано, то значение N подразумевается равны м 4 -1

Ф орм ат: I

К ом анд а устанавливает режим ввода. М ожет бы ть введен ряд новых строк, следующих за текущей строкой. К аж дая вводим ая строка заканчивается символом < C R > . С имвол < C R > в качест­

ве первого символа в строке вызывает возврат текстового редактора в режим ком анд и печать символа « * » .

Пример.

Пусть исходная програм м а содержит строки А = 0 .5 * SIN(ALPHA)

В = X + Y + А * COS(BETA)

и указатель строки установлен на первой строке. Т огда после выполнения команды IN SE R T

*

I < C R >

X = SQ RT(TETA ) < CR >

Y = 3.15/A + 1. < C R >

< C R >

* получим

A = 0.5 * SIN(ALPHA) X = SQRT(TETA) Y = 3 .1 5 /A + l.

В = X + Y + A * COS(BETA)

Команда NEXT (следующий) Ф ормат: N [M ]

К ом анда передвигает указатель строки на М строк вперед или назад от текущей строки. Если М не указано, значение М под­

разумевается равны м + 1 . Пример.

* N 15 < C R >

П ереместить указатель строки на 15 строк вперед относительно текущей строки.

Команда OVERLAY (перекрыть) Ф ормат: О [N ]

К ом анда вызывает удаление N строк и замену их на лю бое количество строк, введенных пользователем. После удаления строк текстовый редактор переходит в режим ввода (см. команду IN SERT). Если N не указано, то значение N подразумевается равным + 1 .

Пример.

Пусть исходная програм м а содержит строки А = 1.

К о м ан д а IN S E R T (вставить)

154

В = 3.1415 * R l C = SIN(BETA)

и указатель строки установлен на 2-й строке. Т огда после выполнения ком анды

* О < C R >

D = 8 < C R >

E = D * S IN (R 1 /R 2 ) < C R >

< C R >

*

получим следующий текст:

А = 1.

D = 8.

E = D * S IN (R 1 /R 2 ) C = SIN(BETA)

Команда BEGIN (начинать) Ф ормат: В

К ом анда устанавливает указатель текущей строки на начало блочного буфера.

Пример.

* В < C R >

Команда READ (читать) Ф ормат: REA [N ]

К ом анда позволяет считать следующие N блоков текста из ф айла в блочный буфер. У казанное число блоков не должно превыш ать емкость буфера. Если в буфере уже есть блоки, то новые блоки добавляю тся к ним. Если N не указано, то значение N подразумевается равны м + 1 .

Пример.

* REA 3 < C R >

Считать три блока текста из файла в блочный буфер.

Команда W R I T E (записать) Ф ормат: W

К о м ан д а записывает содержимое блочного буфера в выводной файл. Содержимое блочного буфера очищается.

Пример. I

W < C R >

Команда RENEW (обновить) Ф орм ат: REN [N ]

К о м ан д а записывает текущий блочный буфер в выводной файл и считывает новый блок из вы водного файла. Процесс повторяется N раз. Последний блок остается в блочном буфере. Если N не указано, то значение N подразумевается + 1 .

Ф ормат: EX ВЫВ.Ф

К ом анда передает все оставшиеся строки из блочного буфера и вводного ф айла (в том же порядке) в выводной файл, закры вает файлы и заверш ает редактирование. Если указана спецификация файла, то выводной файл переименовывается в соответствии с ней. В том случае, если спецификация не указана и редактировался существующий файл, выводной файл создается с тем же именем, что и вводной, а номер версии увеличивается на 1.

Пример.

1) * EX P R O G .F T N < CR >

Закончить редактирование и записать результат в файл с именем P R O G .F T N

2) * EX < C R >

Закончить редактирование и записать результат в файл с тем же именем, что и вводной, с номером версии на единицу больш е.

Dokumen terkait