Оператор множественного выбора CASE


…Хочешь пирожное,Хочешь мороженное,А хочешь вообще торт с кремом… Предположение… Оператор Case of был придуман тогда, когда одному программисту стало лень писать множество операторов If. Т.е. данный оператор позволяет сделать выбор из множества представленных значений переменной. Case <селектор> оf <значение селектора>: <оператор 1 (группа операторов)>; <значение селектора>: <оператор 2 (группа операторов)>; . . . <значение селектора>: <оператор N> Else <оператор>;End; Когда количество альтернатив больше двух применяется оператор выбора Case. Его вид: выражение любого типа (кроме типов REAL и STRING) Оператор Case работает следующим образом:вычисляется значение селектораотыскивается такой оператор, которому предшествует константа, равная значению селекторапосле того, как выбранный оператор выполнится, Case завершает свою работу. Принцип работы Иногда используют Case с ключевым словом Else, после которого может стоять любой оператор.При отсутствии в списке выбора нужной константы осуществляется переход к оператору, следующему за Case, или управление передается оператору, стоящему за ключевым словом Else.Для каждой альтернативы предполагается один оператор (простой или составной). Принцип работы Case (N mod 2) of 0 : writeln (N, ‘ - число четное‘) else writeln (N, ‘ - число нечетное‘);end; Если оператор должен выполняться при нескольких значениях селектора следующих друг за другом, образуя некоторый промежуток, то это можно записать в более сжатой форме Case N of ‘а’..’я’ : writeln (‘Это прописные буквы ‘); ‘А’..’Я’: writeln (‘Это заглавные буквы’);end; NB! Переменная N имеет тип char Принцип работы Блок-схема конструкции выбора Принцип работы Программа работает следующим образом: с клавиатуры процедурой Read вводится символ буквы цвета светофора. Если введена буква ‘з’ соответствующая зеленому цвету, то в операторе CASE введено значение в списке выбора найдет константу выбора ‘з’ и будет выведено сообщение “Зеленый цвет, движение разрешено”. При вводе символа букв ‘к’ и ‘ж’ буду выведены аналогичные сообщения. При вводе любого другого символа будет выведено сообщение “Светофор не работает”, поскольку в этом случае работает часть Else, оператора CASE. Program svetofor;var cvet:char;Begin writeLnCвведите символ цвета'); Read(cvet); case cvet of 'з': writeLn(’зеленый цвет, движение разрешено’); 'ж': writeLn ('желтый цвет, внимание'); 'к': writeLn('красный цвет, движение запрещено’); Else writeLn('Светофор не работает’);End; Если один оператор выполняется при нескольких значениях, то их можно перечислить через запятую Case N of 12, 1, 2 : writeln (‘Зима‘); 3, 4, 5 : writeln (‘Весна‘); 6, 7, 8 : writeln (‘Лето‘); 9, 10, 11 : writeln (‘Осень‘) Else writeln(‘Ошибка ввода данных – число должно быть от 1 до 12’);end; Принцип работы Блок-схема конструкции выбора Начало Ввод числа N N? Вывод «Лето» Вывод «Осень» Вывод «Зима» Вывод «Весна» Вывод «Ошибка ввода данных – число должно быть от 1 до 12» Конец 6, 7, 8 9, 10, 11 1, 2, 12 3, 4, 5 Задачи Составить программу вывода по номеру дня недели его название.Составить программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 99), обозначающего денежную единицу, дописывает слово «Копейка» в правильной форме. Например, 5 копеек, 41 копейка и т. д.Локатор ориентирован на одну из сторон света («С» – север, «З» – запад, «Ю» – юг, «В» – восток) и может принимать одну из трех цифровых команд:-1 – поворот налево, 1 – поворот направо, 2 – поворот на 180 градусов. Дан символ C – исходная ориентация локатора и число N – посланная ему команда. Вывести ориентацию локатора после выполнения команды Задачи 4. Мужчина заполняет в военкомате анкету, и программа должна в зависимости от указанного им возраста выводить разные подсказки, а именно:Если указан возраст от 18 и до 27 лет, то сообщать, что заполняющий подлежит призыву на срочную службу или может служить по контракту.Если указан возраст от 28 до 59 лет, то сообщать, что заполняющий может служить по контракту.Если указан возраст менее 18 или более 59 лет, то сообщать о том, что заполняющий находится в непризывном возрасте.Если указан неположительный возраст или возраст более 100 лет, то сообщить об ошибке. Источники информации http://studopedia.net/7_14476_operator-mnozhestvennogo-vibora-Case.html http://zedpost.ru/index.php?blog=241 http://kvodo.ru/pascal-operators-conditional-and-unconditional-jump.html http://vse-lekcii.ru/inphormatika-i-vychislitelnaya-tehnika/po-pascal/operatory-yazyka-paskal