16.編寫VB程序,實現如下功能:在文本框Text1中輸入一個整數,單擊“查找刪除”按鈕Command1,采用對分查找法在數組A中刪除該數(該數后面的數組元素都前移一位),并在標簽Label2中顯示刪除后的結果(運行效果如圖所示);否則,在標簽Label2中顯示“該數沒有找到”. 實現上述功能的VB代碼如下,但加框處代碼有錯,請改正. Dim A(1To 10)As Integer′用于保存10個按從小到大順序排列的整數 ′Form-Load事件過程產生10個整數,按升序保存在數組A中,并在標簽Label1中顯示 Private Sub Form-Load ( ) ′代碼略 End Sub Private Sub Command1-Click ( ) Dim I As Integer,j As Integer,m As Integer,k As Integer Dim x As Integer,f As Boolean′變量f用于標記是否在數組中找到x x=Val(Text1.Text) i=1:j=10 f=False Do While (i<=j)And (f=False) m=Int((i+j)/2) If A(m)=x Then f=True If Then i=m+1Else j=m-1′(1) Loop If f=True Then For k=m To 9 ′(2) Next k Label2.Caption=”” For k=1to 9 Label2.Caption=Label2.Caption+Str(A(k))+”” Next k Else Label2.Caption=”該數沒有找到” End If End Sub.
17.用VB編寫一個字符串分行程序,功能如下:單擊“分行”按鈕Command1將文本框Text1中的英文文本在列表框List1中分行顯示(分行時單詞不得跨行,每行字符盡可能多但不超過40個)并在標簽Label1中輸出總行數,運行效果如圖所示.分行算法如下: (1)將文本框中的字符串保存到變量s中; (2)當s中字符個數超過40時,循環執行下列①、②、③步,否則跳轉到(3): ①如果第41個字符不是英文字母,則分行位置p=40;否則,向左逐個查找,直至找到第一個非英文字母,將其位置作為分行位置p; ②截取s的前p個字符,作為新增行顯示在列表框List1中,同時總行數加1; ③將s中未分行部分重新賦值給變量s. (3)將s作為新增行顯示在列表框List1中,同時總行數加1. 實現上述功能的VB程序如下,請在空格處填入合適代碼. Private Sub Commandl_Click ( ) Dim s As String,c As String Dim r As Integer,total As Integer,p As Integer total=0 s=①
Do While Len(s)>40 r=41 c=Mid(s,r,1) If Not((c>=“a“And c<=“z“) Or (c>=“A“Andc<=“Z“)) Then p=40 Else ’從第41個字符開始向左找到第1個非英文字母,并將其位置值賦給p Do While (c>=“a“And c<=“z“) Or (c>=“A“ And c<=“Z“) r=②
c=Mid(s,r,1) Loop p=r End If List1.Addltem Mid(s,1,p) total=total+1 s=③
Loop List1.AddItem s total=total+1 Labell.Caption=“共“+Str(total)+“行“ End Sub.