НАРЯДУ С
УСЛОВНЫМ ОПЕРАТОРОМ IF-THEN-ELSE, ПРИМЕНЯЮТ ОПЕРАТОР ВЫБОРА CASE. ЭТОТ ОПЕРАТОР
ЧАСТО ИСПОЛЬЗУЮТ ДЛЯ ЗАМЕНЫ КОНСТРУКЦИИ ИЗ ВЛОЖЕННЫХ УСЛОВНЫХ ОПЕРАТОРОВ.
ОПЕРАТОР CASE ОЧЕНЬ ХОРОШ ДЛЯ ОБРАБОТКИ СИТУАЦИЙ КОГДА УСЛОВИЕ ПРИНИМАЕТ БОЛЕЕ
ДВУХ ЗНАЧЕНИЙ. ВОТ ЕГО ОСНАВНАЯ ФОРМА:
CASE
выражение OF
Значение-1:оператор-1;
Значение-2:оператор-2;
…….
Значение-n:оператор-n;
END.
CASE-ВЫРАЖЕНИЕ МОЖЕТ БЫТЬ ТИПА INTEGER, CHAR, BOOLEAN, НУ ИЛИ ЛЮБОГО ПОРЯДКОВОГО ТИПА. НАПРИМЕР, ВОТ ТАКОЙ ФРАГМЕНТ
ПРОГРАММЫ:
CASE id OF
0,2,4,6,8:WRITELN (‘ЧЁТНАЯ ЦИФРА’);
1,3,5,7,9:WRITELN
(‘НЕЧЁТНАЯ ЦИФРА’);
10..100:WRITELN
(‘ЧИСЛО ОТ 10 ДО 100’);
ELSE
WRITELN
(‘ОТРИЦАТЕЛЬНОЕ ЧИСЛО ИЛИ БОЛЬШЕ 100’);
END;
ХОЧУ ЕЩЁ РАЗ
ВАМ НАПОМНИТЬ, ЧТО ЭТО ТОЛЬКО ФРАГМЕНТ ПРОГРАММЫ, А НЕ ГОТОВАЯ ПРОГРАММА. ВНИЗУ
ВАШЕМУ ВНИМАНИЮ ПРЕДСТАВЛЕНА ПОЛНАЯ ПРОГРАММА, КОТОРАЯ ОПРЕДЕЛЯЕТ СКОЛЬКО ДНЕЙ
В МЕСЯЦЕ (30, 31 ИЛИ 28, 29 ДЛЯ ФЕВРАЛЯ).
PROGRAM Primer (INPUT, OUTPUT);
VAR
Days, Month, Year: INTEGER;
BEGIN
WRITE
(‘ПОЖАЛУЙСТА, ВВЕДИТЕ НОМЕР МЕСЯЦА:’);
READLN (Month);
CASE Month OF
1,3,5,7,8,10,12: Days:=31;
4,6,9,11: Days:=30;
2: BEGIN
WRITE (‘ВВЕДИТЕ ГОД:’);
READLN (Year);
IF Year MOD 4 = 0 THEN
Days: =29
ELSE
Days: =28
END;
END;
WRITELN
(‘В ЭТОММЕСЯЦЕ’,Days,’ДНЕЙ.’);
READLN
END.
НА ЧТО ВАМ
СЛЕДУЕТ ЕЩЁ ОБРАТИТЬ ВНИМАНИЕ В ЭТОЙ ПРОГРАММЕ, ТАК ЭТО НА УПРОЩЁННЫЙ АЛГОРИТМ
ОПРЕДЕЛЕНИЯ ВИСОКОСНОГО ГОДА, КОТОРЫЙ РАБОТАЕТ ДЛЯ ГОДОВ В ПРЕДЕЛАХ СТОЛЕТИЯ.