循环结构(又称为重复结构).ppt

上传人:牧羊曲112 文档编号:5975576 上传时间:2023-09-10 格式:PPT 页数:177 大小:570.50KB
返回 下载 相关 举报
循环结构(又称为重复结构).ppt_第1页
第1页 / 共177页
循环结构(又称为重复结构).ppt_第2页
第2页 / 共177页
循环结构(又称为重复结构).ppt_第3页
第3页 / 共177页
循环结构(又称为重复结构).ppt_第4页
第4页 / 共177页
循环结构(又称为重复结构).ppt_第5页
第5页 / 共177页
点击查看更多>>
资源描述

《循环结构(又称为重复结构).ppt》由会员分享,可在线阅读,更多相关《循环结构(又称为重复结构).ppt(177页珍藏版)》请在三一办公上搜索。

1、循环结构(又称为重复结构),在这种结构中,按给定的条件连续重复多次执行A框中的一组算法步骤。A框称为循环体。一般来说,循环结构有二种:当循环和直到循环。当循环结构的特点:当条件成立时,重复执行循环体;当条件不成立时,不执行循环体并立即退出循环。直到循环的特点是:重复执行循环体,直到条件成立时退出循环。,当循环,直到循环,当循环结构中,循环体可能一次都没执行;而直到循环的循环体至少被执行一次。,计算12个实验数据的平均值,一、用For-Next语句实现循环结构,预先能确定重复次数的循环问题可以使用For-Next来实现.,FOR-NEXT语句的一般格式是:For=To Step Next,FOR

2、-NEXT语句的执行过程是:,1.对循环变量设置初值。2.判断循环变量的值是否大于终值,若大于,则退出循环,否则,执行循环体。3.执行循环体后,循环变量的值增加一个步长的值,再执行上述步骤 2。,计算1+2+3+10的值,t=0For i=1 To 10t=t+iNext iPrint t=;t,计算1+3+5+7+9的值,t=0For i=1 To 10 Step 2 t=t+iNext iPrint t,计算2+4+6+8+10的值,t=0For i=2 To 10 Step 2t=t+iNext iPrint t,计算1+3+5+7+前20项的值,t=0For i=1 To 40 Ste

3、p 2t=t+iNext iPrint t,计算10+9+8+1的值,s=0For i=10 To 1 Step-1s=s+iNext iPrint s,计算1+1/2+1/3+1/10的值,s=0For i=1 To 10s=s+1/iNext iPrint s,计算1/2+1/22+1/231/2100的值,s=0For i=1 To 100 s=s+1/2 iNext iPrint s,方法一:,s=0M=1For I=1 To 100 s=s+MNext I,s=0M=1For I=1 To 100 M=M/2 s=s+MNext I,方法二:,计算12个输入数据的平均值,s=0For

4、 i=1 To 12input as=s+aNext iPrint s/12,画圆形Circle(500,800),100,RGB(255,0,0)题目:画10个同心圆,For i=100 To 1000 Step 100Circle(1800,1500),i,RGB(255,0,0)Next i,计算s=1*2*3*4*1010!,s=1For i=1 To 10 s=s*iNext iPrint s,输入数字n,计算n!,Input n s=1 For i=1 To n s=s*i Next i print s,计算s=1-2+3-4+5-6+7-8+9-10,s=0t=1For i=1

5、To 10s=s+t*iNext iPrint s,s=0t=1For i=1 To 10s=s+t*it=-tNext iPrint s,求1-1/21+1/31-1/41+.+1/91-1/101,s=_t=1For i=21 To 101 Step 10_t=-ts=s+t*aNext iPrint s,s=1t=1For i=21 To 101 Step 10a=1/it=-ts=s+t*aNext iPrint s,填数,3_*8256=_3*6528,For i=1 To 9If(30+i)*8256=(i*10+3)*6528 Then Print iEnd IfNext i,统

