Виды операторов
1. Оператор присваивания выполняет выражение, заданное в его правой части, и присваивает результат переменной, идентификатор которой расположен в левой части.
Формат оператора:
идентификатор:=выражение;
Такое присваивание возможно лишь в следующих случаях:
· идентификатор и значение выражения принадлежат к одному и тому же типу;
· идентификатор и значение выражение являются совместимыми типами и значение выражения лежит в диапазоне возможных значений идентификатора;
· идентификатор вещественного типа – значение выражения целочисленного типа;
· идентификатор – строка, выражение – символ.
В программе данные одного типа могут преобразовываться в данные другого типа. Такое преобразование может быть явным и неявным. Явное преобразование типов может осуществляться двумя способами:
1. Использование функций преобразование типов.
2. Преобразование типов может осуществляться применением идентификатора (имени) стандартного типа или типа определенного пользователем, как идентификатора функции преобразования к выражению преобразуемого типа, например:
Var
k:Integer;
Begin
Byte(k); {переменная k преобразована в целочисленный тип}
End.
Неявное преобразование типов возможно в двух случаях:
· в выражениях, составленных из вещественных и целочисленных переменных, целочисленные переменные автоматически преобразуются к вещественному типу, и все выражение в целом приобретает вещественный тип;
· одна и та же область памяти попеременно трактуется как содержащая данные то одного, то другого типа (совмещение в памяти данных разного типа).
2. Оператор безусловного перехода Goto. Служит для передачи управления оператору, помеченному меткой. Метка отделяется от оператора двоеточием. Оператор Goto применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.
Формат оператора:
Goto метка;
Формат описания меток:
Label
имя_метки;
При записи оператора Goto необходимо помнить следующее:
1. Метка, на которую передается управление, должна быть описана в разделе описания меток того блока процедуры, функции, основной программы, в котором эта метка используется.
2. Областью действия метки является тот блок, в котором она описана.
3. Попытка выйти за пределы блока или передать управление внутрь другого блока вызывает программное прерывание.
Пример:
Goto met1;
…
met1: оператор;
Обычно оператор Goto применяется для преждевременного выхода из цикла или при обработке ошибок. В других случаях его использовать не рекомендуется.
3. Пустой операторне содержит ни одного символа и не выполняет никаких действий. Он может быть использован там, где синтаксис языка требует наличие оператора, но никакие действия выполнять не нужно. Пустой оператор – это лишняя точка с запятой (;).
Пример:
Goto m7;
...
m7: ;
4. Составной оператор представляет собой группу из произвольного числа операторов, отделенных друг от друга точкой с запятой и ограниченную операторными скобками begin и end. Составной оператор воспринимается как единое целое и может находиться в любом месте программы, где синтаксис языка допускает наличие оператора.
Формат оператора:
begin
Оператор 1;
…
Оператор N;
еnd;
5. Условные операторы обеспечивают выполнение или невыполнение некоторого оператора, группы операторов или блока в зависимости от заданных условий. В Паскале используются два условных оператор: If и Case.
Оператор условия If. Может принимать одну из форм:
If условие then оператор_1
else оператор_2; {полная условная конструкция}
If условие then оператор; {неполная условная конструкция}
В первом случае говорят о полном операторе If, а во втором – о неполном операторе If. Условие – это выражение булевского типа. Оно может быть простым или сложным. Сложные условия образуются с помощью логических операций. При записи условия могут использоваться все возможные операции отношения.
В первом случае если условие истинно, то выполняется оператор_1, если условие ложно – оператор_2. Во втором случае если условие истинно, выполняется оператор, если ложно – оператор, следующий за оператором If.
Оператор If может входить в состав другого оператора If. В этом случае говорят о вложенности операторов:
If условие then
If условие then оператор1
else оператор2;
При вложенности операторов каждое else соответствует тому then, которое непосредственно ему предшествует.
Пример:
If ((A>B) and (C<D)) then
If (Z>=X) then Writeln ('Норма')
else Writeln ('Превышение нормы')
else WriteLn ('Недобор');
Оператор выбора Case является обобщением оператора If и позволяет сделать выбор из произвольного числа имеющихся вариантов. Он состоит из выражения, называемого селектором, и списка параметров, каждому их которых предшествует список констант выбора (список может состоять и из одной константы). Как и в операторе If, здесь может присутствовать слово Else, имеющее тот же смысл. Формат оператора:
Сase выражение-селектор of
Список_1: оператор_1;
Список_2: оператор_2;
...
Список_N: оператор_N
else оператор
end;
Оператор Case передает управление тому оператору, с одним из значений списка которого совпало значение выражения-селектора. Если ни одно из значений списков не совпадает со значением селектора, то либо такой оператор Case эквивалентен пустому оператору и затем выполняется оператор, следующий за словом Еnd, либо выполняется оператор, следующий за словом Else.
Выражение-селектор может иметь любой скалярный тип. Список констант выбора состоит из произвольного числа значений или диапазонов, отделенных друг от друга запятыми.
Примеры:
Case X of {выражение-селектор целого типа}
1,2,3 : A:=B+C;
4 : A:=B-C;
5..9 : A:=B*C
else A:=B/C
end;
Case CH of {выражение-селектор литерного типа}
'A'.. 'z': WriteLn ('Введена латинская буква');
'0'.. '9': WriteLn ('Введена цифра')
end;
6. Операторы циклов. Цикл – это последовательность операторов, которая может выполняться более одного раза. Если количество повторов известно заранее, используется оператор For, если количество повторов неизвестно, применяются операторы Repeat и While.
Оператор повтора For состоит из заголовка и тела цикла. Он может быть представлен в двух форматах:
For параметр_цикла:=начальное_значение to конечное_значение do
оператор;
For параметр_цикла:=начальное_значение downto конечное_значение do
оператор;
Тело цикла может быть простым или составным оператором. Оператор For обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного.
Параметр цикла, его начальное и конечное значения должны принадлежать к одному и тому же типу данных. При этом допустим любой скалярный тип, кроме вещественного. В цикле For…to значение параметра цикла увеличивается на единицу, а в цикле For…downto значение параметра цикла уменьшается на единицу.
Пример. Найти сумму чисел в диапазоне от 0 до 100.
Program DemoFor;
Var
I, Sum: Integer;
Begin
Sum:=0;
For i:=0 to 100 do
Sum:=Sum+I;
WriteLn ('Сумма чисел равна ',Sum);
End.
Оператор повтора repeat состоит из заголовка (Repeat), тела и условия окончания (Until).
Формат оператора:
Repeat
оператор_1;
...
оператор_n;
Until условие;
Условие – выражение логического типа. Операторы, заключенные между словами Repeat и Until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат равен False, тело цикла активизируется еще раз, если результат True – происходит выход из цикла.
Оператор Repeat имеет три характерные особенности:
· выполняется по крайней мере один раз;
· тело цикла выполняется пока условие равно False;
· в теле может находиться произвольно число операторов без операторных скобок Begin...End.
Пример. Найти сумму нечетных чисел в диапазоне от 0 до 100.
Program DemoRepeat;
Var
I, Sum: Integer;
Begin
I:=3;
Sum:=3;
Repeat
Sum:=Sum+I;
I:=I+2;
Until (I>100);
WriteLn ('Сумма нечетных чисел равна ',Sum);
End.
Оператор While аналогичен оператору Repeat, но проверка условия выполнения тела цикла производится в самом начале цикла.
Формат оператора:
While условие do оператор;
Условие – выражение логического типа, тело цикла – простой или составной оператор. Перед каждым выполнением оператора вычисляется значение выражения условия. Если результат условия равен True, оператор выполняется и снова вычисляется выражение условия. Если результат равен False, происходит выход из цикла и переход к первому после While оператору. Если перед первым выполнением цикла значение выражения было False, оператор вообще не выполняется и происходит переход на следующий оператор.
Операторы For, While, Repeat могут быть вложенными, т.е. в теле цикла может быть другой оператор цикла.
Пример. Найти сумму четных чисел в диапазоне от 0 до 100.
Program DemoWhile;
Var
I, Sum: Integer;
Begin
I:=2;
Sum:=0;
While (i<=100) do
Begin
Sum:=Sum+I;
I:=I+2;
end;
WriteLn ('Сумма четных чисел равна ',Sum);
End.
7. Операторы управления работой циклов. Для управления работой цикла используются специальные процедуры-операторы Continue, Break.
Вызов процедуры Continue в теле цикла прерывает выполнение цикла и переходит к проверке условия, минуя все операторы, расположенные ниже Continue.
Repeat оператор; … Continue; … оператор; Until условие; | While условие do begin оператор; … Continue; … оператор; end; | For i:=1 to N do begin оператор; … Continue; … оператор; end; |
Вызов процедуры Break прерывает выполнение цикла и передает управление первому оператору, расположенному за оператором цикла.
Repeat оператор; … Break; … оператор; Until условие; оператор; | While условие do begin оператор; … Break; … оператор; end; оператор; | For i:=1 to N do begin оператор; … Break; … оператор; end; оператор; |
Дата добавления: 2015-04-15; просмотров: 5030;