16.編寫VB程序,實(shí)現(xiàn)如下功能:在文本框Text1中輸入一個(gè)整數(shù),單擊“查找刪除”按鈕Command1,采用對(duì)分查找法在數(shù)組A中刪除該數(shù)(該數(shù)后面的數(shù)組元素都前移一位),并在標(biāo)簽Label2中顯示刪除后的結(jié)果(運(yùn)行效果如圖所示);否則,在標(biāo)簽Label2中顯示“該數(shù)沒有找到”. 實(shí)現(xiàn)上述功能的VB代碼如下,但加框處代碼有錯(cuò),請(qǐng)改正. Dim A(1To 10)As Integer′用于保存10個(gè)按從小到大順序排列的整數(shù) ′Form-Load事件過程產(chǎn)生10個(gè)整數(shù),按升序保存在數(shù)組A中,并在標(biāo)簽Label1中顯示 Private Sub Form-Load ( ?。?br />′代碼略 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用于標(biāo)記是否在數(shù)組中找到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=”該數(shù)沒有找到” End If End Sub.
17.用VB編寫一個(gè)字符串分行程序,功能如下:?jiǎn)螕簟胺中小卑粹oCommand1將文本框Text1中的英文文本在列表框List1中分行顯示(分行時(shí)單詞不得跨行,每行字符盡可能多但不超過40個(gè))并在標(biāo)簽Label1中輸出總行數(shù),運(yùn)行效果如圖所示.分行算法如下: (1)將文本框中的字符串保存到變量s中; (2)當(dāng)s中字符個(gè)數(shù)超過40時(shí),循環(huán)執(zhí)行下列①、②、③步,否則跳轉(zhuǎn)到(3): ①如果第41個(gè)字符不是英文字母,則分行位置p=40;否則,向左逐個(gè)查找,直至找到第一個(gè)非英文字母,將其位置作為分行位置p; ②截取s的前p個(gè)字符,作為新增行顯示在列表框List1中,同時(shí)總行數(shù)加1; ③將s中未分行部分重新賦值給變量s. (3)將s作為新增行顯示在列表框List1中,同時(shí)總行數(shù)加1. 實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)诳崭裉幪钊牒线m代碼. Private Sub Commandl_Click ( ?。?br />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個(gè)字符開始向左找到第1個(gè)非英文字母,并將其位置值賦給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.