Автор работы: Пользователь скрыл имя, 18 Февраля 2011 в 14:29, доклад
Для программирования разветвлений в алгоритме чаще всего используется условный оператор if…then или if…then…else.
Оператор
выбора 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
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 ('рубль');
end;
end;
readln;
end.