Студопедия

КАТЕГОРИИ:


Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.