- •Операторы языка Паскаль
- •1. Оператор присваивания
- •2. Ввод данных
- •3. Вывод данных
- •4. Условный оператор
- •5. Оператор перехода
- •6. Составной оператор
- •7. Операторы организации циклической обработки
- •7.1 Оператор цикла с параметром
- •7.2. Оператор цикла с предусловием
- •7.3. Оператор цикла с постусловием
- •7.4.Операторы прерывания циклов
- •7.5. Вложенные циклы
- •8. Комментарии
4. Условный оператор
Условный оператор используется в тех случаях, когда вычисления могут пойти по различным путям, в зависимости от выполнения или невыполнения определенных условий. Он имеет две формы записи – полную и сокращенную.
Полная форма имеет вид:
if <логическое выражение> then <оператор 1> else <оператор 2>
где if (если), then (то), else (иначе) – служебные слова, <оператор1> и <оператор 2> любые операторы языка.
Порядок выполнения условного оператора следующий. Сначала вычисляется значение логического выражения, если оно принимает значение true, то выполняется <оператор 1> (<оператор 2> пропускается), в противном случае выполняется <оператор 2> (<оператор 1> пропускается). Далее в любом случае выполняется оператор, стоящий в программе непосредственно за оператором if.
Простейшим примером использования условного оператора является вычисление значения функции по одной из двух предложенных формул в зависимости от значения аргумента:
Оператор, реализующий эти вычисления для некоторого значения аргумента х, выглядит следующим образом:
if x>0 then y:= ln(x)
else y:= exp(x);
Сокращенная форма имеет вид:
if <логическое выражение > then <оператор >
Если логическое выражение истинно, то выполняется <оператор>, стоящий после служебного слова then, в противном случае никаких действий не производится и осуществляется переход к следующему оператору.
Условный оператор может быть расширен за счет вложенности новых условий. Новые условия могут записываться как за служебным словом else, так и за then. Сокращенной формой условного оператора в этом случае надо пользоваться очень осторожно, так как может нарушиться вся структура. По умолчанию принято, что служебное слово else всегда относится к ближайшему ему if. Например,
Условный оператор, реализующий эти вычисления, можно записать так:
if x>0.5 then z:= sin(x)
else If (x>=0.1) and (x<=0.5) then z:= tan(x)
else z:= cos(x)
При выполнении первого условия х>0.5 вычисляется значение sin(x) и присваивается переменной z, в противном случае проверяется условие 0.1 x 0.5. При его выполнении переменная z получает значение tan(x), в противном случае cos(x).
5. Оператор перехода
Оператор перехода применяется в том случае, если необходимо нарушить последовательность выполнения операторов. Например, необходимо обойти участок программы, перейти к концу программы или вводу новых исходных данных в случае возникновения аварийной ситуации (вычисление логарифма или квадратного корня при отрицательном аргументе и т.п.).
Общий вид оператора перехода:
goto <метка>
где goto (идти к) – служебное слово, <метка> произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. В качестве меток можно также использовать целые числа без знака в диапазоне от 0 до 9999.
Оператор goto передает управление оператору, помеченному указанной меткой. Имеются определенные ограничения на использование оператора перехода: запрещается осуществлять переход внутрь любого производного оператора.
Метка отделяется от оператора двоеточием. Все метки в данной программе должны быть различными и описанными в разделе описания меток label. Например,
label m1, 25;
(порядок перечисления меток здесь безразличен). В разделе label не должны присутствовать описания меток, которые фактически не использовались в программе в качестве меток операторов.