6、计200以内37的倍数有几个?并把符合要求的数字输出。,c=0For i=1 To 200 If i Mod 37=0 Then c=c+1 Print i End IfNext iPrint c,若一个三位数x=100a+10b+c(a,b,c都是个为数),满足a3+b3+c3=x,则x称为水仙花数,找出所有的水仙花数。,For n=100 To 999a=Int(n/100)b=Int(n-100*a)/10)c=n Mod 10If a 3+b 3+c 3=n Then Print nNext n,有一个五位数字组成的编号1_ _47,千位和百位不知,但是这个五位数是57或67的倍数,输

7、出所有满足这些条件的五位数,并统计这样数的个数。,分析,10047=10047+0=10047+0*10010147=10047+100=10047+1*10010247=10047+200=10047+2*10010347=10047+300=10047+3*100.10947=10047+900=10047+9*10011047=10047+1000=10047+10*10011147=10047+1100=10047+11*100.11947=10047+1900=10047+19*10012047=10047+2000=10047+20*100.19947=10047+9900=100

8、47+99*100,c=0For j=0 To 99 n=10047+j*100 If n Mod 57=0 Or n Mod 67=0 Then c=c+1 Print n End If Next j Print c,用10元和50元两种纸币组成240元,共有哪几种组合方式?,分析,x代表10元的张数当50元0张:x=(240-0*50)/10 当50元1张:x=(240-1*50)/10当50元2张:x=(240-2*50)/10当50元3张:x=(240-3*50)/10当50元4张:x=(240-4*50)/10,For i=0 To 4 x=(240-50*i)/10Print 五十

9、元张数;i,十元张数;xNext i,x代表50元的张数当10元0张:x=(240-0*10)/50 当10元1张:x=(240-1*10)/50当10元2张:x=(240-2*10)/50。当10元24张:x=(240-24*10)/50,For i=0 To 24 x=(240-10*i)/50If x=Int(x)Then Print 五十元张数;x,十元张数;iEnd IfNext i,当一个直角三角形,一条直角边的长度为8,切斜边不超过100时,所有满足条件的直角三角形有哪几种组合?,For i=9 To 100 x=Sqr(i*i-8*8)If x=Int(x)Then Print

10、 i,x,8Next i,包装600个变形金刚,要求是:1,包装的规格分别是:小盒每盒12个,大盒每盒15个。2,每种规格的盒数都不能为0。请设计一个算法,输出所有可能的包装方案。,方法一:For i=1 To 49x=(600-12*i)/15If x=Int(x)ThenPrint 小盒个数;i,大盒个数;xEnd IfNext i,For i=1 To 39x=(600-15*i)/12If x=Int(x)ThenPrint 小盒个数;X,大盒个数;iEnd IfNext i,当型(while)循环:Do While 语句组 Exit Do 语句组 Loop,当型(while)循环的执

11、行过程是:先判断是否成立,若不成立则退出循环,执行Do while的下一个语句;若成立,则执行Do-Loop之间的语句(称为循环体),执行完循环体,再去判断,当条件成立时继续执行循环体。,直到型(Until)循环:Do 语句组 Exit Do 语句组Loop Until,直到型(until)循环的执行过程是:先执行Do-loop之间的语句(称为循环体);执行完循环体,再去判断,当条件成立时退出循环,否则继续执行循环体,直到条件成立,退出循环。,t=0i=1Do while i=10t=t+ii=i+1LoopPrint t=;t,t=0For i=1 To 10t=t+iNext iPrint

12、 t=;t,计算1+2+3+10的值 1.Do while 和 FOR 对比,计算1+3+5+7+9的值,t=0i=1 Do while i=10t=t+ii=i+2loopPrint t,t=0For i=1 To 10 Step 2t=t+iNext iPrint t,计算10+9+8+1的值,s=0For i=10 To 1 Step-1s=s+iNext iPrint s改为do while 结构,s=0i=10 Do while i=1 s=s+ii=i-1loopPrint s,S=0n=1Do while n=5S=s+2*nN=n+1LoopPrint s,S=0For n=1

