Спасибо, я уже сам нашёл, но у меня вопрос по коду:
Код:
type
Graph = array[1..nn,1..nn] of integer;
Procedure Floyd(var a, p: graph);
var i,j,k: integer;
c: graph;
begin
//A - матрица содержащая кратчайшие пути.
//P - матрица, сохраняющая маршруты.
Randomize;
for i:=1 to nn do
for j:=1 to nn do
c[i,j] := random(100);
for i:=1 to nn do
for j:=1 to nn do
begin
a[i,j]:=c[i,j];
p[i,j]:=0;
end;
for i:=1 to nn do a[i,i]:=0;
for k:=1 to nn do
for i:=1 to nn do
for j:=1 to nn do
if (a[i,k]+a[k,j] < a) then
begin
a[i,j]:=a[i,k]+a[k,j];
p[i,j]:=k;
end;
end;
а именно в этой строке
Код:
if (a[i,k]+a[k,j] < a) then
сдесь сумма элементов a[i,k]+a[k,j] сравнивается с a, но а ведь тоже должен быть какой то элемент (у него не указан индекс).