Цель: научить применять еще один оператор ветвления – структуру «выбор»
Cлайд 3
Что делать, если в задаче необходимо проверить множество условий? В этом случае, кроме оператора if в языке программирования Паскаль, предусмотрен оператор ветвления по ряду условий - case. Данный оператор используется реже из-за существующих ограничений для него.
Cлайд 4
Оператор case служит для выбора одного из возможных вариантов в ситуации, которая может иметь несколько (более двух) возможных исходов. В зависимости от значения переменой (селектора) выполняется оператор, помеченный соответствующей константой. Если же ни одна константа не подходит, выполняется оператор, записанный после else.
Cлайд 5
Оператор case имеет вид: Case порядковая_переменная of константа_1: оператор_1; константа_2: оператор_2; константа n: оператор n; Else оператор; End;
Cлайд 6
Возможно использование сокращенной формы оператора case, в которой строка else отсутствует. В этом случае, если ни одна константа не совпадает со значением порядковой переменой, управление передается оператору, следующему за end. Например: Case n of 1: writeln ('кpacный'); 2: writeln ('зеленый'); 3: writeln ('белый'); End;
Cлайд 7
Запись типа 'a'...'z' включает диапазон значений от символа 'а' до символа 'z' включительно. Для решения задач на эту тему нам понадобится еще один тип переменных: char — простой тип данных, предназначенный для хранения одного символа в определенной кодировке.
Cлайд 8
Практическая работа Задание 1. Напишите программу, по которой выводится название школьного звена в зависимости от класса.
Cлайд 9
Решение: var n: integer; begin write('Введите класс школы: '); readln(n); case n of 1..4: writeln('Младшие классы.'); 5..8: writeln('Средняя школа.'); 9,11: writeln(' Cтаршие классы. Выпускной.'); 10: writeln('Старшие классы.'); else writeln(‘Error’); end; end.
Cлайд 10
Задание 2. С помощью конструкции case сравните значение переменной ch с различными диапазонами значений. В случае совпадения выводится соответствующая надпись (цифра, английская буква, русская буква).
Cлайд 11
Решение: Var ch: char; begin write('Введите символ:'); readln (ch); case ch of '0'..'9': write('Это число'); 'a'..'z','A'..'Z': write('Это английская буква'); 'а'..'я','А'..'Я': write('Это русская буква') end; end. Примечание. Символы перечисления помещаются в апострофы.
Cлайд 12
Задание 3. В зависимости от введенного символа L, S, V, пpoграмма должна вычислять длину окружности; площадь круга; объем цилиндра.
Cлайд 13
Решение: Var L, S, V, r, h: real; n: char; begin write('Задайте радиус круга'); readln(r); write('Высоту цилиндра'); readln(h); write('Введите символ:'); readln(n); case ch of L: write('Длина окружности L=', 2*3.14*r); S: write('Плoщaдь круга S=', 3.14*sqr(r)); V: write('Объем цилиндра V=’, 3.14*sqr(r)*h); end; end.
Cлайд 14
Задание 4. Напишите программу преобразования цифр в слова
Cлайд 15
Решение: Program Number4; Var a: integer; Begin Writeln (‘Введите цифру’); readln(a); case a of 0: writeln('ноль'); 1: writeln('один'); 2: writeln('двa'); 3: writeln('три'); 4: writeln('четыре'); 5: writeln('пять'); 6: writeln('шесть'); 7: writeln('ceмь'); 8: writeln('вoceмь'); 9: writeln('девять') else writeln('Это число не является цифрой'); end; End.
Cлайд 16
Вывод Как применяется оператор выбора? Когда он особенно необходим?
Cлайд 17
Домашнее задание 1. По номеру дня недели вывести его название. 2. Написать программу, которая по введенному числу из промежутка [0,24] выдает время суток.
Cлайд 18
Ответы: Var a: integer; Begin writeln('Введите номер дня недели'); readln(a); case a of 1: writeln ('понедельник'); 2: writeln ('вторник'); 3: writeln('cpeда'); 4: writeln('четверг'); 5: writeln('пятница'); 6: writeln ('суббота'); 7: writeln ('воскресенье'); else writeln ('Это число не является номером дня недели'); end; End.
Cлайд 19
2. Var a: real; Begin writeln('Введите время суток'); readln(a); case a of 8,01..12,00: writeln (‘Утро’); 12,01-17,00: writeln('День'); 17,01..23,00: writeln (‘Вечер'); 23,01..24,00: writeln('Hoчь'); 1,00-8,00: writeln ('Hoчь'); else writeln('Это число выходит за пределы интервала [0,24]'); end; End.