13、 to 5S=s+2*nNext nPrint s,30,K=1S=1Do while k=11S=s*kK=k+2LoopPrint s,S=1For k=1 to 11 step 2S=s*kNext kPrint s,10395,从1+2+3+4+,加到什么数时和大于10000。打印出这个加数及这时的和。,n=0s=0do while s=10000 n=n+1 s=s+nloopprint n,s,这两句代码次序能互换吗?,求输入的一个数的各位数字之和。,(分析:一个整数有一位至多位数字组成,要求出这个数的各位数字,用这个数除以10的余数就是这个数的个位数字,然后将它用整除的方法缩小1

14、0倍后,继续求出它得个位数字,一直到它位0时,就求出了这个数的所有各位数字。),Input xs=0do while x0t=x mod 10s=s+tx=int(x/10)loopprint s,输入一个不大于10位的二进制数n,将其转换成对应的十进制数,提示:(10101)2=1*20+0*21+1*22+0*23+1*24),input x i=0s=0Do While x 0 t=x Mod 10 s=_ x=Int(x/10)_LoopPrint s,或者t=x Mod 2,input x i=0s=0Do While x 0 t=x Mod 10 s=s+t*2 i x=Int(x

15、/10)i=i+1LoopPrint s,从1+2+3+4+,加到什么数时和大于10000。打印出这个加数及这时的和。,直到型(Until)循环:Do 语句组 Exit Do 语句组Loop Until,s=0n=0Do n=n+1 s=s+nLoop Until s 10000Print n,s,s=0n=0Do While s=10000n=n+1s=s+nLoopPrint n,s,求输入的一个数的各位数字之和。Do loop until,Input x s=0Dot=x Mod 10s=s+tx=Int(x/10)Loop Until x=0Print s,Input xs=0do w

16、hile x0t=x mod 10s=s+tx=int(x/10)loopprint s,K=22S=0Do S=s+kK=k+2Loop until k=29Print s,计算5个输入数据的平均值1.do while loop2.do loop until,s=0i=1Do While i=5input a s=s+ai=i+1LoopPrint s/5,s=0i=1Doinput a s=s+ai=i+1Loop Until i 5Print s/5,求十个数中最大值打擂台法,_max=xi=1do while _ _ if xmax then _ i=i+1 _print _,Inpu

17、t xmax=xi=1do while imax then max=x i=i+1 loopprint max,方法二:max=0(或一个很小的数)i=1do while imax then max=x i=i+1 loopprint max,求十个数中最小值,Input xmin=xi=1do while i=9 input x if xmin then min=x i=i+1 loopprint min,方法二:min=10000(或一个很大的数)i=1do while i=10 input x if xmin then min=x i=i+1 loopprint min,求输入若干个学生

18、成绩的和,输入-1表示结束。,S=0input xdo while x-1s=s+xinput xloopprint s,对输入的数据求和,当所求的和超过100,则停止输入,并输出求和结果。,S=0do while s=100input xs=s+xloopprint s,S=0do input xs=s+xloop until s100print s,计算S=1!+2!+3!+N!请将流程图填写完整。,求斐波纳契数列1,1,2,3,5,8,13,21。前n项(第一项和第二项不算),_f1=1f2=1i=_Do while i=_ _ Print f3 f1=f2 _ i=i+1loop,In

19、put nf1=1f2=1i=1Do while i=n f3=f1+f2 Print f3 f1=f2 f2=f3 i=i+1loop,S=1/2+1/22+1/23+1/24+1/25 求出多少项后余下的部分的和小于0.00001,s=0i=0Do i=i+1 s=s+1/2 iLoop Until s=1-0.00001Print i,s=0t=1i=0Do While s 1-0.00001 _ i=i+1 s=s+1/t Loop Print i,s=0t=1i=0Do While s 1-0.00001 t=t*2 i=i+1 s=s+1/t Loop Print i,有一张纸,其

