Алгоритм Флойда (графы - поиск кратчайшего пути) - VBA
Формулировка задачи:
Собственно очень нужен алгоритм на VBA. Народ если кто то видел, или у кого то есть, поделитесь пожалуйста информацией. Курсяк горит ппц. С другого языка программирования боюсь не осилю перегнать на VBA
Решение задачи: «Алгоритм Флойда (графы - поиск кратчайшего пути)»
textual
Листинг программы
Sub NN() Dim C() As Double Dim T() As Double Dim H() As Double Dim p As Long Dim i As Long Dim j As Long Dim k As Long ReDim C(1 To p) ReDim T(1 To p, 1 To p) ReDim H(1 To p, 1 To p) For i = 1 To p For j = 1 To p T(i, j) = C(i, j) 'инициализация If C(i, j) = БЕСКОНЕЧНОСТЬ Then 'ROFL H(i, j) = 0 'нет дуги из i в j Else H(i, j) = j 'есть дуга из i в j End If Next Next For i = 1 To p For j = 1 To p For k = 1 To p If i <> j And T(i, j) <> БЕСКОНЕЧНОСТЬ And _ i <> k And T(i, k) <> БЕСКОНЕЧНОСТЬ And _ T(j, k) <> БЕСКОНЕЧНОСТЬ Or _ T(j, k) > T(j, i) + T(i, k) Then H(j, k) = H(i, j) 'запомнить новый путь T(j, k) = T(j, i) + T(i, k) 'и его длину End If Next Next For j = 1 To p If T(j, j) < 0 Then Exit Sub Next Next End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д