Урок Информатики "Оператор выбора"
Программирование в Lazarus для школьников.
Занятие № 10.
Оператор выбора.
Матыцин Игорь Владимирович
Учитель математики и информатики
МБОУ СОШ с. Девица
Цель: познакомить с оператором выбора case и научится применять его при решении задач.
Девица 2012.
Бывают задачи, в которых приходится выбрать дальнейшее развитие программы. Например, необходимо определить какие символы введены в поле Edit.
Для этого используется оператор выбора case.
Оператор case сложный и состоит из нескольких зарезервированных слов.
Вот конструкция оператора:
Case «выражение» of
Значение выражения: Оператор;
Значение выражения: Оператор;
Значение выражения: Оператор;
Значение выражения: Оператор;
Else
Оператор;
End;
Оператор работает так: сначала вычисляется или считывается значение выражения, а потом в списке предложенных вариантов значений ищется совпадение и выполняется соответствующий оператор. Если такое значение не найдено, то выполняется оператор после слова else.
Для определения символов введённых в поле Edit необходимо перечислить возможные варианты в списке значений. Например, наша программа должна различать числа, русские буква и английские буквы.
Так как всего символов получается много. То можно их перечислять через запятую для одного оператора. Вот так:
‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’:Label1.Caption:=’Это числа’;
Но такая конструкция неудобная для букв, так как их много больше.
Большое количество символов или значений следующих друг за другом можно перечислять через две точки:
‘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 Полученная программа.
Так же в операторе можно выполнять несколько действий для одного значения.
Например, нам необходимо вывести на экран класс, в котором учится ученик по введенному году рождения, а так же количество полных лет ученика в другое поле вывода.
Рис. 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;
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
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;.
Практическое задание.
По заданному номеру месяца m вывести на печать название времени года.
Вывести на печать название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и первое число – понедельник.
Нравится материал? Поддержи автора!
Ещё документы из категории информатика:
Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.
После чего кнопка «СКАЧАТЬ» станет доступной!
Кнопочки находятся чуть ниже. Спасибо!
Кнопки:
Скачать документ