В качестве базовых объектов рассматриваются основные геометрические фигуры – точку, окружность, прямоугольник и т.д.
Информационное описание объектов – параметры фигуры (координаты, размер, радиус и др.). В общем случае, описание фигуры включает значение координат некоторой опорной точки.
Операции обработки геометрических объектов включают методы для задания и изменения параметров; расширим набор операций процедурами визуализации и скрытия фигур.
Схема иерархии классов для реализации геометрических объектов:
Для обеспечения возможности динамической визуализации геометрических объектов введем тип данных, значения которого вычисляются в соответствии с задаваемым формульным выражением.
Составной объект – набор геометрических объектов (как базовых, так и составных), рассматриваемых при выполнении операций обработки как единый объект.
Геометрический объект может быть сконструирован с использованием уже существующих объектов (например, ломаная может быть определена через набор конечных точек составляющих отрезков).
Геометрический объект может быть образован при помощи сборки существующих объектов – рассмотрим данный способ построения новых объектов на примере рисунков (чертежей), образованных только из объектов двух базовых типов: точек и линий
Операции:
Класс TStack обеспечивает реалзацию динаммической структуры стек.
Управление памятью - хранение значений осуществляется в векторе пямяти от младших элементов к старшим. Индекс последнего занятого элемента в векторе пямяти фиксируется в переменной
Методы:
#define MemSize 25 // размер памяти для стека
class TStack
{
protected:
int Mem[MemSize]; // память для СД
int Top; // индекс последней занятой ячейки
public:
TStack () { Top = -1; }
int IsEmpty (void) const { Top == -1; }
int IsFull (void) const { Top == MemSize-1;}
void Put ( const int Val ) { Mem[++Top] = val; }
TData Get (void) { return Mem[Top--]; }
};
Очередь (вставка в конец очереди, исключение из начала - FIFO - first in, first out)
Вставка значений происходит в начало очереди, исключение - с конца очереди => для индикации начала и конца очереди требуется 2 индекса.
В ходе вычислений может возникнуть ситуация
Сдвиг значений очереди после выборки очередного значения (т.е. обеспечение
Циклический или кольцевой буфер - структура хранения, получаемая из вектора расширением отношения следования парой MemSize-1
на индекс первого элемента вектора памяти.
Space, Right Arrow or swipe left to move to next slide, click help below for more details