CASE – ОПЕРАТОР ВЫБОРА
РАССМОТРИМ СЛЕДУЮЩУЮ ЗАДАЧУ : Х, ЕСЛИ Х = 3 У = Х+1, ЕСЛИ Х=0 Х 2 + Х –2, ЕСЛИ Х = -2 Х 3, ЕСЛИ Х = -8
РЕШЕНИЕ: Program PR6; var x, y : integer; begin write(введите значение х =); readln(x); if x = 3 then y: = x; if x = 0 then y: = x + 1; if x = -2 then y: = х 2 + х –2; if x = -8 then y: = х 3 ; writeln (значение у =, y); end. Program PR7; var x, y: integer; begin write(введите значение х =); readln(x); case x of 3 : y: = x; 0 : y: = x + 1; -2 : y: = х * x + х –2; -8 : y: = х * x * x; end; writeln (значение у =, y); end.
CASE – ОПЕРАТОР ВЫБОРА структура оператора: CASE OF P1: ; P2: ; P3: ;... PN: ; else ; end; Если при выборе альтернативы надо выполнить несколько операторов, то их нужно заключить в операторные скобки, т.е. использовать begin.. end;
ВНИМАНИЕ: КОНСТРУКЦИЯ ELSE НЕОБЯЗАТЕЛЬНА И МОЖЕТ БЫТЬ ОПУЩЕНА. При использовании оператора CASE можно указать диапазон допустимых значений. Например, чтобы определить, введено ли целое число от 0 до 9, можно написать: CASE d OF 0..9 : writeln(''это число от 0 до 9') else writeln(''это не число от 0 до 9') end;
ОГРАНИЧЕНИЕ ОПЕРАТОРА CASE переменная, стоящая после слова CASE, должна быть так называемого порядкового типа (целого или символьного). Значения типа Real применять в операторе нельзя.
ЗАДАЧА: Дан номер месяца –целое число от 1 до 12. Определить количество дней в месяце для невисокосного года. var n,m: integer; begin cls; read (n); case n of 1,3,5,7,8,12: m:= 31; 2: m:=28; 4,6,9,10,11: m:=30; end; write (m); end.
ВЫЯСНИТЕ КАК РАБОТАЕТ ДАННАЯ ПРОГРАММА: program den; var x: integer; begin read ( x ); case x of 1..5: writeln('будний день'); 6,7: writeln('выходной день'); end; end.
САМОСТОЯТЕЛЬНАЯ РАБОТА Составьте программу, которая по номеру дня недели выводила на экран название дня. Составьте программу, которая по номеру месяца выводила на экран название месяца. Составьте программу, спрашивающую у ученика его отметку по информатике и реагирующую на нее подходящим текстом 1, 2 – Кошмар! 3 – Неважно. 4 – Неплохо. 5 – Молодец.