На Горох
Информатика

23. Что такое события?

"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.

Объяснение темы В оглавлении: 23. Что такое события?

Кратко о теме

Событие — это действие или изменение, о котором программа может узнать: щелчок мышью, нажатие клавиши, запуск или истечение времени. Источник сообщает программе о событии, а обработчик определяет, что делать в ответ. Если заранее связать событие с командами, программа сможет реагировать на действия пользователя и работать интерактивно. Такой подход называют событийным программированием.

Объяснение темы

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

Определения и обозначения

Событие — действие или изменение, о котором программа может узнать, например нажатие клавиши или щелчок мышью. Оно сообщает программе, что в окружающей среде или внутри самой программы что-то произошло. Благодаря событиям программа может реагировать на действия пользователя, а не только выполнять команды по порядку.

Источник события — объект или устройство, от которого поступает событие: пользователь, клавиатура, мышь или сама программа. Например, человек нажимает клавишу, клавиатура передаёт сведения об этом, а программа фиксирует событие. Понимание источника помогает определить, откуда пришло сообщение и на каком участке программы его искать.

Обработчик события — команда или группа команд, которые выполняются при наступлении определённого события. Например, обработчик щелчка по кнопке может открыть новое окно или вывести сообщение. Он нужен для того, чтобы программа не просто узнала о событии, а выполнила осмысленное действие.

Событийное программирование — способ построения программы, при котором её действия запускаются в ответ на события. Программа ожидает разные сообщения и выбирает подходящий обработчик, когда одно из них появляется. Такой способ особенно полезен для игр, сайтов и приложений с кнопками, окнами и другими элементами управления.

Как это устроено

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

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

Обработчик связывается с событием по его виду и источнику. Например, для события «нажатие клавиши Пробел» назначают отдельную группу команд, а для щелчка по кнопке — другую. После наступления события программа находит связанный обработчик и выполняет его команды в заданном порядке.

При обычном последовательном выполнении команды идут одна за другой от начала программы к концу. В событийной программе заранее неизвестно, когда именно пользователь нажмёт клавишу или щёлкнет мышью, поэтому программа ожидает сообщения и реагирует на них. Такой подход нужен там, где поведение зависит от действий человека или изменений во времени.

У одной программы может быть несколько обработчиков, и каждый отвечает за свой случай. Нажатие стрелки может перемещать персонажа, щелчок по кнопке — запускать игру, а столкновение — показывать предупреждение. Благодаря этому реакции не смешиваются, а поведение программы становится понятным и управляемым.

События и возможная реакция программы

СобытиеВозможный источникЧто может выполнить обработчик
Щелчок мышью по кнопкеПользователь и мышьЗапустить игру или открыть окно
Нажатие клавишиПользователь и клавиатураПереместить объект или изменить его направление
Запуск программыОперационная система или сама программаЗагрузить данные и подготовить экран
Истечение заданного времениТаймер программыОбновить изображение или показать сообщение

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

Разбор задач

Задача 1

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

  1. Щелчок мышью может быть зарегистрирован программой, значит, это событие.
  2. Нажатие клавиши также передаётся от клавиатуры программе и является событием.
  3. Изменение цвета фона обычно является действием программы, то есть реакцией или результатом выполнения команд.

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

Задача 2

Для события «нажатие клавиши Пробел» придумайте обработчик, который перемещает персонажа на несколько шагов. Сначала определим, какое действие должно быть связано с клавишей, а затем запишем последовательность команд. Направление можно выбрать заранее, например движение вправо.

  1. Создать событие, связанное с нажатием клавиши Пробел.
  2. В обработчике выбрать персонажа и указать направление движения вправо.
  3. Задать команду повторить перемещение на несколько шагов, например сделать 5 шагов.
  4. Проверить, что команды находятся именно в обработчике клавиши Пробел, а не выполняются сразу при запуске программы.

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

Задача 3

Программа должна начинать игру при нажатии кнопки «Старт», менять направление персонажа по клавишам и показывать сообщение при столкновении. Здесь требуется не один общий обработчик, а несколько независимых связей между событиями и реакциями. Разберём каждую ситуацию отдельно.

  1. Событие «щелчок по кнопке Старт» связываем с обработчиком запуска игры: сбросить счёт, расставить объекты и начать движение.
  2. События «нажатие клавиши Влево» и «нажатие клавиши Вправо» связываем с обработчиками изменения направления персонажа.
  3. Событие «столкновение персонажа с объектом» связываем с обработчиком, который выводит сообщение, например «Столкновение!».
  4. Проверяем каждую связь отдельно: действие должно запускаться только после своего события.

Ответ: у программы есть обработчики запуска, управления направлением и столкновения. Несколько обработчиков позволяют одной программе по-разному отвечать на щелчок, разные клавиши и изменение положения объектов.

Типичные ошибки

Считать событием любую команду программы. Так путают причину и реакцию: изменение цвета после щелчка обычно является действием обработчика, а не событием. Проверьте себя вопросом: программа узнала об этом или сама выполнила это?

Ждать автоматической реакции после события. Нажатие кнопки не заставляет программу самостоятельно придумать нужное действие, потому что связь должна быть задана заранее. Проверьте, существует ли обработчик и помещены ли в него нужные команды.

Смешивать источник события и обработчик. Клавиатура или мышь передаёт событие, а команды программы его обрабатывают. Чтобы проверить ответ, назовите отдельно устройство, которое сообщает о событии, и группу команд, которая реагирует.

Считать, что обработчик сработает при любом похожем действии. Обработчик клавиши Пробел не обязан запускаться при нажатии другой клавиши или щелчке мышью. Сверьте точный вид события, его источник и объект, с которым оно связано.

Связь с другими темами

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

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

Что запомнить

  • Событие сообщает программе о действии или изменении.
  • События могут поступать от пользователя, устройств или самой программы.
  • Обработчик задаёт реакцию программы на событие.
  • Без подходящего обработчика программа может не выполнить ожидаемое действие.
  • Разные события могут запускать разные обработчики.
  • События позволяют создавать интерактивные программы.

Частые вопросы по теме

Что в программе называют событием?

Событием называют действие или изменение, о котором программа может узнать. Например, это щелчок мышью, нажатие клавиши, запуск программы или завершение отсчёта времени.

Чем событие отличается от команды?

Событие сообщает о том, что произошло, а команда задаёт действие программы. Например, нажатие клавиши — событие, а перемещение персонажа после него — команда или группа команд.

Что такое обработчик события?

Обработчик события — команда или группа команд, связанных с определённым событием. Когда событие происходит, программа запускает соответствующий обработчик.

Может ли программа реагировать на несколько событий?

Да, программа может иметь много событий и обработчиков. Например, один обработчик реагирует на щелчок кнопки, другой — на нажатие клавиши, а третий — на столкновение объектов.

Почему после нажатия кнопки ничего не происходит?

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

Спросить по теме параграфа

23. Что такое события?

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.