VB常用算法总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB常用算法总结

一、变量值的交换

算法思想:若交换两个变量的值,必须引入第三个新的变量进行传递。

以下代码是错误的:

X=12 :Y=34 :X=Y :Y=X

正确的代码是:

X=12 :Y=23 :T=X :X=Y :Y=T

二、判断一个数是否能被另一个数整除

算法思想:可以用整除的定义(余数为0)或X除以Y等于X整除Y等表达式进行判断。

条件表达式可以为:X mod Y=0 或X\Y=X/Y 或Int(X/Y)=X/Y

如果以上条件表达式为True,则表示X能被Y整除。

三、累加、阶乘、计数和求平均值

算法思想:使用循环语句,并用一个变量存放累加的中间及最终结果。

注:累加求和时变量初值为0,计算阶乘时变量初值为1。

统计计个数(计数)时可用一个变量作为统计个数的累加变量,每次加1即可。

求平均值算法思想是先求和,再除以个数。

条件求和(或计数):在循环语句中加入If-End If判断语句。

例题:计算1到10之间所有整数的累加和以及10!。

n=10

sum=0 ‘累加求和时,变量的初值一定为0

prod=1 ‘累乘(连乘)时,变量的初值一定为1

For i=1 To n

sum=sum+i

prod=prod*i

Next i

Print sum,prod

例题:统计0—100之间能被3整除的数的个数、累加和及其平均值。

s=0

n=0

For i=0 To 100

If i mod 3 =0 Then

s=s+i

n=n+1

End If

Next i

Print n,s,s/n

四、随机数的产生

[a,b]之间的随机整数

Int((b-a+1)*rnd)+a

(a,b)随机数

(b-a)*rnd +a

五、求若干个数中最大值或最小值

六、常用字符处理函数

Mid函数:从字符串指定位置取指定个字符,格式为Mid (字符,p,n) ,从第p个字符开始,向后截取n个字符(若n省略则取到最后)。

Left和Right函数:从字符串左边或右边取指定个字符,格式为Left (字符,n)和Right (字符,n)。

Len函数:测试字符串长度。

UCase和LCase函数:UCase将小写字母转换为大写字母;LCase将大写字母转换为小写字母。

Instr([首字符位置, ] 字符串1, 字符串2 [ , n]):在字符串1中查找字符串2,如果找到,返回字符串2的第一个字符在字符串1中出现的位置。首字符位置是可选的,如果不指定,从字符串起始位置开始查找;如果指明,从指定的位置开始查找。

Asc函数:返回字符串中第一个字符的ASCII码。

Chr函数:将一个数值转换为其所对应的字符。

字符的比较规则是按ASCII码顺序比较,规则为空格<”A”~”Z”<”a”~”z”

例题:

1.将所有文本转换为大写(小写)字母

可以直接使用UCase(LCase)函数转换。例如:

Text2.Text=UCase(Text1.Text)

2.对某个字符串的所有字符逐一处理

算法思想:如果对某个字符串的所有字符逐一处理,即从字符串的第1个字符开始到最后一个字母,每次处理1个字符。可以使用For循环实现。通用代码为:

For i=1 To Len(s)

s1=Mid(s,i,1)

……

Next i

3.字符转换

算法思想:通过字符的ASCII码进行处理(使用Asc函数),然后再使用Chr函数将ASCII转换成字符。

例题:将文本框Text1中字符按如下规律转换a-b、b-c……z-a,并显示在文本框Text2中。

s = Text1.Text

n = Len(s)

For i = 1 To n

s1 = Mid(s, i, 1)

If s1 >= "a" And s1 <= "y" Then

s2 = s2 + Chr(Asc(s1) + 1)

ElseIf s1 = "z" Then

s2 = s2 + "a"

End If

Next i

Text2.Text = s2

例题:将文本框Text1中的小写字母转换其对应的大写字母,将大写字母转换成小写字母,并显示在文本框Text2中。

Private Sub Command1_Click()

s = Text1.Text

n = Len(s)

m = Asc("a") - Asc("A")

For i = 1 To n

s1 = Mid(s, i, 1)

If s1 >= "a" And s1 <= "z" Then

s2 = s2 + Chr(Asc(s1) - m)

End If

If s1 >= "A" And s1 <= "Z" Then

s2 = s2 + Chr(Asc(s1) + m)

End If

Next i

Text2.Text = s2

End Sub

5.统计某字符出现次数

算法思想:对字符串中字符逐一判断,如果是某字符,则统计变量加1。

例题:统计文本框Text1中字符i和j出现的次数(不区分大小写)。

Private Sub Command1_Click()

s = Text1.Text

n = Len(s)

For i = 1 To n

s1 = Mid(s, i, 1)

If UCase(s1) = "I" Then ni = ni + 1

If UCase(s1) = "J" Then nj = nj + 1

相关文档
最新文档