-VB课件第4章循环结构-PPT

PPT
  • 阅读 67 次
  • 下载 0 次
  • 页数 59 页
  • 大小 310.012 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
-VB课件第4章循环结构-PPT
可在后台配置第一页与第二页中间广告代码
-VB课件第4章循环结构-PPT
可在后台配置第二页与第三页中间广告代码
-VB课件第4章循环结构-PPT
可在后台配置第三页与第四页中间广告代码
-VB课件第4章循环结构-PPT
-VB课件第4章循环结构-PPT
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 59
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】-VB课件第4章循环结构-PPT.ppt,共(59)页,310.012 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-3255.html

以下为本文档部分文字说明:

采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。本章主要内容循环语句For...Next/Do...Loop/While...Wend循

环出口语句(Exit)多重循环程序举例4.3循环结构设计循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。VB提供的循环语句有:For...NextDo...LoopWhile/UntilDoWhile/Until...LoopW

hile...Wend最常用的是For...Next和Do...Loop语句按指定次数执行循环体4.3.1For...Next循环循环变量超过终值?FT循环变量增加步长循环体循环变量获得初值格式:For循环变量=初值To终

值[Step步长值]循环体Next循环变量功能:当循环变量的值在初值到终值范围内时,执行一次循环体的语句代码,并使初值增加一个步长。当循环变量的值不在初值到终值范围内时,就退出循环,执行Next后面的语句。说明:循环变量是一个数值变量,初值、终值和步长值都是数值表达式,步长值可以是正数(称

为递增循环),也可以是负数(称为递减循环);若步长值为1,则Step1可以省略。说明:循环次数的一般计算公式:Int((终值-初值)/步长)+1事先已知循环次数,则可使用For-Next循环结构语句—

—计数循环PrivateSubForm_Load()ShowDimsumAsInteger计算1至100的和,存放在sum中’显示结果Print"sum=";sumEndSubsum=sum+1sum=sum+2……sum=sum+100sum=sum+ii=1~100

采用Print直接在窗体上输出结果PrivateSubForm_Load()ShowDimsumAsIntegerDimiAsIntegerFori=1To100sum=sum+iNextiPrint"sum=";sumEndSubY

esNosum=sum+ii=1i<=100i=i+1执行过程:Fori=1To100sum=sum+iNexti示例2:求T=8!=1×2×3×…×8采用Print直接在窗体上输出结果,程序代码:PrivateSubFo

rm_Load()Showt=1Forc=1To8t=t*cNextcPrint"T=";tEndSub程序运行结果是:T=40320语句t=t*c也称累乘器。先将t置1(不能置0)。在循环程序中,常用累加器和累乘器来完成各

种计算任务。如果要求N!呢???思考:x=5Fori=1To20Step5x=x+i\5Nexti思考:s=5Fori=2.6To4.9Step0.6s=s+1Nexti思考:PrivateSubForm_

Click()x=5:k=5Fork=1To10Step-2x=x+kNextkPrintk;xEndSub思考:PrivateSubForm_Click()DimsumAsDouble,xAsDoublesum=0n=0Fori=1T

o5x=n/in=n+1sum=sum+xNextiEndSub下面采用“穷举法”来解此题。其做法是:从所有可能解中,逐个进行试验,若满足条件,就得到一个解,否则不是。直到条件满足或判别出无解为止。令母鸡为x只,小鸡为y只,根据题意可知y=100–x开

始先让x初值为1,以后逐次加1,求x为何值时,条件3x+y/3=100成立。如果当x达到33时还不能使条件成立,则可以断定此题无解。示例3:100元买100只鸡,母鸡3元1只,小鸡1元3只,问各应买多少只?采用Print直接在窗体上输出结果,程序代码:Priva

teSubForm_Load()DimxAsInteger,yAsIntegerShowForx=1To33y=100-xIf3*x+y/3=100ThenPrint"母鸡只数为:";x,Print"小鸡只数为:";yEndIfNextx

EndSub运行结果:母鸡只数为:25小鸡只数为:75For...Next循环主要是用在知道循环次数的情况下,若事先不知道循环次数,可以使用Do...Loop循环。Do...Loop两种格式:前测型循环结构和后测型

循环结构。两者区别在于判断条件的先后次序不同。4.3.2Do...Loop循环语句循环体F条件T先判断循环条件,再执行循环体语句。1.前测型Do...Loop循环格式:Do[{While|Until}条件

]循环体LoopDoWhile...Loop语句的功能:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环。DoUntil...Loop语句的功能:当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环。1.前测型Do...Loop循环PrivateSubFor

m_Load()DimsumAsInteger,iAsIntegerShowi=1DoWhilei<=100sum=sum+ii=i+1LoopPrint"s=";sumEndSub’进入循环之前赋初值’改变循环变量的值示例4:采用DoWhile...Loop语句改写示例

1Fori=1To100Step1sum=sum+iNexti先执行循环体语句,再判断循环条件。循环体条件YN2.后测型Do...Loop循环格式:Do循环体Loop[{While|Until}条件]功能:先执行循环体,然后判断条件,根据条件决定是否继续执行循环。注意:本语句执

