Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория.pdf
Скачиваний:
520
Добавлен:
11.05.2015
Размер:
1.15 Mб
Скачать

Здесь ветвь Else уже относится к первому оператору If.

Пример 7.8.

Задача. Ввести переменные А1, А2, А3 и упорядочить их по возрастанию.

Program Primer;

 

Var

 

A1, A2, A3: Real;

 

Vs: Real;

{Vs – вспомогательная переменная}

Begin

Readln (A1, A2, A3); {Чтение исходных значений}

Writeln (A1, A2, 3);

 

If A1 > A2 Then

 

Begin

 

Vs := A1;

{В А1 помещается наименьший из А1, А2}

A1 := A2;

 

A2 := Vs

{Vs используется для перемены А1 и А1 местами}

End;

 

If A1 > A3 Then

 

Begin

 

Vs := A1;

{В А1 помещается наименьший из А1, А3}

A1 := A3;

 

A3 := Vs

 

End;

 

If A2 > A3 Then

 

Begin

 

Vs:= A2;

{ В А2 помещается наименьший из А3, А2}

A2 := A3;

 

A3 := Vs

 

End;

 

Writeln (A1, A2, A3)

{Вывод результата}

End.

 

7.2.3. Оператор варианта (выбора) Case

Является производным оператором. Относится к группе выбирающих операторов.

Используется в разветвляющихся программах, если процесс нужно разветвить более чем по двум возможным направлениям. Является обобщением условного оператора If.

147

Формат оператора Case представляет рисунок 7.4.

Оператор Case позволяет выбрать для исполнения один из входящих в него операторов, в зависимости от значения выражения, расположенного после зарезервированного слова Case. Это выражение называется селектором (переключателем). Оно может иметь любой перенумерованный тип, кроме типов Longint, Word и строкового типа.

Каждый оператор помечен списком констант выбора и (или) диапазонов констант выбора (рисунок 7.5).

<Оператор Case>::=

 

 

 

Case

<Выражение>

Of

<Диапазон>

:

<Оператор>

,

 

 

 

 

 

;

 

Else

<Оператор>

 

End

 

 

 

;

 

 

 

Рисунок 7.4 – Синтаксическая диаграмма оператора Case

<Диапазон> ::=

<Константа_1>

.. <Константа_2>

Рисунок 7.5 – Синтаксическая диаграмма диапазона

148

Последний оператор может быть помечен зарезервированным словом Else (иначе). Если несколько констант выбора относятся к одному и тому же оператору, то они отделяются друг от друга запятой. Константы выбора должны иметь тот же тип, что и селектор.

Оператор Case выполняется следующим образом. Сначала вычисляется значение селектора. Затем выполняется тот оператор, для которого значение константы выбора совпадает со значением селектора. Если ни одна константа выбора не совпадает со значением селектора, то будет выполнен оператор, помеченный зарезервированным словом Else. На этом выполнение оператора Case заканчивается.

Если значению селектора не соответствует ни один из допустимых вариантов выполнения (ветвь Else отсутствует), то выполняется оператор, следующий за Case.

Пример 7.9.

Примеры использования селекторов различных типов.

Case 2 * I – K –100 .. –1:

0:

1 .. 100:

End

Case A Of

‘A’ .. ‘Z’:

‘#’, ‘_’, ‘::

‘+’:

Else:

End

Of

{Cелектор целочисленного типа}

Writeln(‘<0’);

 

Writeln (‘=0’);

 

Writeln(‘>0’)

 

X := 0;

X := 1; селектор типа Char

X := 2

X := 3

Константы выбора метками не являются. Поэтому они не описываются в разделе меток и не могут использоваться в операторе перехода. Например, применительно к примеру 7.9 нельзя написать Goto 1.

7.2.4. Пустой оператор

Формат пустого оператора иллюстрирует рисунок 7.6.

149

<Пустой_оператор> ::=

Рисунок 7.6 – Формат пустого оператора

Пустой оператор не задает никаких действий и не оказывает никакого влияния на ход выполнения программы. Он может быть использован везде, где по синтаксису используется понятие <Оператор>.

Пустой оператор часто используется для размещения метки в программе, не соотнося ее с некоторым оператором; для организации возможности обращения к одному оператору по нескольким меткам.

Пример 7.10.

Примеры использования пустого оператора.

1) Begin

M: ; X := X + 2; End

 

пустой

пустой оператор

помеченный

 

 

оператор

 

2) Begin

..................

11: End

пустой помеченный оператор

3) 1: ; 2: y := sin(x) – на данный оператор можно сослаться по любой из меток.

пустой помеченный оператор

Пустой оператор может быть использован в операторе If для устранения двусмысленности, связанной с использованием его вложенной сокращенной формы.

150

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