|
實(shí)驗(yàn)十四 過(guò)程(一) 【實(shí)驗(yàn)?zāi)康摹?/p> 1、 理解自定義函數(shù)過(guò)程的定義和調(diào)用方法; 2、 掌握自定義子過(guò)程的定義和調(diào)用方法; 3、 掌握子過(guò)程與函數(shù)過(guò)程的使用差別; 4、 掌握形參和實(shí)參使用方法; 5、 掌握值傳遞和地址傳遞的使用方法。 【實(shí)驗(yàn)內(nèi)容】 (任選3題) 1、 編寫(xiě)一子過(guò)程ProcMin,求一維數(shù)組a中的最小值,子過(guò)程的形參自己確定。主調(diào)程序隨機(jī)產(chǎn)生10個(gè)100到200之間的整數(shù),調(diào)用ProcMin子過(guò)程,顯示最小值。
14.1 用子過(guò)程求數(shù)組的最小值 Option Base 1 Private Sub Command1_Click() Dim i%, n% Dim a(10) As Integer Randomize For i = 1 To 10 a(i) = Int(Rnd * 101 + 400) Print "a(" & i & ")=" & a(i) Next i ProcMin a() End Sub Sub ProcMin(b() As Integer) Dim i%, min% min = b(LBound(b)) For i = LBound(b) + 1 To UBound(b) If b(i) < min Then min = b(i) Next i Print "數(shù)組中最小值為:" & min End Sub 2、 編寫(xiě)一函數(shù)過(guò)程Max( a( ) ),求一維數(shù)組a中的最大值。主調(diào)程序隨機(jī)產(chǎn)生10個(gè)400到500之間的整數(shù),調(diào)用Max函數(shù),顯示最大值。
Option Base 1 Private Sub Command1_Click() Dim i%, n%, da! Dim a(10) As Single Randomize For i = 1 To 10 a(i) = Int(Rnd * 101 + 100) Print "a(" & i & ")=" & a(i) Next i da = max(a()) Print "數(shù)組中最大值為:"; da End Sub
Function max(b() As Single) As Single Dim i% max = b(LBound(b)) For i = LBound(b) + 1 To UBound(b) If b(i) > max Then max = b(i) Next i End Function 3、 編寫(xiě)一子過(guò)程Delestr(s1,s2),將字符串s1中出現(xiàn)s2子字符串刪去,結(jié)果仍舊存放于s1中。 【提示】 (1)在S1字符串中找S2的子字符串,可利用Instr( )函數(shù),要考慮到S1中可能存在多少或不存在S2字符串,用Do while Instr(s1,s2)>0循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。 (2)若在S1中找到S2字符串,首先確定S1 字符串,首先要確定S1字符串的長(zhǎng)度,因S1字符串在進(jìn)行多次刪除時(shí),長(zhǎng)度在變化。然后通過(guò)Left()、Mid()函數(shù)或Right()函數(shù)的調(diào)用達(dá)到刪除S1中存在的S2字符串。
Option Explicit Sub DeleStr(s1$, ByVal s2$) Dim i%, L2% i = InStr(s1, s2) L2 = Len(s2) Do While i > 0 s1 = Left(s1, i - 1) + Mid(s1, i + L2) i = InStr(s1, s2) Loop End Sub
Private Sub Command1_Click() Dim s1$, s2$ s1 = Text1 s2 = Text2 DeleStr s1, s2 Text3 = s1 End Sub 4、 編寫(xiě)一函數(shù)過(guò)程Maxlength(s),在已知的字符串S中,找出最長(zhǎng)的單詞。假定字符串s 中只函數(shù)字母和空格,空格是用于分隔不同的單詞。 【提示】 (1)首先求出輸入的字符串長(zhǎng)度,然后從字符串中分離出單詞,即對(duì)每個(gè)字符判斷:若不為空格,將每個(gè)字符連接到當(dāng)前單詞的字符串變量,當(dāng)前單詞長(zhǎng)度計(jì)數(shù)器加1;若為空格,表示一個(gè)單詞的結(jié)束,將當(dāng)前單詞長(zhǎng)度與最長(zhǎng)單詞長(zhǎng)度比較,若長(zhǎng),當(dāng)前單詞替代最長(zhǎng)單詞。當(dāng)前單詞置空,當(dāng)前單詞長(zhǎng)度計(jì)數(shù)器清除為0. (2)注意當(dāng)前單詞、當(dāng)前單詞長(zhǎng)度、最長(zhǎng)單詞、最長(zhǎng)單詞長(zhǎng)度。
Private Sub Command1_Click() Dim s$ s = Text1.Text Text2.Text = MaxLength(s) End Sub
Function MaxLength(s$) As String Dim w$, maxW$, L%, maxL$, c$, i% w = "": maxW = "": L = 0: maxL = 0 If Right(s, 1) <> " " Then s = s + " " For i = 1 To Len(s) c = Mid(s, i, 1) If c = " " Then If L > maxL Then maxW = w maxL = L End If w = "": L = 0 Else w = w + c L = L + 1 End If Next MaxLength = maxW End Function
5、 編寫(xiě)一函數(shù)過(guò)程IsH(n),對(duì)于已知正整數(shù)n,判斷改數(shù)是否為回文數(shù),函數(shù)的返回值類(lèi)型為布爾型。主調(diào)程序每輸入一個(gè)數(shù),調(diào)用IsH函數(shù)過(guò)程,然后在圖形框顯示輸入的數(shù),對(duì)于回文數(shù)顯示一個(gè)“★”,如左下圖所示。
Private Sub Text1_KeyPress(KeyAscii As Integer) Dim s$ If KeyAscii = 13 Then s = Text1.Text If IsH(s) = True Then Picture1.Print s & " ★" Else Picture1.Print s End If End If End Sub
Function IsH(x$) As Boolean Dim i%, L% IsH = True L = Len(x) For i = 1 To Int(L / 2) If Mid(x, i, 1) <> Mid(x, L - i + 1, 1) Then IsH = False Exit For End If Next End Function 6、 編寫(xiě)一函數(shù)過(guò)程IsZ(n),對(duì)于已知正整數(shù)n,判斷改數(shù)是否為質(zhì)數(shù)(也稱(chēng)素?cái)?shù),指除了1和自己外不能被其他數(shù)整除的數(shù),如2, 3, 5, 7, 11, 13...),函數(shù)的返回值類(lèi)型為布爾型。主調(diào)程序每輸入一個(gè)數(shù),調(diào)用IsZ函數(shù)過(guò)程,然后在圖形框顯示輸入的數(shù),對(duì)于質(zhì)數(shù)顯示一個(gè)“★”,如右上圖所示。
Private Sub Text1_KeyPress(KeyAscii As Integer) Dim s% If KeyAscii = 13 Then s = Val(Text1.Text) If IsZ(s) = True Then Picture1.Print s & " ★" Else Picture1.Print Trim(s) End If Text1.SelStart = 0 Text1.SelLength = Len(Text1) End If End Sub
Function IsZ(x%) As Boolean Dim i% IsZ = True For i = 2 To Sqr(x) If x Mod i = 0 Then IsZ = False Exit For End If Next End Function
7、 在文本框Text1中輸入多個(gè)英文語(yǔ)句,單擊“轉(zhuǎn)換”按鈕,將文本框Text1中的內(nèi)容做如下轉(zhuǎn)換:遇到句號(hào)時(shí),將Text1中的每句的開(kāi)頭字母大寫(xiě),每段的開(kāi)頭字母也大寫(xiě),在文本框Text2中重新顯示。 8 、 編寫(xiě)一個(gè)將N進(jìn)制轉(zhuǎn)換成十進(jìn)制的調(diào)用程序。 |
|
|