Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

6. Оператор выбора case

С помощью этого оператора можно выбрать вариант из любого количества вариантов. Структура этого оператора в языке Pascal:

case S of

c1: instr1;

c2: instr2;

...

cN: instrN;

else

instr

end;

В этой структуре:

S - некоторое выражение;

instr1, instr2, ... instrN - операторы, из которых выполняется тот, с константой которого (с1..сN) совпадает значение выражение S;

instr - оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант c1, ... ,cN.

Ветвь оператора else является необязательной.

  • Обратите внимание, что конструкция CASE за­вер­ша­ет­ся словом END!!!

Рассмотрим пример простенькой программы, определяющей название месяца по его номеру:

Program Month;

Uses Crt;

Var num_month:byte;

begin

ClrScr;

WriteLn('Программа определяет название месяца по номеру':60);

Writeln;

Write('Задайте номер месяца:'); ReadLn(num_month);

TextColor(LightMagenta);

Case num_month of

1: WriteLn('Январь');

2: WriteLn('Февраль');

3: WriteLn('Март');

4: WriteLn('Апрель');

5: WriteLn('Май');

6: WriteLn('Июнь');

7: WriteLn('Июль');

8: WriteLn('Август');

9: WriteLn('Сентябрь');

10: WriteLn('Октябрь');

11: WriteLn('Ноябрь');

12: WriteLn('Декабрь')

else WriteLn('Увы, месяца с таким номером не существует')

end; {Конец Case}

ReadLn;

End.

Пояснение

При запуске программы выводится титул, а затем запрос на ввод номер месяца. Если введено число 1, то на экране появиться слово Январь, если 2 - Февраль и т.д. Если будет введено число 0 или больше 12 (и меньше 256), то на экране появится сообщение Увы, месяца с таким номером не существует. Если введете число меньше 0 или больше 255, то программа закончится аварийно.

Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую или, если это возможно, указать диапазон и сопроводить их одним оператором.

Пример:

case I of

0,2,4,6,8: writeln('четная цифра');

1,3,5,7,9: writeln('нечетная цифра');

10..100: writeln('число от 10 до 100');

else writeln('Отрицательное число или большее 100')

end;

Лабораторная работа 6. Операторы ветвления и выбора

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

1. Что такое ветвление и как оно организуется в языке Pascal?

При разработке алгоритмов очень часто возникают ситуации, когда выполняемые действия зависят от некоторого условия, т.е. сначала требуется проверить условие (или несколько условий) и в зависимости от того, выполняется оно или нет, выполнить различные действия. Например, при начислении стипендии проверяется, как студент сдал сессию. Если у него остались “хвосты”, то ему будет назначена нулевая стипендия, если он сдал все на “отлично”, то - повышенная, в остальных слу­­чаях -  обычная.

Для организации таких действий в языке Pascal имеются две алгоритмические конструкции:

  • ВЕТВЛЕНИЕ - условный оператор IF;

  • ВЫБОР - условный оператор CASE.

2. Условный оператор if

2.1. Теория

Существует два варианта оператора:

а)

полная развилка: if S then A else B;

б)

укороченная развилка: if S then A.

В этих операторах:

S - логическое выражение, истинность которого проверяется;

А - оператор, который выполняется, если выражение S истинно;

В - оператор, который выполняется, если выражение S ложно.

Пример 1

Полная развилка:

IF X>0 then writeln(‘число положительное’)

else writeln(‘число отрицательное или 0’);

Пример 2

Укороченная развилка:

If D=0 then X:=X+1;

Пример 3

В случае если вместо одного оператора необходимо выполнить несколько, используются операторные скобки begin .. end.

  • В языке Pascal набор операторов, заключенный в операторные скобки, рассматривается как один оператор. Он получил название “состав­ной оператор”.

Например:

if A<7 then

begin

X:=X+1;

Y:=abs(a)

end

else A:=A-1;

  • Обратите внимание, что перед else точка с запятой не ставится!

Пример 4

Составное условие:

if (A>5) and (A<10) then writeln(‘точка на отрезке (5,10)’);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]