20、厚度为x毫米,将它对折多少次,其厚度将超过珠穆朗玛峰的高度.珠穆朗玛峰高度为8844.43米,Input x i=0Do While x=8844430 x=x*2i=i+1Loopprint 需折叠;i;”次,Input x s=0i=0Do While s=8844430i=i+1s=x*2 iLoop print 需折叠;i;”次,计算图6-6-2电路中A、B二端的等值电阻,其中R0=100,R1=200,R2=300,分析:采用由右向左递退的方法。把整个电路按虚线分成若干级。第一级为A2B2两点之间的电阻。显然A2B2两点之间的电阻为R1与 R0 串联后再与R2并联。,根据物理公式可以

21、求出A2B2两点之间的电阻,记为R0。而A1B1两点之间的电阻又可以看成是R1与R0串联后再与R2并联。假设为R0。同样,AB两点之间的电阻又可以看成是R1与R0串联后再与R2并联。显然,重复计算三次,就可以求出AB两点之间的电阻。当然,在这样的三次计算中,电阻R0的初值是100。,R0=100 R1=200R2=300For i=1 To 3 Step 1R0=R0+R1R0=R 0*R2/(R0+R2)Next iPrint R=;R0,每个电阻都为200,计算AB两端的电阻值,R1=200R0=200For N=1 To 4R0=R0+2*R1R0=R0*R1/(R0+R1)Next N

22、Print R=;R0,设有一曲线y=9-x2,要求该曲线与坐标轴在第一象限所围的面积(如图)。,提示:将X轴上的区间0,3,分成若干等分,从各分点作Y轴的平行线与曲线相交。再从个交点向左作X轴的平行线(如图所示),构成若干个矩形。设计一个程序求这些矩形面积的和,就可以求出所围面积的近似值。如果把区间a,b分成n等分,则X轴上(n-1个)分点的坐标从左到右依次为:(b-a)/n、(b-a)*2/n、(b-a)*3/n、(b-a)*i/n、(b-a)*(n-1)/n因而,第i个矩形的高为:9-((b-a)*i/n)2,z=0For i=1 To 99s=(3/100)*(9-(3*i/100)2

23、)z=z+sNext iPrint z,用辗转相减法求两自然数m,n的最大公约数,m n 14 6 8 6 2 6 2 4 2 2,m=m-n mnn=n-m nm m、n为公约数 m=n,Input m Input n Do While m n If m n Then m=m-n Else n=n-m End If LoopPrint m,求两自然数m,n的最大公约数和最小公倍数。,方法一:分析:求最大公约数的算法思想:(1)对于已知两数m,n,使得mn;,(2)i=n,(3)若i能够同时整除m和n则i为m,n的最大公约数,转(6),(4)i=i-1,(5)重复(3)(4),(6)输出最大公

24、约数i和最小公倍数n*m/i,(7)程序结束,Input m Input nIf m n Then _ _ _End if i=n Do while _ or _ _ Loop Print 最大公约数=,i Print 最小公倍数=,m*n/i,Input m Input nIf m 0)or(n mod i 0)i=i-1 Loop Print 最大公约数=,i Print 最小公倍数=,m*n/i,用辗转相除法求两自然数m,n的最大公约数。分析:求最大公约数的算法思想:(1)对于已知两数m,n,使得mn;(2)m除以n得余数r;(3)mn,nr,若n=0,则循环结束,m为最大公约数;否则从

25、(2)重 复执行。,例 求 m=14,n=6 的最大公约数.,m n r 14 6 2 6 2 0 2 0,N=0,input minput nIf m n Then t=m m=n n=tendifDo r=m mod n m=n n=r Loop until n=0 Print 最大公约数=,m,求两自然数m,n的最小公倍数,Input a Input b i=1s=a*iDo While s Mod b 0i=i+1s=a*iLoopPrint s,猴子吃桃问题。小猴子第一天摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃一个,第二天吃掉剩下的一半,又多吃一个,以后每天如此,到第十天时,只

