ВУЗ:
Составители:
Рубрика:
20
For i = 2 TO Quancity
For j = 1 To i – 1
.Cells (i, j) = .Cells (j, I)
Next j
Next i
End With
End Sub
Для решения задачи составления маршрута, состоящего из посеще-
ний ближайших городов, разрабатывается процедура, содержащая масси-
вы. Как только приложению станет известно расстояние между городами
(диапазон ячеек будет заполнен расстояниями между городами), следует
щелкнуть на кнопке, расположенной на рабочем листе, которая запустит
процедуру поиска маршрута. Процедура разрабатывает
маршрут к бли-
жайшему соседу. После ее запуска на экране появится окно сообщения, в
котором будет представлено общее расстояние, а на рабочем листе можно
будет увидеть пройденный маршрут: названия и номера городов будут
расположены в строках, начиная с ячеек В15 и В16 соответственно.
Пояснения к программе. В процедуре используется три
массива, Flag
типа Integer, целочисленный массив Route и массив текстовых данных Cit-
ies. Например, если элемент массива Flag(6) равен 1, значит, город 6 уже
был посещен, и посещать его повторно не следует. В противном случае
элемент Flag(6) приравнивается к 0, значит, город 6 является кандидатом
на посещение. Массив Route определяет города, включенные в маршрут.
Например, если элемент Route(8)
равен 3, то город 3 является восьмым
пунктом в маршруте.
Массивы Flag, Route и Cities в программном коде объявляются как
динамические, чтобы сделать процедуру универсальной. Как только станет
известно количество городов (определяется по счетчику строк в массиве
MatrixTrack), приложение изменит размеры соответствующих массивов.
Перед выполнением процедуры необходимо инициализировать не-
сколько переменных. В их число входят
Route(1), Route(Quancity + 1), No-
wAt, SumKil и массивы Flag, Cities.
Алгоритм поиска маршрута наименьшей длины реализован с помощью
двух вложенных циклов For. Внешний цикл задается для этапов маршрута.
Назначением этого цикла является поиск второго, третьего и т. д. посе-
щаемых городов. Внутренний цикл используется для поиска ближайшего
соседнего города, предназначенного для посещения на данном этапе мар
-
шрута. Для этого производится поиск минимального расстояния от теку-
щего города (который представлен переменной NowAt) до остальных горо-
дов, которые еще не посещались. Еще не посещавшийся город, расстояние
до которого является минимальным, заносится в переменную NextAt. По-
сле завершения внутреннего цикла значение переменной NextAt приравни-
For i = 2 TO Quancity For j = 1 To i – 1 .Cells (i, j) = .Cells (j, I) Next j Next i End With End Sub Для решения задачи составления маршрута, состоящего из посеще- ний ближайших городов, разрабатывается процедура, содержащая масси- вы. Как только приложению станет известно расстояние между городами (диапазон ячеек будет заполнен расстояниями между городами), следует щелкнуть на кнопке, расположенной на рабочем листе, которая запустит процедуру поиска маршрута. Процедура разрабатывает маршрут к бли- жайшему соседу. После ее запуска на экране появится окно сообщения, в котором будет представлено общее расстояние, а на рабочем листе можно будет увидеть пройденный маршрут: названия и номера городов будут расположены в строках, начиная с ячеек В15 и В16 соответственно. Пояснения к программе. В процедуре используется три массива, Flag типа Integer, целочисленный массив Route и массив текстовых данных Cit- ies. Например, если элемент массива Flag(6) равен 1, значит, город 6 уже был посещен, и посещать его повторно не следует. В противном случае элемент Flag(6) приравнивается к 0, значит, город 6 является кандидатом на посещение. Массив Route определяет города, включенные в маршрут. Например, если элемент Route(8) равен 3, то город 3 является восьмым пунктом в маршруте. Массивы Flag, Route и Cities в программном коде объявляются как динамические, чтобы сделать процедуру универсальной. Как только станет известно количество городов (определяется по счетчику строк в массиве MatrixTrack), приложение изменит размеры соответствующих массивов. Перед выполнением процедуры необходимо инициализировать не- сколько переменных. В их число входят Route(1), Route(Quancity + 1), No- wAt, SumKil и массивы Flag, Cities. Алгоритм поиска маршрута наименьшей длины реализован с помощью двух вложенных циклов For. Внешний цикл задается для этапов маршрута. Назначением этого цикла является поиск второго, третьего и т. д. посе- щаемых городов. Внутренний цикл используется для поиска ближайшего соседнего города, предназначенного для посещения на данном этапе мар- шрута. Для этого производится поиск минимального расстояния от теку- щего города (который представлен переменной NowAt) до остальных горо- дов, которые еще не посещались. Еще не посещавшийся город, расстояние до которого является минимальным, заносится в переменную NextAt. По- сле завершения внутреннего цикла значение переменной NextAt приравни- 20
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »