Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Реакция на нажатие символьных клавиш



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

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


 




Проектирование снизу вверх

При проектировании снизу вверх сначала проектиру­ются модули самого низкого уровня. Затем на их основе проектируются модули более высокого уровня. Процесс продолжатся до тех пор, пока не будет спроектирована вся задача.

Пример нарисовать шахматную доску с позицией фигур.

Шаг 1. Выполним проектирования модулей нижнего уровня:

1) модуль, рисующий черную клетку;

2) модуль, рисующий белую клетку;

3) модуль, рисующий пешку;

4) модуль, рисующий ладью;

5) модуль, рисующий коня;

6) модуль, рисующий слона;

7) модуль, рисующий ферзя;

8) модуль, рисующий короля.

Шаг 2. Выполним проектирование модулей более вы­сокого уровня:

9) модуль, рисующий шахматную доску; можно спро­
ектировать на основе модулей 1 и 2;

10) модуль, рисующий позицию фигур на доске; мож­
но спроектировать на основе модулей 3-8.

Шаг 3. Выполним проектирование главного модуля про­граммы. Его можно спроектировать на основе модулей 9 и 10.

Проектирование и написание программ снизу вверх удобно тем, что модули более высокого уровня собирают­ся из проверенных и оттестированных программ.

А неудобно тем, что снизу вверх трудно запроектиро­вать достаточно сложные программы.

Опишем входные и выходные данные всех модулей проекта.

Модуль I. Модуль, рисующий черную клетку.

Входные данные: координаты центра клетки.

Выходные данные: -//-.

Модуль II. Модуль, рисующий белую клетку.

Входные данные: координаты центра клетки.

Выходные данные: -//—.


Модуль III. Модуль, рисующий пешку. Входные данные: координаты центра клетки, цвет гра­ницы фигуры, цвет заполнения фигур. Выходные данные: г//—. Модуль IV. Модуль, рисующий ладью. Модуль V. Модуль, рисующий коня. Модуль VI. Модуль, рисующий слона. Входные и выходные данные аналогичны модулю 3. Модуль VII. Модуль, рисующий ферзя^ Модуль VIII. Модуль, рисующий короля. Модули 1-8 использую константу размер клетки. Модуль IX. Модуль, рисующий шахматную доску. Входные данные: —//—■ Выходные данные: —//—.

Модуль X. Модуль, рисующий позицию фигур на доске. Входные данные: массив координат фигур на доске. Выходные данные: — //-. Модуль XI. Главный модуль. Входные данные: массив координат фигур. Выходные данные: —//—.

Введение в объектно-ориентированное

Программирование и программирование

С управлением по событиям.

Основные понятия

Концепция объЕКтно-орИЕНтировлнного

ПРОГРАММИРОВАНИЯ

Уже из названия ясно, что изучаемый сейчас вами стиль программирования ориентирован на некоторые объекты. Что же такое объекты, и как на них ориентируются?

Определим некоторые базовые понятия объектно-ори­ентированного программирования.

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


 



8. Информатика



Событие это то, что происходит в реальном време­
ни и может вызывать те или иные ответные действия.

Методы можно охарактеризовать как способы, которы­
ми объект может реагировать на те или иные события.
Говорят, что события управляют методами объектов.
Методы можно создавать как визуальными средства­
ми, так и путем написания кода вручную.

Более строго метод можно определить следующим об­разом.

■ f Метод — это процедура, которая определена как часть класса и инкапсулирована (содержится) в нем. Как объекты, так и их методы подразделяются на классы. + Класс — это категория объектов или методов, облада­ющих одинаковыми свойствами и поведением. При этом объект представляет собой просто экземпляр какого-либо класса.

Методы манипулируют полями и свойствами классов (хотя могут работать и с любыми переменными) и имеют автоматический доступ к любым полям и методам своего класса. Доступ к полям и методам других классов зави­сит от уровня «защищенности» этих полей и методов.

Методы объектов Object Pascal могут иметь любой из трех типов:

- статический,

- виртуальный,

- динамический.

+ Под «диспетчеризацией» вызовов методов объектов понимается то, каким образом приложение будет опре­делять, какой код требуется выполнить при вызове того или иного метода.

Так как статические и виртуальные методы не претер­пели принципиальных изменений по сравнению с Borland Pascal 7.0 остановимся на новом по реализации типе — динамическом (который, вообще говоря, присутствовал в неявной форме в библиотеке OWL).

Динамические (dynamic) методы по возможностям на­следования и перекрытия аналогичны виртуальным, но, в отличие от последних, не имеют входов в таблицу VMT. Такой подход позволяет снизить расход памяти при боль­шом количестве этих методов и самих классов.


Virtual Methods Table (VMT) — структура, содержащая ссылки на виртуальные методы. При инициализации эк­земпляра объекта происходит так называемое «позднее связывание», то есть установление связи между «автома­тическим» полем Self объекта и VMT. Self передается в качестве дополнительного неявного параметра в любой из виртуальных методов для определения, какой из них к какому уровню иерархии наследования относится.

В отличие от виртуальных методов и самой идеоло­гии VMT, таблица динамических методов (DMT) со­держит входы только для методов, объявленных или пе­рекрытых для данного класса. На каждый динамичес­кий метод приходится только одна ссылка, представлен­ная так называемым «индексом», по которому и проис­ходит поиск метода для вызова (базовая информация по обработке динамических методов содержится в модуле x: \delphi\source\ rtl\sys\dmth.asm). С точки зрения син­таксиса перекрытие динамических и виртуальных мето­дов производится одинаково —- с использованием ключе­вого слова override. Исключение составляют обработчи­ки Windows-сообщений.

+ Делегирование. Под делегированием понимается то, что некий объект может предоставить другому объекту от­вечать на некоторые события. Такая модель в некото­рых случаях значительно упрощает программирование. К примеру, когда вы добавляете кнопку в форму и при­крепляете код, обрабатывающий нажатие, вы фактиче­ски используете делегирование кода для ассоциирования кода с событием OnClick. Такая ассоциация происходит для вас автоматически. Если проверить страницу Events в Инспекторе объектов для вашего приложения, можно увидеть ассоциированные с событиями процедуры.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-06-04; Просмотров: 704; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь