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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。