行循环的最少次数为1,而前测型Do...Loop语句的最少次数为0(即一次都不执行循环)。2.后测型Do...Loop循环思考:运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()s=0Dos=(s+1)*(s+2)Nu

mber=Number+1LoopUntils>=30PrintNumber;sEndSubA)01B)3030C)430D)3182运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()b=1a=2DoWhileb<10b=2*a+bLoopPrintbEnd

SubA)13B)17C)21D)33运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()E=1:F=1Forj=1To3E=E+F:F=F+ENextjprintE;FEndSubA)

66B)58C)1321D)3455分析:本题可用“累加”的方法来完成,设累加的和为变量s,累加项为i^2,则累加的语句可写为:s=s+i^2采用DoWhile…Loop语句:PrivateSubForm_Click()Dimi

AsInteger,sAsLongi=1s=0Dowhilei<=10s=s+i^2i=i+1LoopPrint―s=‖;sEndSub示例5:用Do…loop语句求s=12+22+…+102―辗转相除法”算法:求出m/n余数p,若p=0,n即为最大公约数

;若p非0,则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解。设计步骤如下:(1)创建应用程序的用户界面和设置对象属性示例6:输入两个正整数,求它们的最大公约数编写的“计算”按钮Click事件过程代码如下:PrivateSubCommand1_Click()DimmAsInteg

er,nAsInteger,pAsIntegerm=Val(Text1.Text):n=Val(Text2.Text)Ifm<=0Orn<=0ThenMsgBox"数据错误!"EndEndIfDop=mModnm=nn=pLoopWhilep<>0Text3.Text=mEndSub若输入的m

和n的值为85和68,则运行结果如上图用于提前退出循环格式:Exit{For|Do}功能:直接从For循环或Do循环中退出。当程序运行时遇到Exit语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句(Next、Loop)的下面继续执行。4.3.3循环出

口语句示例5的循环语句可改为:Dop=mModnIfp=0ThenExitDoEndIfm=nn=pLoopWhilep<>0Text3.Text=mn格式:While条件循环体Wend功能:当条件成立(为真)时,执行循环体;当条件不成立(为假)时,终止循环。本语句与上述

DoWhile...Loop循环语句相似4.3.4While...Wend循环语句用下面的公式求π的近似值(直到最后一项的绝对值小于10-6为止):分析先计算等式右边的和累加求和:pi=pi+t当

|t|<10-6时,停止累加用Do…loop循环实现...71513114π示例7:求π的近似值采用Print直接在窗体上输出结果,程序代码如下:PrivateSubForm_Click()DimsAsIntegerDimpiAsSingle,nAsI

nteger,tAsSinglepi=0:n=1:t=1s=1's表示加或减运算DoWhileAbs(t)>=0.000001pi=pi+tn=n+2s=-s‗交替改变加、减号t=s/nLoopPrint"π=";pi*4EndSub程序运行结果是:π=3.141575示例7:求π的近似

值思考:PrivateSubForm_Click()ForI=7to90step5printInextIEndSub上述程序共执行执行循环体的次数是()A)14B)15C)16D)17运行下列程序,单击窗体,则执行结

果是()PrivateSubForm_Click()Forj=1To15a=a+jMod3NextjPrintaEndSubA)1B)15C)90D)120运行下列程序,单击窗体,则执行结果是()PrivateSubForm_Click()Forj=1To3P

rintTab(3*j);(2*j-1)*(2*j-1)NextjPrintEndSubA)1B)1610C)1925D)1691025运行下列程序,单击窗体,则执行结果是PrivateSubForm_Click()s=0i=1

DoWhilei<=100If(i\5)*5=iThens=s+1i=i+1EndIfLoopPrintsEndSub运行下列程序,单击窗体,则执行结果是PrivateSubForm_Click()s=0i=1Do

Whilei<=100If(i\5)*5=iThens=s+1i=i+1elsei=i+1EndifLoopPrintsEndSub在窗体上放置一个命令按钮,然后编写如下事件过程:PrivateSubCommand1

_Click()x=5Fori=1to20Step2x=x+i\5nextiPrintxEndSub程序运行后,单击命令按钮,输出结果为()A)21B)22C)23D)24运行下列程序,单击窗体,则执行结果是()PrivateSubForm_C

lick()Forj=1To10a=a+j\3+jMod3NextjPrintaEndSubA)20B)25C)30D)35习题:依次输入5、4、3、2、1、-1PrivateSubCommand_Click()X=0DoUntilx=-1a=InputBox(“请输入A的值”)a=Val(a

)b=InputBox(“请输入B的值”)b=Val(b)x=InputBox(“请输入X的值”)x=Val(x)a=a+b+xprintaLoopEndSub输出两个结果,分别是12和2习题:依次输入5、4、3、2、1、-1PrivateSubCommand_Click()X=0

DoUntilx=-1a=InputBox(“请输入A的值”)a=Val(a)b=InputBox(“请输入B的值”)b=Val(b)x=InputBox(“请输入X的值”)x=Val(x)a=a+b+xLoopprintaEndSub输出结果只有一个,是2给定VB程序的功能是计算并输

