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. |