Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal.doc
Скачиваний:
16
Добавлен:
06.09.2019
Размер:
3.69 Mб
Скачать

Оператор варианта.

Условный оператор становится неудобным, если предстоит выбор из большого количества условий. В этом случае используют оператор варианта.

Оператор варианта дает возможность выполнить один из нескольких операторов в зависимости от значения некоторого выражения, называемого селектором. Если селектор – это число, то обязательно ЦЕЛОЕ! Селектор также может быть константой перечисляемого или ограниченного типа (об этих типах позже).

Итак, селектор принимает значения. Затем это значение сравнивается со списком констант. Если значение селектора совпало с какой-либо константой, то выполняется оператор при этой константе. В общем виде оператор имеет вид:

CASE селектор OF

константа1: оператор 1;

константа2: оператор 2;

. . . . . . . . . . . . . . . . .

константаN: оператор N

END;

Если предполагаемые значения селектора не попадают в список констант, то в этом случае можно использовать ELSE (то есть для всех других значений селектора):

CASE селектор OF

константа1: оператор 1;

константа2: оператор 2;

. . . . . . . . . . . . . . . . .

константаN: оператор N

ELSE оператор M

END;

Пример 2. Составить программу для вычисления выражения:

program pr2;

var x,y,a,b,c:real; n:integer;

begin

write(‘Введите значения x, a, b, c ’);

read (x, a, b, c);

case x of

1: y:= a + b*x + a*x*x;

2: y:= abs(a*sin(a*b));

3: y:= sqrt(abs(a+b*x*x*x))+c;

4: y:=exp(a*sin(x)) + c*c*c;

5: y:=a*ln(abs(b+c/(2*x)));

else y:=0;

end;

writeln(‘Значение y = ’, y);

end.

Кроме одиночных констант в альтернативах оператора варианта могут быть заданы списки и/или диапазоны значений, которые в этом случае должны разделяться символом “,” (запятая), например:

case Switch of

1..5 : Proc1 {переменная Switch принимает значения от 1 до 5}

6, 10..20 : Proc2 {6 или от 10 до 20}

8, 9 : Proc3 {8 или 9}

else Proc4 {во всех остальных случаях}

end;

При использовании оператора варианта должны выполняться следующие правила:

  1. Значение выражения - “переключателя“, записанного после служебного слова case, должны принадлежать дискретному типу; для целого они должны лежать в диапазоне -32768 ... 32767. Значение селектора НЕ МОЖЕТ БЫТЬ вещественного типа!

  2. Все константы должны иметь тип, совместимый с типом селектора.

  3. Все константы в альтернативах должны быть уникальны в пределах оператора варианта (т.е. повторения констант в альтернативах не допускаются); диапазоны не должны пересекаться и не должны содержать констант, указанных в данной или других альтернативах.

Обратите внимание, что синтаксис языка предполагает один оператор для каждой альтернативы; при необходимости задания нескольких операторов следует сгруппировать их в составной оператор. В то же время ветвь else допускает последовательность операторов, разделённых символом “;”

ЗАДАНИЯ:

  1. Напишите программу, которая по введенному номеру выводит день недели.

  2. Напишите программу, которая преобразует буквы алфавита в соответствующие цифры на телефонном аппарате. Программа должна позволять вводить буквы много раз, пока не встретятся буквы Q или Z (они не используются в алфавите). При вводе любого неалфавитного символа должно выводиться сообщение об ошибке.

Соответствие:

ABC = 2 DEF = 3 GHI = 4 JKL = 5 MNO = 6

PRS = 7 TUV = 8 WXY = 9

Пример работы программы:

Введите букву: Р

Буква Р соответствует цифре 7 на телефоне.

Введите букву: 2

Введен неправильный символ. Введите Q или Z для выхода.

Введите букву: Z

Выход.

  1. Составить программу вычисления площадей различных геометрических фигур:

ЦИКЛЫ

Цикл выполняет одну и ту же последовательность действий, пока выполняется некоторое условие. Выполнение последовательности действий цикла называется итерацией.