Вопросы темы:
1. Безусловные конструкции.
2. Условные конструкции.
3. Конструкция выбор.
4. Циклические конструкции.
В Паскале существуют следующие операторы безусловного перехода.
Оператор безусловного перехода Goto представляет собой простой оператор, используя который можно изменять порядок выполнения операторов в программе. Общий вид оператора безусловного перехода:
goto <метка>,
где <метка> - это идентификатор или целое число от 0 до 9999, объявленное в разделе меток label.
Применение оператора безусловного перехода в Паскаль-программе является нежелательным, т.к. его присутствие нарушает структурную целостность и наглядность. Такую программу трудно читать, отлаживать и модифицировать.
Оператор Break позволяет досрочно закончить цикл.
Оператор Continue позволяет начать новую итерацию цикла, даже если предыдущая не была завершена.
Оператор Exit позволяет завершить работу текущего программного блока.
Оператор Halt (n), (где n - некоторое целое число) позволяет завершить работу программы с кодом завершения n.
Условный оператор.
Ход выполнения программы может быть различным. Если в задаче, в
зависимости от какого-либо условия, можно будет двигаться по разным путям, то алгоритм решения такой задачи называется ветвящимся. Организовать ветвление позволяет условный оператор (if – если, else - иначе).
Условный оператор позволяет проверить некоторое условие, и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор - это средство ветвления вычислительного процесса.
Условный оператор имеет несколько форм:
1) неполная форма с одним оператором
2) полная форма с одним оператором
3) неполная форма с несколькими операторами
4) полная форма с несколькими операторами
1) IF условие THEN оператор;
2) IF условие THEN оператор1 ELSE оператор2;
3) IF условие THEN BEGIN
оператор1;
оператор2;
…
оператор N;
END;
4) IF условие THEN BEGIN
оператор1;
оператор2;
…
операторN;
END ELSE
BEGIN
оператор 1;
оператор2;
…
операторN;
END;
Необходимо сделать некоторые пояснения. В некоторых формах условного оператора используется составной оператор. Составной оператор предназначен для объединения нескольких операторов в один. Он имеет вид:
begin
операторы;
end
Операторы отделяются один от другого символом ";". Служебные слова begin (начало) и end (конец), окаймляющие операторы, называются операторными скобками. Так, как служебное слово end является закрывающей операторной скобкой, оно одновременно указывает и конец предыдущего оператора, поэтому ставить перед ним символ ";" необязательно. Перед end может ставиться ";". В этом случае считается, что последним оператором перед end является пустой оператор, не выполняющий никаких действий. Пустой оператор не содержит никаких действий, просто в программу добавляется лишняя точка с запятой.
Условные операторы могут быть вложенными, как показано в следующем примере.
Пример: ввести оценку студента в баллах и вывести ее название.
var b: integer;
Begin
Readln(b);
If b=5 then Writeln(' отлично ') else
If b=4 then Writeln(' хорошо ') else
If b=3 then Writeln(' удовл ') else
If b=2 then Writeln(' неудовл ') else
Writeln ('не оценка');
End.
Оператор выбора.
Иногда требуется осуществить выбор более чем из двух условий. В этом случае применяется оператор множественного выбора, позволяющий выбрать из списка одно из условий. Оператор выбора выполняет одно действие из нескольких в зависимости от значения некоторого выражения, называемого переключателем. Переключатель представляет собой значение порядкового типа (целого, символьного, перечисляемого или интервального), а списки выбора содержат константы совместимого типа.
Оператор выбора является структурированным и использует в своей записи операторы case, of, else, end и операторные скобки по необходимости. Как и в операторе if, ветвь else может отсутствовать.
В общем виде оператор выбора можно записать так:
Case порядковая переменная of
значение1: begin оператор1; оператор2; …; операторN; end;
значение2: begin оператор1; оператор2; …; операторN; end;
…
значениеM: begin оператор1; оператор2; …; операторN; end;
else begin оператор1; оператор2; …; операторN; end;
end;
Оператор case работает следующим образом. В списке выбора
проверяется на совпадение текущее значение переключателя и меток списка, и, если найдено совпадение, то выполняется оператор, соответствующий данной строке списка. Если же значение переключателя не найдено ни в одной строке, то выполняется оператор else. В случае, если ветвь else отсутствует, оператор case не выполняет никаких действий, а управление передается внешнему оператору, следующему за конструкцией case. Список выбора состоит либо из одной константы, либо из диапазона значений
вида a..b (константа a должна быть меньше константы b). Можно также
перечислить несколько констант или диапазонов через запятую:
case DayOfWeek of
1..5: writeln('Рабочий день ');
6,7: writeln('Выходной ');
end;
Пример: ввести оценку студента в баллах и вывести ее название.
var b: integer;
Begin
Readln(b);
Case b of
5: Writeln(' отлично ');
4: Writeln(' хорошо ');
3: Writeln(' удовл ');
2: Writeln(' неудовл ');
else Writeln(' не оценка ');
end;
end.
Циклические конструкции.
Циклический вычислительный процесс характеризуется повторением одних и тех же действий над некоторым набором данных. Числом повторений цикла управляет специальная переменная, называемая его счетчиком или управляющей переменной цикла. На счетчик накладывается условие, определяющее, до каких пор следует выполнять цикл. Повторяемый блок вычислений называют телом цикла. Если тело цикла состоит более чем из одного оператора, оно заключается в операторные скобки begin... end;. Однократное выполнение тела цикла называют его шагом.
Таким образом, для программирования цикла достаточно определить условие, управляющее числом его повторений и описать операторы, образующие тело цикла.