《VB程序设计》主题讲座主题:循环结构程序设计的三种基本结构顺序结构选择结构循环结构循环结构计数型循环For…Next知道循环次数条件型循环Do…Loop只知道循环条件,不知道循环次数知己知彼,才能百战百胜1.设置断点2.选择【调试】→【窗口】→【自动窗口】3.选择【调试】→【逐语句】或按F84.观察每一次自动窗口中的变化1.下列程序段的循环结构执行过程中共循环了几次。Dimi%,y%Fori=1To10Step2y=y+iNexti2.写出Dimi,cAsIntegerc=0Fori=-12To-33Step-4c=c+1Nexti所进行的循环后,i的值是。3.下段程序执行的输出结果是。Dimt,u,i,jAsIntegert=0:u=0Fori=1To3Forj=1Toit=t+1Nextju=u+1NextiMsgBox(Str(t)&&Str(u))4.下段程序执行的输出结果是。Dimk,n,mAsIntegern=10m=1k=1DoWhilek=nm=m+2k=k+1LoopMsgBox(m)5.猴子摘了一堆桃子,第一天吃了一半,还嫌不过瘾,又吃了一个。第二天又将剩下的桃子中吃了一半零一个。以后每天如此。到第十天清早,只剩下一只了。问最初有多少只桃子。循环初始条件桃子数s=1如何构成循环?Fori=9To1Step-1……Nexti循环中反复做的是什么?s=(s+1)*2Dimi,sAsIntegers=1Fori=9To1Step-1s=(s+1)*2NextMsgBox(s)6.小英家的门牌号码是一个三位数,其特点是,末位数字比首位数字大,而首位数字又比中间数字大,且各位数字相加之和等于各位数字相乘之积。请编程找出这个门牌号码。主要解决的问题:哪些数是三位数?100~999Fornum=100To999……Nextnum已知num是一个三位数,请写出它的三位数字相应的表达式百位a=num\100十位b=num\10–a*10个位c=nummod106.小英家的门牌号码是一个三位数,其特点是,末位数字比首位数字大,而首位数字又比中间数字大,且各位数字相加之和等于各位数字相乘之积。请编程找出这个门牌号码。Dimnum,a,b,cAsIntegerFornum=100To999a=num\100b=num\10-a*10c=numMod10IfcaAndabAnda+b+c=a*b*cThenLabel1.Text=小英家的门牌号是:&numEndIfNextnum7.求出所有水仙花数的程序(如果一个三位整数等于其各位数字的立方和,则该数为水仙花数。例如,371是水仙花数,因为371=33+73+13)。主要解决的问题:哪些数是三位数?已知num是一个三位数,请写出它的三位数字相应的表达式程序代码???Dimnum,a,b,cAsIntegerFornum=100To999a=num\100b=num\10-a*10c=numMod10Ifnum=a^3+b^3+c^3ThenTextBox1.Text&=num&vbTabEndIfNextnum8.输入一个数,判断它是否是素数定义:所谓素数是指只能被1和本身整除的正整数。如何判断某一个数n是否为素数:只需用2~n-1之间的数去除就可以了。为了提高效率可以将2~n-1改为2~n/2,或2~Int(Sqrt(n))如何判断n不能被2~n-1之间的数整除:对于某一个数n,设置变量flag的初值为True;(循环)用2~n-1之间的数去除,如果n能被其中任何一个整数整除,则将flag设为False。在循环之后判别flag的值是否是True,若是,说明没有被2~n-1中任何一个整数整除,就是素数。Dimn,iAsInteger,flagAsBooleanN=inputbox(“n:”)flag=TrueFori=2Ton–1IfnModi=0Thenflag=FalseNextiIfflagThenLabel1.Text=n&“是素数“ElseLabel1.Text=n&“不是素数“EndIf输出3~300之间所有素数Forn=3To300‘判断n是否是素数,若是则输出NextnForn=3To300flag=TrueFori=2Ton–1IfnModi=0Thenflag=FalseNextiIfflagThenLabel1.Text=n&“是素数“ElseLabel1.Text=n&“不是素数“EndIfNextnDimn,iAsInteger,flagAsBooleanForn=3To300flag=TrueFori=2Ton–1IfnModi=0Thenflag=FalseNextiIfflagThenTextBox1.Text&=n&vbTabEndIfNextn9.计算要求:1)使用InputBox()函数输入x和项数n。2)输出前n项的计算结果。循环初始条件s=1以及为计算第2项item准备如何构成循环?Fori=2Ton……Nexti循环中反复做的是什么?计算items=s+item为下一项item做准备......!76!54!321753xxxs用变量f表示符号-1,1,-1,1,……初值为-1,计算下次循环的值f=-f用变量t1表示2,4,6,……初值为2,计算下次循环的值t1=t1+2用变量t2表示x3,x5,x7,……初值为x3,计算下次循环的值t2=t2*x*x用变量k表示3,5,7,……初值为3,计算下次循环的值k=k+2用变量t3表示3!,5!,7!,……初值为3!,计算下次循环的值t3=t3*(k-1)*kitem=f*t1*t2/t3Dimi,n,k,t1,fAsIntegerDimx,s,item,t2,t3AsDoublex=Val(InputBox(x)):n=Val(InputBox(n))s=1f=-1:t1=2:t2=x*x*x:k=3:t3=1*2*3Fori=2Tonitem=f*t1*t2/t3s=s+itemf=-f:t1=t1+2:t2=t2*x*xk=k+2:t3=t3*(k-1)*kNextMsgBox(Format(s,0.000000))10.计算下列公式的近似值。(0X1,X由键盘输入)当某项的绝对值小于0.0001时,该项及以后各项不再累加。这时就完成了S的计算。循环初始条件s=0:item=1以及为计算第2项item准备如何构成循环?DoWhileMath.Abs(item)=0.0001……Loop循环中反复做的是什么?s=s+item计算item为下一项item做准备用变量f表示符号-1,1,-1,1,……初值为-1,计算下次循环的值f=-f用变量t1表示x,x3,x5,x7,……初值为x,计算下次循环的值t2=t2*x*x用变量t2表示1,3,5,7,……初值为1,计算下次循环的值t2=t2+2item=f*t1/t2Dimi,t2,fAsIntegerDimx,s,item,t1AsDoublex=Val(InputBox(x))s=0:item=1f=-1:t1=x:t2=1DoWhileMath.Abs(item)=0.0001s=s+itemitem=f*t1/t2f=-f:t1=t1*x*xt2=t2+2LoopMsgBox(Format(s,0.000000))