首页 VB资料常用过程

VB资料常用过程

举报
开通vip

VB资料常用过程1. 判断素数的函数过程 ①Private Function prime(n As Integer) As Boolean Dim i As Integer prime = True For i = 2 To Sqr(n) If n Mod i = 0 Then prime = False Exit For End If Next i End Function ②Private Fun...

VB资料常用过程
1. 判断素数的函数过程 ①Private Function prime(n As Integer) As Boolean Dim i As Integer prime = True For i = 2 To Sqr(n) If n Mod i = 0 Then prime = False Exit For End If Next i End Function ②Private Function prime(n As Integer) As Boolean Dim i As Integer For i = 2 To Sqr(n) If n / i = Int(n / i) Then Exit Function Next i prime = True End Function ③Private Sub prime(n As Integer, f As Boolean) Dim k As Integer For k = 2 To Sqr(n) If n Mod k = 0 Then Exit Sub Next k f = True End Sub 2. 判断回文数的函数过程(左右对称的数) Private Function hw(n As Integer) As Boolean Dim i As Integer, st As String, stlen As Integer st = CStr(n) stlen = Len(st) For i = 1 To stlen \ 2 If Mid(st, i, 1) <> Mid(st, stlen + 1 - i, 1) Then Exit Function End If Next i hw = True End Function 3. 求阶乘的函数过程 ①Private Function jc(n As Integer) As Long Dim i As Integer If n <= 1 Then jc = 1 Else jc = jc(n - 1) * n End If End Function ②Private Function jc(ByVal n As Integer) As Long jc = 1 Do While n > 0 jc = jc * n n = n - 1 Loop End Function ③Private Function jc(n As Integer) As Long Dim i As Integer jc = 1 For i = 2 To n jc = jc * i Next i End Function 4. 求因子和的Sub过程 ①Private Sub factor(n As Integer, s As Integer) Dim i As Integer, j As Integer Do While i < n i = i + 1 If n Mod i = 0 Then s = s + i End If Loop End Sub ②将整数x的因子存储到数组中的通用过程 Private Sub factor(x As Integer, a() As Integer) Dim i As Integer, n As Integer ReDim a(0) For i = 1 To x - 1 If x Mod i = 0 Then n = n + 1 ReDim Preserve a(n) a(n) = i End If Next i End Sub 5. 求最大公约数的函数过程 ①Private Function gcd(ByVal m As Integer, n As Integer) As Integer Dim r As Integer r = m Mod n Do While r <> 0 m = n: n = r r = m Mod n Loop gcd = n End Function ②Private Function gcd(ByVal m As Integer, n As Integer) As Integer Dim i As Integer For i = n To 2 Step -1 If m Mod i = 0 And n Mod i = 0 Then Exit For Next i gcd = i End Function 6. 判断是否为完数的函数过程。所谓完数是指一个整数n的因子和(不包括n)等于n。 ①Private Function wanshu(n As Integer) As Boolean Dim i As Integer, sum As Integer For i = 1 To n - 1 If n Mod i = 0 Then sum = sum + i End If Next i If sum = n Then wanshu = True End Function ②Private Function wanshu(n As Integer, f As Boolean, a() As Integer) Dim i As Integer, k As Integer, sum As Integer For i = 1 To n - 1 If n Mod i = 0 Then k = k + 1 ReDim Preserve a(k) a(k) = i sum = sum + i End If Next i If sum = n Then f = True 7. End Function 8. 求矩阵范数的通用过程。范数是指矩阵各列元素的绝对值之和中最大的数值。 Private Function fan(a() As Integer) As Integer Dim i As Integer, j As Integer Dim max As Integer, b() As Integer ReDim b(UBound(a)) For j = 1 To UBound(a) For i = 1 To UBound(a) b(j) = b(j) + Abs(a(i, j)) Next i Next j max = b(1) For i = 2 To UBound(b) If b(i) > max Then max = b(i) Next i fan = max End Function 9. 二进制串转换为十进制数的函数过程。 Private Function convert(s As String) As Integer Dim p As String, n As Integer, i As Integer Dim k As Integer, t As String * 1 p = Left(s, 1) s = Right(s, Len(s) - 1) k = 0 For i = Len(s) To 1 Step -1 t = Mid(s, i, 1) conver = conver + Val(t) * 2 ^ k k = k + 1 Next j max = b(1) If p = 1 Then convert = (-1) * convert 10. End Function 11. 求数组中最大值及其下标的通用过程。 Private Sub amamx(a() As Integer, max As Integer, n As Integer) Dim i As Integer max = a(1): n = 1 For i = 2 To UBound(a) If a(i) > max Then max = a(i): n = i End If Next i End Sub 10.判断某3位整数n是否为升序数的过程。 Private Function flag(ByVal n As Integer) As Boolean Dim i As Integer, a(3) As Integer For i = 1 To 3 a(i) = n Mod 10 n = n \ 10 Next i If a(1) > a(2) And a(2) > a(3) Then flag = True End Function 11.求任意两个整数n,m的最小公倍数的函数过程。 ①Private Function Lcm(n As Integer, m As Integer) As Integer Dim i As Integer, j As Integer Dim k1 As Integer, k2 As Integer If n > m Then j = n Else j = m End If For i = j To 1 Step -1 If n Mod i = 0 And m Mod i = 0 Then k1 = n / i k2 = m / i Lcm = k1 * k2 * i Exit For End If Next i End Function ②Private Function Lcm(n As Integer, m As Integer) As Long Do Lcm = Lcm + n If Lcm Mod n = 0 And Lcm Mod m = 0 Then Exit Do End If Loop End Function 12.判断一个数是平方数的通用过程。 Private Sub square(n As Long, f As Boolean) If n > 0 Then If Int(Sqr(n)) = Sqr(n) Then f = True Exit Sub End If End If f = False End Sub 13.求某数各位数字之和的函数过程。 Private Function fun(ByVal n As Long) As Integer Do While n > 0 fun = fun + (n Mod 10) n = n \ 10 Loop End Function 14.在字符串s中查找字符子串s1的通用过程。 Private Function findstr(s As String, s1 As String) As Boolean Dim i As Integer, L1 As Integer, L2 As Integer Dim s2 As String L1 = Len(s): L2 = Len(s1) For i = 1 To L1 - L2 + 1 s2 = Mid(s, i, L2) If s2 = s1 Then findstr = True Exit Function End If Next i End Function 15.求一个正整数n的逆序数的函数过程。 Private Function nx(ByVal n As Integer) As Integer Dim k As Integer, s As String Do k = n Mod 10 s = s & CStr(k) n = n \ 10 Loop Until n = 0 nx = Val(s) End Function 16.生成没有重复元素的两位随机整数数组的通用过程。 Private Sub rnum(a() As Integer) Dim i As Integer, x As Integer Dim j As Integer, flag As Boolean a(1) = Int(Rnd * 90) + 10 i = 2: flag = True Do x = Int(Rnd * 90) + 10 For j = 1 To i - 1 If x = a(j) Then flag = False Next j If flag Then a(i) = x i = i + 1 Else flag = True End If Loop Until i > UBound(a) End Sub 17.将整数n插入到有序数组a的通用过程。 Private Sub sort(n As Integer, a() As Integer) Dim i As Integer, j As Integer, k As Integer k = UBound(a) ReDim Preserve a(k + 1) For i = 1 To k If n <= a(i) Then For j = k To i Step -1 a(j + 1) = a(j) Next j a(i) = n Exit Sub End If Next i a(i) = n End Sub 18.判断一个整整数是否为同构数的函数。若一个数出现在自己平方数的右端,则称此数为同构数。 Private Function tg(n As Integer) As Boolean Dim m As Long, l As Integer l = Len(CStr(n)) m = n ^ 2 If Right(CStr(m), l) = CStr(n) Then tg = True End If End Function 19.将十进制数(不超过255)转换为二进制串的函数过程。 Private Function dtb(ByVal n As Integer) As String Dim b As Integer, i As Integer, s As String Do While n > 0 b = n Mod 2 n = n \ 2 s = b & s Loop For i = 1 To 8 - Len(s) s = "0" & s Next i dtb = s End Function
本文档为【VB资料常用过程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_688934
暂无简介~
格式:doc
大小:51KB
软件:Word
页数:0
分类:计算机考试
上传时间:2012-02-10
浏览量:22