Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.12;
Скачать: CL | DM;

Вниз

Вопрос по графам?   Найти похожие ветки 

 
Barlok ©   (2003-04-18 18:07) [0]

Мастера delphi вопрос по графам есть четырехугольник четыре точки, четыре ребра, как программно выполнить на Delphi. Знаю что нужно сравнить точки на смежность между собой, а для этого используется двумерный массив. В общем программу я написал, но не до конца. И вообще мне кажется что я ее решаю плохим способом, наверное есть более лучший способ. И еще интересная деталь, как сделать чтобы машина понимала, что четвертая точка соединяется с первой образуя квадрат или не соединяется. Как она определяет незнаю. У меня массив сделан так что если положем 1 вершина сравнивает сама себя то пишем 0 или если она не смежна с вершиной 3 тоже ноль, если первая смежна со 2 тогда пишем 1. Вывод матрицы осуществляется в StringGrid1. Код программы ниже:

procedure TForm1.Button1Click(Sender: TObject);
const
p = 4;
var
a : array [1..p,1..p] of 0..1;
i, j : integer;
begin
for i := 1 to p do
for j := 1 to p do

if i = j then
begin
StringGrid1.Cells[i,j]:= "0";
StringGrid1.Cells[i,j+1]:= "1";
StringGrid1.Cells[i+1,j]:= "1";
end;

end;

end.


 
Barlok ©   (2003-04-18 18:09) [1]

Если у кого есть исходники скинте на мыло.


 
kravchuk ©   (2003-04-18 18:25) [2]

Тебе просто надо представить граф в программе? если да, то матрица N*N, где N- кол во точек. Aij = 0- нет ребра, Aij = 1- есть ребро, если граф не направленный (ребра без стрелок), то матрица будт симметричная относительно главной диоганали


 
Barlok ©   (2003-04-18 18:55) [3]

Может пример мой доисправишь и в виде исходника выложишь. Пожалуйста. Просто препод злой, а работу через 3 дня сдавать.


 
Palladin ©   (2003-04-18 20:15) [4]

а в чем вопрос то?


> Мастера delphi вопрос по графам есть четырехугольник четыре
> точки, четыре ребра, как программно выполнить на Delphi.

что выполнить??

четыре точки четырехугольника запомнить чтоли?


> Знаю что нужно сравнить точки на смежность между собой

для чего??

я бы на месте препода тоже злой был бы еслиб с тобой пообщался.


судя по сильно размытым фразам я понял что тебе нужно сделать описание графа (опять же, какого именно типа - не указано).
тебе уже сказал kravchuk © (18.04.03 18:25), необходим массив отношений между вершинами графа.

Graf:array [1..2,1..2] of byte; - вот и все


 
Diamond Cat ©   (2003-04-18 23:24) [5]

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


 
Barlok ©   (2003-04-19 13:41) [6]

Да. Я не непонимаю графы, а что вы хотите я их только начил изучать. И для меня туго понимается. Предположим мысленно, имеется две вершины и между ними проведено ребро как они понимают соединены они этим ребром или нет. Причем реализация не должна быть представлена в виде изображения, на котором и так все видно, что есть, а чего нету, поэтому должна быть представленна с помощью чисел. Проверка: первая вершина сравнивает сама себя в матрице получаем 0, затем первая вершина сравнивает себя и вторую вершину, если соединены 1 если нет то 0. А как они узнают соединены они или нет, я это представить немогу. Да, граф не оринтированный.


 
Neft ©   (2003-04-23 23:24) [7]

да мля.
1 и вторая вершины соединены , тогда
A[1,2]:=1;
A[2,1]:=1;
остальные нули


 
Palladin ©   (2003-04-24 00:54) [8]

у тебя вершины уже ищут соседей, дык это уже на ОО граф смахивает



Страницы: 1 вся ветка

Текущий архив: 2003.05.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
3-34375
Jaxtor
2003-04-21 12:26
2003.05.12
Кэшированные изменения


1-34434
dm37
2003-04-28 11:31
2003.05.12
Drag & Drop


14-34586
Тих
2003-04-23 19:40
2003.05.12
Склонение имен-фамилий-отчеств в разных падежах


1-34445
GTS
2003-04-28 13:24
2003.05.12
maskedit


3-34326
Vassiliy
2003-04-21 10:29
2003.05.12
Замедление Master-Detail