Управляющие конструкции языка.
Оператор выбора
В системе программирования
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 - косинус}
- Напишите программу, выводящую сообщение о
возможных сообщениях
{1 - фамилия
2 - имя
3 - отчество
4 - год рождения}
- Напишите программу для вычисления степени
введённого с клавиатуры числа. Степень в диапазоне 0 .. 9.
- Определите количество символов, из которых
состоит целое положительное число x.
назад
ДАЛЕЕ