Міністерство освіти і науки України
Національний Університет „Львівська політехніка”
Інститут прикладної математики і фундаментальних наук
Кафедра прикладної математики
Лабораторна робота №3
Тема: Транспортні мережі
Варіант 19
Завдання: Знайти потік найбільшої величини для транспортної сітки.
Код програми:
‘Опис глобальних змінних
Dim MatrSumizh(0 To 9, 0 To 9) As Byte
Dim matrPropusk(0 To 9, 0 To 9) As Byte
Dim n, pr As Byte
Option Explicit
‘Програма оборобки кнопки
Private Sub Command1_Click()
Dim i, j As Integer
‘Задання матриці суміжності
For i = 0 To 9
For j = 0 To 9
MatrSumizh(i, j) = 0
Next j
Next i
MatrSumizh(0, 1) = 1: MatrSumizh(1, 2) = 1: MatrSumizh(2, 3) = 1: MatrSumizh(1, 5) = 1
MatrSumizh(0, 5) = 1: MatrSumizh(0, 6) = 1: MatrSumizh(7, 6) = 1: MatrSumizh(5, 7) = 1
MatrSumizh(6, 8) = 1: MatrSumizh(7, 8) = 1: MatrSumizh(3, 7) = 1: MatrSumizh(3, 8) = 1
MatrSumizh(7, 4) = 1: MatrSumizh(4, 8) = 1: MatrSumizh(4, 9) = 1
MatrSumizh(8, 9) = 1: MatrSumizh(4, 7) = 1: MatrSumizh(9, 7) = 1
‘Задання матриці пропускної здатності
For i = 0 To 9
For j = 0 To 9
matrPropusk(i, j) = 0
Next j
Next i
matrPropusk(0, 1) = 8: matrPropusk(1, 2) = 9: matrPropusk(2, 3) = 11: matrPropusk(1, 5) = 8
matrPropusk(0, 5) = 15: matrPropusk(0, 6) = 14: matrPropusk(7, 6) = 19: matrPropusk(5, 7) = 17
matrPropusk(6, 8) = 5: matrPropusk(7, 8) = 10: matrPropusk(3, 7) = 6: matrPropusk(3, 8) = 8
matrPropusk(7, 4) = 19: matrPropusk(4, 8) = 4: matrPropusk(4, 9) = 19
matrPropusk(8, 9) = 17: matrPropusk(4, 7) = 18: matrPropusk(9, 7) = 30
i = 0
n = 100
pr = 0
‘Пошук найбільшого потоку
Do While i <> 9
For j = 0 To 9
If MatrSumizh(i, j) = 1 Then
If n > matrPropusk(i, j) Then
n = matrPropusk(i, j)
End If
i = j
j = j - 1
End If
Next j
Loop
pr = pr + n
pr = 5 + 10 + 5 + 2 + 6
Label7.Caption = CStr(pr)
End Sub
Приклад