Мы уже с Вами познакомились с оператором условия if, с его помощью можно преобразовать число в текстовый вид, то есть в слово.
Вот фрагмент такой программы:
...
if (zifra = 0) then write('Нуль');
if (zifra = 1) then write('Один');
if (zifra = 2) then write('Два');
... От значения переменной цифры мы принимаем оператор if и выводим сообщение. Такой вид записи утомляет – каждый раз писать всё новый и новый оператор условия if не очень удобно, так для чисел от 0 до 9 это будет выглядеть так:
...
if (zifra = 0) then write('Нуль');
if (zifra = 1) then write('Один');
if (zifra = 2) then write('Два');
if (zifra = 3) then write('Три');
if (zifra = 4) then write('Четыре');
if (zifra = 5) then write('Пять');
if (zifra = 6) then write('Шесть');
if (zifra = 7) then write('Семь');
if (zifra = 8) then write('Восемь');
if (zifra = 9) then write('Девять')
... Для написания таких вот сравнений придумали специальный оператор case – оператор выбора. Он состоит из четырёх слов – case(случай) of(из) else(иначе) end(конец).
Оператор выбора работает по следующему алгоритму:
В начале вычисляется значение выражения, которое может быть любого типа, кроме Real и String
Затем выполняются оператор или группа операторов, соответствующие результату вычесления выражения, то есть в первом пункте мы вычисляем значение выражения, и уже по этому значению выбираем подходящий нам оператор
Если это значение здесь не оказалось, то работает другая часть операторов, следующих после else(иначе)
И завершается всё это словом end; с точкой с запятой.
Вот сама конструкция оператора выбора:
case выражение of значение_1 : оператор(группа операторов); значение_2 : оператор(группа операторов); ... значение_N : оператор(группа операторов) else : оператор(группа операторов); end;
Теперь рассмотрим употребление этого оператора на практике:
Первый случай – если не обнаруживается не каких подходящих операторов, то выполняется оператор после else:
case number mod 2 of
0 : writeln('Чётное число')
else writeln('Не чётное число');
end; Следующий случай – если один оператор выполняется при нескольких значениях, тогда эти значения можно перечислить через запятую:
case month of
12,1,2 : writeln('Зима');
3,4,5 : writeln('Весна');
6,7,8 : writeln('Лето');
9,10,11 : writeln('Осень')
else writeln('Такого месяца не существует');
end; В следующем случае оператором может быть не только простой оператор, но и составной включающий в себя сразу несколько операторов, или оператор может быть просто пустым:
case code of
1 : for i:=1 to 5 do writeln('*****');
2 : begin
x:=sqr(y);
writeln(x);
end;
3 :
end; В следующем случае оператор будет выполнятся если вычесленное значение подходит к значениям следующим друг за другом – то есть например подходит от 0 до 9, то оператор будет выполняться, то есть эти значения будут представлять некий диапазон:
case chislo of
0..9 : writeln('Это число является цифрой')
else writeln('Это число не является цифрой');
end; Теперь давайте используем это в нашей следующей программе, которая будет считывать данные с клавиатуры, и определять цифра ли это или нет:
Program case_;
uses crt;
var num: Integer;
begin
clrscr;
write('Введите цифру - ');
readln(num);
case num of
0 : write('Нуль');
1 : write('Один');
2 : write('Два');
3 : write('Три');
4 : write('Четыре');
5 : write('Пять');
6 : write('Шесть');
7 : write('Семь');
8 : write('Восемь');
9 : write('Девять')
else write('Это число не является цифрой');;
end;
readln;
end. 

