Код презентации скопируйте его
Что делать, если в задаче необходимо проверить множество условий? В этом случае, кроме оператора if в языке программирования Паскаль, предусмотрен оператор ветвления по ряду условий - case. Данный оператор используется реже из-за существующих ограничений для него.
Оператор case служит для выбора одного из возможных вариантов в ситуации, которая может иметь несколько (более двух) возможных исходов. В зависимости от значения переменой (селектора) выполняется оператор, помеченный соответствующей константой. Если же ни одна константа не подходит, выполняется оператор, записанный после else.
Оператор case имеет вид: Case порядковая_переменная of константа_1: оператор_1; константа_2: оператор_2; константа n: оператор n; Else оператор; End;
Возможно использование сокращенной формы оператора case, в которой строка else отсутствует. В этом случае, если ни одна константа не совпадает со значением порядковой переменой, управление передается оператору, следующему за end. Например: Case n of 1: writeln ('кpacный'); 2: writeln ('зеленый'); 3: writeln ('белый'); End;
Запись типа 'a'...'z' включает диапазон значений от символа 'а' до символа 'z' включительно. Для решения задач на эту тему нам понадобится еще один тип переменных: char — простой тип данных, предназначенный для хранения одного символа в определенной кодировке.
Практическая работа Задание 1. Напишите программу, по которой выводится название школьного звена в зависимости от класса.
Решение: 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.
Задание 2. С помощью конструкции case сравните значение переменной ch с различными диапазонами значений. В случае совпадения выводится соответствующая надпись (цифра, английская буква, русская буква).
Решение: Var ch: char; begin write('Введите символ:'); readln (ch); case ch of '0'..'9': write('Это число'); 'a'..'z','A'..'Z': write('Это английская буква'); 'а'..'я','А'..'Я': write('Это русская буква') end; end. Примечание. Символы перечисления помещаются в апострофы.
Задание 3. В зависимости от введенного символа L, S, V, пpoграмма должна вычислять длину окружности; площадь круга; объем цилиндра.
Решение: 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.
Решение: 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.
Домашнее задание 1. По номеру дня недели вывести его название. 2. Написать программу, которая по введенному числу из промежутка [0,24] выдает время суток.
Ответы: 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.
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.