Показать сообщение отдельно
  #4  
Старый 07.04.2011, 13:36
Gman Gman вне форума
Новичок
 
Регистрация: 25.02.2010
Сообщения: 59
Репутация: -54
По умолчанию

Спасибо, я уже сам нашёл, но у меня вопрос по коду:

Код:
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, но а ведь тоже должен быть какой то элемент (у него не указан индекс).
Ответить с цитированием