您好,欢迎访问三七文档
1多重循环与常用算法一、多重循环的执行步骤二、打印九九乘法表三、打印字符等腰三角形四、两个经典算法(1)求最大公约数与最小公倍数(2)判断素数在一个循环体内又包含了一个完整的循环结构称为循环的嵌套。循环嵌套对For循环语句和Do…Loop语句均适用。例1:星号三角形PrivateSubForm_Click()Dimi,xFori=1To9PrintTab(20-i);Forj=1To2*i-1Print*;NextjPrintNextiEndSub4例2打印九九乘法表思考:打印上三角或下三角程序如何改动?PrivateSubForm_Click()DimseAsStringPrintTab(35);九九乘法表PrintTab(35);-----------Fori=1To9Forj=1To9se=i&×&j&=&i*jPrintTab((j-1)*7);se;NextjPrintNextiEndSubEX1:打印如下排列:BBCCCDDDDEEEEEPrivateSubCommand1_Click()Fori=1To4Forj=1To___Print_________NextjPrintNextiEndSubi+1Chr(65+i);例3:三层FOR循环练习,产生并显示由数码1、2、3构成的所有三位数,并统计这些三位数的个数。PrivateSubCommand1_Click()DimxAsInteger,nAsIntegerDimaAsInteger,bAsInteger,cAsIntegern=0Fora=1To3Forb=1To3Forc=1To3x=100*a+10*b+cn=n+1Printx;IfnMod10=0ThenPrintNextcNextbNextaPrintPrint三位数的个数是;nEndSubEX2:编写如下的事件过程:PrivateSubCommand1_Click()Fori=1To4x=4Forj=1To3x=3Fork=1To2x=x+6NextkNextjNextiPrintxEndSub程序运行后,输出结果是()A)7B)15C)157D)538EX31、建立一个10×10的矩阵,该矩阵对角线元素为1,其余元素为0。13退出和结束语句1.Exit语句在VB中,有多种形式的Exit语句,用于退出某种控制结构的执行。Exit的形式如下:ExitFor、ExitDo、ExitSub、ExitFunction等。2.End语句独立的End语句用于结束一个程序的运行,它可以放在任何事件过程中。在VB中,还有多种形式的End语句,用于结束一个过程或块,在控制语句或过程中经常使用。End语句的多种形式如下:EndIf、EndSelect、EndWith、EndType、EndSub、EndFunction等,它与对应的语句配对使用。14常用算法•初等数论问题【例1】求最大公约数,最小公倍数。算法:通过辗转相除法可以求出两个正整数的最大公约数。两个正整数互相乘以对方除以最大公约数的商即为其最小公倍数。求两个正整数的最大公约数有许多方法,其中,采用辗转相除的算法为:①已知两个正整数m、n,且mn;②m除以n得余数r;③若r=0,则n为最大公约数,算法结束;否则执行步骤④;④将n赋值给m,r赋值给n,重复步骤②。PrivateSubCommand1_Click()m=Val(InputBox(请输入M的值))n=Val(InputBox(请输入N的值))IfmnThenu=m:v=nElsev=m:u=nEndIfDor=uModvu=vv=rLoopUntilr=0Printm;和;n;的最大公因数是:;uPrintm;和;n;的最小公倍数是:;m*n/uEndSub【例2】编写程序,判断一个正整数(=2)是否为素数•只能被1和本身整除的正整数称为素数。为了判断一个数n是否为素数,可以将n被2到n间的所有整数除;如果都除不尽,则n就是素数,否则n是非素数。•实际计算时,只需要判断2到就可以了nPrivateSubCommand1_Click()DimnAsInteger,iAsIntegern=Val(InputBox(输入一个大于等于2的正整数))Fori=2Ton-1IfnModi=0ThenExitForNextiIfin-1ThenPrintn;是素数ElsePrintn;不是素数EndIfEndSubEX4.编写程序,当单击“生成图形”按钮后,按用户指定的首字母和行数,生成如图5.4.3所示的由大写字母构成的图形。OptionExplicitPrivateSubCommand1_Click()DimchAsString,lnAsInteger,tempAsIntegerDimiAsInteger,jAsInteger,nAsIntegerPicture1.Clsch=UCase(Text1.Text)ln=Val(Text2.Text)k=Asc(ch)Fori=1To____Picture1.PrintTab(15-i);Forj=1To2*i-1Picture1.PrintChr(k)k=k+1IfkAsc(“Z”)Then_______NextjPicture1.PrintNextiEndSub控制行数ln起始位置换行k=65上机作业打印出3~100之间的所有素数,要求使用列表框输出。
本文标题:多重循环与常用算法
链接地址:https://www.777doc.com/doc-2505030 .html