ОПЕРАТОР ВЫБОРА
Его часто используют для замены конструкций из вложенных условных операторов. Управляющая конструкция "выбор" является идеальным средством для обработки ситуаций с многими (более чем двумя) исходами, т.е. в случае, когда условие может принимать более двух значений. Оператор "выбор" имеет следующую структуру:
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} Как вы уже заметили, в операторе выбор после после двоеточия может указываться только один оператор. Для того, чтобы выполнить несколько операторов, так же как и в условном операторе, применяют операторные скобки begin и end.
Варианты заданий 1. Определить и вывести на печать номер квадранта, в котором расположена точка M(x,y). 2. Даны 2 действительных числа Х и У. Меньшее заменить полусуммой, а большее – удвоенным произведением. Вывести результат на экран. 3. Написать программу выбора большего из 3-х чисел. 4. Даны х, у. Если х и у отрицательные, то каждое значение заменить его модулем. Если отрицательно только одно из них, то оба значения увеличить на 0.5. Если оба неотрицательные, то оба значения увеличить в 10 раз. 5. Выяснить, принадлежит ли точка М(х,у) кругу радиусом R, с центром в точке (a,b). 6. Определить, принадлежит ли точка М(х,у) кольцу с внешним радиусом R1 и внутренним R2 с центром в начале координат. 7. Определить, является ли частное от деления чисел a и b, округленное до ближайшего целого числа, чётным числом. 8. Ввести номер дня недели и вывести соответствующее название дня недели на русском и английском языках. 9. Вводится номер месяца, вывести на экран соответствующее ему время года. 10. Вводится время (только часы). Вывести соответствующее приветствие: Добрый день, Доброе утро, Добрый вечер, Спокойной ночи.
Варианты заданий 1. Дано натуральное число N. Вычислить сумму цифр этого числа. 2. Вычислить сумму ряда для n элементов , (для k от 1 до n). 3. В ЭВМ по очереди поступают результаты соревнований по плаванию на дистанцию 200 м, в которых участвуют N спортсменов. После ввода всех данных вывести лучший результат. 4. Вычислить значение факториала числа, введенного пользователем с клавиатуры. 5. Вычислить и вывести на экран значения функции y=x^3-x^2+16x-43 для х, изменяющегося от -4 до 4 включительно с шагом 0.5. 6. Напишите программу, вычисляющую значения функции для х, изменяющегося от -5 до 3 с шагом 0.25. 7. Вычислите сумму ряда S=sin(1)+sin(2)+…+sin(n) для n введенного с клавиатуры. 8. Определить количество натуральных чисел, рассматривая их в порядке возрастания, сумма кубов которых не более 50 000. 9. Вычислить A(A+1)(A+2)…(A+N) для A и N, введенных с клавиатуры. 10. Вычислить сумму первых n слагаемых ряда для n введенного с клавиатуры.
|