16.小王設(shè)計了一個算法試圖求出平面坐標(biāo)系中最左點出發(fā),從左往右途經(jīng)所有點到達(dá)最右點的路徑值和,編寫了一個VB程序功能如下:在文本框Text1中輸入需隨機(jī)生成的坐標(biāo)點數(shù)量,單擊“生成”按鈕Command1后,在列表框List1中生成相應(yīng)數(shù)量的坐標(biāo)點(坐標(biāo)值為大于等于1小于10的實數(shù),保留一位小數(shù)),在文本框Text2中輸出路徑值。程序界面如圖所示。 實現(xiàn)上述功能的VB程序如下,但加框處代碼有錯,請改正。 Private Sub Command1_Click ( ?。?br /> Dim x(1To 100)As Single,y(1To 100)As Single Dim tmp As Single,length As Single,sum As Single,x1As Single,y1As Single Dim i As Integer,j As Integer,k As Integer Randomize List1.Clear k=Val(Text1.Text) For i=1To k x(i)=Int(Rnd*90)/10+1 y(i)=Int(Rnd*90)/10+1 List1.AddItem“X:“+Str(x(i))+““+“Y:“+Str(y(i)) Next i For i=1To k-1 For j=1To k-i If x(j)>x(j+1)Then x(i)=x(i)+x(j) x(j)=x(i)-x(j) tmp=y(j) y(j)=y(j+1) y(j+1)=tmp End If Next j Next i sum=0:length=0 For i=1To k-1 x1= '變量y1計算方法同x1,代碼略
length=Sqr(x1+y1) sum=sum+length Next i Text2.Text=Str(Int(sum*10)/10) End Sub
(2)將這些數(shù)字平方后除以100取余,得到兩位數(shù)如00,04,21,96。 (3)把這些兩位數(shù)按升序排成一行,組成一個最小的新數(shù),如果新數(shù)開頭為0,就去除。 (4)步驟(3)找出的最小數(shù)即為密碼。 小明按照上述方法,設(shè)計了一個解密的VB程序,功能如下:單擊“解密”按鈕Commandl,程序依次將文本框Textl中以空格分隔的每個英文單詞取出,若單詞屬于數(shù)字單詞,則按解密步驟進(jìn)行處理,最后在文本框Text2中輸出解密結(jié)果。程序運行效果如圖所示,請回答下列問題: (1)若文章內(nèi)容為“tom bought two apples and five oranges,which cost ten dollars altogether?!?,則破譯后的密碼應(yīng)為
。 (2)請在橫線處填入合適的代碼。 Dim a(1To 20)As String Private Sub Form_Load ( ) a(1)=“one“:a(2)=“two“ '……將所有數(shù)字單詞按順序存入數(shù)組a中,代碼略 End Sub Private Sub Command1_Click ( ?。?br />Dim s As String,tmp As String Dim c as Integer,i As Integer,j As Integer,k As Integer,t As String,ch As As String,code As Long Dim b(1To 100)As String'b數(shù)組存放數(shù)字單詞處理后得到的兩位數(shù) s=Text1.Text c=0:i=1:flag=True:t=““ Do While i<=Len(s) ch=Mid(s,i,1) If ch>=“a“And ch<=“z“Then t=t+ch flag=False ElseIf flag=False Then For j=1To 20 If t=a(j) Then c=c+1 b(c)=
End If Next j t=““ flag=True End If i=i+1 Loop ’將b數(shù)組中的兩位數(shù)按數(shù)值大小進(jìn)行升序排序,代碼略 For i=1To c t=Val(b(i))
Next i Text2.Text=Str(code) End Sub Function decode(num As Integer) As String Dim mo As Integer mo=num*num Mod 100 If mo=0Then decode=“00“ ElseIf
Then decode=“0“+Trim(Str(mo)) Else decode=Trim(Str(mo))'Trim為去除字符串兩端空格的函數(shù) End If End Function