Урок изучения новой темы. В цикле уроков условный оператор на языке программирования Пскаль. В ходе урока рассматриваются задачи для совместного решения и для самостоятельеного. Подробно рассмотрена структура оператора case.(Задача1, задача 2, задача 3, задача4, задача 5, задача6)....................................
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
ОПЕРАТОРЫ ВЕТВЛЕНИЯ
В языкеPascalимеются два оператора ветвления:
If (ветвление по условию) ;
Case (ветвление по выбору) .
Если число уровней вложения условного оператораIfбольше двух-трёх , то лучше воспользоваться оператором ветвления по выборуCase .
Оператор выбораCASE OF
Здесь селектор – проверяемое целое арифметическое, логическое или символьное выражение. Причем оно может принимать значения лишь некоторых типов, общим свойством для которых является то, что их значения известны точно. Поэтому, в частности, тип селектора не может быть вещественного типа (Real),
представляют собой перечисления возможных значений выражения селектор.
При совпадении значения выражения хотя бы с одним из значений будет выполняться соответствующее и на этом выполнение команды выбора завершается.
10/16/16 09:15
ОПЕРАТОР ВЫБОРА
Оператор case работает следующим образом.
Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку.
Если же значение переключателя не найдено ни в одном списке, то выполняется оператор по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
могут быть заданы следующими способами:
Вид списка
Значение
Список, состоящий из одного значения
‘ a’
8
TRUE
Список, содержащий перечисление значений
1, 4, 5
‘ a’, ‘b’,’*’,’@’
Список, содержащий интервалы значений
1..5, 20..30
‘ a’ .. ’z’
Список, содержащий смешанную форму представления значений
1 .. 5, 15, 55
‘ a’ .. ’z’, ’A’, ’B’
10/16/16 09:15
ОПЕРАТОР ВЫБОРА
Список выбора состоит либо из одной константы, либо из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую:
case DayOfWeek of 1..5: writeln('Будний день'); 6,7: writeln('Выходной день'); end ;
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10/16/16 09:15
ОПЕРАТОР ВЫБОРА
Списки выбора не должны пересекаться. Например, следующий фрагмент
case i of 2,5: write(1); 4..6: write(2); end ;
приведет к ошибке компиляции "Пересечение диапазонов меток в операторе case ".
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
ПРИМЕР
По введенному номеру дня недели вывести его словесное наименование. Например, 1 – понедельник.
var
n:integer;
begin
write('n= ');
readln(n);
case n of
1: writeln(' Понедельник');
2: writeln(' Вторник');
3: writeln(' Среда');
4: writeln(' Четверг');
5: writeln(' Пятница');
6: writeln(' Суббота');
7: writeln(' Воскресенье')
else writeln ('ошибка ввода: число должно быть от 1 до 7');
end;
end.
ЗАДАЧА 1
По введенному номеру месяца вывести его словесное наименование.
Например, 1 – январь.
РЕШЕНИЕ ЗАДАЧИ 2
var
n:integer;
begin
write('n= ');
readln(n);
case n of
1: writeln(' Январь');
2: writeln(' Февраль');
3: writeln(' Март');
4: writeln(' Апрель');
5: writeln(' Май');
6: writeln(' Июнь');
7: writeln(' Июль');
8: writeln(' Август');
9: writeln(' Сентябрь');
10: writeln(' Октябрь');
11: writeln(' Ноябрь');
12: writeln(' Декабрь')
else writeln ('ошибка ввода: число должно быть от 1 до 7');
end;
end.
Классная работа
Задача1:заменить числовую отметку ее текстовой формой («отлично», «хорошо», «удовлетворительно», «неудовлетворительно»)
Задача2: «Чет-нечет». При вводе цифры получить вывод – четная она или нечетная
Задача3: смоделировать простейший калькулятор, умеющий выполнять 4 основных арифметических операции
Задача4: перевести римскую цифру в арабское представление
Задача 5: В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла (остаток от деления на 12 равен 4).
Задача1:заменить числовую отметку ее текстовой формой («отлично», «хорошо», «удовлетворительно», «неудовлетворительно»)
Program PCASE1;
// Перевод числовой оценки в текстовую
var otmetka : 2..5;
begin
write(‘Введите оценку '); readln(otmetka);
case otmetka of
2 : writeln('неудовлетворительно');
3 : writeln('удовлетворительно');
4 : writeln('хорошо');
5 : writeln('отлично');
end;
end.
Задача2: «Чет-нечет». При вводе цифры получить вывод – четная она или нечетная
Program PCASE2;
// Чет-нечет
var c : 0..9;
begin
writeln('c='); readln(c);
case c of
0, 2, 4, 6, 8 : writeln('Цифра четная');
1, 3, 5, 7, 9 : writeln('Цифра нечетная');
end;
end.
Задача3: смоделировать простейший калькулятор, умеющий выполнять 4 основных арифметических операции
Program PCASE3;
var x, y : real; rez : char;
begin
write('x='); readln(x);
write('y='); readln(y);
write('Введите знак арифметической операции '); readln(rez);
case rez of
'+' : writeln('x+y=', x+y:7:2);
'-' : writeln('x-y=', x-y);
'*' : writeln('x*y=', x*y);
'/' : writeln('x/y=', x/y);
else writeln('Некорректная операция')
end
end.
Задача4: перевести римскую цифру в арабское представление
Program pCASE4;
var i : integer; c : char;
begin
i:=0;
writeln('Введите римскую цифру I, V, X, L, C, D, M');
readln(c);
case c of
'I' : i:=1; writeln ( i);
'V' : i:=5;
'X' : i:=10;
'L' : i:=50;
'C' : i:=100;
'D' : i:=500;
'M' : i:=1000;
end;
if i=0 then writeln(c, ' - не римская цифра') else writeln(i)
end.
Задача 5: В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старояпонскому календарю. Справка: 1996 г. — год крысы — начало очередного цикла (остаток от деления на 12 равен 4).
Задача 6: Составить программу случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях – вы "неудачник".
Program future;
var N : word;
begin
writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО');
Randomize; N:=Random(20)+1; {N - случайное от 1 до 20}
writeln; write('Вас ожидает ');
case N of
1 : writeln('счастье'); 2 : writeln('пятерка');
3 : writeln('дорога'); 4 : writeln('двойка');
5 : writeln('болезнь'); 6 : writeln('здоровье');
7 : writeln('деньги'); 8 : writeln('любовь');
9 : writeln('встреча'); 10 : writeln('дети')
else writeln('неудача')
end; end.
Задачи для самостоятельного решения
По номеру дня недели вывести его название
По номеру месяца вывести время года
Напишите программу, которая по введенному числу из промежутка 0..24 определяет время суток
В зависимости от того введена ли открытая скобка или закрытая, напечатать "открытая круглая скобка" или "закрытая фигурная скобка". (Учитывать круглые, квадратные, фигурные скобки)
В зависимости от введённого символа L, S, V программа должна вычислять длину окружности; площадь круга; объём цилиндра
Придумайте и решите задачу на использование оператораcase
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.