欢迎来到天天文库
浏览记录
ID:36318222
大小:327.00 KB
页数:27页
时间:2019-05-09
《vb控制结构多重循环》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、提要多重循环常用算法重点多重循环常用算法第4章VisualBasic语言基础514.7.5多重循环——循环嵌套ForI=1to5Step1……NextIForJ=1to3Step1……NextJ一个循环结构的循环体内包含了另一个循环结构.嵌套一层称为二重循环多重循环中遇ExitFor(Do),只跳出当前一层循环.2讨论多重循环内、外循环的循环变量不可同名.内、外循环不可交叉(外循环完全包含内循环).执行次数当外循环执行一次,内循环全部执行.内循环执行总次数=外循环次数×内循环次数ForI=1to5Step1……NextIForJ=1to3Step1…
2、…NextJForI=1to5Step1……NextIForI=1to3Step1……NextI错误正确ForI=1to5Step1……NextJForJ=1to3Step1……NextI3Fori=1to6step1Print"*"NextiFori=1to6step1Print"*";Nexti问题1:要求利用循环结构在一列打印6个“*”问题2:要求利用循环结构在一行打印6个“*”,如何修改?归纳:分隔符“;”——使多个内容一个个紧跟着打印输出4Fork=1To3NextkFori=1to6Print"*";NextiPrint问题3:打印3行,
3、每行6个“*”,如何解决?Fori=1To6Step1Print"*";NextIPrintFori=1To6Step1Print"*";NextiPrintFori=1To6Step1Print"*";Nexti循环嵌套结构结论单层循环:控制一行上的所有列,采用“紧凑”方式输出;双层循环:内循环控制一行上的所有列,外循环控制所有行.5ForI=1To9ForJ=1To9NextIEndSubForJ=1To9PrintJ;"x";1;"=";1*J;NextJ示例:打印九九乘法表.PrintJ;"x";1;"=";1*J;PrintJ;"x";I;
4、"=";I*J;Print输出一行所有列之后能换行6ForI=1To9ForJ=1To9PrintJ;"x";I;"=";I*J;NextJPrintNextI思考:打印上三角或下三角程序如何改动?PrintTab(12*(J-1));J;"x";I;"=";I*J;说明:Tab(n)函数——后项内容在第n个字符位上输出I7课后任务:打印金字塔__(选做)PrivateSubForm_Click()Fori=0To8PrintTab(27-3*i);Forj=1ToiPrintj;NextjForj=i+1To1Step-1Printj;NextjP
5、rintNextiEndSub8课堂思考素数是一个大于2且只能被1和本身整除的整数.判别一个数n是否为素数的方法:对于n从i=2,3,…,n-1判别n能否被i整除,只要有一个能整除,n不是素数,否则n是素数。算法1:素数——不能被2∽n-1的其中一个整数整除优化算法1:素数——不能被2∽n/2的其中一个整数整除优化算法2:素数——不能被2∽Sqr(n)的其中一个整数整除问题:判断一个数n是否为素数9判断一个数n是否为素数?Fori=2ton-1ifnmodi=0thenExitFor'被整除NextiExitFor退出当前循环Ifi>n-1thenP
6、rintn;“是素数”ElsePrintn;“是非素数”EndifInt(sqr(n))10Forn=101To300Step2Nextn要求:输出100∽300之间的所有素数.Fori=2ToInt(Sqr(n))IfnModi=0ThenExitForNextiIfi>Int(Sqr(n))Printn;“是素数”课后任务1111.最大、最小值——课本P12(打擂台)若干数求最大值,一般先假设第一个数为最大值初值;然后将剩余的每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较.(求最小值:方法相同)Dimx%,Max%x=I
7、nt(Rnd*101+100)Max=xFori=2To5x=Int(Rnd*101+100)Ifx>MaxThenMax=xNextiPrint"最大值=";Max问题:随机产生5个100~200之间的整数,求最大值.4.8常用算法若求最小值和平均值?12计算1∽100的3或7的倍数的和计算3∽10的乘积思考:若把变量S的初值语句放置在循环体内的首行位置,程序运行时会产生什么情况?S=?2.累加、连乘、计数__课本P12S=0ForI=1To100IfIMod3=0OrIMod7=0ThenS=S+Ik=k+1EndIfNextIPrintS,kS
8、=1ForI=3To10S=S*INextIPrintS计数器累加器连乘器S=0IfIMod3=0OrIMo
此文档下载收益归作者所有