编写一个计算“最短寻迹距离”的程序,功能如下:单击“确定”按钮Command1,读取n个点的坐标,在列表框List1中按x坐标升序显示,若x坐标相同,则按y坐标升序显示。在标签Label1中显示最短的寻迹距离,在标签Label2上显示未访问到的节点的坐标。若有多个节点可以选择,则显示x和y坐标较大的节点。程序运行界面如下图所示。

请回答下列问题:
(1)下列类产生的对象
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const n = 5
Dim a(-1 To 2 * n) As Single
Function getdis(i As Integer, j As Integer) As Single
'计算第i和第j个点的直线距离,代码略
End Function
'读取n个点坐标存a(1)~a(2*n)中,a(1)、a(2)存储第1个点的坐标,
'a(3)、a(4)存储第2个点的坐标,依次类推。a(-1)、 a(0)存储原点坐标(0,0)。代码略
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer , t As Integer
Dim dis As Single, sum As Single, dis1 As Single, dis2 As Single, dis3 As Single
Dim maxdis As Single, ans As Integer
For i = n To 2 Step -1
For j = 2 To i
If a(2 * j - 1) > a(2 * k - 1) Or a(2 * j - 1) = a(2 * k - 1) And a(2 * j) > a(2 * k) Then k = j
Next j
If i <> k Then
t = a(2 * i - 1): a(2 * i - 1) = a(2 * k - 1): a(2 * k - 1) = t
t = a(2 * i): a(2 * i) = a(2 * k): a(2 * k) = t
End If
Next i
List1.AddItem "n个点的坐标"
For i = 1 To 2 * n Step 2
List1.AddItem "(" + Str(a(i)) + "," + Str(a(i + 1)) + ")"
Next i
sum = 0
For i = 1 To n
Next i
maxdis = 0
For i = 1 To n - 1
dis1 = getdis(i - 1, i)
dis2 = getdis(i, i + 1)
dis3 = getdis(i - 1, i + 1)
If

Next i
dis = getdis(n - 1, n)
If dis >= maxdis Then
maxdis = dis
End If
Label1.Caption = "最短寻迹距离为:" + Str(sum - maxdis)
Label2.Caption = "未访问点的坐标:" + "(" + Str(a(2 * ans - 1)) + "," + Str(a(2 * ans)) + ")"
End Sub
(3)程序加框处的代码有错,请改正

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

