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

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


Содержание



Ответы

1. Какое назначение оператора варианта case в программе?

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


2. Какой общий вид оператора выбора case?

Общий вид оператора выбора:

case ordinal_expression of
  1: statement1; // выполняется если ordinal_expression=1
  2, 3: statement2; // выполняется если ordinal_expression = 2 или
                    // ordinal_expression = 3
  else
    statement 3; // выполняется во всех других случаях
end;

Здесь переменная ordinal_expression называется селектором. Селектор имеет обязательно порядковый тип.

statement1, statement2, statement3 – один или несколько операторов (берутся в операторные скобки begin и end).

Цифры 1, 2, 3 есть метками. Метки отделяются от операторов двоеточием. Метки представляют значения, которые может принимать селектор. При обращении к оператору case выполняется оператор, метка которого отвечает значению селектора. Метки в операторе case могут быть заданы в виде диапазонов.

Оператор варианта case может выполняться и без использования блока else. В этом случае общий вид оператора case следующий:

case ordinal_expression of
  1: statement1; // выполняется если ordinal_expression=1
  2, 3: statement2; // выполняется если ordinal_expression = 2 или
                    // ordinal_expression = 3
end;

Если значение ordinal_expression не содержит ни одного из тех, что указаны в метках (1, 2, 3), то выполняется оператор, который следует сразу за оператором case.


3. Какое назначение блока else в операторе case?

Оператор , размещенный после else, выполняется в том случае, если значение селектора не отвечает ни одной из указанных меток.


4. Пример использования оператора case без использования блока else.

Задано число n (n = 1..3), которое есть номером функции. По значению n вычислить:

01_02_02_01_07_formula_rФрагмент кода, который решает данную задачу:

...

case n of
  1: y:=sin(x);
  2: y:=cos(x);
  3: y:=sin(x)/cos(x);
end;

...


5. Пример использования оператора case с использованием блока else.

Написать фрагмент программного кода, который по заданному номеру месяца n определяет количество дней в этом месяце. Количество дней сохраняется в переменной k.

case n of
  2: k:=28;
  4, 6, 9, 11: k:=30;
  else
  k:=31;
end;


6. Пример использования оператора case, в котором метки задаются диапазоном значений.

Фрагмент кода, в котором по номеру дня n = 1..7, определяется выходной этот день (true) или рабочий (false).

...

case num of
  1..5: f_day_off := false;
  6,7: f_day_off := true;
end;

...