Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2007, 23:44   #1
enik pi
Новичок
Джуниор
 
Регистрация: 13.06.2007
Сообщений: 2
Восклицание Объяснение к задаче коммивояжер.

Есть код, он рабочий к задаче коммивояжер по 5 городам. Коммивояжер стартуя из одного пункта должен пройти все 5 городов по одному разу вернуться обратно и затратить при этом наименьшее кол-во расстояния. Расстояния известны.
Ниже код. Вот только объясните что там за куча циклов???

Dim P(5) As Integer
Dim N As Byte
Dim A(5, 5) As Integer
Dim max As Integer
Dim Sum As Integer
Dim R(5, 100) As Integer

Private Sub CommandButton1_Click()
Dim I, J As Integer
N = 5
'define
For I = 1 To 5
For J = 1 To 5
A(I, J) = Cells(1 + I, 1 + J)
Next J
Next I
For I = 1 To 5
P(I) = I
Next I
For I = 1 To 100
For J = 1 To 10
'Write(R[J,I]:3);
Cells(I + 10, J + 1) = ""
' WriteLn(Sum:5);
Next J

Next I

max = 0
Sum = 10000
PerestArray (N)
For I = 1 To max - 1
For J = 1 To N
'Write(R[J,I]:3);
Cells(I + 10, J + 1) = R(J, I)
' WriteLn(Sum:5);
Next J
Cells(I + 10, 10) = Sum
Next I

'a(1,1)=
'Range(2, 2).Text
' Range("b3").Text
End Sub
Sub PerestArray(M As Byte)
Dim I As Byte
Dim II, J As Byte
Dim S As Integer
Dim Temp As Byte
If M = 1 Then
S = 0
For II = 1 To N - 1
S = S + A(P(II), P(II + 1))
Next II
S = S + A(P(N), P(1))
If S <= Sum Then
For J = 1 To N
R(J, max) = P(J)
Next J
Sum = S
max = max + 1
End If
Else
For I = 1 To M
PerestArray (M - 1)
If I < M Then
Temp = P(I)
P(I) = P(M)
P(M) = Temp
Reverse (M - 1)
End If
Next I
End If
End Sub
Sub Reverse(K As Byte)
Dim J, I, Temp As Byte
J = 1
While J < K
Temp = P(J)
P(J) = P(K)
P(K) = Temp
J = J + 1
K = K - 1
Wend
End Sub
Function Summ() As Integer
Dim I As Byte
Dim T As Integer
T = 0
For I = 1 To N
T = T + A(I, P(I))
Next I
Summ = T

End Function
enik pi вне форума Ответить с цитированием
Старый 14.06.2007, 00:12   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Вот, что смог разобрать: ну, а ваабще, книжку вам надо.

P.S.: есть удобная штука: Вложение файлов - (архивов например), не забывайте про нее!!!

Вы издеваетесь.txt - это без архива!!!

Последний раз редактировалось Alex21; 09.07.2007 в 10:35.
Alex21 вне форума Ответить с цитированием
Старый 14.06.2007, 00:54   #3
enik pi
Новичок
Джуниор
 
Регистрация: 13.06.2007
Сообщений: 2
По умолчанию

Все равно спасибо за помощь.
enik pi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку в задаче Vladislav_87 Паскаль, Turbo Pascal, PascalABC.NET 4 04.07.2008 12:27
Вопрос по задаче file Паскаль, Turbo Pascal, PascalABC.NET 20 03.06.2008 17:37
Вопрос по задаче Freeman12 Помощь студентам 5 26.05.2008 17:40
Помогите исправить ошибку в задаче VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 9 19.05.2008 22:16