1、VB嵌套循环“九九乘法表”程序运行界面:代码PrivateSubForm_click()Dimi,jAsIntegerDimsAsStringPrintTab(34);九九乘法表Fori=1To9Forj=1Tois=j&i&=&i*jPrintTab(j-1)*9+1);s;NextjPrintNextiEndSub复习:复习:循环结构也称重复结构,它的作用是使一段程序能重复执行,被重复执行的部分称为循环体。但重复一般都是有条件的,即在满足FOR语句中的条件下才执行循环体,否则退出循环体。“FORNEXT”语句的语句格式语句的语句格式:For 循环变量循环变量=初值初值 to 终值终值 st
2、ep 步长步长 循环体循环体Next 循环变量循环变量应用循环结构的具体实例应用循环结构的具体实例:1、完善程序,使得程序运行时,单击命令按钮后在窗体中、完善程序,使得程序运行时,单击命令按钮后在窗体中显示显示1到到100之间的奇数和:之间的奇数和:Privatesubcommand1_click()DimSasintegerDimiasintegerS=_Fori=1to100step_NextiprintsEndsub2、编写程序,实现一行、编写程序,实现一行“*”的打印(如下):的打印(如下):*Privatesubform_click()DimjasintegerForj=_to_Pr
3、int“*”;(;有什么作用?)NextjEndsub提出问题提出问题:若要在若要在VB窗体输出如下的图形,该如何实现?窗体输出如下的图形,该如何实现?*提示:提示:把把每行每行看做一个看做一个“整体整体”,问题就转化为:问题就变成打印问题就转化为:问题就变成打印4个个“整体整体”,每打印完一个,需换一,每打印完一个,需换一行。行。即:即:For i=1 to 4 打印打印“一行一行*”Print Next i把把打印打印“一行一行*”,用复习题,用复习题2所编写的代码代所编写的代码代替替.For i=1 to 4 For j=1 to 5 Print“*”;Next j PrintNext
4、i由此总结二重循环语句格式:由此总结二重循环语句格式:for 循环变量循环变量=初值初值 to 终值终值 step 步长步长 for 循环变量循环变量=初值初值 to 终值终值 step 步长步长 循环体循环体 next 循环变量循环变量 next 循环变量循环变量进一步分析程序代码:进一步分析程序代码:For i=1 to 4 For j=1 to 5 Print“*”;Next j PrintNext i进一步分析进一步分析i 的变化范围是的变化范围是1到到4,即为外循环变量,用来,即为外循环变量,用来控制打印的行数;控制打印的行数;j的变化范围是的变化范围是1到到5,即为内循环变量,即为
5、内循环变量,用来控制每行打印的字符数,这样内外循环变量(用来控制每行打印的字符数,这样内外循环变量(i,j)就有了实际意义,即就有了实际意义,即i控制行数,控制行数,j控制每行字符数。控制每行字符数。二重循环执行过程:外循环每执行一次,内循环执行一遍二重循环执行过程:外循环每执行一次,内循环执行一遍二重循环执行过程:外循环每执行一次,内循环执行一遍二重循环执行过程:外循环每执行一次,内循环执行一遍1、请大家上机练习,用二重循环打印一个、请大家上机练习,用二重循环打印一个6行行5列的列的“*”图形图形Private sub form_click()Dim i as integerDim j as
6、 integerFor i=_ to _ For j=_ to _ Print“*”;Next j PrintNext iEnd sub 显然这里的矩阵图形是一个规则的图形(每显然这里的矩阵图形是一个规则的图形(每行字符数相同),如果是一个三角形(每行行字符数相同),如果是一个三角形(每行字符数不同)如何打印呢字符数不同)如何打印呢?*2、在VB窗体上打印如下的图形(每行字符每行字符数不同数不同):*Private sub form_click()Dim i as integerDim j as integerFor i=_ to _ For j=_ to _ Print“*”;Next j
7、PrintNext iEnd sub3、在VB窗体上打印如下的图形(每行字符每行字符数不同,每行起始数不同,每行起始*位置不同位置不同):*这里要用到一个这里要用到一个Tab函数,此函数用来控函数,此函数用来控制输出字符的位置制输出字符的位置跟刚才分析方法一样,建立变量间的关系跟刚才分析方法一样,建立变量间的关系式,如下表:式,如下表:i起始*位置(n)j141232323414根据此表,用数学中一次函数思想(根据此表,用数学中一次函数思想(i为自变量,为自变量,j为函数值,为函数值,n为函数值)来建为函数值)来建立立j和和i关系表达式,关系表达式,n和和i的关系表达式。从而得到的关系表达式。
8、从而得到 j=i,n=5 i具体代码如下:具体代码如下:Private sub form_click()Dim i as integerDim j as integerFor i=_ to _ Print Tab(5-i)For j=_ to _ Print“*”;Next j PrintNext iEnd sub练习:1、在vb窗体打印如下图形:*Private sub form_click()Dim i as integerDim j as integerFor i=_ to _ Print Tab()For j=_ to _ Print“*”;Next j PrintNext iEnd
9、sub2、在vb窗体打印如下图形:*Private sub form_click()Dim i as integerDim j as integerFor i=_ to _ Print Tab()For j=_ to _ Print“*”;Next j PrintNext iEnd sub 2i-13、打印如下图形:*Private sub form_click()Dim i as integerDim j as integerFor i=_ to _ Print Tab()For j=_ to _ Print“*”;Next j PrintNext iEnd sub4、打印如下图形:Priv
10、ate sub form_click()Dim i as integerDim j as integerFor i=_ to _ Print Tab()For j=_ to _ Print“*”;Next j PrintNext iEnd sub5、设计一个程序,打印下面所示图案、设计一个程序,打印下面所示图案:*思考提示:思考提示:(1)如果我们以图形的第6行为X轴的话,图形的上半部分是否是关于下半部分对称。(2)由于图案上下对称,上下对应的起始位置和字符个数完全一致,所以控制输出行数的循环变量是否也可以对称呢?(3)以哪一行作为对称轴,外循环变量i的取值范围应为多少?(4)第i行的起始位置
11、还可以为tab(i+6)吗?要用到什么函数?(5)第i 行的字符个数为多少,能否写成 2*(6-i)-1 的形式。如果写成上述形式会出现什么情况,应该用哪个函数?代码如下:Privatesubform_click()DimiAsIntegerDimjAsIntegerFori=-5To5PrintTab(Abs(i)+6);Forj=1To2*(6-Abs(i)-1Print*;NextjPrintNextiEndsub小结:小结:本节课重在掌握循环的嵌套,通过各种图案的输出,让学生掌握嵌套循环的应用,要学会分析复杂的程序设计问题,并能综合运用vb的三种程序控制结构:顺序结构、分支结构和循环结构的运用。(七)课后思考练习(七)课后思考练习由学生课后单独思考并写好开头“九九乘法表”的程序及课本第40页实践(1)的程序。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1