Конспект урока "Оператор выбора"


Программирование в Lazarus для школьников.
Занятие № 10.
Оператор выбора.
Матыцин Игорь Владимирович
Учитель математики и информатики
МБОУ СОШ с. Девица
Цель: познакомить с оператором выбора case и научится применять его при
решении задач.
Программирование в Lazarus для школьников.
Девица 2012.
Бывают задачи, в которых приходится выбрать дальнейшее развитие
программы. Например, необходимо определить какие символы введены в
поле Edit.
Для этого используется оператор выбора case.
Оператор case сложный и состоит из нескольких зарезервированных слов.
Вот конструкция оператора:
Case «выражение» of
Значение выражения: Оператор;
Значение выражения: Оператор;
Значение выражения: Оператор;
Значение выражения: Оператор;
Else
Оператор;
End;
Оператор работает так: сначала вычисляется или считывается значение
выражения, а потом в списке предложенных вариантов значений ищется
совпадение и выполняется соответствующий оператор. Если такое значение
не найдено, то выполняется оператор после слова else.
Для определения символов введённых в поле Edit необходимо перечислить
возможные варианты в списке значений. Например, наша программа должна
различать числа, русские буква и английские буквы.
Так как всего символов получается много. То можно их перечислять через
запятую для одного оператора. Вот так:
‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’:Label1.Caption:=’Это числа’;
Программирование в Lazarus для школьников.
Но такая конструкция неудобная для букв, так как их много больше.
Большое количество символов или значений следующих друг за другом
можно перечислять через две точки:
0..’9’:Label1.Caption:=’Это числа’;
Так же для букв:
'a'..'z','A'..'Z': Label1.Caption:='Это английская буква';
Сначала последовательность для строчных букв, а затем для прописных.
Вот полный оператор:
case edit1.text of
'0'..'9': Label1.Caption:='Это число';
'a'..'z','A'..'Z': Label1.Caption:='Это английская буква';
'а'..'я','А'..'Я': Label1.Caption:='Это русская буква';
end;
Осталось добавить на форму нужные элементы и в обработчик событий
вставить этот код.
Рис. 10.1 Полученная программа.
Так же в операторе можно выполнять несколько действий для одного
значения.
Например, нам необходимо вывести на экран класс, в котором учится
ученик по введенному году рождения, а так же количество полных лет
ученика в другое поле вывода.
Программирование в Lazarus для школьников.
Рис. 10.2 Интерфейс программы.
Для определения класса необходимо из сегодняшнего года вычитаем дату
рождения и по получившемуся числу выводим на экран класс и возраст.
Будем считать что у ученика день рождения1 сентября, то есть его возраст в
течении учебного года не меняется.
Для года рождения и сегодняшнего года создаем две переменные.
Вот обработчик для кнопки:
procedure TForm1.Button1Click(Sender: TObject);
var
s,r:integer;
begin
s:=strtoint(Edit2.Text);
r:=strtoint(Edit1.Text);
case s-r of
7:begin
label3.Caption:='1';
label6.Caption:='7';
end;
Программирование в Lazarus для школьников.
8:begin
label3.Caption:='2';
label6.Caption:='8';
end;
9:begin
label3.Caption:='3';
label6.Caption:='9';
end;
10:begin
label3.Caption:='4';
label6.Caption:='10';
end;
11:begin
label3.Caption:='5';
label6.Caption:='11';
end;
12:begin
label3.Caption:='6';
label6.Caption:='12';
end;
13:begin
label3.Caption:='7';
label6.Caption:='13';
end;
14:begin
Программирование в Lazarus для школьников.
label3.Caption:='8';
label6.Caption:='14';
end;
15:begin
label3.Caption:='9';
label6.Caption:='15';
end;
16:begin
label3.Caption:='10';
label6.Caption:='16';
end;
17:begin
label3.Caption:='11';
label6.Caption:='17';
end;
end;
end;
Особенность кода в том, что после значения выводится несколько действий.
Эти действия необходимо заключать в операторные скобки begin end;.
Программирование в Lazarus для школьников.
Практическое задание.
1. По заданному номеру месяца m вывести на печать название времени
года.
2. Вывести на печать название дня недели, соответствующее заданному
числу D, при условии, что в месяце 31 день и первое число
понедельник.