Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 139.docx
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
206.28 Кб
Скачать

3.6. Операторы языка

Оператор – наименьшая часть работы программы, имеющая самостоятельное значение и вызывающая к исполнению ту или иную последовательность машинных команд. Операторы могут быть объединены в программный блок. Для передачи управления (условные и безусловные переходы) операторы могут помечаться метками. Действие метки распространяется на весь программный блок, в котором эта метка определена. Метка – это последовательность букв и цифр, начинающаяся с буквы или символа подчеркивания. Операторы состоят из ключевых слов и операндов и отделяются друг от друга символом « ; ». Различают операторы простые и структурные.

Простые операторы. К ним относятся операторы присваивания, перехода GOTO, вызова процедуры и пустой оператор.

Оператор присваивания. Например, А: = В + С;

Оператор перехода. Оператор состоит из зарезервированного ключевого слова GOTO и операнда – метки той части программы, которой необходимо передать управление.

Например,

1: begin

……..

end;

begin

……..

goto 10;

………

10 : a: = b + c

…….

goto 1;

end;

Переход возможен только к той метке, которая определена в этом блоке, в этой процедуре.

Пустой оператор. Оператор не указывает ни на какую операцию и состоит только из символа «;». Например,

a:= b + c; ; ;

;

;

d := e +f;

Несколько операторов, выполняемых последовательно, могут быть объединены в один составной. Такое утверждение идентифицируется ключевым словом BEGIN и заканчивается словом END. Например,

Begin

a:=b;

d:=a + c;

f:=d+1;

end;

Структурные операторы. Они включают в себя несколько ключевых слов с операндами. К структурным операторам относятся операторы для организации ветвлений программы, когда выполнение той или иной последовательности операций связано с проверкой некоторого условия. Проверка условия может выполняться с помощью операторов IF и CASE.

Оператор IF используется вместе с операторами THEN и ELSE. Например, если a =b, то переменной c присваивается значение переменной d и после этого выполняется вызов функции cos(d):

IF a = b then c := d;

a:=cos(d);

В том случае, если a≠b, параметр c не определен. Придадим ему, например, нулевое значение, и тогда a будет равно 1:

IF a=b then c:=d else c:=0;

a:=cos(c);

Операторы IF могут быть вложенными один в другой. Например,

IF A<>0 THEN IF B<>9 THEN A=B THEN C:=D ELSE C:=0;

Оператор из предыдущего примера вложен в оператор IF B<>0, который, в свою очередь, тоже вложен в оператор IF A<>0.

Оператор CASE служит для ветвления программы по определенному признаку. Этим признаком является текущее значение выражения, стоящего за ключевым словом CASE и называемого селектором. Тип и значения селектора должны соответствовать типу и значениям меток, идентифицирующих ту или иную последовательность операций. Например,

case (x+y-1) of

2 : a:=b;

3 : a:=sin(x);

4 .. 9 : a:=cos(x);

10 : a:=sin(x+y);

else a:=1;

end;

Управление от оператора CASE будет передано метке 2, если выражение (x+y-1) равно 2, аналогично – метке 3; метке 4 .. 9, если значение выражения соответственно будет 4, 5, 6, 7, 8 или 9. Если всех значений выражения программист заранее не может предвидеть, он должен обязательно включить оператор else.

Для организации повторного или многократного прохождения той или иной последовательности операций программист может воспользоваться операторами для организации цикла:

WHILE, REPEAT, FOR.

Оператор WHILE указывает на то, что, пока выполняется следующее за ним условие, должно повторяться выполнение последовательности операций, следующей за оператором DO. Например,

while a=b do c:= a + b;

Если при первой же проверке условия a=b окажется, что a ≠ b, то оператор c:= a +b не будет выполнен ни одного раза.

Оператор REPEAT. Иногда программисту необходимо, чтобы выполнение тела цикла предшествовало проверке условия и, таким образом, было выполнено хотя бы один раз. Например,

repeat c:=a+b until a<> b;

Повторять выполнение c:= a+b до тех пор, пока выполняется условие a=b. Даже если a не будет равно b при первой проверке, все равно первый раз (и единственный) оператор c:=a + b все таки будет выполнен. Этим и отличается использование оператора REPEAT от WHILE.

Оператор FOR указывает на то, что для каждого элемента последовательности значений, присваиваемых некоторой переменной (параметру цикла), в этом операторе должна повторно выполняться некоторая группа операций. Например,

for i :=1 to 100 do a := b+1;

Иными словами, для всех I =1,2,3,..,100 необходимо вычислять значение переменной a = b + 1. Переменная i должна быть порядкового типа и не меняться при вычислении выражения в теле цикла, стоящем после do.

Оператор WITH применяется при работе с полями записей и служит для следующих целей. Если требуется некоторая последовательность операций над различными полями одной записи, то в каждой операции имена полей должны были бы быть составными (из имени записи и имени поля ), то есть имя записи дублировалось бы во всех операциях. Чтобы этого избежать, такую группу операций над полями одной записи объединяют в блок с операторами WITH и END и имя записи записывают один раз вслед за оператором WITH и в самом блоке записываются только имена полей. Например,

with record do begin

. . . . . . . . . . . . . . . . . . . . . . .

year := 5;

month := 2;

day :=15;

. . . . . . . . . . . . . . . . . . . . . . .

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]