16.編寫VB程序,實現如下功能:程序運行時,產生n個數據并在列表框List1中顯示,在文本框Text1中輸入一個正整數key,單擊“查找”按鈕Command1,則在標簽Label2中顯示查找該數的位置,程序界面如圖所示。 實現上述功能的VB程序如下,但加框處代碼有錯誤,請改正。 Const n=10 Dim a(1To 10)As Integer Private Sub Form_Load ( ) '隨機產生n個整數并存儲在數組d中 '在列表框顯示數據,代碼略 End Sub Private Sub Command1_Click ( ) Dim key As Integer,p As Integer key=Val(Text1.Text) p=search(n)'① If p<>0Then Label2.Caption=“該數據在第“+Str(p)+“個位置“ Else Label2.Caption=“沒有找到!“ End If End Sub Function search(x As Integer) As Integer search=0 For i=1To n If a(i)=x Then search=d(i)'② End if Next i End Function
17.小李編寫了一個將二進制數轉換成補碼的VB程序。算法的基本思想:二進制數的第一位為符號位,如果符號位為0,表明該數為正數,其反碼和補碼與原碼完全一致;如果符號位為1,表明該數為負數,其由源碼變為補碼時,需進行如下操作:(1)原碼符號位1不變,其余每一位二進制數位求反(1變為0,0變為1),得到反碼;(2)反碼符號位1不變,反碼數值最低位加1,得到補碼。程序運行時,在文本框Text1中輸入二進制數,單擊“轉換”按鈕Command1之后,在文本框Text2中顯示該數反碼,在文本框Text3中顯示改數補碼。程序運行界面如圖a、b所示。 實現上述功能的VB程序如下,請回答下列問題: (1)根據該VB程序,若輸入的二進制數是1001001,則其轉換成的補碼為。 (2)請在下橫線處填入合適的代碼。 Private Sub Command1_Click ( ) Dim source As String,opp As String,sup As String'變量source代表原碼,opp代表反碼,sup代表補碼 Dim dAs String,i As Integer Dim a(1To 100)As String ① For i=1To Len(source) a(i)=Mid(source,i,1) Next i If a(1)=“0“Then Text2.Text=source Text3.Text=source Else For i=Len(source) To 2Step-1 If ② Then a(i)=“0“ Else a(i)=“1“ End If opp=a(i)+opp Next i opp=a(1)+opp Text2.Text=opp d=“1“'反碼數值最低位加1 For i=Len(source) To 2Step-1 If a(i)=“1“And d=“1“Then a(i)=“0“ d=“1“ ElseIfa(i)=“0“And d=“1“Then a(i)=“1“ ③ End If sup=a(i)+sup Next i sup=a(1)+sup Text3.Text=sup End If End Sub