"Эверест" - Центр Практической Информатики

представляет вводный курс

"Delphi для чайников"

Урок 9.Оператор выбора (альтернатива).

 
 

Программист, ложась спать, ставит возле кровати 2 стакана: один с водой, если захочет пить, а другой пустой, если не захочет.

Из программистского юмора

 

Наша жизнь полна неожиданностей и условностей. Каждый день приходится решать тысячи мелких задач, делая выбор. Реальная задача - переход улицы, на которой работает светофор.


Вот как выглядит эта задача на языке блок-схем:


На естественном языке такая конструкция выглядит так:
Если горит зелёный, то иду, иначе стою.

Или, в общем виде:

Если <условие>
то <ветвь "Да">
иначе <ветвь "нет">

А оператор называется Если…то… иначе….

На языке программирования этот оператор звучит следующим образом:
IF…THEN…ELSE….
IF <условие>
THEN <ветвь "Да">
ELSE <ветвь "Нет">

А поскольку в любой ветви может быть не один, а несколько шагов, то их необходимо оформить в виде отдельной подпрограммы (записать между begin и end), т.е.

IF <условие>
THEN
  Begin
<ветвь "Да">
End
ELSE
  Begin
<ветвь "Нет">
End
Если горит зелёный
То
  Begin
иди
End
ELSE
  Begin
стой
End

1 задание: составьте блок-схему анекдота:
Председатель колхоза пришел на ферму и спрашивает коров:
- Ну, что будем сдавать, молоко или мясо?
Примечание: Вопрос нужно задавать так, чтобы на него можно было бы ответить "Да" или "нет"

2 задание: составьте блок-схему следующей ситуации:
Если есть вода, то нужно почистить зубы, если воды нет, то нужно сходить в магазин и купить жевательную резинку.

 

А что же в Delphi?
Оказывается, ни одна серьезная программа не обходится без этого оператора. А как с ним работать, мы разберемся на примере решения следующей задачи: напишем вариант шаблон для теста, т.е. как работает обычный тест

1. Запустите Delphi.
2. Сделайте вашу форму, как и меня:

 

3. Обратите внимание, слова в компонентах Label располагаются не в одной, а в нескольких строчках. Прежде, чем набирать текст, свойство WordWrap сделайте равным True.


Начинаем программирование.

Как должна работать программа? Пользователь выбирает ответ из предложенных, затем нажимает кнопку Проверить. Программа проверяет, правильно ли выбраны ответы.

Если дан правильный ответ - выводим ответ Верно и отключаем кнопку "Проверка",
Иначе - соответствующий ответ и даем возможность продолжить тест.

Значит, программировать необходимо кнопку Проверить.

4. Дважды щелкните на кнопке Проверить. Открылось окно редактора кода.

5. Пишем код:

Разберите внимательно этот код, этот оператор один из наиболее употребляемых.

Для этого оператора есть правило: если между begin…end стоит один оператор, то строки begin…end можно опустить. В нашем случае, по ветви "ДА" - 2 оператора, по ветви "НЕТ"- 1 оператор, следовательно, во втором случае begin…end можно убрать. И тогда код будет выглядеть следующим образом:

procedure TForm1.Button1Click(Sender: TObject);
begin
if radioButton3.Checked
then
Begin
label1.Caption:='Верно';
button1.Enabled:=False;
End
else
label1.Caption:=' Ошибка';

end;

 

Самостоятельно:

1. Сделайте тест, состоящий из трех вопросов, например, такой:


2. На нашем сайте Вы сможете найти и усовершенствованый пример данной программы: Программа Тест показывает еще и ошибки. Скачайте программу "Test". Сделайте так же.

Примечание: данный и следующие уроки содержат практику, которую нужно много отрабатывать. Запомните, умение писать программы- это такое же практическое искусство как и умение плавать. Сидя на берегу плавать не научишься.

А поэтому несколько советов:

  • не ограничивайтесь моими уроками, больше работайте самостоятельно, придумывайте себе задания, создавайте небольшие программы;
  • каждый урок содержит или разъясняет один прием или тему, следовательно, после каждого урока Вы сможете создавать свои собственные программы, используя новые знания.
  • если Вы придумаете задания, которые лучше моих, интереснее моих, или просто желаете поделится своими идеями и задумками, то, пожалуйста, напишите: e-mail: rk@rikt.ru
  • если Вам что-либо не понятно, или не получается, напишите, постраемся помочь.

Ждем писем с вашими собственными программами.

На следующем уроке мы создаем программу с паролем...

До написания своей первой игры осталось 2 урока....