Оператор варіанту 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
    statement3; // виконується у всіх інших випадках
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_uФрагмент коду, що розв’язує дану задачу:

...

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;

...