出100以内的所有能被3整除且个位数是6的所有整数,请将程序补充完整。PrivateSubForm_Click()Dimi,jAsIntegerFori=0To______j=i*10+6If___________ThenPrintjEndIf

NextiEndSub9jMod3=0设计一个“加法器”程序,把每次输入的数累加,直到输入非数值数据为止。PrivateSubForm_Click()DimSumAsDouble,xAsString,yAsDoubleSum=0DoWhileTrue'条件为真,循环无终止进

行下去x=InputBox("请输入要加入的数","输入数据")IfIsNumeric(x)=FalseThenExitDoEndIfy=Val(x)Sum=Sum+yText1.Text=SumLoopMsgBox"累加运算结束”EndSub示例8:设计一个“加法器”程序当一个循环里面包含有另一

个完整的循环时,称为循环的嵌套。循环的嵌套对For循环和Do…Loop循环均适用。多重循环程序示例程序运行结果PrivateSubForm_Load()15Show16Fori=1To3‗外循环17Forj=5To7‘内

循环25Printi,j26Nextj27Nexti35EndSub36374.3.5循环的嵌套-多重循环结构嵌套循环应注意的问题DoForDoLoopNextLoop二重循环三重循环For和Do循环可以混合嵌套,但是各循环间不得交叉。下例是非法的循环嵌套。ForI…Fo

rJ……NextINextJ就和我们一层层的包裹东西是一样的!错!!!这些都对了!思考:运行下列程序,单击窗体,则运行结果是___。PrivateSubForm_Click()Forx=1To2a=0Fory=1Tox+1

a=a+1NextyPrinta;NextxEndSub结果是23运行下列程序,单击窗体,则运行结果是___。PrivateSubForm_Click()N=0ForI=1To3ForJ=5To1Step-1N=N+1N

extJ,IPrintN;J;I结果是1504本例可采用两重循环来实现。外循环控制输出7行,内循环控制每行输出要求的字符数。在进入内循环之前,使用Tab()来对起始输出位置定位,退出内循环后,使用Print来控制换行。示例9:编一程序,输出下列

所示的图形采用Print直接在窗体上输出结果,程序代码如下:PrivateSubForm_Load()ShowFori=1To7PrintTab(8-i);Forj=1To2*i-1PrintCStr(i);NextjPrintNextiEndSub注意:内循环变量和外循环变量不

能同名For…Next前测型s=0s=0:k=1Fork=1to10DoWhilek<=10s=s+ks=s+kNextkk=k+1PrintsLoopPrintss=0:k=1dos=s+kk=k+1LoopWhilek<=10Prints4.3.6三种循环语句比较后测

型4.3.7循环结构应用程序举例累加、累乘求多项式求两个自然数的最大公约数求素数Fibonacci数列求最大值或最小值问题打印“乘法九九表”……程序代码:PrivateSubForm_Click()Dimf1aslong,

f2aslongDimiaslongf1=1:f2=1Fori=1To6Printf1,f2,ifiMod2=0thenPrintf1=f1+f2f2=f2+f1NextiEndSub运行结果:112358132163455891

44示例10求Fibonacci数列的前12个数(每行4个数)分析:f1=1(n=1)f2=1(n=2)fn=f(n-1)+f(n-2)(n>=3)PrivateSubForm_Click()DimxAsInt

eger,aAsInteger,cAsIntegerDimcountAsIntegercount=0Forx=100To999a=x\100:b=x\10Mod10:c=xMod10Ifa<>bAnda<>cAndb<>cThencount=count+1Printx;Ifco

untMod10=0ThenPrintEndIfEndIfNextxEndSub示例11统计无重复的三位数,如102、103示例12求最大值或最小值问题求班级学生某一门课成绩的最高分这就是一个求最大值的问题。先假设第一个成绩就是班级最高分,然后从第二个成绩开始依次与假设的最高分比较,若有高

于它的,则更新最高分,否则继续下一个成绩的比较,直至最后一个成绩PrivateSubForm_Click()DimscoreAsSingle,maxassinglescore=Val(InputBox("请输入第"&1&"个学生的成绩:"))Max=scoreF

ori=2To20'假设班级人数为20人score=Val(InputBox("请输入第"&i&"个学生的成绩:"))Ifscore>MaxThenMax=scoreNextiPrintPrint"最高分为";

MaxEndSubPrivateSubForm_Click()DimiAsInteger,jAsIntegerFori=100To200Forj=2Toi-1IfiModj=0ThenExitForEndIfNextjIfj=iThenPrinti;EndIfNextiEndS

ub示例13输出100-200之间的所有素数示例14:打印“九九乘法表”两重循环;采用Print直接在窗体上输出结果PrivateSubForm_Load()ShowFontSize=12PrintTab(55);"九九乘法表

"PrintTab(55);"----------"PrintFori=1To9Forj=1To9Ifi*j>=10ThenPrinti;"*";j;"=";i*j;Space(1);ElsePrinti;"*";j;"=";

i*j;Space(2);EndIfNextjPrintNextiEndSub示例14:打印“九九乘法表”?示例14:打印“九九乘法表”

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?