Компоненты

Компоненты

Пример использует представление точки в двумерной графической системе:

Рис. 7.1.  Точка и ее координаты

Для определения типа POINT как абстрактного типа данных потребуется четыре функции-запроса: x, y, ?, ?. (В текстах подпрограмм для двух последних функций будут использоваться имена rho и theta). Функция x возвращает абсциссу точки (горизонтальную координату), y - ординату (вертикальную координату), ? - расстояние от начала координат, ? - полярный угол, отсчитываемый от горизонтальной оси. Значения x и y являются декартовыми, а ? и ? - полярными координатами точки. Другой полезной функцией является distance, возвращающая расстояние между двумя точками.

Далее спецификация АТД будет содержать такие команды, как translate (перемещение точки на заданное расстояние по горизонтали и вертикали), rotate (поворот на определенный угол вокруг начала координат) и scale (уменьшение или увеличение расстояния до начала координат в заданное число раз).

Нетрудно написать полную спецификацию АТД, включающую указанные функции и некоторые ассоциированные аксиомы. Далее в качестве примера приведены две из перечисленных функций:

x: POINT REAL

translate: POINT ? REAL ? REAL POINT

и одна из аксиом:

x (translate (p1, a, b)) = x (p1) + a

утверждающая, что для произвольной точки p1 и действительных значений a и b при трансляции точки на <a, b> абсцисса увеличивается на a.

Читатель, если пожелает, может самостоятельно завершить спецификацию АТД. В дальнейшей дискуссии подразумевается, что вы понимаете, как устроен данный АТД, вне зависимости от того, написали ли вы его полную формализацию или нет. Сосредоточим внимание на реализации АТД - классе.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

10.1. Компоненты

Из книги автора

10.1. Компоненты Для представления физических сущностей в языке UML применяется специальный термин – компонент (component). Компонент реализует некоторый набор интерфейсов и служит для общего обозначения элементов физического представления модели. Для графического


Компоненты ADODB

Из книги автора

Компоненты ADODB В настоящее время этот набор компонентов стал промышленным стандартом взаимодействия с OLE DB-провайдерами. ADODB (www.microsoft.com/data) - это весьма удобный высокоуровневый интерфейс, реализующий классическую иерархию объектов для работы с базами данных в виде


Основные компоненты

Из книги автора

Основные компоненты • Компилятор MinGW32 (скачать: сетевой автоустановщик) • Исходники библиотеки Qt (скачать: версию 4.3.4 или версию 4.3.2 )


Дополнительные компоненты

Из книги автора

Дополнительные компоненты • Перевод документации Qt (скачать: Архив Qt документации ) • Перевод сообщений Qt и инструментальных средств (скачать: Перевод библиотеки Qt, инструментов Qt )


Остальные компоненты

Из книги автора

Остальные компоненты К остальным компонентам компьютерной системы не предъявляется жестких требований, но все же есть несколько рекомендаций:• компьютер должен быть оборудован картой контроллера IEEE-1394 (FireWire). К разъему этой карты будет подключаться цифровая


Компоненты Web-сервиса XML

Из книги автора

Компоненты Web-сервиса XML В дополнение к библиотеке управляемого программного кода, обеспечивающей предлагаемые сервисом функциональные возможности, для Web-сервиса XML требуется определенная инфраструктура поддержки. В частности, Web-сервис XML использует следующие базовые


2.3.2 Технология и компоненты EDA/SQL

Из книги автора

2.3.2 Технология и компоненты EDA/SQL Технология EDA/SQL фирмы Information Builders, Inc. позволяет осуществлять доступ средствами SQL не только к реляционным, но и к нереляционным источникам данных, таким как иерархические базы данных и файлы с определенной структурой записей (record-oriented files),


Основные компоненты

Из книги автора

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


2.1. Компоненты Nero 8

Из книги автора

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


Программы и компоненты

Из книги автора

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


Компоненты

Из книги автора

Компоненты Пример использует представление точки в двумерной графической системе: Рис. 7.1.  Точка и ее координатыДля определения типа POINT как абстрактного типа данных потребуется четыре функции-запроса: x, y, ?, ?. (В текстах подпрограмм для двух последних функций будут


Универсальные компоненты

Из книги автора

Универсальные компоненты Вот лишь некоторые компоненты, содержащиеся в классе GENERAL, а значит, доступные всем другим классам. Часть из них была введена и использована в предшествующих лекциях курса:[x]. clone для создания клона (дубля) объекта, а также его "глубинный" вариант


Замороженные компоненты

Из книги автора

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


Серверные компоненты PKI

Из книги автора

Серверные компоненты PKI Основными серверными компонентами PKI являются сервер сертификатов, сервер каталогов и сервер восстановления ключей, опциональными компонентами - сервер регистрации, OCSP-сервер, обслуживающий запросы пользователей по онлайновому протоколу