РефератыИнформатикаОпОператор выбора case

Оператор выбора case

Оператор выбора case


Для программирования разветвлений в алгоритме чаще всего используется условный оператор if…then или if…then…else.







Однако если путей выбора много, то запись алгоритма с помощью условного оператора становится сложной.


В таких случаях намного удобнее использовать оператор выбора case.


Этот оператор имеет следующую форму:


case <выражение> of


значение 1: оператор 1;


значение 2: оператор 2;


………………………………………


значение n: оператор n;


else begin


операторы ветви else;


end;


end;


В этой конструкции операторы могут быть составными, <выражение> должно быть порядкового типа, т.е. integer, char, boolean.


Тип <значение> должен совпадать с типом <выражение>, может быть одно или несколько, разделенных запятыми, а также может представлять собой


некоторый диапазон значений.


Вся конструкция должна завершаться ключевым словом

end

.


Ветвь else вместе с оператором может отсутствовать.


Оператор работает следующим образом:


1. вычисляется значение <выражения>.


2. выполняется оператор, метка которого <значение> совпадает со значе-нием <выражение>.


3. Если ни одно<значение> не совпадает со значением <выражение>, вы-полняется оператор после else.


Примеры:


Пример использования инструкции 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. Написать программу, которая вычисляет дату следующего дня. Рекомендуемый вывод на экран:


Введите цифрами сегодняшнюю дату (число месяц год) -> 31 12 2010


Последний день месяца!


С наступающим Новым годом!


Завтра 1.1.2011


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
, ' ');


{окончание определяется двумя последними цифрами }


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.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Оператор выбора case

Слов:993
Символов:10845
Размер:21.18 Кб.