Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб. пособие по ОЭВМ.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
4.34 Mб
Скачать

11. Переменные языка mcl.

Все переменные должны быть обязательно описаны перед ссылкой на них (неявное определение переменных не поддерживается). Максимальное число переменных, которые могут использоваться в программе одновременно составляет 100. Использование большего числа переменных приведет к ошибке. Как уже было отмечено выше, максимальная разрядность регистра или структуры - 32 разряда, а максимальное число ячеек памяти 1024.

12. Операторы языка mcl. Оператор - формат:

один оператор может занимать одну или более строк. Два или большее количество операторов могут находится на одной строке. Каждый оператор должен завершаться точкой с запятой.

Оператор - метка:

метка может стоять перед любым оператором, чтобы на этот оператор можно было перейти с помощью оператора GOTO или GOSUB. Метка состоит из идентификатора за которым стоит двоеточие. Один оператор может иметь несколько меток.

Оператор - присваивание: :=

оператор присваивания имеет следующий формат:

<переменная> := <выражение>;

Значение выражения вычисляется и присваивается переменной. В качестве переменной может использоваться любая допустимая ссылка на переменную.

Например:

ra:=15+rb/2; ml[1,2..4]:=0b111; mb[3]:=0;

rk.r1:=(ra[0..3]+rb[0..3]) ROL 2;

Оператор - безусловный переход: goто

оператор безусловного перехода имеет формат:

GOTO <идентификатор> ;

Управление безусловно передается на оператор перед которым

стоит метка <идентификатор>.

Оператор - вызов подпрограммы: gosub

оператор вызова подпрограммы имеет формат:

GOSUB <идентификатор> ;

Управление передается на оператор перед которым стоит метка <идентификатор>. Когда будет выполнен оператор RETURN, управление будет возвращено оператору следующему за GOSUB.

Например:

GOSUB SUBR;──────────────────┐ -Вызов ПП

WRITELN "MAIN PROG";<────────┼─┐ -Возврат из ПП

... │ │

... │ │

SUBR:<───────────────────────┘ │

WRITELN "SUBROUTIN"; │

RETURN;────────────────────────┘

Допускается вложение вызовов подпрограмм. Максимальный уровень вложенности - 16.

Оператор - возврат из подпрограммы: return

оператор возврата из подпрограммы имеет формат:

RETURN;

Управление передается на оператор следующий за оператором GOSUB (см. пример выше).

Оператор - условный оператор: if then

условный оператор имеет формат:

IF <выражение> THEN <оператор> ;

Сначала вычисляется значение <выражения> и, если оно не равно 0, то выполняется оператор следующий за THEN. В противном случае выполняется следующий оператор. В качестве <выражения> можно использовать любое (не обязательно логическое) выражение.

Например:

I:=1;

IF I THEN WRITELN "i<>0";

J:=0; IF I<J THEN GOTO LBL2;

PRINT "I>J";

LBL2:

END;

Результатом выполнения этой программы будет:

I<>0 I>J

Оператор - оператор цикла: for to next

оператор цикла имеет формат:

FOR <идентификатор>:=<выражение1>TO<выражение2>; { <оператор> } NEXT;

Переменной с именем <идентификатор> присваивается значение <выражения1>, после чего выполняются все операторы до оператора NEXT. После этого к переменной <идентификатор> прибавляется 1 и ее значение сравнивается с значением выражения <выражение2>. Если значение переменной больше значения выражения, то выполнение цикла прекращается и управление передается следующему за NEXT оператору, в противном случае опять выполняются все операторы до оператора NEXT и т.д. Допускается использование вложенных циклов. Максимальный уровень вложенности не должен превышать 16.

Замечание:

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

Например:

FOR I:=0 TO 1023; ML[I]:=0; NEXT;