Программирование в Lazarus для школьников.
Занятие № 12.
Составной оператор.
Матыцин Игорь Владимирович
Учитель математики и информатики
МБОУ СОШ с. Девица
Цель: научится пользоваться составным оператором.
Девица 2013.
Современные алгоритмы достаточно сложны и в ответ на какое-то действие обычно происходит (или не происходит) целый ряд действий. Если в программе все операторы следуют друг за другом, то и выполняются они по порядку. Поэтому общий ряд операторов необходимо особым образом выделять.
Например: если s>j, то необходимо s:=s+1 и j:=j-1. Несложно описать эту задачу при помощи оператора if.
If s>j then s:=s+1 j:=j-1;
Но этот код не будет работать, так как два оператора присваивания не разделены ‘;’.
А если поставить ‘;’, то получим вот это If s>j then s:=s+1; j:=j-1;
Этот код уже будет работать, но не так как нам хотелось. s:=s+1 будет выполнятся, когда s>j, а j:=j-1 будет выполнятся всегда. Это произойдет потому что j:=j-1 от оператора if отделено ‘;’ и не попадает под действие этого оператора.
Для того чтобы эти действия выполнялись вместе необходимо применить особый оператор. Он называется – составной оператор.
Составной оператор служит для объединения групп операторов, которые по смыслу программы рассматриваются как один оператор.
Как в примере: s:=s+1; j:=j-1 должны быть одним оператором. Что бы выполнятся после if вместе. Для того чтобы объединить два оператора будем использовать операторные скобки begin end;.
If s>j then
begin
s:=s+1;
j:=j-1
end;
Теперь все что находится в операторных скобках является составным оператором и будет выполнятся если s>j. Операторы, находящиеся в операторных скобках выполняются последовательно, в том порядке, в котором записаны.
Во многих операторах синтаксис языка требует использование только одного оператора, в этом случае и необходимо использовать составной оператор ( как после слова then по синтаксису должен стоять только один оператор).
При использовании составного оператора есть один нюанс. После последнего оператора, входящего в состав составного оператора, можно не ставить ‘;’. Это объясняется тем что ‘;’ служит для отделения операторов друг от друга, а в составном операторе в конце отделение производится словом end; обязательно с ‘;’.
Если же вы поставите ‘;’, то программа будет работать без ошибок и полностью правильно. Просто вы создадите пустой оператор. Этот оператор не вызывает не каких действий и не какими символами не обозначается. В простейшем случае это просто пустое место между двумя ‘;’
Begin
;
End;
В этом примере есть сразу три пустых оператора между begin ; и между ;и между ; end;.