Оператор выбора в языке Паскаль

Материал из ПИЭ.Wiki

Перейти к: навигация, поиск

Условный оператор позволяет в процессе выполнения программы выбирать одно из двух возможных действий в зависимости от значения логического выражения. Оператор выбора (или оператор варианта) дает возможность выполнить одно из нескольких действий в зависимости от значения скалярного выражения или выражения ограниченного типа.

Формат оператора варианта:

case <селектор> of
  <константа 1> : <оператор 1>;
  ...
  <константа N> : <оператор N>
else
  <оператор>
end;

Здесь <селектор> – это выражение любого порядкового типа; <константа> - постоянная величина того же типа, что и селектор, представляет собой различные значения, которые может иметь селектор варианта, называется меткой варианта. После каждой метки располагается оператор. Когда одно и то же действие необходимо выполнить для нескольких различных значений селектора варианта, эти значения можно записать в виде списка.

Выполнение оператора выбора происходит так:

  • вычисляется выражение-селектор;
  • затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора;
  • далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после else.

Изображение оператора варианта на блок-схеме приведено на рисунке.

Изображение оператора варианта на блок-схеме

Примеры использования

Селектор интервального типа:

case I of
  1..10  : writeln('число ', I:4, ' в диапазоне 1 - 10');
  11..20 : writeln('число ', I:4, ' в диапазоне 11 - 20');
  21..30 : writeln('число ', I:4, ' в диапазоне 21 - 30')
else
  writeln('число ', I:4, ' вне пределов контроля')
end;

Селектор целочисленного типа:

case I of
  1 : Z := I + 10;
  2 : Z := I + 100;
  3 : Z := I + 1000
end;

Селектор перечисляемого пользовательского типа:

var
  Season: (Winter, Spring, Summer, Autumn);
begin
   .
   .
   .
  case Season of
    Winter: writeln('Зима');
    Spring: writeln('Весна');
    Summer: writeln('Лето');
    Autumn: writeln('Осень')
  end;
end.

Пример программы с использованием оператора case, которая по введенному номеру дня недели выводит на экран его название на русском языке.

program Day_Week;
var
  Day: byte;
begin
  write('Введите номер дня недели: ');
  readln(Day);
  case Day of            {Вычисление значения селектора и выбор}
    1: writeln('Понедельник');
    2: writeln('Вторник');
    3: writeln('Среда');
    4: writeln('Четверг');
    5: writeln('Пятница');
    6: writeln('Суббота');
  else
    7: writeln('Воскресенье');
  end;
end.

В данном примере на экран выводится приглашение "Введите номер дня недели: ", с клавиатуры считывается целочисленное значение дня недели и присваивается переменной Day. Затем, в зависимости от значения селектора Day, обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Например, если значение Day равно 3, то реализуется оператор writeln('Среда'). Если значение Day равно 7, а ни одна из констант не равна этому значению селектора, то выполняется оператор, стоящий за словом else (на экран выводится текст "Воскресенье"). Если слово else отсутствует, то активизируется оператор, находящийся за словом end, т.е. первый оператор, за границей case. Если значение Day не равно значению ни одной из констант выбора (например, Day=8 или Day=0), то активизируется оператор, находящийся за словом end, т.е. первый оператор за границей case - оператор end.

Литература

  1. Попов В.Б. Паскаль и Дельфи. Самоучитель - СПб.: Питер, 2004. - 544 с.: ил. ISBN 5-8046-0156-3
Просмотры
Инструменты

Besucherzahler russian mail order brides
счетчик посещений
Rambler's Top100
Лингафонные кабинеты  Интерактивные доски  Интерактивная приставка Mimio Teach