2. Оператор выбора CASE:
Предназначен для реализации в
программе разветвляющегося
вычислительного процесса, который
позволяет выбрать один из нескольких
альтернативных путей решения задачи в
зависимости от проверки нескольких
условий.
3. Общий вид оператора:
Case N of
К1:S1;
К2:S2>;
.............
Кn:Sn;
[ELSE оператор ]
end;
Где N переключатель; выражение любого типа кроме
real;
K1…Kn – метки, константы того же типа что и
переключатель;
S1…Sn – операторы;
case (выбор), of (из), end (конец): ключевые слова.
Kn
иначеK1 N
Sn SS1
4. Замечания:
Метки оператора Case не имеют ни чего
общего с метками операторов, поэтому
они не описываются в разделе Label.
Недопустимо чтобы одна и та же метка
появлялась более одного раза в одной
конструкции Case.
6. Программа к задаче №1:
Сначала рассмотрим данную задачу с использованием
оператора if:
program chislo;
var n : shortint; {-128..127}
begin
write('Введи число: ');
readln(n);
if n=0 then write('Нуль')
else if n=1 then write('Один')
else if n=2 then write('Два')
else if n=3 then write('Три')
else if n=4 then write('Четыре')
else if n=5 then write('Пять')
else if n=6 then write('Шесть')
else if n=7 then write('Семь')
else if n=8 then write('Восемь')
else if n=9 then write('Девять')
else write('Это не цифра');
end;
7. Теперь с помощью оператора case:
program chislo;
var n : shortint;
begin
write('Введи число: ');
readln(n);
case n of
0: write('Нуль');
1: write('Один');
2: write('Два');
3: write('Три');
4: write('Четыре');
5: write('Пять');
6: write('Шесть');
7: write('Семь');
8: write('Восемь');
9: write('Девять');
else write('Это не цифра');
end;
end;
8. Задача №2
Написать программу, которая
запрашивает у пользователя
номер месяца и выводит
соответствующее название
времени года. Предусмотреть
ошибку ввода.
9. Программа к задаче №2:
program nomermesaca;
var x:byte;
begin
writeln(‘ введите номер месяца ‘); readln(x);
Case x of
1,2,12:writeln (‘зима’);
3,4,5:writeln (‘весна’);
6,7,8:writeln (‘лето’);
9,10,11:writeln (‘осень’)
else
writeln (‘ошибка’);
end;
end.
11. Программа к задаче №3:
program Calc;
var a, b, c: integer;
begin
writeln(‘Введите a’); Read(a);
writeln(‘Введите b’); Read(b);
writeln(‘Введите c‘); Read(c);
case c of
1: writeln(‘Сумма=‘, a+b);
2: writeln(‘Разность=‘, a-b);
3: writeln(‘Произведение=‘, a*b);
4: writeln(‘Целая часть от деления=‘, a div b);
5: writeln(‘Остаток от деления=‘, a mod b);
else writeln(‘Введен неизвестный номер операции’);
end;
end.
12. Проверка знаний
Какой тип может иметь переменная,
выступающая в роли параметра в операторе
выбора CASE ?
Может ли отсутствовать ELSE в операторе
выбора?
Как “работает” оператор выбора?
13. Домашняя работа:
Составить программу по следующему условию.
В некотором учебном заведении действуют
следующие правила приема. Абитуриенты
сдают три экзамена. Если они набирают не
менее 13 баллов, то это дает право поступить
на дневное отделение, от 10 до 12 — вечернее,
от 8 до 9 — заочное и ниже 8 баллов — отказ
в приеме на учебу. Записать программу,
которая в зависимости от суммы набранных
баллов сообщает абитуриенту его права на
поступление.