VB基本算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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递归、分解等

相关文档
最新文档