26、剩下1个,问猴子总共摘了多少桃子。分析:这是一个递推问题,先从最后一天的桃子数X10推出倒数第二天的桃子数X9,再由X9推出倒数第三天的桃子数X8,第一天的桃子数X1。设第n天的桃子数为Xn,它前一天的桃子数为Xn-1,则:X(n)=X(n-1)/2-1 推出X(n-1)=2*(Xn+1)x10=1x9=2*(x10+1)=4x8=2*(x9+1)=10,X=1For n=9 To 1 Step-1 X=2*(X+1)计算前一天的桃子数Next nPrint X,x=0For j=1 To 3 For i=1 To 2 x=x+1 Next iNext jPrint x,i,j,6 3 4,x

27、=0c=0For j=1 To 2 For i=1 To 2 x=x+1 Next ic=c+1Next jPrint c,i,j,x,2 3 3 4,输出如下图形:*,For i=1 To 5 For j=1 To 10 Print*;Next j PrintNext i,复习,下列程序运行的内循环总次数为。FOR M=1 TO 2 FOR N=1 TO M+1 NEXT N NEXT M,5次,(43)or(72)的值是:,T,(43)or(23)的值是:,T,(43)and(23)的值是:,F,(43)and(72)的值是:,T,Not(43)and(72)的值是:,F,(72)and

28、Not(43)的值是:,F,(4+3)(4-3)or(5+2)5 and(87),T,采用33KHZ的采样频率、双声道的方式用录音笔录制了2分钟的演讲,采用的量化级数为24位,得到内容为 _KB的录音文件.答案:33*1000*2*120*24/8/1024,一张1024*768像素的图片,如果以16位彩色扫描,其图片大小约为_KB.答案:1024*768*16/8/1024,S=0J=1DO WHILE J6J=J+2S=S+J*2LOOPPRINT S,J输出的结果是。,30 7,S=0:P=3DO WHILE P=10IF P MOD 3=0 THENS=S+1END IFP=P+3LO

29、OPPRINT S执行结果是:_,3,下列程序的运行结果是。X=1:Y=2FOR A=1 TO 2 FOR B=2 TO 3 Y=Y+B NEXT B X=X*YNEXT APRINT X,84,若依次输入9、2、3、2、99,则输出结果是_.,A.4B.23C.3D.24,A,找出符合下列要求的五位数1_4_7,该数能被57或67整除。方法一:,For i=0 To 9 For j=0 To 9 n=10407+i*1000+j*10 If n Mod 57=0 Or n Mod 67=0 Then Print n End If Next jNext i,方法二:For i=0 To 9 S

30、=10407+i*1000 For j=0 To 9 n=S+j*10 If n Mod 57=0 Or n Mod 67=0 Then Print n End If Next jNext i,百鸡百钱问题:公鸡每只5元,母鸡每只3元,小鸡1元3只,现在用100元钱买100只鸡,求公鸡,母鸡,小鸡各买几只?,For x=1 To 99 For y=1 To 99 z=100-x-y If 5*x+3*y+z/3=100 Then Print x,y,z Next yNext x,百鸡百钱问题:公鸡每只5元,母鸡每只3元,小鸡1元3只,现在用100元钱买100只鸡,求公鸡,母鸡,小鸡各买几只?,

31、x=1 Do While x 100 y=1 Do While y 100 z=100-x-y If 5*x+3*y+z/3=100 Then Print x,y,z y=y+1 Loop x=x+1 Loop,百鸡百钱问题:公鸡每只5元,母鸡每只3元,小鸡1元3只,现在用100元钱买100只鸡,求公鸡,母鸡,小鸡各买几只?,For x=1 To 19 For y=1 To 33 z=100-x-y If 5*x+3*y+z/3=100 Then Print x,y,z Next yNext x,数组,从存储角度看,前面使用的变量都是相互独立的、无关的,通常称它们为简单变量。但如果处理将200

