ВУЗ:
Составители:
Рубрика:
19
Задача 2.5. Отделу логистики корпорации «Славия» поручено разра-
ботать маршрут перемещения сотрудника отдела продаж корпорации, за-
нимающегося сбытом мебели, для поиска новых рынков сбыта. Условия
задачи следующие: агент по продажам должен выехать из города Воро-
неж, посетить все остальные города по одному разу, а затем возвратиться в
город Воронеж. Определить маршрут
перемещения сотрудника с мини-
мальным общим расстоянием. Рассмотрим решение задачи на примере 10
городов. Для этого в ячейки диапазона с В2 по К2 ввести названия городов
маршрута следования менеджера по продажам. В ячейки диапазона с А3
по А12 ввести те же названия городов и в том же порядке. Расстояния ме-
жду
городами будем формировать случайным образом, используя, опера-
тор Randomize и функцию Rnd. Приложение будет состоять из двух проце-
дур. Первая, GetRandomTrack, генерирует случайные расстояния между
городами. Это сделано в целях экономии времени студента при выполне-
нии лабораторной работы. Оператор Randomize позволяет при каждом за-
пуске процедуры генерировать новые расстояния между городами. Други-
ми словами каждая задача будет создаваться на основе собственного набо-
ра расстояний между городами. Программный код составлен в процедуре
таким образом, что в этой матрице расстояния расположены симметрично
относительно главной диагонали. Например, расстояние от города 5 до
города 10 совпадает с расстоянием от города 10 до города 5. Диапазону
ячеек B3 : K12, в которых генерируются случайным
образом расстояния
между городами, присвоить имя MatrixTrack.
Дпя запуска процедуры GetRandomTrack на рабочем листе рядом с
диапазоном MatrixTrack расположить кнопку с панели инструментов Фор-
мы и дать ей название «Формирование расстояний».
Sub GetRandomTrack ()
Dim i As Integer, j As Integer,
Dim Quancity As Integer
Randomize
With Range (“MatrixTrack”)
Quancity = .Rows.Count
‘ Заполняет матрицу над главной диагональю _
‘ случайными числами
For i = 1 To Quancity – 1
For j = i + 1 To Quancity
.Cells (i, j) = Int (Rnd * 100) + 1
Next j
Next i
‘ Создает зеркальное отражение уже введенных _
‘ значений над
диагональю под диагональю
Задача 2.5. Отделу логистики корпорации «Славия» поручено разра- ботать маршрут перемещения сотрудника отдела продаж корпорации, за- нимающегося сбытом мебели, для поиска новых рынков сбыта. Условия задачи следующие: агент по продажам должен выехать из города Воро- неж, посетить все остальные города по одному разу, а затем возвратиться в город Воронеж. Определить маршрут перемещения сотрудника с мини- мальным общим расстоянием. Рассмотрим решение задачи на примере 10 городов. Для этого в ячейки диапазона с В2 по К2 ввести названия городов маршрута следования менеджера по продажам. В ячейки диапазона с А3 по А12 ввести те же названия городов и в том же порядке. Расстояния ме- жду городами будем формировать случайным образом, используя, опера- тор Randomize и функцию Rnd. Приложение будет состоять из двух проце- дур. Первая, GetRandomTrack, генерирует случайные расстояния между городами. Это сделано в целях экономии времени студента при выполне- нии лабораторной работы. Оператор Randomize позволяет при каждом за- пуске процедуры генерировать новые расстояния между городами. Други- ми словами каждая задача будет создаваться на основе собственного набо- ра расстояний между городами. Программный код составлен в процедуре таким образом, что в этой матрице расстояния расположены симметрично относительно главной диагонали. Например, расстояние от города 5 до города 10 совпадает с расстоянием от города 10 до города 5. Диапазону ячеек B3 : K12, в которых генерируются случайным образом расстояния между городами, присвоить имя MatrixTrack. Дпя запуска процедуры GetRandomTrack на рабочем листе рядом с диапазоном MatrixTrack расположить кнопку с панели инструментов Фор- мы и дать ей название «Формирование расстояний». Sub GetRandomTrack () Dim i As Integer, j As Integer, Dim Quancity As Integer Randomize With Range (“MatrixTrack”) Quancity = .Rows.Count ‘ Заполняет матрицу над главной диагональю _ ‘ случайными числами For i = 1 To Quancity – 1 For j = i + 1 To Quancity .Cells (i, j) = Int (Rnd * 100) + 1 Next j Next i ‘ Создает зеркальное отражение уже введенных _ ‘ значений над диагональю под диагональю 19
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »