вторник, 21 апреля 2015 г.

Урок 2: Оператор выбора case


Оператор варианта необходим в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те
или иные операторы (простые или составные). Если вариантов всего два, то можно обойтись и оператором IF. 
Но если их, например, десять? В этом случае оптимален оператор варианта CASE.
Синтаксис оператора CASE:
CASE УправляющаяПеременнаяИлиВыражение OF
    НаборЗначений1 : Оператор1;
    НаборЗначений2 : Оператор2;
    НаборЗначений3 : Оператор3;
            . . .
    НаборЗначенийN : ОператорN
    ELSE АльтернативныйОператор
END;

                                                          Блок-схема оператора выбора 














Между служебными словами CASE и OF должна стоять переменная или выражение (оно вычисляется при исполнении 
оператора CASE) целочисленного или любого порядкового типа.  
Набор значений – это конкретные значения управляющей переменной или выражения, при которых необходимо 
выполнить соответствующий оператор, игнорируя остальные варианты. Если в наборе несколько значений, то они
 разделяются между собой запятой. Можно указывать диапазоны значений, например, 0..9 – все значения от нуля до девяти. 
Наборы значений и диапазоны можно комбинировать. Между набором значений и соответствующим ему оператором
 обязательно ставится символ “:”. 
Значения в каждом наборе должны быть уникальными, т.е. они могут появиться только в одном варианте. Пересечение 
наборов значений для разных вариантов является ошибкой, и она будет замечена компилятором.
Оператор (Оператор1, Оператор2, …) в конкретном варианте может быть как простым, так и составным.
Пример 1.
PROGRAM Example_CASE_1;
VAR A : integer;
BEGIN
    Write(‘Введите оценку: ‘); Read(A);
    CASE A OF
        2 : Write(‘неудовлетворительно’);
        3 : Write(‘удовлетворительно’);
        4 : Write(‘хорошо’);
        5 : Write(‘отлично’)
        ELSE Write(‘Ошибка!’)
    END;
END.
Здесь в зависимости от значения переменной А на экран выводится наименование оценки. Наличие варианта ELSE 
обеспечивает вывод сообщения об ошибке в случае, когда введено число вне интервала 2..5.
Пример 2.
PROGRAM Example_CASE_2;
VAR Hour : integer;
BEGIN
    Read( Hour );
    CASE Hour OF
        0, 24 : Write(‘Полночь’);
        1..4 : Write(‘Ночь’);
        5..7 : Write(‘Раннее утро’);
        8..11 : Write(‘Утро’);
        12 : Write(‘Полдень’);
        13..17 : Write(‘День’);
        18..23 : Write(‘Вечер’)
        ELSE Write(‘Введено число вне диапазона 0..24!’)
    END;
END.












Комментариев нет:

Отправить комментарий