VB常用算法总结new
更新时间:2024-02-28 07:57:01 阅读量: 综合文库 文档下载
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” 小写字母的ASCII比大写字母的ASCII小32。
例题:
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 >= \ s2 = s2 + Chr(Asc(s1) + 1) ElseIf s1 = \ s2 = s2 + \ End If Next i
Text2.Text = s2
例题:将文本框Text1中的小写字母转换其对应的大写字母,将大写字母转换成小写字母,并显示在文本框Text2中。 Private Sub Command1_Click() s = Text1.Text n = Len(s)
m = Asc(\ For i = 1 To n
s1 = Mid(s, i, 1)
If s1 >= \ s2 = s2 + Chr(Asc(s1) - m) End If
If s1 >= \ 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) = \
If UCase(s1) = \
Next i
Print ni, nj
End Sub 八、素数
素数定义:只能被1和本身整除的正整数称为素数(或称质数)。例如11就是素数,它只能被1和11整除。 算法思想:判别某数n是否是素数的方法有很多,最简单的是从素数的定义来求解。对于n,从i=2,3,…,n-1判别n能够被i整除,只要有一个能整除,n就不是素数,否则n是素数。此种算法比较简单,但速度慢,因此,可以将n被2到 (或n/2)间的所有整数除,如果都除不尽,则n就是素数,否则n是非素数。
注:执行For循环时,循环变量等于终值仍进入循环,遇到Next语句,循环变量会自动加上步长,因此如果循环正常完成后,循环变量的值将大于终值。 例如:
For i=1 To 4
If …… Then Exit For Next i Print i
如果循环正常结束,则输出结果为5(大于4)。如果循环过程中满足If条件,执行Exit For语句退出循环,则i的值一定小于5。 例题:判断n是否是素数。 Private Sub Command2_Click() n = Val(Text1.Text) For j = 2 To n - 1
If n Mod j = 0 Then Exit For Next j
If j > n-1 Then Print \是素数\不是素数\End Sub
例题:输出2~n范围的全部素数。 Private Sub Command1_Click() n = Val(Text1.Text) For i = 2 To n
For j = 2 To Sqr(i)
If i Mod j = 0 Then Exit For Next j
If j > Sqr(i) Then Print i Next i End Sub
使用Do While循环判断是否是素数
九、最大公约数和最小公倍数 算法思想:
(1)对于已知两数x、y,使得x>y (2)x除以y得余数r;
(3)若r=0,则x为求得的最大公约数,算法结束;否则执行步骤(4) (4)x←y,y←r,再重复执行(2) 求得了最大公约数后,最小公倍数就可很方便地求出,即将原来的两数相乘除以最大公约数。 Private Sub Form_Click()
x = Val(InputBox(\请输入第一个数:\ y = Val(InputBox(\请输入第二个数:\ If x < y Then t = x x = y y = t End If x 1 = x y1 = y Print x, y
Do While y <> 0 r = x Mod y x = y y = r Loop
Print \最大公约数为:\
Print \最小公倍数为:\End Sub
十、水仙花数 定义:“水仙花数”是指一个三位数,其中各位数字的立方和等于该数本身(如153=13+53+33) 分析:此题的关键是要知道如何分离出一个三位数中的各位数字。 例题:找出100~999之间的所有“水仙花数”。 Private Sub Command1_Click() For i = 100 To 999 a = Int(i / 100)
b = Int((i - 100 * a) / 10) c = i - Int(i / 10) * 10
If i = a ^ 3 + b ^ 3 + c ^ 3 Then Print i End If Next i End Sub
Private Sub Command1_Click() For n = 100 To 999 s = 0 a = n
Do While a <> 0 b = a Mod 10 s = s + b * b * b a = a\ 10 Loop
If s = n Then Print n Next n End Sub
十一、斐波那切数列的输出
该数列前两项为1,1从第三项开始,an=an-1+an-2 十二、进制转换 十三、三个数排序 十四、分段函数
十五、图形输出(双重循环) 十六、百鸡百钱问题 十七、迭代法P116页
十八、输入a,b,c,的值,求方程ax2+bx+c=0的解。
注意:对象只考文本框、标签、命令按钮和窗体。
正在阅读:
VB常用算法总结new02-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 算法
- 常用
- 总结
- new