Слайд 1АЛГОРИТМЫ СО СТРУКТУРОЙ ВЫБОР
УРОК 31
Слайд 2Цель:
научить применять еще один оператор ветвления – структуру «выбор»
Слайд 3Что делать, если в задаче необходимо проверить множество условий?
В
этом случае, кроме оператора if в языке программирования Паскаль, предусмотрен
оператор ветвления по ряду условий - case. Данный оператор используется реже из-за существующих ограничений для него.
Слайд 4Оператор case служит для выбора одного из возможных вариантов в
ситуации, которая может иметь несколько (более двух) возможных исходов.
В
зависимости от значения переменой (селектора) выполняется оператор, помеченный соответствующей константой.
Если же ни одна константа не подходит, выполняется оператор, записанный после else.
Слайд 5Оператор case имеет вид:
Case порядковая_переменная of
константа_1: оператор_1;
константа_2:
оператор_2;
константа n: оператор n;
Else оператор;
End;
Слайд 6Возможно использование сокращенной формы оператора case, в которой строка else
отсутствует. В этом случае, если ни одна константа не совпадает
со значением порядковой переменой, управление передается оператору, следующему за end. Например:
Case n of
1: writeln ('кpacный');
2: writeln ('зеленый');
3: writeln ('белый');
End;
Слайд 7Запись типа 'a'...'z' включает диапазон значений от символа 'а' до
символа 'z' включительно. Для решения задач на эту тему нам
понадобится еще один тип переменных:
char — простой тип данных, предназначенный для хранения одного символа в определенной кодировке.
Слайд 8Практическая работа
Задание 1.
Напишите программу,
по которой выводится название школьного
звена в зависимости от класса.
Слайд 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.
Слайд 10Задание 2.
С помощью конструкции case сравните значение переменной ch с
различными диапазонами значений. В случае совпадения выводится соответствующая надпись (цифра,
английская буква, русская буква).
Слайд 11Решение:
Var ch: char;
begin
write('Введите символ:');
readln (ch);
case ch of
'0'..'9': write('Это
число');
'a'..'z','A'..'Z': write('Это английская буква');
'а'..'я','А'..'Я': write('Это русская буква')
end;
end.
Примечание. Символы перечисления помещаются
в апострофы.
Слайд 12Задание 3.
В зависимости от введенного символа L, S, V,
пpoграмма должна вычислять длину окружности; площадь круга; объем цилиндра.
Слайд 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.
Слайд 14Задание 4.
Напишите программу преобразования цифр в слова
Слайд 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.
Слайд 16Вывод
Как применяется оператор выбора?
Когда он особенно необходим?
Слайд 17Домашнее задание
1. По номеру дня недели вывести его название.
2. Написать
программу, которая по введенному числу из промежутка [0,24] выдает время
суток.
Слайд 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.
Слайд 192. 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.