VB控制结构多重循环.ppt_第1页
VB控制结构多重循环.ppt_第2页
VB控制结构多重循环.ppt_第3页
VB控制结构多重循环.ppt_第4页
VB控制结构多重循环.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,提要多重循环常用算法重点多重循环常用算法,第4章VisualBasic语言基础5,2,4.7.5多重循环循环嵌套,ForI=1to5Step1NextI,ForJ=1to3Step1NextJ,一个循环结构的循环体内包含了另一个循环结构.嵌套一层称为二重循环多重循环中遇ExitFor(Do),只跳出当前一层循环.,3,讨论多重循环,内、外循环的循环变量不可同名.内、外循环不可交叉(外循环完全包含内循环).执行次数当外循环执行一次,内循环全部执行.内循环执行总次数=外循环次数内循环次数,错误,正确,4,Fori=1to6step1PrintNexti,Fori=1to6step1Print;Nexti,问题1:要求利用循环结构在一列打印6个“”,问题2:要求利用循环结构在一行打印6个“”,如何修改?,归纳:分隔符“;”使多个内容一个个紧跟着打印输出,5,Fork=1To3Nextk,Fori=1to6Print;NextiPrint,问题3:打印3行,每行6个“”,如何解决?,Fori=1To6Step1Print;NextIPrintFori=1To6Step1Print;NextiPrintFori=1To6Step1Print;Nexti,循环嵌套结构,结论单层循环:控制一行上的所有列,采用“紧凑”方式输出;双层循环:内循环控制一行上的所有列,外循环控制所有行.,6,ForI=1To9ForJ=1To9NextIEndSub,ForJ=1To9PrintJ;x;1;=;1*J;NextJ,示例:打印九九乘法表.,PrintJ;x;1;=;1*J;,PrintJ;x;I;=;I*J;,Print,输出一行所有列之后能换行,7,ForI=1To9ForJ=1To9PrintJ;x;I;=;I*J;NextJPrintNextI,思考:打印上三角或下三角程序如何改动?,PrintTab(12*(J-1);J;x;I;=;I*J;,说明:Tab(n)函数后项内容在第n个字符位上输出,I,8,课后任务:打印金字塔_(选做),PrivateSubForm_Click()Fori=0To8PrintTab(27-3*i);Forj=1ToiPrintj;NextjForj=i+1To1Step-1Printj;NextjPrintNextiEndSub,9,课堂思考,素数是一个大于2且只能被1和本身整除的整数.判别一个数n是否为素数的方法:对于n从i=2,3,n-1判别n能否被i整除,只要有一个能整除,n不是素数,否则n是素数。算法1:素数不能被2n-1的其中一个整数整除优化算法1:素数不能被2n/2的其中一个整数整除优化算法2:素数不能被2Sqr(n)的其中一个整数整除,问题:判断一个数n是否为素数,10,判断一个数n是否为素数?,Fori=2ton-1ifnmodi=0thenExitFor被整除Nexti,ExitFor退出当前循环,Ifin-1thenPrintn;“是素数”ElsePrintn;“是非素数”Endif,11,Forn=101To300Step2Nextn,要求:输出100300之间的所有素数.,Fori=2ToInt(Sqr(n)IfnModi=0ThenExitForNextiIfiInt(Sqr(n)Printn;“是素数”,课后任务1,12,1.最大、最小值课本P12(打擂台)若干数求最大值,一般先假设第一个数为最大值初值;然后将剩余的每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较.(求最小值:方法相同),Dimx%,Max%x=Int(Rnd*101+100)Max=xFori=2To5x=Int(Rnd*101+100)IfxMaxThenMax=xNextiPrint最大值=;Max,问题:随机产生5个100200之间的整数,求最大值.,4.8常用算法,若求最小值和平均值?,13,计算1100的3或7的倍数的和,计算310的乘积,思考:若把变量S的初值语句放置在循环体内的首行位置,程序运行时会产生什么情况?S=?,2.累加、连乘、计数_课本P12,S=0ForI=1To100IfIMod3=0OrIMod7=0ThenS=S+Ik=k+1EndIfNextIPrintS,k,S=1ForI=3To10S=S*INextIPrintS,计数器,累加器,连乘器,S=0IfIMod3=0OrIMod7=0ThenS=S+Ik=k+1EndIf,14,分析:每一项和每次累加之和都是变化量因此,需要两个变量用T表示每一项的值:T=T+1用S表示累加之和:S=S+T循环终止条件:循环次数n初始化:S=0,回顾:计算s=1+2+3+n,PrivatesubForm_Click()DimI%,S%,T%,n%T为每一项n=val(Inputbox(“n=”)S=0ForI=1TonT=T+1S=S+TNextIPrint“S=”;SEndSub,T=I,S=S+I,s=1234n,S=n!,S=1ForI=1TonS=S*INextI,由此可见累加问题:公式S=S+T;初值S=0连乘问题:公式S=S*T;初值S=1,15,例:计算s=11/21/31/n,分析:T表示每一项:T=1/nS表示连乘的值:S=S*T初始化:S=1思考:能否交换两者次序即:先连乘,后产生新一项?而令初值T=第一项,S=,T=,S*T,S=,T=,S*T,B=1:A=n,课堂思考,S=,T=,S*T,T可理解为通式,16,课后任务2_(实验),要求:计算的近似值,的计算公式为:,S=,T=,S*T,观察当n=10时,p=?;当n=50时,p=?;当n=100时,p=?;当n=10000时,p=比较精确.可见该公式收敛较慢.,(2*n)2/(2*n-1)*(2*n+1),B=(2*n)2:A=(2*n-1)*(2*n+1),从第二项开始才有规律可循,思考:初值S=?T=?,17,PrivateSubForm_Click()DimS#,T#,i各项逐项相加(累加):S=S+T某一项T=B/A:B=-B,A=A+2,S=,T=,S+T,B=-B:A=A+2,DoWhileAbs(T)=0.0001,Loop,A=1:B=1:T=?:S=?,课堂思考,19,例:求自然对数e的近似值,要求直到最后一项t的值小于0.00001,近似公式为:,分析:循环结束:根据最后一项T0.00001来控制各项逐项相加(累加):S=S+T某一项T=B/A:B=1A=I!(A=A*I:I=I+1),S=,T=,S+T,A=A*I:I=I+1,思考:初值T=?:s=?,从第二项开始才有规律可循,20,PrivateSubForm_Click()Dimi%,nSEndSub,21,累加/连乘算法_小结,累加初值:S=0,T=第一项通用公式:S=S+T:T=B/A连乘初值:S=1,T=第一项通用公式:S=S*T:T=B/A说明:T=B/A中的A或B均可为常量或变量表达式若A=1,则T=B若B=1,则T=1/A,22,设小鸡x只、公鸡y只、母鸡z只,列出方程:x+y+z=1000.5x+2y+3z=100可见,三个未知数,两个方程,此题有若干个解。可穷举X、Y、Z的每一种取值,符合就是其中一种方案,3.穷举法课本P12:列举各种可能情况,找出符合要求的,PrivateSubForm_click()Forx=1To100Fory=1To100Forz=1To100Ifx*0.5+y*2+z*3=100Andx+y+z=100ThenPrintx,y,zEndIfNextzNextyNextxEndSub,问题:100元买100只鸡,小鸡每只0.5元,公鸡每只2元,母鸡每只3元,可买公、母、小鸡各多少只?,23,课外思考勾股定理中3个数的关系是:a2+b2=c2。编写程序,输出20以内满足上述关系的整数组合,例如3,4,5就是一个整数组合。,24,4.递推法(课本P11),猴子吃桃子问题:猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第十天吃以前发现只剩下一个桃子,问猴子第一天共摘了几个桃子?,DimdayAsInteger,xAsInteger,yAsIntegerx=1Forday=9To1Step-1y=(x+1)*2前一天的桃子数是第2天桃子数加1的2倍x=yNextdayPrintx,分析:此问题属于“倒推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子设第n天的桃子为x,第n-1天的桃子为y,前一天的桃子数为:y=(x+1)2,25,1.多重循环的内外循环之间的联系2.常用算法:累加、最值、穷举

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论