Оператор выбора lazarus

Бывают задачи, в которых приходится выбрать дальнейшее развитие программы. Например, необходимо определить какие символы введены в поле Edit.

Для этого используется оператор выбора case.

Оператор case сложный и состоит из нескольких зарезервированных слов.

Вот конструкция оператора:

Оператор работает так: сначала вычисляется или считывается значение выражения, а потом в списке предложенных вариантов значений ищется совпадение и выполняется соответствующий оператор. Если такое значение не найдено, то выполняется оператор после слова else.

Для определения символов введённых в поле Edit необходимо перечислить возможные варианты в списке значений. Например, наша программа должна различать числа, русские буква и английские буквы.

Так как всего символов получается много. То можно их перечислять через запятую для одного оператора. Вот так:

Но такая конструкция неудобная для букв, так как их много больше.

Большое количество символов или значений следующих друг за другом можно перечислять через две точки:

Так же для букв:

Сначала последовательность для строчных букв, а затем для прописных.
Вот полный оператор:

Осталось добавить на форму нужные элементы и в обработчик событий вставить этот код.


Рис. 10.1 Полученная программа.

Так же в операторе можно выполнять несколько действий для одного значения.

Например, нам необходимо вывести на экран класс, в котором учится ученик по введенному году рождения, а так же количество полных лет ученика в другое поле вывода.


Рис. 10.2 Интерфейс программы.

Для определения класса необходимо из сегодняшнего года вычитаем дату рождения и по получившемуся числу выводим на экран класс и возраст.

Будем считать что у ученика день рождения1 сентября, то есть его возраст в течении учебного года не меняется.

Для года рождения и сегодняшнего года создаем две переменные.

Вот обработчик для кнопки:

Особенность кода в том, что после значения выводится несколько действий. Эти действия необходимо заключать в операторные скобки begin end;.

Практическое задание.

1. По заданному номеру месяца m вывести на печать название времени года.

2. Вывести на печать название дня недели, соответствующее заданному числу D, при условии, что в месяце 31 день и первое число – понедельник.