32、个学生的成绩按大小顺序排序这类问题,只使用简单变量将会非常麻烦,而利用数组却很容易实现。,数组的概念,在实际应用中,常常需要处理相同类型的一批数据。例如,为了处理100个员工的工资,可以用S(1),S(2),S(100)来分别代表每个员工的工资,其中S(1)代表第一个员工的工资,S(2)代表第二个员工的工资。在VB中,把一组相互关系密切的数据放在一起并用一个统一的名字作为标志,这就是数组。,数组中的每一个数据称为数组元素,用数组名和该数据在数组中的序号来标识。序号又称为下标,数组元素又称为下标变量。例如,S(2)是一个数组元素,其中的S称为数组名,2是下标。在使用数组元素时,必须把下标放在一对

33、紧跟在数组名之后的括号中。S(3)是一个数组元素,而S3是一个简单变量。如果只用一个下标就能确定某个数组元素在数组中的位置,这样的数组称为一维数组。如果用两个或多个下标才能确定某个数组元素在数组中的位置,则数组分别称为二维数组或多维数组。(如:第一排,第三人)mark(1,3),一维数组,一维数组的定义数组应当先定义后使用,数组的定义又称为数组的声明或说明。对于固定大小的一维数组,用如下格式进行定义:说明符 数组名(下标)As 类型例如:Dim y(5)As Integer定义了一个一维数组,该数组的名字为y,类型为Integer,占据6个(05)整型变量的空间。,说明:(1)“说明符”为保留

34、字,可以为Dim,Public,Private,Static中的任意一个。在使用过程中可以根据实际情况进行选用。定义数组后,数值数组中的全部元素都初始化为0,字符串数组中的全部元素都初始化为空字符串。(2)“数组名”的命名遵守标识符规则。(3)“下标”的一般形式为“下界 to 上界”。下标的上界、下界为整数,不得超过Long数据类型的范围-2147483648+2147483647,并且下界应该小于上界。如果不指定下界,下界默认为0。如:a(1 to 48),(4)要注意区分“可以使用的最大下标值”和“元素个数”。(5)“As类型”用来说明“数组元素”的类型,可以是Integer,Long,S

35、ingle,Double,String(定长或变长)等基本类型或用户定义的类型,也可以是Variant类型。如果省略“As类型”,则数组为Variant类型。(6)在同一个过程中,数组名不能与变量名同名,否则会出错。(7)可以通过类型说明符来指定数组的类型。例如:Dim A%(5)代表integer,B!(3 To 5)代表single,C#(12)代表double,一维数组的引用数组的引用通常是对数组元素的引用。一维数组元素的表示形式为:数组名(下标)一般通过循环语句及InputBox函数、文本框给数组输入数据。数组的输出一般用Print方法、标签或文本框实现。,把输入的5个整数按顺序,和逆

36、序输出,Dim a(5)As IntegerFor i=1 To 5 顺序输入 Input a(i)Next iFor i=1 To 5 顺序输出 Print a(i)Next iFor i=5 To 1 step-1 逆序输出 Print a(i)Next i,Dim a(5)As IntegerFor i=1 To 5 顺序输入和输出 Input a(i)Print a(i)Next i,一维数组的应用举例从键盘上输入10人的考试成绩,输出高于平均成绩的分数。分析:该问题可分三部分处理:一是输入10个人的成绩;二是求平均分;三是把这10个分数逐一和平均成绩进行比较,若高于平均成绩,则输出。

37、,程序如下:Dim score(10)As Single aver=0 For i=1 To 10 Input score(i)aver=aver+score(i)Next i aver=aver/10 For i=1 To 10 If score(i)aver Then Print score(i)Next i,已知数组中放了5个数,输出其中的最大值,并输出最大值的位置。,Dim d(5)as integeri=1K=d(i)N=iDo while ik then K=d(i)N=iEndifi=i+1LoopPrint k,n,Dim d(5)as integeri=1K=d(i)N=iD

