|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.06.2012, 00:50 | #1 |
Новичок
Джуниор
Регистрация: 20.05.2012
Сообщений: 2
|
алгоритм Флойда
Люди, помогите разобраться с алгоритмом флойда нахождение кратчайших расстояний!! Объясните вот эту процедуру:
procedure TForm1.BitBtn1Click(Sender: TObject); begin with StringGrid1 do begin for i:=1 to RowCount do for j:=1 to ColCount do begin Cells[i,j]:=Cells[j,i];//матрица симметрична относительно основной диагонали Cells[i,i]:=IntToStr(0); end; for i:=1 to RowCount -1 do for j:=1 to ColCount -1 do if Cells[i,j]='' then begin//проверка на заполненность матрицы Label2.Visible:=True;//вывод предупреждающего сообщения exit;//выход из процедуры end; //if for i:=1 to RowCount -1 do //задали матрицу D равную матрице длин путей for j:=1 to ColCount -1 do if Cells[i,j]='#' then D[i,j]:=888 else D[i,j]:=StrToInt(StringGrid1.Cells[i,j]); end; // StringGrid1 for i:=1 to StringGrid1.RowCount -1 do for j:=1 to StringGrid1.ColCount -1 do begin if D[i,j]=888 then StringGrid2.Cells[i,j]:='#' else StringGrid2.Cells[i,j]:=IntToStr(D[i,j]); end;//if for i:=1 to StringGrid1.RowCount-1 do for j:=1 to StringGrid1.ColCount-1 do begin P[i,i]:=0; if D[i,j]=888 then P[i,j]:=0 else //задали матрицу кратчайших путей.0 если пути нет P[i,j]:=i; end;//for for k:=1 to StringGrid1.ColCount-1 do for i:=1 to StringGrid1.RowCount-1 do for j:=1 to StringGrid1.ColCount-1 do begin if (i<>j) and (D[i,j]<>888) and (D[i,k]<>888) and (D[k,i]<>888) and (D[i,j]>D[k,j]+D[i,k]) then begin P[i,j]:=k; StringGrid2.Cells[i,j]:=IntToStr(StrToInt(StringGrid2.Cel ls[k,j])+StrToInt(StringGrid2.Cells[i,k])); end;//if StringGrid3.Cells[i,j]:=IntToStr(P[i,j]); end;//for end; |
02.06.2012, 10:19 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Алгоритм нужно разбирать по его описанию на естественном языке, а не по реализации на конкретном ЯП.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм Флойда. Поиск Кратчайшего пути. | Shady | Помощь студентам | 5 | 06.10.2014 18:29 |
Алгоритм Флойда | Александр36М | Помощь студентам | 5 | 14.10.2011 16:16 |
Алгоритм Флойда [списки] | Panzerfaust | Помощь студентам | 2 | 06.05.2011 16:49 |
Алгоритм Флойда-Уоршела | _Disa | Общие вопросы C/C++ | 4 | 17.11.2010 11:36 |
Алгоритм Флойда | Дим@@ | Помощь студентам | 4 | 25.10.2010 20:19 |