s = s + 1
If s Mod 2 <>0 Then '定义让text1和2循环茄猛谨显示,如果只想显示两次,这里改为if s=1 then
Text1.Text = X &" " &Y
Else '定义让text1和2循环知液显示,如果只想显示两颤基次,这里改为elseif s=2 then
Text2.Text = X &" " &Y
End If
End Sub
Dim pre As IntegerDim j As Integer
Dim a() As TextBox
Dim b() As TextBox
Sub GS(a() As Single, i0 As Integer, j0 As Integer)
On Error Resume Next
Dim i, j As Integer
Dim k As Single
For i = i0 + 1 To 5
If a(i0, j0) <>0 Then
k = a(i, j0) / a(i0, j0)
Else
For row = i0 + 1 To 5
If a(row, j0) <>0 Then
Exit For
End If
Next row
For Index = 0 To 6
tmp = a(i0, Index)
a(i0, Index) = a(row, Index)
a(row, Index) = tmp
Next Index
End If
For j = j0 To 6
If k <>0 Then
a(i, j) = a(i, j) - k * a(i0, j)
Else
Exit For
End If
Next j
Next i
If i0 >= 4 Then
Exit Sub
End If
Call GS(a, i0 + 1, j0 + 1)
End Sub
Function xyn(x() As TextBox, y() As TextBox, n As Integer, length As Integer) As Single
Dim sum As Single
sum = 0#
For i = 1 To length
sum = sum + Val(x(i).Text) ^ n * Val(y(i).Text)
Next i
xyn = sum
End Function
Function xn(ByRef x() As TextBox, n As Integer, length As Integer) As Single
Dim i As Integer
Dim sum As Single
sum = 0#
For i = 1 To length
sum = sum + Val(x(i).Text) ^ n
Next i
xn = sum
End Function
Private Sub Command1_Click()
On Error Resume Next
Dim s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14 As Single
Dim x0, x1, x2, x3, x4 As Single
Dim mtr(4, 5) As Single
s1 = xn(a, 0, Val(num.Text))
s2 = xn(a, 1, Val(num.Text))
s3 = xn(a, 2, Val(num.Text))
s4 = xn(a, 3, Val(num.Text))
s5 = xn(a, 4, Val(num.Text))
s6 = xn(a, 5, Val(num.Text))
s7 = xn(a, 6, Val(num.Text))
s8 = xn(a, 7, Val(num.Text))
s9 = xn(a, 8, Val(num.Text))
s10 = xyn(a, b, 0, Val(num.Text))
s11 = xyn(a, b, 1, Val(num.Text))
s12 = xyn(a, b, 2, Val(num.Text))
s13 = xyn(a, b, 3, Val(num.Text))
s14 = xyn(a, b, 4, Val(num.Text))
mtr(0, 0) = s1
mtr(1, 0) = s2
mtr(2, 0) = s3
mtr(3, 0) = s4
mtr(4, 0) = s5
mtr(0, 1) = s2
mtr(1, 1) = s3
mtr(2, 1) = s4
mtr(3, 1) = s5
mtr(4, 1) = s6
mtr(0, 2) = s3
mtr(1, 2) = s4
mtr(2, 2) = s5
mtr(3, 2) = s6
mtr(4, 2) = s7
mtr(0, 3) = s4
mtr(1, 3) = s5
mtr(2, 3) = s6
mtr(3, 3) = s7
mtr(4, 3) = s8
mtr(0, 4) = s5
mtr(1, 4) = s6
mtr(2, 4) = s7
mtr(3, 4) = s8
mtr(4, 4) = s9
mtr(0, 5) = s10
mtr(1, 5) = s11
mtr(2, 5) = s12
mtr(3, 5) = s13
mtr(4, 5) = s14
Call GS(mtr, 0, 0)
If mtr(4, 4) = 0 Then
x4 = 1
Else
x4 = mtr(4, 5) / mtr(4, 4)
End If
If mtr(3, 3) = 0 Then
x3 = 1
Else
x3 = (mtr(3, 5) - mtr(3, 4) * x4) / mtr(3, 3)
End If
If mtr(2, 2) = 0 Then
x2 = 1
Else
x2 = (mtr(2, 5) - mtr(2, 4) * x4 - mtr(2, 3) * x3) / mtr(2, 2)
End If
If mtr(1, 1) = 0 Then
x1 = 1
Else
x1 = (mtr(1, 5) - mtr(1, 4) * x4 - mtr(1, 3) * x3 - mtr(1, 2) * x2) / mtr(1, 1)
End If
If mtr(0, 0) = 0 Then
x0 = 1
Else
x0 = (mtr(0, 5) - mtr(0, 4) * x4 - mtr(0, 3) * x3 - mtr(0, 2) * x2 - mtr(0, 1) * x1) / mtr(0, 0)
End If
B0.Text = x0
B1.Text = x1
B2.Text = x2
B3.Text = x3
B4.Text = x4
End Sub
Private Sub num_Change()
On Error Resume Next
'If Val(num.Text) <pre Then
For k = 0 To pre
Form1.Controls.Remove ("Tex" &k)
Next k
'End If
ReDim a(1 To Val(num.Text))
ReDim b(1 To Val(num.Text))
For i = 1 To Val(num.Text)
Set a(i) = Form1.Controls.Add("VB.TextBox", "Tex" &j)
a(i).Visible = True
a(i).Move 840, 1300 + i * 500, 1815, 360
a(i).Text = "输入X坐标"
Set b(i) = Form1.Controls.Add("VB.TextBox", "Tex" &(j + 1))
b(i).Visible = True
b(i).Move 2880, 1300 + i * 500, 1815, 360
b(i).Text = "输入Y坐标"
j = j + 2
Next i
pre = j
j = 0
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)