Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП.doc
Скачиваний:
16
Добавлен:
15.11.2018
Размер:
435.2 Кб
Скачать

Способы представления ориентированного и неориентированного графа

Графы модно представить с помощью матрицы инциденций, матрицы смежностей и списка пар.

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

Представление графа с помощью матрицы смежности размера n x m, где bij = 1, если существует ребро, ведущее из x в y, и bij = 0 – противном случае. Для нашего орграфа матрица смежности имеет вид:

program my;

const

a : array[1..4, 1..4] of byte=

((0,1,0,1),

(0,0,1,0),

(1,0,0,0),

(1,0,1,0));

var

i,j, x, y : integer;

begin

write('Введите X : ');

readln(x);

write('Введите Y : ');

readln(y);

if a[x,y]=1 then

writeln('Путь существует') else

writeln('Пути нет');

readln;

end.

27. Дайте определение объекта в языке программирования Паскаль (Delphi). Приведите способы описания объекта. Перечислите три фундаментальных принципа, которые лежат в основе объектно-ориентированного программирования (ООП). Раскройте роль конструктора и деструктора.

Разработайте фрагмент программы объявления объекта. Класс – точка. Свойства – X, Y, Color. Конструктор Create. Методы – SetPos(NewX, NewY).

Объект, способы описания

Объект — это совокупность данных, характеризующих его состояние, и процедур их обработки, моделирующих его поведение.

Объект — это тип данных, поэтому он определяется в разделе описания типов. В других языках объектный тип называют классом. Объект похож на тип record, но кроме полей данных в нем можно описывать методы. Внутри объекта описываются только заголовки методов.

type имя = object

[ private ]

описание полей

[ public ]

заголовки методов

end;

ООП характеризуется тремя основными свойствами: инкапсуляцией (encapsulation),наследованием (inheritance) и полиморфизмом (polymorphism).

Инкапсуляция

Инкапсуляция — это объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы — объектными методами.

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

Наследование

Наследование — это свойство объектов порождать своих потомков. Объект-потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.

Наследование позволяет создавать иерархию классов.

Один и тот же класс может быть потомком одних классов и предком других. У каждого класса может быть любое количество предков, при этом он наследует характеристики всех своих предков.

Полиморфизм

Полиморфизм — это свойство родственных объектов (т. е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. Изменяя алгоритм того или иного метода в потомках объекта, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.

Программа это не только фиксированная совокупность объектов. В процессе работы объекты могут создаваться и уничтожаться. То есть, структура программы динамически изменяется в процессе выполнения. Основная цель создания и уничтожения объектов — экономия ресурсов компьютера и, прежде всего, памяти. Следовательно, во все объекты заложены методы их создания — конструкторы и уничтожения — деструкторы.

Конструкторы объектов срабатывают при запуске программы. Деструкторы всех объектов срабатывают при завершении его работы. Но нередко и в процессе выполнения новые объекты создаются и уничтожаются с помощью их конструкторов и деструкторов.

program my;

type

tPoint = object

X, Y : integer;

Color : byte;

constructor Create;

procedure SetPos(NewX, NewY : integer);

end;

constructor tPoint.Create;

begin

X:=0;

Y:=0;

Color:=1;

end;

procedure tPoint.SetPos(NewX, NewY : integer);

begin

X:=NewX;

Y:=NewY;

end;

var

Point : tPoint;

begin

Point.Create;

Point.SetPos(20,30);

end.

28. Укажите назначение основных свойств объектов Delphi (Name, Caption, Visible, Left, Top, Width, Height, Font, Color, Cursor, Enabled, Hint), основных методов (Hide, Show, SetFocus) и основных событий (OnClick, OnDblClick, OnEnter, OnMouseMove).

Разработайте фрагмент программы для определения количества отрицательных элементов одномерного массива. Десять элементов массива вводятся с клавиатуры пользователем.

Все свойства, имеющиеся у выбранного компонента, перечислены в Инспекторе объектов. Задавать и изменять свойства можно через него и программно.

Для того, чтобы в программе присвоить свойству объекта значение необходимо указать имя компонента, поставить «.» а затем указать необходимое свойство. Для большего удобства можно использовать Знаток кода. После имени свойства ставиться знак «:=», а затем значение свойства.