用一個6*5矩陣表示地圖,分別用a數(shù)組元素表示,第1行從左到右為a(1)到a(6),依此類推,右下角為a(30)。其中數(shù)字0表示不通,數(shù)字1表示暢通?,F(xiàn)在要從左上角到右下角尋找一條暢通的路徑。線路規(guī)則如下:
?路線每個點只能向右或向下
?任何一個岔口優(yōu)先向右走,右側(cè)不通再向下走
?一條路線中每個點只能走一次,不能重復(fù)
算法思路:探路過程中,記錄每個坐標到數(shù)組lu;遇到岔路口(向右向下都通),則記錄路口坐標到數(shù)組cha;遇到前方無路時,需要返回到上一個路口,標記路口右側(cè)坐標為0;當前方無路,岔路口數(shù)組也退回到0,說明整體不通,否則根據(jù)規(guī)則走到右下為止,最后輸出整體線路坐標。
實現(xiàn)算法的程序如下,運行結(jié)果如右圖所示。
回答下列問題:
(1)根據(jù)規(guī)則,如圖迷宮矩陣正確路線的第6個點是a數(shù)組的第 2121個元素(填數(shù)字)
(2)在程序橫線處填上合適代碼,使程序完整。
Dim a(1 To 50)As Integer
Private Sub Command1_Click ( ?。?br />Dim i As Integer,j As Integer,pos As Integer
Dim cha(1 To 10)As Integer'記錄一條線路中各個岔路口坐標
Dim lu(1 To 10)As Integer'記錄路線經(jīng)過的坐標
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
①cha(j)=poscha(j)=pos
End If
pos=pos+1
i=i+1
②lu(i)=poslu(i)=pos
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)
③i=i-1i=i-1
Loop
a(cha(j)+1)=0’標記此路口右側(cè)不可用
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
【考點】編輯事件處理過程的代碼.
【答案】21;cha(j)=pos;lu(i)=pos;i=i-1
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.9
相似題
-
1.學(xué)校舉辦了“語文作文現(xiàn)場賽”,參賽同學(xué)成績存儲在文本文件“gra.jye.ai”中,如左圖所示(每一行記錄一位同學(xué)的姓名和成績,以“:”分隔)。陳老師利用Python程序?qū)ψ魑某煽冞M行處理,統(tǒng)計出各個分數(shù)等級的人數(shù),并輸出結(jié)果。程序運行界面如右圖所示。
實現(xiàn)上述功能的Python程序如下,請在劃線處填入合適的代碼。發(fā)布:2024/12/17 2:0:1組卷:6引用:2難度:0.3 -
2.有如下Python程序段:
執(zhí)行該程序段,輸入字符串“abcdefg”,則輸出的結(jié)果是( ?。?/h2>發(fā)布:2024/12/20 6:30:1組卷:2引用:3難度:0.4 -
3.試題描述的內(nèi)容:
一個單窗體VB程序的運行界面如圖所示。下列說法正確的是( ?。?br />(1)窗體內(nèi)有1個按鈕
(2)窗體內(nèi)有2個文本框
(3)窗體內(nèi)有3個標簽
(4)該窗體的標題(Caption)屬性值是“加法計算器”發(fā)布:2024/12/20 20:0:2組卷:1引用:1難度:0.6
把好題分享給你的好友吧~~