Учебная работа. Реферат: Оператор выбора case
Для программирования разветвлений в методе почаще всего употребляется условный оператор if…then либо if…then…else.
Но если путей выбора много, то запись метода при помощи условного оператора становится сложной.
В таковых вариантах намного удобнее применять оператор выбора case.
Этот оператор имеет последующую форму:
case <выражение> of
………………………………………
else begin
операторы ветки else;
end;
end;
В данной для нас конструкции операторы могут быть составными, <выражение> обязано быть порядкового типа, т.е. integer, char, boolean.
Тип <несколько, разбитых запятыми, также может представлять собой
некий спектр значений.
Ветвь else совместно с оператором может отсутствовать.
Оператор работает последующим образом:
1. рассчитывается
2. производится оператор, метка которого <
3. Если ни одно<
Примеры:
Пример использования аннотации case для организации меню (схема)
program menu1;
var
vybor:integer;
begin
writeln(‘1 — Наибольшая температура‘);
writeln(‘2 — Малая температура’);
writeln(‘3 — Средняя температура‘);
writeln;
writeln(‘Введите номер задачки и нажмите <Enter>’);
write(‘
Ваш
выбор
-> ‘);
readln(vybor);
case vybor of
1: begin
{ вычисление наибольшей температуры }
end;
2: begin
{ вычисление малой температуры }
end;
3: begin
{ вычисление средней температуры }
end;
end;
end.
С клавиатуры вводим номер месяца и комп описывает время года
program
Prim2;
uses CRT;
var month: integer;
begin
writeln
(‘Введите номер месяца и нажмите <
Enter
>’);
write(‘->’);
readln(month);
case month of
1,2,12 : writeln(‘
ЗИМА
‘);
3,4,5 : writeln(‘
ВЕСНА
‘);
6,7,8 : writeln(‘
ЛЕТО
‘);
9,10,11:
writeln
(‘ОСЕНЬ’);
else
writeln
(‘Число обязано быть от 1 до 12’);
end;
readln;
end.
3. Написать программку, которая вычисляет стоимость междугороднего телефонного разговора.
Формула: стоимость минутки * количество минут разговора
(зависимо от кода городка – стоимость минутки различная)
program Prim3;
uses CRT;
var
kod: integer;
cena: real;
dlit: integer;
summ: real;
begin
writeln
(‘Вычисление цены разговора по телефону‘);
writeln
(‘Введите начальные данные:’);
write(‘
код городка
->’);
readln (Kod);
write
(‘Продолжительность разговора (целое количество минут ->’);
readln(dlit);
write(‘
Код городка
: ‘);
case kod of
432: Begin
writeln(‘
Владивосток
‘);
cena:=2.2;
end;
495: begin
writeln(‘Moc
кв
a’);
cena:=1;
end;
815: begin
writeln(‘
Мурманск
‘);
cena:=1.2;
end;
812: begin
writeln(‘
Санкт — Петербург
‘);
cena:=0.00000;
Writeln(‘
У нас безвозмездно
‘);
end;
846: begin
writeln(‘Ca
м
apa’);
cena:=1.4;
end;
end;
summ:= cena * dlit;
writeln(‘
Стоимость
минутки
:’, cena:6:2,’pyb.’);
writeln
(‘Стоимость разговора:’,
summ
:6:2,’
pyb
.’);
readln;
readln;
end.
4. Написать программку, которая вычисляет дату последующего денька. Рекомендуемый вывод на экран:
Program Prim4;
Uses Crt;
;
var
day
:
integer
;
month
:
integer;
year:integer;
last:boolean;{TRUE, если текущий денек крайний денек месяца }
r:integer; {если год високосный, то остаток от деления year на 4 равен нулю }
begin
writeln;
writeln(‘Задайте цифрами нынешнюю дату’);
write(‘( число месяц год )-> ‘);
readln(day,month,year);
last:=FALSE;
case month of
1,3,5,7,8,10,12:if day=31
then last:=TRUE;
4,6,9,11: if day=30
then last:=TRUE;
2: if (day=28)
then begin
r:=year mod 4;
if r<>0 then
last:=TRUE;
end;
end;
if last
then begin
writeln(‘Крайний денек месяца!’);
day:=1;
if month=12
then begin
month:=1;
year:=year + 1;
writeln(‘С наступающим Новеньким годом!’);
end
else month:=month + 1;
end
else day:=day + 1;
writeln(‘
завтра
‘,day,’.’,month,’.’,year );
end.
5. Написать программку, которая опосля введённого с клавиатуры числа (в спектре 0т 1 до 99, обозначающего валютную единицу, дописывает слово РУБЛЬ в правильной форме: 12 рублей, 21 рубль и т.д.
Uses Crt;
var
n: integer; {
число
}
m
:
integer
; {остаток от деления
n
на 100 (крайние 2 числа) }
r
:
integer
; {остаток от деления n на 10 (крайняя цифра) }
begin
writeln
(‘введите целое число(от 1 д
o
999) ‘, ‘и нажмите <
Enter
> ‘);
write (‘-> ‘);
readln(n);
write
(
n
, ‘ ‘);
{окончание определяется 2-мя крайними цифрами }
if
n
>100
then m:= n mod 100;
if (m>= 11) and (m<= 14)
then
writeln ( ‘
рублей
‘ )
else begin
r:=n mod 10;
case r of
0, 5..9: writeln (‘
рублей
‘);
1: writeln (‘
рубль
‘);
2..4: writeln (‘
рубля
‘);
end;
end;
readln;
end.
]]>