Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_1_2 Паскаль.DOC
Скачиваний:
19
Добавлен:
10.04.2015
Размер:
143.87 Кб
Скачать

2.6. Справки по операторам

2.6.1. Оператор if

Основным средством разработки разветвленных структур алгоритмов в Turbo Pascal являются условные операторы if и case. С их помощью можно влиять на последовательность выполнения операторов программы.

Оператор if предназначен для выполнения одного из двух возможных действий (операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, то есть отсутствовать).

В качестве условия выбора должно быть логическое выражение; Например, A>B; (A+X)<>N; (A>B) and (B>C).

Оператор if может принимать одну из следующих форм:

1. if <условие> then <оператор 1> else <оператор 2>;

{если <условие> то <оператор 1> иначе <оператор 2>;}

2. if <условие> then <оператор 1>;

{если <условие> то <оператор 1>;}

Оператор if выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значение булевского типа. В первом случае, если значение есть true (истина), то выполняется <оператор 1>, указанный после ключевого слова then, иначе выполняется <оператор 2>, указанный после ключевого слова else. Во втором случае, если результат вычисления выражения есть false (ложь), то выполняется оператор, следующий за оператором if.

Например:

·····························

if x>y then max:=x else max:=y;

·····························

При x>y выполняется оператор max:=x, при xy выполняется оператор max:=y

Пример оператора if без else:

·····························

if x>y then writeln(x);

·····························

При x>y выполняется оператор writeln(x), иначе выполняется оператор, следующий за оператором if.

Часто возникает необходимость выполнять в одной из ветвей (или в обеих ветвях) условного оператора несколько команд. В этом случае используется составной оператор.

Составной оператор – группа операторов, помещенных между ключевыми словами begin и end.

Например:

if x>y then

begin { начало составного оператора }

max:=x;

writeln(‘max=’, max);

end { конец составного оператора }

else

x:=x+1;

В качестве оператора в одной ветви или в обеих ветвях могут быть использованы условные операторы. Такие операторы называются вложенными.

Например:

if x< -3 then y:=x+1 else

if x>3 then y:=x*x else y:=y*y;

Примечание. Служебное слово else всегда ассоциируется с ближайшим по тексту if.

2.6.2. Оператор выбора case

Оператор case позволяет сделать выбор из произвольного числа имеющихся вариантов. С его помощью можно сопоставить различным значениям некоторого выражения, называемого селектором (от selection – выбор), соответствующие им операторы.

Оператор case имеет следующий формат:

case <выражение-селектор> of

константа или список констант №1 : <оператор 1>;

константа или список констант №2 : <оператор 2>;

·····························

константа №N : <оператор N>

else <альтернативный оператор>

end;

Оператор case работает следующим образом. Сначала вычисляется значение выражения селектора, затем выполняется тот оператор, константа выбора которого равна текущему значению селектора. Если ни одна константа не равна значению селектора, то выполняется альтернативный оператор, стоящий за словом else. Альтернативный оператор можно не писать.

Например:

write(‘Введите значение n =’);

readln(n);

case n of

1 : y:=x;

2 : y:=x*x;

3 : y:=x*x*x

else y:=0

end;

writeln(‘y=’, y);

При n=1 выполняется оператор y:=x.

При n=2 выполняется оператор y:=x*x.

При n=3 выполняется оператор y:=x*x*x.

При любых других значениях n выполняется оператор y:=0.

После завершения оператора case выполняется оператор writeln(‘y=’, y). Кроме одиночных констант могут быть заданы списки и/или диапазоны значений.

Например:

case n of

0,1..4 : y:=x;

2,5 : y:=x*x;

3 : y:=x*x*x

end;

При использовании оператора case должны выполняться следующие правила:

– значение селектора должно принадлежать дискретному типу; для целого типа integer оно должно лежать в диапазоне -32768..32767;

– все константы, предшествующие операторам альтернатив, должны иметь тип, совместимый с типом селектора;

– все константы в альтернативах должны быть уникальны в пределах оператора case;

– диапазоны не должны пересекаться и не должны содержать констант, указанных в данной альтернативе или в других альтернативах.