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

Вниз

Графы и Referential Integrity   Найти похожие ветки 

 
OneOfTheFew   (2003-02-18 16:54) [0]

Любителям гимнастики для ума!!!

Графы и Referential Integrity:

Есть матрица M размерностью NxN,описавающая возможные взаимоотношения между элементами (A,B,C,D,E,F,G) - пусть эти элементы - файлы Paradox,связанные ссылочной целостностью :
Если элемент M[x,y]="*" - это значит, что M[X,0] является
"master" для M[Y,0].
Случай M[x,y]="*", где x=y не рассматриваем.

ABCDEFG
A
B*
C**
D *
E *
F

Другое представление:

A->B
B->С
С->(terminal)
D->E
E->(terminal)
F->(terminal)
G->D

Надо "пройти" матрицу M и составить порядок удаления данных из таблиц.

Ногами просьба не бить :)))


 
DarkGreen ©   (2003-02-18 17:41) [1]

В свойствах ссылочной целостности вместо Restriсt поставь Cascade. И будет оно у тебя спокойно удаляться в любом порядке
;-)


 
OneOfTheFew   (2003-02-18 17:58) [2]

2 Dark Green
Спасибо, попробую!


 
OneOfTheFew   (2003-02-18 18:07) [3]

2 Dark Green
Слушай, чего то не проходит Твой вариант :-(


 
DarkGreen ©   (2003-02-19 05:34) [4]

Странно :-/
Ну тогда так:

function dddd(K, L: integer);
begin
for I := k to n do
begin
for J := l to n do
begin
if MyArray[I, J]="*" then
dddd(I, J);
end;
delete from Table[I, 0]
end;
end;

.........
dddd(1, 0)
.........


Если не ошибаюсь :-)


 
DarkGreen ©   (2003-02-19 06:23) [5]

Опс, сорри, затупил откровенно. Так правильнее

var
MyArray: array[0..N, 0..N + 1] of Integer;
Deleted: array[0..N] of Boolean;

function dddd(K, L: integer);
begin
for I := k to n + 1 do
begin
for J := l to n do
if (MyArray[I, J]="*") and (I <> J) and not deleted[J] then
dddd(J, 0);
deleted[I] := True;
delete from Table[I] //Каким-то образом удаляем данные
end;
end;
..........
Инициализация массивов и т.д.
..........
dddd(1, 0)
..........




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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
14-30051
Владимир
2003-02-14 16:16
2003.03.10
Как узнать имена процедур и функций в чужой ДЛЛ?


14-30074
shusha
2003-02-21 17:21
2003.03.10
Алгоритм


1-29914
dimich1978
2003-02-26 17:11
2003.03.10
Прогрмма для компьютерного клуба


8-29964
Marko_polo
2002-11-28 06:04
2003.03.10
Как создать...


4-30177
maxim2
2003-01-20 13:21
2003.03.10
Подскажите что в этом коде не так.