Урок Информатики "Оператор выбора"

Программирование в Lazarus для школьников.

Программирование в 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 день и первое число – понедельник.