17.小明設計了一個VB程序解決如下數學趣味問題:已知三個正整數a,b,c.現有一個大于1的整數x,將其作為除數分別除a,b,c,得到的余數相同.求滿足上述條件的x的最小值是多少?程序界面如圖所示,在文本框text1中輸入a的值,在文本框text2中輸入b的值,在文本框text3中輸入c的值,點擊“求解”按鈕,在2到三個數中的最小值之間,逐個檢測是否存在符合條件的值.如果存在符合條件的值,則在文本框text4中輸出結果,如果不存在,則在文本框text4中輸出“找不到符合條件的值”.實現上述功能的程序如下,請在橫線處填入合適的代碼. Private Sub Command1_Click ( ) Dim a As Long,b As Long,c As Long Dim d As Long,min As Long '處理3個輸入數據,并求出3個數的最小值 a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) min=① '在2到三個數中的最小值之間,逐個檢測 是否存在符合條件的值 d=2 x=0 Do While d<=min And x=0 If ISOK(a,b,c,d) Then x=d ② Loop If x=0Then Text4.Text=“找不到符合條件的值“ Else Text4.Text=Str(x) End If End Sub '求三個數的最小值 Public Function GetMin(x As Long,y As Long,z As Long) As Long If x>y Then GetMin=y Else GetMin=x If z<GetMin Then GetMin=z End Function '判斷前3個參數除第4參數的余數是否都相等 Public Function ISOK(x As Long,y As Long,z As Long,cs As Long) As Boolean ③ If x Mod cs<>y Mod cs Then ISOK=False If x Mod cs<>z Mod cs Then ISOK=False If y Mod cs<>y Mod cs Then ISOK=False End Function 程序橫線處應填入的代碼是: ①
18.用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.