Реферат: Оператор выбора 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. Примеры:
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. |