Итак, я хочу создать функцию для вычисления «стоимости» решения проблемы.Сообщение об ошибке функции VB
Я создал одномерный массив Sum (m), который содержит целочисленные значения. Об этом говорится в другой подпроцедуре.
Function Cost(sum As Integer, a As Integer) As Long
Dim total As Long
'Calculate cost
For m = 1 To 2 * n + 2
total = total + (sum(m) - a)^2
Next m
Cost = total
End Function
Я не совсем уверен, как к тому, что я должен использовать в квадратных скобках линии
Function Cost(sum As Integer, a As Integer) As Long
И когда я пытаюсь вызвать функцию в моей процедуре к югу, я получаю сообщение об ошибке - Ошибка компиляции: ожидаемый массив. Это происходит в строке
SolCost = Cost(sum, UBound(x))
Я действительно смущен, почему эта ошибка происходит. Вероятно, это связано с серьезным отсутствием опыта работы с VB. Надеюсь, вы, ребята, можете мне помочь.
Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать. Любая помощь приветствуется.
Что такое x? Он ищет х, чтобы быть массивом, возможно, это не так, поэтому он бросает. –
X (i, j) уже является массивом в подпроцедуре. Он формирует массив целых чисел, для которых вычисляется стоимость. В принципе, я создаю «волшебный квадрат». X (i, j) образует начальное решение проблемы. Функция вычисляет стоимость этого первоначального решения (т. Е. Как далеко от идеального магического квадрата) – Matt