Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Visual Basic 2005, подпрограммы. Помогите найти ошибку в коде

Мария Профи (546), закрыт 13 лет назад
Код, который я написала

Public Class Form1
Function Center(ByVal k As Integer(), ByVal l As Integer(), ByVal n As Integer())
Dim t As Integer
t = Val(TextBox4.Text)

Dim a(,) As Single
ReDim a(0 To t - 1, 2)
Dim m() As Single
ReDim m(0 To t - 1)
Dim xc, yc, zc, x, y, z, sm As Double
Dim i, j As Integer

For i = 0 To t - 1
For j = 0 To 2
a(i, j) = Me.DataGridView1.Item(j, i).Value
Next j
Next i

For i = 0 To t - 1
m(i) = Me.DataGridView2.Item(0, i).Value
Next i

x = 0
y = 0
z = 0
sm = 0
For i = 0 To t - 1
x = x + a(i, 0) * m(i)
y = y + a(i, 1) * m(i)
z = z + a(i, 2) * m(i)
sm = sm + m(i)
Next

xc = x / sm
yc = y / sm
zc = z / sm

Return xc
Return yc
Return zc
End Function

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim k, l, n As Integer
Dim xc, yc, zc As Integer

k = Center(xc)
l = Center(yc)
n = Center(zc)

TextBox1.Text = CStr(Format(k, "0.000"))
TextBox2.Text = CStr(Format(l, "0.000"))
TextBox3.Text = CStr(Format(n, "0.000"))
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Application.Exit()
End Sub
End Class

Ошибку выдает в этом куске:
k = Center(xc)
l = Center(yc)
n = Center(zc)

Пишет, что отсутствуют аргументы для параметров k, l, n в Public Function Center(k As Integer(), l As Integer(), n As Integer())

Никак не могу понять, чего он вообще от меня хочет и как эти самые аргументы получить :-(
Лучший ответ
Bono Мыслитель (6640) 13 лет назад
Зачем ставить () в описании типов входных переменных. Это не правильно.
Функция возвращает значение, а из определения этой функции, в данном коде, этого не видно. Тогда уж, как подпрограмму этот метод описывать надо, если она ничего не возвращает. В конце этой функции сразу 3 значения функция "пытается" возвращать. Где Вы такое видели? Фукция возвратит все равно одно значение и это будет первый Return, а все последующие строки кода никогда не выполнятся.
Вызов функции идет далее, в обработчики события, не правильно (это где собственно ошибка) . Нужно 3 агрумента задавать.
Еще найти ошибки?
Тут каждая строка почти ошибка. Исправив эту, компилятор найдет другую.
Вы где учились VB 2005? Советую пройти курс по этому языку еще раз.
Остальные ответы
CHukCHa Мастер (1463) 13 лет назад
к вышесказанному добавить нечего, разве что синтаксис тоже хромает
Похожие вопросы