Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [ 76 ] 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

PROCEDURE Write (ch: CHAR);

PROCEDURE Writelnt (x: INTEGER; n:CARDINAL); PROCEDURE WriteCard (x, n:CARDINAL); PROCEDURE WriteOct (w: WORD; n: CARDINAL); PROCEDURE WriteHex (w: WORD; n: CARDINAL); PROCEDURE Writeln; PROCEDURE WriteString (s : String); PROCEDURE ShowString (s: String; cr: BOOLEAN); END InOut.

Параметр cr = TRUE позволяет перевести строку при выводе на стандартное устройство.

Процедура Readint читает литеру как десятичное целое в поле, определяемом параметром х; читает следующий символ в поле nextChar (если символ О с, то входной поток прочитан весь); IsNum- индицирует заверщение операции чтения.

Потоки. Модуль Streams позволяет определить абстрактное понятие последовательности и управлять Последовательностью символов и слов, называемых потоками, в терминах файлов, которые, в СБОЮ очередь, определяются модулем Files.

Запись в поток прерывается выводом процедуры EndWrite. Если выполняется чтение, то обращение к процедуре EOS индицирует конец операции или конец входного потока данных. Процедуры управления потоком следующие:

PROCEDURE Connect (VARs : STPEAM; f : FILE; ws; BOOLEAN);

PROCEDURE Disconnect (VARs:STREAM; cIosefile:BOOLEAN);

PROCEDURE Reset (s: STREAM);

PROCEDURE WriteWord (s: STREAM; w: WORD);

PROCEDURE WriteChar (s;STREAM; ch;CHAR);

PROCEDURE EndWrite (s : STREAM);

PROCEDURE ReadWord (s:STREAM; VAR w:WORD);

PROCEDURE ReadChar (s:STREAM; VAR ch:CHAR);

PROCEDURE EOS (s:STREAM) : BOOLEAN.

Файлы

Модуль Files позволяет управлять файлами, расположенными на магнитных дисках. Каждый файл в системе RT-I1 получает значение типа FILE, которое определяет номер канала (от О до 15). Файлы представляют собой блоки данных, расположенные на дисковых секторах. Каждый блок состоит из 512 символов. Файлы связываются с номерами каналов посредством вызова процедуры Lookup, например,

PROCEDURE Lookup (f:FILE; f :Filename;

VAR reply : INTEGER);

где / - номер канала, f - имя файла, reply: > = 0-длннз файла, < О = ошибка, -1-канал занят, -2-файл не найден. Имя файла в системе RT-11 содержит 3 первых си.мвола, специфицирующих устройство, следующие 6 символов - действительное имя и последние 3 символа - так называемое расширение, папри-



мер: RKl : FILE.DAT. Остальные процедуры модуля Piles позволяют создавать, уничтожать, закрывать, переименовывать файлы, читать и записывать блоки данных.

Управление последовательностью действий. Для организации циклов, ветвлений, выделения подалгоритмов язык Модуля-2 содержит обширный набор средств для получения структурированных программ. Особенностью языка является отсутствие утверждения GOTO, вместо которого предлагаются такие мощные средства, как CASE, -, REPEAT-, FOR-, LOOP- и EJf IT- утверждения.

Утверждение IF имеет следующую форму:

IF выражение THEN последовательность-утверждений {ELSIF выражение THEN последовательность-утверждений} {ELSE последовательность-утверждений} END.

Выражения должны быть типа BOOLEAN. Если используется конструкция ELSE, то связанная с ней последовательность утверждений выполняется в том случае, если все булевы выражения имеют значения FALSE. Связанная с THEN последовательность утверждений выполняется, если расположенное перед THEN выражение имеет значение TRUE. Рассмотрим пример:

IFa> b THEN с: =d; а; =а-f b ELSIF a > b THENd : = c; a: = a - 1 ELSE d: = с -f 1 END

Если, например, a = b = 0,5, то будет выполнено d : = с -Ь 1.

Утверждение CASE позволяет выбрать и выполнить последовательность утверждений в соответствии со зн-ачением выражения. CASE имеет вид:

CASE выражение OF вариант { вариант} [ELSE последовательность утверждений] END

Тип выражения должен быть базисный (кроме REAL), перечисляемый либо поддиапазонный, и все метки должны быть согласованы с данным типом.

Вариант представляет конструкцию вида: список меток * : * последовательность-утверждений.

Пример:

CASE j OF А' В': С :

ELSE END

= а ANDb; х : = х -j- I = а ORb; х : = yi = NOTa; х : = z

= NOTa; x : = у

Если j имеет значение D, то выполнится последовательность а : = NOTa; х : = у.

Утверждение WHILE приводит к циклическому выполнению последовательности утверждений, если значение выражения после ключевого слова WHILE - TRUE. Значение выражения проверяется в начале выполнения утверждения WHILE и в конце, когда достигается ограничитель END : WHILE выражение DO последо вательность-операторов END,



Пример утверждения WHILE;

WHILE (t # NIL) & (t f. key # i) DO t: = t f. left

Утверждение REPEAT. Форма утверждения следующая! REPEAT последовательность-инструкций UNTIL выражение.

Последовательность инструкций выполняется циклически Др тех пор, пока значение выражения после символа UNTIL не станет TRUE. Например:

REPEAT] : = j - l UNTIL j : = О

Если начальное значение j = 5, то утверждение j: = j - I будет выполнено 5 раз.

Утверждение FOR имеет следующий формат:

FOR идентификатор : = выражение 1 ТО выражение 2

{BY константа} DO последовательность-утверждений END Последовательность-утверждений выполняется циклически, пока значение переменной, идентификатор которой размещается после символа FOR, не превысит значения выражения 2. Начальное значение переменной, равное значению выражения 1 на каждом шаге выполнения цикла, увеличивается на I или на значение, определяемое константой, если используется конструкция BY. Тип переменной - INTEGER или CARDINAL. Пример:

FOR 1 : =1 то 80BY2J: = j -f а [i] END.

Утверждение LOOP позволяет циклически повторять последовательность операторов до тех пор, пока не будет выполнен любой из операторов, обеспечивающих выход из данной конструкции; LOOP последовательность-операторов END. ч Пример:

LOOP

IF tlf. key > X THEN 12 : = tlf. left; p : = TRUE

ELSE t2 : = tlf. right; p : = FALSE END; IF 12 : = NIL THEN EXIT END

tl : = 12 END

Утверждение WITH специфицирует переменную типа запись И последовательность операторов для ее обработки: WITH десигна-тор DO последовательность-операторов END.

Пример:

WITH t t DO

key : = 0; left: = NIL; right: = NIL

Квалификаторы идентификаторов полей могут быть опущены, еслн они относятся к той переменной, которая указана после символа WITH.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 [ 76 ] 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95