Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_7.docx
Скачиваний:
4
Добавлен:
22.01.2022
Размер:
57.02 Кб
Скачать

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 не должны присутствовать описания меток, которые фактически не использовались в программе в качестве меток операторов.