38、o while ik then K=d(i)N=iEndifLoopPrint k,n,斐波那契数列,Dim A(60)As SinglePrivate Sub Command1_Click()A(1)=1A(2)=1For i=1 To 58A(i+2)=A(i+1)+A(i)Next iPrint A(60),阶乘累加,s=0For i=1 To 10t=1For j=1 To i t=t*jNext j s=s+tNext iPrint s,基本程序结构的N-S图 1.顺序结构N-S图,2.选择结构N-S图,3.循环结构N-S图 1)当型循环,2)直到型循环,判断素数1,Input ni

39、=2f=TrueDo While i n If n Mod i=0 Then f=False endif i=i+1 Loop If f Then Print 是素数 Else Print 不是素数 End If,Input ni=2f=TrueDo While i n If n Mod i=0 Then f=False Exit do endif i=i+1 Loop If f Then Print 是素数 Else Print 不是素数 End If,判断素数2,Input n i=2Do While i Sqr(n)Then Print 是素数 Else Print 不是素数 End I

40、f,输出100以内的素数,For n=2 To 100i=2f=TrueDo While i nIf n Mod i=0 Then f=False i=i+1 Loop If f Then Print n End If Next n,冒泡排序1(升序),Dim d(4)As Integerd(1)=5d(2)=4d(3)=3d(4)=2For i=1 To 3 For j=4 To i+1 Step-1 If d(j)d(j-1)Then x=d(j)d(j)=d(j-1)d(j-1)=x End If Next jNext iPrint d(1),d(2),d(3),d(4),冒泡排序1(降

41、序),Dim d(4)As Integerd(1)=3d(2)=28d(3)=27d(4)=5For i=1 To 3For j=4 To i+1 Step-1If d(j)d(j-1)Thenx=d(j)d(j)=d(j-1)d(j-1)=xEnd IfNext jNext iPrint d(1),d(2),d(3),d(4),冒泡排序2,Dim d(4)As Integerd(1)=5d(2)=4d(3)=3d(4)=2For i=3 To 1 Step-1 For j=1 To i If d(j)d(j+1)Then x=d(j)d(j)=d(j+1)d(j+1)=x End If Ne

42、xt jNext iPrint d(1),d(2),d(3),d(4),任意十个数升序排序,Dim d(10)As IntegerFor k=1 To 10 Input d(k)Next kFor i=1 To 9For j=10 To i+1 Step-1If d(j)d(j-1)Thenx=d(j)d(j)=d(j-1)d(j-1)=xEnd IfNext jNext I For k=1 To 10Print d(k)Next k,顺序查找,Dim d(5)As IntegerInput Keyd(1)=35:d(2)=24:d(3)=63:d(4)=12:d(5)=62flag=0i=1

43、Do While i=5 And flag=0 If d(i)=Key Then flag=ii=i+1Loop If flag=0 Then Print 没有找到 Else Print 第&flag&个数据是你要找的。End If,Print Int(3/2)1Print Fix(3/2)1 Print 3 2 1Print Int(-3/2)-2Print Fix(-3/2)-1Print-3 2-1 Print Int(5/4)1Print Fix(5/4)1 Print 5 4 1,对分查找,Dim d(5)As IntegerInput Keyd(1)=15:d(2)=24:d(3)

44、=33:d(4)=52:d(5)=62L=1:R=5:flag=0Do While L=R And flag=0 m=Fix(L+R)/2)m=int(L+R)/2):m=(L+R)2 If d(m)=Key Then flag=m Else If Key d(m)Then R=m-1 Else L=m+1 End If End If Loop If flag=0 Then Print 没有找到 Else Print 第&flag&个数据是你要找的。End If,选择排序,Dim d(4)As Integerd(1)=3d(2)=1d(3)=7d(4)=2For i=1 To 3pos=iFor j=i+1 To 4If d(j)d(pos)Then pos=jNext jx=d(i)d(i)=d(pos)d(pos)=xNext iPrint d(1),d(2),d(3),d(4),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号