Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Объяснение нового материала
Урок № 17 Тема. Оператор выбора select case. Практическая работа № 8 «Решение задач с использованием оператора select case». Объяснение нового материала Оператор выбора case состоит из выражения, называемого селектором (selection – выбор альтернативы) и списка операторов, каждому из которых предшествует список констант выбора (список может состоять из одной константы). case < выражение -селектор> of < список 1>: < оператор 1; > < список 2>: < оператор 2; > ... < список n>: < оператор n; > [else < оператор> ] end; Здесь ветвь else заключается в квадратные скобки, что говорит о том, что эта часть оператора выбора не обязательна. Алгоритм выполнения оператора выбора: 1. Вычисляется выражение, которое должно принимать значение, принадлежащее порядковому типу (например, оно не может быть вещественного типа). 2. В случае если результат вычисления равен одной из перечисленных констант, то выполняется соответствующий оператор. Затем управление передается за пределы оператора выбора. 3. Если значение выражения не совпадает ни с одной константой, то выполняется оператор, стоящий после else, если он есть, либо управление передается на оператор end и выполнение программы продолжается. Для одной альтернативы вместо одного оператора можно указать несколько операторов, заключив их в операторные скобки. Правила использования оператора: 1. Тип константы должен совпадать с типом выражения 2. В этой конструкции перед else стоит точка с запятой. 3. Все константы в альтернативах должны быть уникальны в пределах оператора выбора (т.е. повторение констант в альтернативах не допускается). Пример 1. По введенному номеру дня недели вывести на экран его название. program primer7_1; var day: byte; begin writeln('Введите номер дня недели: '); readln(day); case day of 1: writeln('Понедельник'); 2: writeln('Вторник'); 3: writeln('Среда'); 4: writeln('Четверг'); 5: writeln('Пятница'); 6: writeln('Суббота'); else writeln('Воскресенье'); end; end. Пример 2. В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года выведите его название, если 1984 год был началом цикла – годом зеленой крысы. program case_a; var k, ost_12, ost_10, god_n, god_k: integer; color, animal: string; begin writeln('Введите номер года: '); readln(god_k); god_n: = 1984; // Начало цикла k: = god_k - god_n+1; // Порядковый номер года в цикле ost_12: = k mod 12; ost_10: = k mod 10;
case ost_12 of 1: animal: ='крысы'; 2: animal: ='коровы'; 3: animal: ='тигра'; 4: animal: ='зайца '; 5: animal: ='дракона'; 6: animal: ='змеи'; 7: animal: ='лошади'; 8: animal: ='овцы'; 9: animal: ='обезьяны '; 10: animal: ='курицы'; 11: animal: = 'собаки'; 0: animal: ='свиньи'; end;
case ost_10 of 1, 2: if (ost_12=3) or (ost_12=4) then color: ='зеленого' else color: ='зеленой'; 3, 4: if (ost_12=3) or (ost_12=4) then color: ='красного' else color: ='красной'; 5, 6: if (ost_12=3) or (ost_12=4) then color: ='желтого' else color: ='желтой'; 7, 8: if (ost_12=3) or (ost_12=4) then color: ='белого' else color: ='белой '; 9, 0: if (ost_12=3) or (ost_12=4) then color: ='черного' else color: ='черной'; end; writeln('Год ', color, ' ', animal); end. Пример 3. Составьте программу, которая по заданному году и номеру месяца определяет количество дней в этом месяце. (самостоятельно) program case_b1; var god, mes, k: integer; begin // Год является високосным в двух случаях: либо он кратен 4, но при этом не кратен 100, либо кратен 400. writeln('Введите год и номер месяца: '); readln(god, mes); case mes of 1, 3, 5, 7, 8, 10, 12: k: =31; 4, 6, 9, 11: k: =30; 2: if ((god mod 4 =0) and (god mod 100 < > 0)) or (god mod 400 = 0) then k: =29 else k: =28; else k: =0 end; If k< > 0 then writeln('Кол-во дней в месяце: ', k) else writeln('Неверный номер месяца.'); end.
|