8.Операторы. Оператор присваивания
Операторы: |
||
Условный оператор IF |
IF - сокращенная форма |
Составной оператор |
CASE - оператор выбора из нескольких вариантов |
goto - оператор перехода |
Оператор присваивания |
Оператор цикла: while |
Оператор цикла: repeat |
Оператор цикла: for |
Оператор над записями и объектами: with |
Пустой оператор |
|
Оператор – инструкция, задающая определенные действия программы. Одним из операторов является оператор присваивания, который присваивает значение некоторого выражения некоторой переменной. Оператор присваивания имеет следующую структуру: <Переменная> := <Выражение> ; ... ( 1 )
Важно отметить следующее:
:= является ЕДИНЫМ ( неделимым ) символом.
как правило, операторы заканчиваются знаком ; Этот символ отделяет операторы друг от друга. Иногда можно его не ставить, но проще ставить «на всякий случай» и для повышения наглядности программы. Этот знак НЕЛЬЗЯ ставить перед else
Тип переменной в левой части оператора присваивания должен соответствовать типу выражения. Так, если Х описан, как переменная вещественного типа, т е Var X : Real; то
Begin
Х := 2 + 3.5 ;{- правильное присваивание}
Х := 'Viena'; {- неправильное присваивание, справа - строка ! }
Х := 4 > 7; {- неправильное присваивание, справа - выражение
логического типа (результат = FALSE)}
End;
Чтобы сделать такие присваивания правильными, опишем переменную Y типа строка и переменную Z логического ( булевского ) типа.
Var X: Real; Y: String; Z: Boolean;
Begin
Х := 2 + 3.5 ;{ - правильное присваивание X = 5.5 }
Y := 'Viena'; {- правильное присваивание, Y = 'Viena'}
Z := 4 > 7; {- правильное присваивание, Z = False }
End;
Оператор присваивания выполняется в таком порядке: - вычисляется выражение, записанное справа от знака := - полученное в результате значение присаивается переменной, записанной слева от знака := , то есть переменная теперь будет хранить это значение.
Операторы программы (подпрограммы) обычно выполняются в том порядке, в каком они записаны, т е слева – направо и сверху-вниз. Однако есть операторы, которые нарушают этот порядок, например, условный оператор
Переменная в ( 1 ) может быть элементом более сложной структуры, например, объекта или массива (вектора, матрицы
12.Оператор case
- мощное средство выбора альтернатив.Синтаксис оператора:
case <выражение логического типа> of
<мишень1>:<оператор1>;
<мишень2>:<оператор2>;
<мишень3>:<оператор3>;
<мишень4>:<оператор4>;
. . .
[ else
<операторы> ]
end;
(Квадратные скобки обозначают необязательность)
Состоит из выражения (селектора) и списков операторов, каждому из которых предшествует "мишень" того же типа, что и селектор. Это значит, что в данный момент выполняется тот оператор, "мишень" перед которым соответствует текущему значению селектора. Если совпадения значений не происходит, то не выполняется ни один из операторов, входящих в case или же выполняются операторы, стоящие после необязательного слова else, (если они есть).
"Мишень" состоит из любого количества констант или поддиапазонов, разделенных запятыми, за которым следует двоеточие (:), например:
var BSt: char; os,curlens, herons,
egrets, terns,rr: word;
begin
write('simv -> ');
readln(BSt);
case BSt of
'k'..'m': terns:= 21;
'o'..'p','r'..'s': Os := Os + 1;
'C', 'c': Curlens := Curlens + 1;
'H', 'h': Herons := Herons + 1;
'E', 'e': Egrets := Egrets + 1;
'T', 't': Terns := Terns + 1;
else
RR := 0;
RR := RR+1;
RR := RR + 1;
readln;
end; {case}
end.
Поддиапазон записывается в виде двух констант, разделенных двумя точками "..". Тип константы должен соответствовать типу селектора. Оператор (только ОДИН! Иначе используйте СОСТАВНОЙ оператор), стоящий после двоеточия (:), выполняется в том случае, если значение селектора совпадает со значением константы или, если его значение попадает в диапазон значений. Если более одной мишени соответствуют значению селектора, выполняется оператор только первой (по порядку)из них.