16.本程序的功能是在列表框List1中隨機產生n(n為偶數)個[1,20]之間的不重復正整數,存入數組a中。點擊“排序”按鈕Command1,對n個數進行排序。使得奇數位上是降序,偶數位上是升序,且a(1)<a(2),并在List2中顯示排序后的結果。實現該功能的VB程序如下,但波浪線處代碼有錯,請改正。 Const n=8 Dim a(1 To n) As Integer,b(1 To n) As Integer Private Sub Form_Load ( ) ‘隨機產生n個[1,20]之間的不重復的正整數,并在list1中顯示具體代碼略 End Sub Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,t As Integer,p as integer,p as integer For i=1 To n-1 For j=n To i+1 Step-1 If a(j)<a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t end If Next j Next i p=n:(1) For i=1 To n Step 2 (2) b(i+1)=a(q) p=p-2 q=q+1 Next i For i=1 To n List2.AddItem Str(b(i)) Next i End Sub
個元素(填數字) (2)在程序橫線處填上合適代碼,使程序完整。 Dim a(1 To 50)As Integer Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,pos As Integer Dim cha(1 To 10)As Integer'記錄一條線路中各個岔路口坐標 Dim lu(1 To 10)As Integer'記錄路線經過的坐標 pos=1:j=0:lu(1)=1:i=1 Do While i<=9‘第1個和最后1個固定,中間有9個需要路過的坐標 If pos Mod 6<>0 And a(zb+1)=1 Then'向右暢通 If pos+6<=30 and a(zb+6)=1 Then‘記錄岔路口 j=j+1 ①
End If pos=pos+1 i=i+1 ②
ElseIf pos+6<=30 And a(pos+6)=1 Then'向下暢通 pos=pos+6 i=i+1 lu(i)=pos Else'坐標退回到上一個岔路口 If j=0 Then Exit Do Do While lu(i)<>cha(j) ③
Loop a(cha(j)+1)=0’標記此路口右側不可用 pos=cha(j) j=j-1 End If Loop If j=0 Then Text1.Text=“沒有暢通道路“ Else For i=1 To 10 Text1.Text=Text1.Text+Str(lu(i)) Next i End If End Sub