Главная/Раздел 2

 

 

Главная

 

 Раздел 1

 

Раздел 2

 

Раздел 3

 

Раздел 4

 

Раздел 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управляющие конструкции языка.
Оператор выбора

В системе программирования Turbo Pascal 7.0 для организации алгоритмов с ветвлениями, наряду с условным оператором применяют оператор выбора.

Оператор "выбор".

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

CASE <порядковая переменная> OF
<значение 1>: <оператор 1>;
<значение 2>: <оператор 2>;
     .  .  .
<значение N>: <оператор N>;
[ELSE <оператор N+1>];
     END; {CASE}

В этой структуре:
<порядковая переменная> - порядковая переменная значение которой проверяется;
<значение *> - константы, с которыми сравнивается значение порядковой переменной;
<оператор *> - оперaторы, из которых выполняется тот, с константой котoрого совпадает значение порядковой переменной; Ветвь оператора else является необязательной. Если она отсутствует и значение порядковой переменной не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличии от оператора IF перед словом else точку с запятой можно ставить.

Если для нескольких констант нужно выполнять один и тот же оператор, их можно перечислить через запятую сопроводив их одним оператором. Существует возможность указать диапазон возможных значений. Например диапазон от 1 до 100 включительно указывается так:

     1 .. 100

     Пример. 

CASE i OF
     0, 2, 4, 6, 8: Writeln('Чётная цифра');
     1, 3, 5, 7, 9: Writeln('Нечётная цифра');
     10 .. 100: Writeln('Число от 10 до 100');
ELSE
     Writeln('Отрицательное число или больше 100');
END; {CASE}

Как вы уже заметили, в операторе выбор после после двоеточия может указываться только один оператор. Для того, чтобы выполнить несколько операторов, так же как и в условном операторе, применяют составной оператор.

     CASE <порядковая переменная> OF
<значение 1>: begin
               <оператор 1 1>;
                 ...
               <оператор 1 n>
              end;
<значение 2>: begin
               <оператор 2 1>;
                 ...
               <оператор 2 n>
              end;
         . . .
<значение N>: begin
               <оператор N 1>;
                 ...
               <оператор N n>
              end;
ELSE
             begin
               <оператор E 1>;
                 ...
               <оператор E n>
              end;
     END; {CASE} 
Важное замечание. 

Необходимо заметить, что из всех возможных ветвей операторов управляющей конструкции выбор, выполняется только одна ветвь, даже если значение порядковой переменной совпадает с несколькими возможными значениями, отвечающими за разные ветви операторов. Выполняется та ветвь, которая расположена раньше. Как видно из блок-схемы значение порядковой переменной сравнивается последовательно со всеми возможными значениями, и как только найдётся значение, которому равна порядковая переменная, выполняется ветвь операторов, сравнения прекращаются и управляющая конструкция прекращает свою работу. Поэтому при составлении программ с использованием управляющей конструкции "выбор", раньше необходимо располагать более "строгие" последовательности операторов.

Контрольные вопросы.

  1. Для чего предназначен оператор выбора?
  2. Могут ли выполнится несколько ветвей оператора "выбор" за один раз?
  3. Сколько операторов можно написать после возможного значения переменной?
  4. Может ли сразу несколько констант фигурировать в качестве возможного значения переменной?

Задания для самостоятельного выполнения.

  1. Ввести номер дня недели и вывести соответствующий ему день недели на русском и английском языках.
  2. Ввести номер месяца и вывести соответствующее ему название на русском языке.
  3. Введите номер месяца. Напечатайте соответствующее месяцу время года: "зима", "весна", "лето", "осень".
  4. Введите время (только часы). Напечатайте соответствующее этому времени сообщение: "Доброе утро", "Добрый день", "Добрый вечер", "Доброй ночи".
  5. Введите количество посадочных мест. Напечатайте соответствующий этому количеству вид транспорта: "велосипед", "мотоцикл", "легковой автомобиль", "микроавтобус", "автобус". (Возможны другие варианты)
  6. Составить программу, которая выводит сообщение о своих возможностях {Введите номер необходимой операции: 1 - сумма; 2 - разность; 3 - произведение; 4 - частное; } Составить программу, которая выводит сообщение о своих возможностях
    {Введите номер необходимой функции: 1 - квадрат; 2 - корень квадратный; 3 - синус; 4 - косинус}
  7. Напишите программу, выводящую сообщение о возможных сообщениях
    {1 - фамилия
    2 - имя
    3 - отчество
    4 - год рождения}
  8. Напишите программу для вычисления степени введённого с клавиатуры числа. Степень в диапазоне 0 .. 9.
  9. Определите количество символов, из которых состоит целое положительное число x.
     назад                            ДАЛЕЕ


 

 

 

 

 

 

 

 

 

 

 

 :::

 

 :::

 

 

 

 

 

 

 

Сайт создан в системе uCoz