Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pas_Lab2.doc
Скачиваний:
6
Добавлен:
15.03.2016
Размер:
167.94 Кб
Скачать

2.6. Справки по операторам для разработки программ с разветвленной структурой

2.6.1. Оператор if

Основным средством разработки разветвленных структур алгоритмов в TurboPascalявляются условные операторы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;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]