Обязательно выясните, какой объем ответа на данный вопрос хочет услышать от вас учитель. В свете рассказанного ранее может оказаться, что часть изложения (раздел "желательно изложить") можно будет вообще пропустить.
Ссылка на материалы по вопросу
Подробный текст материалов к вопросу опубликован в "Информатике" № 15, 2003, с. 3— 5.
2. Событийное объектно-ориентированное программирование. Событийные и общие процедуры
Базовые понятия
События и их обработчики.
Программа как совокупность обработчиков.
Обязательно изложить
Обработка событий является одной из основ современного программного обеспечения. Событиями в интересующем нас сейчас смысле называется все то, что требует реакции программы. Сюда относятся действия пользователя с мышью и клавиатурой, а также всевозможные изменения состояния системы: появление и исчезновение окон, изменение содержимого области редактирования в результате вывода и многое другое. Написанная нами программа должна в ответ на происходящие события осуществлять те или иные действия: например, по щелчку мыши вызывать появление диалогового окна, при закрытии активного окна переключать фокус ввода на одно из оставшихся окон, а при уменьшении размера текста убирать полосы прокрутки.
Подчеркнем, что событие есть базовое понятие, присущее самой операционной системе Windows, a не системам программирования.
При событийном подходе программа рке не является чем-то единым и последовательным, а представляет собой совокупность обработчиков (подчас абсолютно независимых друг от друга) тех или иных событий. Проще говоря, программист должен описать, как его приложение будет реагировать на каждое из обрабатываемых событий. Отметим, что написать несколько небольших обработчиков заметно легче, чем цельную программу.
Нам кажется, что ответ на данный вопрос лучше всего построить на конкретном примере. Один из вариантов такого рассмотрения подробно изложен в предыдущей публикации по билетам 11-го класса, где разбирается несложная программа, которая осуществляет буксировку с помощью кнопки мыши небольшой картинки.
Желательно изложить
Поскольку реакция программы на события, как правило, связана с конкретными визуальными компонентами — щелчок по кнопке, изменение размеров окна и т.п., обработчики также принято считать методами конкретных объектов. В качестве наиболее распространенного примера рассмотрим заголовок обработчика события OnClick (реакция на щелчок мыши) в системе Delphi для компонента типа Buttonl, имеющий вид procedureTForml.ButtonlClick(Sender: TObject);
Налицо объектно-ориентированная форма записи, где имя метода отделено точкой от класса, к которому принадлежит данный метод.
Заметим, что типичным аргументом является объект Sender, через который система Delphi передает имя конкретного объекта, вызывающего обработчик. Последнее обстоятельство представляет большой практический интерес, так: как; позволяет делать общий обработчик; на группу компонентов. Скажем, для калькулятора вместо 10 однотипных обработчиков кнопок можно написать всего один:
п := 10 * n + (Sender as TButton).tag;
В приведенной формуле предполагается, что переменная п, накапливающая результат набора числа, имеет целочисленный тип, а значения свойства tag у всех кнопок предварительно установлены в соответствии с надписью на кнопке (на кнопке "1" задана 1, на кнопке "2" — 2 и т.д.). Тогда становится понятным, что, используя Sender в качестве конкретной кнопки, мы получаем доступ к ее свойству tag и по стандартной формуле добавляем его к текущему значению числа в качестве последней десятичной цифры.
Описывая функционирование обработчиков событий, целесообразно несколько подробнее рассказать о механизме реализации событий в современном программном обеспечении, Материал этот следует считать дополнительным, но, по мнению авторов, он достаточно нагляден и полезен для понимания сути фундаментальных процессов событийного программирования. Хочется даже провести некоторую аналогию: в физике тоже можно применять некоторые законы электричества, не зная того, что ток есть направленное движение электронов; тем не менее, это, к счастью, (пока!) не является основанием для исключения данного фундаментального материала из школьного курса.
Основой обработки событий в современных программных системах служит посылка и прием сообщений. В простейшем случае сообщение представляет собой несколько помещаемых в строго определенное место памяти целых чисел. Первое является идентификатором сообщения: проще говоря, оно позволяет однозначно определить назначение сообщения. Остальные числа являются параметрами, раскрывающими суть события. Скажем, для случая сообщений мыши это координаты положения ее указателя на экране. Для других сообщений содержание информации, разумеется, будет отличаться, но можно утверждать, что каждому типу сообщений соответствует строго определенная "уточняющая" информация.
Те, кого заинтересовала эта часть вопроса, и кто намерен рассказать о ней на экзамене, могут обратиться к полному тексту билета (см. ссылку в конце вопроса).
Примечание. Советую также в случае более глубокого интереса к вопросу о сообщениях Windows внимательно последить за последующими номерами газеты. Там будет опубликована статья Е.А. Еремина "Что такое скан-код клавиши и как его увидеть", в конце которой описывается довольно простая программа непосредственной обработки сообщений от клави-
БИЛЕТ № 20
1. Компьютерная графика. Аппаратные средства (монитор, видеокарта, видеоадаптер, сканер и др.). Программные средства (растровые и векторные гра-I фические редакторы, средства деловой графики, программы анимации и др.).
2. Этапы развития вычислительной техники. Основные технические характеристики современного персонального компьютера.
3. Практическое задание по работе с электронной почтой (в локальной или глобальной компьютерной сети).
1. Компьютерная графика. Аппаратные средства (монитор, видеокарта, видеоадаптер, сканер и др.). Программные средства (растровые и векторные графические редакторы, средства деловой графики, программы анимации и др.)
Базовые понятия
Компьютерная графика, монитор, видеокарта, видеоадаптер, сканер, цифровой фотоаппарат, растровая компьютерная графика, векторная компьютерная графика, фрактальная компьютерная графика, ЗО-графика, деловая графика, анимационная графика.
Обязательно изложить
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине пятидесятых годов для больших ЭВМ, применявшихся в научных и военных исследованиях. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных. Графический интерфейс пользователя сегодня является стандартом "де-факто" для программного обеспечения разных классов, начиная с операционных систем.
Специальную область информатики, занимающуюся методами и средствами создания и обработки изображений с помощью программно-аппаратных вычислительных комплексов, называют компьютерной графикой. Она охватывает все виды и формы представления изображений, доступных для восприятия человеком либо на экране монитора, либо в виде копии на внешнем носителе. Визуализация данных находит применение в самых разных сферах человеческой деятельности. Например, в медицине (компьютерная томография), научных исследованиях, моделировании тканей и одежды, опытно-конструкторских разработках.
В зависимости от способа формирования изображений компьютерную графику принято подразделять на растровую, векторную и фрактальную. Отдельным предметом считается трехмерная (3D) графика: построение объемных моделей объектов в виртуальном пространстве. Как правило, в ней сочетаются векторный и растровый способы формирования изображений.
На специализацию в отдельных областях указывают названия некоторых разделов: "Инженерная графика", "Научная графика", "Web-графика", "Компьютерная полиграфия" — и прочие. На стыке компьютерных, телевизионных и кинотехнологий образовалась область компьютерной графики и анимации.
Хотя компьютерная графика служит всего лишь инструментом, ее структура и методы основаны на передовых достижениях фундаментальных и прикладных наук: математики, физики, химии, биологии, статистики, программирования и множества других. Это замечание справедливо как для программных, так и для аппаратных средств создания и обработки изображений на компьютере. Поэтому компьютерная графика является одной из наиболее бурно развивающихся отраслей информатики.