VB基本算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB基本算法
加书签收藏下载跳至底部↓
阅读:601次大小:32KB(共2页)
VB基本算法
主讲人:许洋
算法分类
数值算法和非数值算法。数值算法和非数值算法。常用算法:迭代、穷举、递推、VB基本算法
加书签收藏下载跳至底部↓
阅读:601次大小:32KB(共2页)
VB基本算法
主讲人:许洋
算法分类
数值算法和非数值算法。数值算法和非数值算法。常用算法:迭代、穷举、递推、递归、分解等
典型算法例子
(1)交换a,b的值 temp=a a=b b=temp 或者 temp=b b=a a=temp
(2) 求1 ~n 个自然数的累加和
s=0 for i=1 to n s=s+i ‘注意,此句是累加的关键。 next i
求一维数组各元素的和
s=0 for i=1 to n s=s+a(i) next i
求二维数组各元素的和
s=0 for i=1 to n for j=1 to m s=s+a(i,j) next j next i
求二维数组周边元素的和
s=0 For i=1 to N s=s+A(1,i)+A(M,i) Next i For i=2 to M-1 s=s+A(i,1)+A(i,N) Next i
求二维数组A(N,N)主对角线元素的和s=0 For i=1 to N S=s+A(i,i) Next I
求二维数组A(N,N)次对角线元素的和
s=0 For i=1 to N S=s+A( i, N+1-i ) Next i
(3) 求n! (求累乘积)
fact=1 For i=1 to n fact=fact * i Next i
(4) 求斐波那契数列
Dim fib( ) As Integer ’数组声明N=InputBox (“请输入要求的项数:”) Redim fib(n)
fib(1)=1:fib(2)=1 ’处理部分 For I=3 to n fib(I) = fib(I-1) + fib(I-2) Next I ’输出语句
Print “斐波那契数列的前”; n ; “项是:” For I = 1 to n Print fib(I); Next I
(5) 将一维数组的前N项颠倒
m=Int(n/2) For I=1 to m T=A(I) A(I)=A(n+1-I) A(n+1-I)=T Next I
(6) 删除数组A(N)中的第I 项元素
For J=I to N-1 A(J)=A(J+1) Next J N=N-1 Redim Preserve A(N)
(7)求两个数的最大公约数 (欧几里得算法)
do ’输入数据的合法性检查m=InputBox( “请输入m:”) n=InputBox(“请输入n”) if m < > 0 and n < > 0 then exit do print “data error! Reinput!” loop
(7)求两个数的最大公约数 (欧几里得算法)
do r=m mod n m=n n =r loop until r = 0 print “the GCD = ”; m
(8)求两个数的最小公倍数
t=m do while t mod n < > 0 ’判断t是n的倍数? t = t +m ’保证t是m的倍数loop print m ;”和”; n ; “的最小公倍数是:”; t
(9)求无穷级数的近似值
关键是找出通项表达式,例如:利用级数公式1+1/3^2+1/5^2+…+1/(2*n+1)^2求π的值,结束计算的条件是 n > 2000 (n 是项数) 或 an <= 0.00000001
程序代码如下:
s=1 : n=1 do while n<=2000 a=1/(2*n+1)^2 ’单项值s=s+a ’累加n=n+1 ’计数 loop until a<=1e-7 p=sqr(s*8) print “pi=”;p
(10)顺序检索
在50个同学的成绩中,找出某同学的成绩。 Dim A(50,2) As String For I=1 to 50 A(I,1)=InputBox(“请输入姓名”) A(I,2)=InputBox(“请输入成绩”) Next I Name=Inputbox(“输入要查找的学生姓名”)
在50个同学的数据中,找出某同学的成绩。
For I=1 to 50 If A(I,1)=Name then score=val(A(I,2)) ’记录分数 Exit for End If Next I
输出结果
if I>50 then print “没找到” else print Name;“的成绩是:”;score end if
(11)二分检索
被检索的数组元素已排好序才能使用二分检索。 low=1 high=n f=0 (处理部分)If f=0 then Print “Not found” Else Print x 第1/2页
下页
贡献者:moshuihen
加书签收藏下载
我的书签阅读设置回顶部↑
相关文档
1.VB相关算法大全(新) 2468人阅读 | 8KB
2.VB常用算法总结 1417人阅读 | 83KB
3.VB 常用算法总结 1039人阅读 | 8KB
4.VB算法大全 1588人阅读 | 485KB
5.VB常用算法 410人阅读 | 30KB
网页新闻知道百科空间更多>>
天空a绿的文库 | 退出
百度>文库>阅读
03-18 20:19递归、分解等