ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.07.2024
Просмотров: 126
Скачиваний: 0
- 23 -
При выполнении оператора PRIHT. указанным (в опера торе ВДМАТ или при помощи параметраV ) способом печата ются значения величин, упомянутых в списке печати.
Переменная специфицирует сама себя - печать одного значения (значения простой переменной или элемента масси ва).
Идентификатор массива специфицирует весь массив - печать всего массива. Если массив является двумерным, то он печатается по строкам, т.е. в следующем порядке:
а 1 1 ' а 1 2 ' * * * , а 1п*а 2Га 22*' **, а 2 п ' * • * »вш1, а т2"" в , а шп*
Неявный цикл специфицирует некоторую часть массива. Он имеет вид:
(Л(1), 1=11, 12, 13)
или
( А ( 1 , о С ), |
1=11, |
12, |
13) |
|
|
или , |
|
|
13) |
|
|
(А(оС ,1), М 1 , |
12, |
|
|
||
или |
J=J1, J2, J3), 1=11» |
|
|
||
( ( A ( I , J ) , |
12, |
13) |
|||
или |
|
|
13), J=J1, |
|
|
( ( A ( I , J ) , |
1=11, |
12, |
J2, |
J3) |
|
пли яе |
|
12, I J ) . |
|
|
|
( A ( I , I ) , |
1*11, |
|
|
||
Здесь: |
|
|
|
|
|
A - идентификатор массива; °C - (натуральное) число или |
|||||
простая переменная; I,J,I1,I2,I3»J1,J2,J3 |
- параметр цик |
||||
ла, начальное и конечное значения и шаг-соответствующих |
|||||
неявных циклов (ср. 2.6.1.2.8.). |
|
|
|||
В случае вложешюсти неявных циклов наиболее быотро |
|||||
меняется параметр внутреннего цикла. |
|
|
|||
При 13=1 |
или J3=»1 |
элемент неявного цикла ",13" или, |
соответственно, ", J3" можно не писать. Примеры.
Печать главной диагонали матрицы 10 х 10:
PRINT 1 , ( A ( I , I ) , 1п1,10)5
- 24 ~
Печать пторой строки матрицы 10 х 10: PRIST 1, ( A ( 2 , I I ) , 11=1,10);
Печать першх трех элементов К-го-столбца матрицы 10 х 10:
PRINT 1 , ( Л ( 1 , К ) , |
1=1,5); |
Печать по столбцам верхней левой подматрицы 3 x 3 |
|
в матрице 1С х 10: |
I*1,3)»Js1,3)f |
PRINT 1, ( ( A ( I , J ) , |
Печать на АЦПУ в соответствии со спешфикацшшн оператора гййКАД описана в 2.6.2.2,5. Если происходит печать только (текстовое) постоянной информации, специфкцированноп (ак тивными) элементами формата или накопленного на буфере ос татка, то<список печати >отсутствует, и, таким образом, оператор печати в STOM случае будет иметь вид:
PRIifT п;
Характер вывода на узкую печать определяется значе нием параметра t) , который должен бить цифрой 0,1 пли 2.
V =0 - восьмеричная печать (печать команд);
^=1 - печать чисел с переводом из двоичной системы счисления в десятичную;
^=Z ~ десятичная печать без перевода (печать шиф ров).
Вслучае вывода па узкую печать модно печатать и интерва ла. .Для печати одного интервала служит (отсутствующий при печати на АЦПУ) элемент списка печати "/" (косач черта).
Для печати нескольких интервалов косая черта повторяется несколько раз.
При печати чисел или шифров интервал имеет вид:
0,
при печати команд - 1.11.1111.1111.1111
2.6,143.2. Оператор ввода с перфокарт. '
Оператор ввода с перфокарт имеет вид:
READ ОС' (5 , А, В, C m , . . . ;
- 25 -
где c*L и (3 - признаки соответственно контроля правильнос ти ввода и перепода вводимого материала из десятичной сис темы в двоичную ( = 0 - контроль есть, оСй 1 - контроля нет; (Ъ =0 - перевод есть, ( 3 * 1 - перевода нет); Л, Б, С:п , ... - элементы ввода, отделенные друг от друга запятыми;
Л, В, ... - идентификаторы простых переменных (не являю щихся параметрами цикла и не тлеющих абсолютного адреса - см. 2.G.2.1.2) или массивов, значения которых вводятся с перфокарт (значения массивов вводятся поэлементно по строкам).
С:п - где п - натуральное число - означает, что подряд вводятся значения нескольких (а именно, п) простых пере менных (не являющихся параметрами цикла и не имеющих абсо лютного адреса). Эти значения вводятся одним массивом пер фокарт и присваиваются простым переменным в порядке их яв ного описания (см. 2.6.2.1.2). Все п простых переменных, начиная с переменной С, должны, таким образом, быть явно описаны,- в противном случае результат выполнения операто
ра READ не определен.
Каждый элемент ввода в операторе ввода с перфокарт дожен подготавливаться в виде отдельной колода перфокарт (в частности, одной перфокарты), снабженной правильной контрольной суммой (К£), если оС=0 (контроль есть), или , " 2 1 " . если Л =1 (контроля нет).
При выполнении оператора ввода с перфокарт вводятся соответствующие массивы данных, и значения этих данных присваиваются соответствующим элементам ввода.
Ввод с контролем реализуется с помощью стандартной программы (см. 5.9. ) , которая выходит на останов с печатью соответствующей информации при несовпадении конт рольной суммы, находящейся в конце вводимого массива перфо карт, с контрольной суммой, подсчитанной при его вводе, а также при вводе массива перфокарт, содержащего большее ко личество данных, чем длина соответствующего элемента ввода,
- 26 -
Длина вводимого массива данных может быть меньшей, чем длина соответствующего элемента ввода. Б этом случае
все остальные переменные (или элементы массива)-в элемен
те ввода сохраняют свои прежние значения. При вводе с контролем об этом печатается соответствующая информация, но останов не происходит.
При вводе с переводом перед присваиваниемзначений
вводимых данных соответствующим переменным происходит пере
вод этих значений в .двоичную систему счисления, т.е. внут реннюю форму представления данных в машине.
Замечание.
Нельзя непосредственно вводить с перфокарт значения
массивов - формальных параметров или массивов, расположен
ных в динамической памяти (см. 2.6.2.1.3.5).
2,6.1.3.3. Оператор перфорации.
Оператор перфорации имеет вид:
PUNCH А, В, С:п, . . . ;
где А, В, С: п, ... - элементы списка перфорации, отделен
ные друг от друга зашпыми.
Элементы списка перфорации в точности соответствуют элементам ввода с перфокарт (см.2.6.1.3.2.). Перфорация г::эчеки£ соответствующих переменных происходит в том виде, в каком из; представлены в машине (т.е. без перевода).
Каждый элемент списка перфорации перфорируется в виде
отдельной колоды перфокарт. В конце этой колоды перфорирует
ся перфокарта с ее контрольной суммой, и происходит останов:
0.77. 0. 0770. 0 Еслед за этим требуется установить на читающее устройство
отперфорированную колоду перфокарт и падать па ПУСК. Про изойдет (фиктивный) ввод упомянутой колоды. Если она отперфорирована и ввелась правильно, то продолжится дальнейшая
работа программы. В противном случае (т.е. если колода отперфорирована или ввелась неправильно)- произойдет АВОСТ ВЗ.У,
Тогда следует выбросить эту колоду перфокарт и нажать на
-27 -
ПУСК. Произойдет повторная перфорация той же колоды,
вслед за чем нужно повторить описанную проверку и т.д. - вплоть до правильной перфорации колоды.
Замечание.
Нельзя непосредственно отперфорировать значения
массивов - форлалышх параметров пли массивов, расположен ных в динамической памяти (см. 2.6.2.1.3.5.).
2.6.1.3.4. Операторы обмена с ЦБ или ЫЛ.
Программист может использовать магнитную ленту на
лентопротяжных механизмах О, I , 2 и 3 и магнитные бараба-'
ны U, I й 2. Однако, если в программе тлеются обращения к стандартным программам, вводимым с перфокарт, то последняя четверть 1.Ш-2 (3.0000*3.7777) не может быть использована.
Кроме того, если имеются динамические массивы (см, 2.6.2.^.3.5.), то не может бить использовано начало памяти на
магнитных.барабанах (начиная с МБ-0), т.е. участок, раз ный общей длине динамических массивов (с некоторой незначи
тельной поправкой, связанной с постраничной организацией
этих [массивов - см. $.5. ) .
Операторы обмена с Г.Ш или МЯ осуществляют считывание
или запись одного массива на магнитный барабан или магнит
ную лепту. Соблюдение указанных выше ограничений, однако,
компилятором•не проверяется, так что при их невыполнении могут возникнуть неопределенные результаты. Используемый массив не может быть формальным параметром и не может нахо
диться в динамической памяти.
Обмен с МБ или МЛ происходит с контролем. При неудач ной четырехкратной попытке записи или считывания происхо дит останов.
0.77. 0.7777.0 При нажатии на ПУСК попытка повторяется (см. также?. 4. ) .
Если дата записываемого массива в МОЗГ составляет н кодов, то на МБ или МП запишется (Н+1 кодов (последний код - контрольная сумма). Это следует учитывать при записи
- 28 -
последующих массивов на МБ и при разметке МЛ. Перед за
писью на ЬШ лента должна быть соответстгущим образом
размечена.
5.6.1.3.4.1. Обмен с магнитным барабаном.
Операторы обмена с магнитным барабаном имеют вид:
WRITS С И , а), А}
для записи на МБ и
READ (14 , в ) , А;
для считывания с МБ,
где S> - номер МБ (9 =0, 1 или 2 ) , а - адрес на МБ (вось
меричное число в диапазоне 0^а^37777д или простая пере менная, принимающая в момент выполнения данного оператора
целочисленные значения в диапазоне 0^ а * 16383JQ), Л - идентификатор записываемого или считываемого массива (из
МОЗУ-0 или М03У- 1 ) .
Простая переменная а не может быть параметром цикла или иметь абсолютный адрес.
2.6.1.3.4.2. Обмен с магнитной лентой.
Операторы обмена с магнитной лентой имеют вид:
|
WRITS ( 2 ^ | а ) , А| |
для записи на МЛ и |
|
|
READ ( 2 ^ » а ) , А; |
для считывания с МЛ, |
|
где |
- номер лентопротяжного механизма (SI =0, 1 , 2 |
или 3 ) , |
а - номер зоны на МЛ (восьмеричное целое число или |
простая переменная, принимающая в момент выполнения данно го оператора целые неотрицательные значения), А - иденти фикатор записываемого или считываемого массива (из МОЗУ-0 или М03У- 1 ).
Простая переменная а не может быть параметром цикла или иметь абсолютный адрес.
-29 -
2.6.1.3.5.Оператор отладочной печати.
Оператор отладочной печати слуяит для вывода указан ное количество раз па узкую печать элементов печати, рас смотрениях в 2.6.1.3.1.
Оператор отладочной печати имеет вид:
.DEBUG n, V , <список печати > }
где п - количестве повторений выполнения данного операто ра - натуральное десятичное число, $ - вид печати (V =0 - восьмеричная печать (команд), V =1 - печать чисел с пе реводом из двоичной системы в десятичную, V =2 - десятич ная печать без перевода (печать шифров)). Определение (списка печати > приводится в 2.6.1.3.1.
Оператор DEBUG выполняется тогда, когда на него по падает управление, а количество повторений его выполнения еше не исчерпано (т.е. он еще не выполнился п раз).
В случае д=1000 и/или i =1 соответствующие п и ^ мокно не писать. Если до < списка печати > указано только одно число, то считается, что это число - количество повто рений п. •
При печати элементы списка печати автоматически отде ляются друг, от друга интервалом, описанным в 2.6.1.3.1.
Примеры.
Печать 1000 раз (т.е. практически, каждый раз)чис лового массива А:
DEBUG А;
Печать два раза переменной С2 и диагональных элемен тов матрицы Р:
DEBUG 2, 02, |
1-1,10 ) | |
Печать каждый раз массива шифров (непереведенных де сятичных чисел) G:
DEBUG 1000, 2, 0}
Перед выводом £ списка печати ^ печатаются три строки:
+++0 +++++++++
++40 +++++•+++
+++0 +++++F