КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор выбора Case
Представим, что нам нужно сделать определённые дела в зависимости от дня недели, например, в понедельник сходить в кино, во вторник пригласить мастера по стиральным машинам, в среду перевезти мебель в гараж, а в четверг купить продукты. Конечно, мы могли бы описать эти действия с помощью условного оператора if, как это показано ниже:
Var
den’_nedeli=1..4 // переменная принимает одно из 4-х возможных значений – 1 – 4 - в зависимости от текущего дня недели
Begin
If den’_nedeli=1 then writeln(‘Сегодняидёмвкино’)
else If den’_nedeli=2 then writeln(‘Сегодня приглашаем мастера по стиральным машинам’)
else If den’_nedeli=3 then writeln(‘Сегодня перевозим мебель в гараж)’
else If den’_nedeli=4 then writeln(‘Сегодня покупаем продукты’);
Но, как мы видим, такое описание очень громоздкое и сложноватое. А если нам нужно описать много пунктов, в зависимости от которых будут выполняться различные действия, то нам будет совсем трудно воспринимать и дорабатывать такую программу.
Для того, чтобы упросить написание программы, в языке Pascal имеется наряду с оператором выбора If специальный для таких случаев второй условный оператор выбора Case, который описывается следующим образом:
case переменная of
a: действие 1;
b: действие 2;
…
n: действия n;
else иное действие;
end;
Как мы видим, в данном случае перед словом else «;» ставить нужно.
Иное действие можно не выполнять. В таком случае мы просто не пишем ветку else и тогда, если переменная не совпала ни с одним значением a, b.. n, то программа будет выполняться дальше и опустит оператор выбора Case.
Кроме чисел вместо a, b,…, n можно вставлять определённые диапазоны, которые не должны перекрываться друг с другом, например:
Case p of
1..4: действие 1;
56..225: действие 2;
226..259: действие 3;
end;
Переменная p должна иметь простой порядковый (целый) тип данных и наши диапазоны или числа a, b,…, n должны быть того же типа, что и тип переменной p, или совместимого с ней типа.
Для того, чтобы проиллюстрировать применение оператора Case, давайте напишем программу сравнения 2-х чисел x и y. Если числа равны, значит, их разница равна 0, иначе числа не равны.
program matching;
var x,y: integer; //наши числа
begin
write('Введите значение x ');
read(x);
write('Введите значение y ');
readln(y);
case x-y of
0: writeln (‘x и y равны между собой’); //если разница равна 0, то наши числа равны
//между собой
else
writeln (‘x и y не равны'); //иначе не равны
end;
readln;
end.
Конечно, эту конструкцию с оператором caseможно было бы легко описать с помощью оператора If, поэтому данная программа скорее носит своей целью проиллюстрировать на лёгком примере применение нашего оператора.
Если какое-либо условие в своём теле содержит более одного оператора, то возникающую последовательность операторов необходимо, как и в случае с оператором If, заключить в операторные скобки Begin end. Это иллюстрирует пример программы, вычисляющей значение выражения в зависимости от отрицательного, нулевого или единичного, или положительного (начиная с 2-х) значения x. Если х – число отрицательное, то выражение для вычисления 25*х, если х – 0 или 1, то выражение будет 25*х2, а если х – положительное неединичное число, то выражение – 25*х3:
Program computation;
Var
x, znach: integer;
Begin
Write(‘Введитезначениеx: ‘);
Readln(x);
Case x of
-32768..-1: begin
znach:=25*x;
writeln(‘Поскольку число х отрицательное, то значение выражения вычислялось по формуле 25*х и результат равен ‘, znach);
end;
0, 1: begin
znach:=25*x*x;
writeln(‘Поскольку число х отрицательное, то значение выражения вычислялось по формуле 25*х*x и результат равен ‘, znach);
end;
2..32767: begin
znach:=25*x*x*x;
writeln(‘Поскольку число х отрицательное, то значение выражения вычислялось по формуле 25*х*x*x и результат равен ‘, znach);
end;
Readln;
End.
Дата добавления: 2014-01-07; Просмотров: 435; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |