16.小王編寫了一個猜價格的VB程序,程序界面如圖所示。程序運(yùn)行時,在列表框List1中顯示20個隨機(jī)生成的在[150,250]之間的價格及其序號。在文本框Text1中輸入報價,單擊Command1“猜測”按鈕后,在Label3中輸出猜中價格對應(yīng)的序號。 實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有誤,請改正。 Dim d(1To 20)As Integer Private Sub Form_Load( ?。?br />For i=1To 20'生成20個隨機(jī)價格 ‘(1) Next i For i=1To 19 For j=20To i+1Step-1 If d(j)<d(j-1)Then t=d(j):d(j)=d(j-1):d(j-1)=t End If Next j Next i For i=1To 20 List1.AddItem Str(i)+Str(d(i)) Next i End Sub Private Sub Command1_Click ( ?。?br />Dim baojia As Integer,i as integer,j as integer,t as integer,m as integer Randomize List1.Clear baojia=Val(Text1.Text) i=1 j=20 Do While i<=j ‘(2) If baojia=d(m) Then Label3.Caption=“猜中 第“+Str(i)+“個“ Exit Do ElseIf baojia<d(m) Then j=m-1 Else ‘(3) End If Loop End Sub
。 (2)請?jiān)跈M線處填入合適代碼。 Function jiemi(m As String) As String'將4位二進(jìn)制數(shù)轉(zhuǎn)換成相應(yīng)的十六進(jìn)制數(shù) Dim k As Integer,i As Integer Dim str As String str=“0123456789ABCDEF“ k=0 For i=1To 4 k=k*2+Val(Mid(m,i,1)) Next i
End Function Private Sub Command1_Click ( ?。?br />Dim ans As String,s As String,ch As String,ret As String Dim s1As String,s2As String Dim i As Integer,m As Integer,asc1As Integer,n As Integer s=Text1.Text ans=““ For i=1To Len(s) ch=Mid(s,i,1)'取出第i個字符存入變量ch asc1=Asc(ch) ret=““ For m=1To 8'完成解密步驟(1)和步驟(2)
ret=n & ret asc1=asc1\2 Next m ret=Mid(ret,3,6)+Mid(ret,1,2)'完成解密步驟(3) s1=jiemi(Mid(ret,1,4))
ans=ans& s1 & s2'將第i個解密后的字符添加到變量ans的末尾 Next i Text2.Text=ans End Sub