课程名称多重循环——文本作图问题教材分析重点熟练掌握循环的嵌套,并能用双重循环结构编写有关文本作图的程序难点对双重循环的外循环和内循环的理解与应用教学目标知识目标:巩固循环的嵌套,掌握利用循环嵌套解决文本作图问题的程序设计方法能力目标:培养学生分析问题、解决问题的能力,训练学生逻辑思维和判断能力发展目标:教给学生灵活的思维方法,培养学生的学习兴趣和勇于探索、勇于创新的精神,提高综合素质教法讲授、演示与学生自己编程并演示教具多媒体(ppt)教学过程一、复习多重循环1、循环的嵌套一个循环体内包含另一个完整的循环结构,称为循环的嵌套。while语句、do-while语句和for语句都可以互相嵌套,甚至可以多层嵌套。例如:while(){for(){}}for(){for(){}}2、二重循环假设外循共循环m次,内循环共循环n次,则:•内外循环用到的循环变量名不能相同•外循环每循环1次,内循环需要完成整个n次循环•内循环的循环体共执行m×n次二、新课引入给出各种图片,引发学生的兴趣。*************************************************************122333……9999999991121123211234321……12345678987654321三、新课内容1、现场编程例1、输出以下图形**********分析1、该问题用二重循环实现2、外循环控制输出行数,for(i=1;i=n;i++)内循环实现输出列数,for(j=1;j=m;j++)3、该题行数i与列数j的关系是j=i代码#includestdio.hmain(){inti,j;for(i=1;i=4;i++){for(j=1;j=i;j++)printf(*);printf(\n);}}例2、输出以下图形**********分析1、该问题用二重循环实现2、外循环控制输出行数内循环中第一部分用循环打印空格确定打印字符的初始位置,第二部分确定每行打印符号的个数3、该题行数i与列数j的关系是j=i代码#includestdio.hmain(){inti,j;for(i=1;i=4;i++){for(j=1;j=4-i;j++)printf();for(j=1;j=i;j++)printf(*);printf(\n);}}例3、输出以下图形****************分析1、该问题用二重循环实现2、外循环控制输出行数内循环中第一部分用循环打印空格确定打印字符的初始位置,第二部分确定每行打印符号的个数3、本题图形的规律:每行“*”的个数与行数i的关系是2*i-1代码#includestdio.hmain(){inti,j,k;for(i=1;i=4;i++){for(j=1;j=4-i;j++)printf();for(k=1;k=2*i-1;k++)printf(*);printf(\n);}}2、拓展练习输出以下图形112112321……12345678987654321行数(i)空格数(9-i)前半段数字(i)后半段数字(i-1)123456876543123456012345789210789678代码#includestdio.hvoidmain(){inti,j;for(i=1;i=9;i++){for(j=1;j=9-i;j++)printf();for(j=1;j=i;j++)printf(%d,j);for(j=i-1;j=1;j--)printf(%d,j);printf(\n);}}例2、输出以下图形*************************行数(i)空格数(abs(i))字符个数(2*(n-abs(i))-1-3-2-1012332101231357531代码#includestdio.h#includemath.hvoidmain(){inti,j;for(i=-3;i=3;i++){for(j=1;j=abs(i);j++)printf();for(j=1;j=2*(4-abs(i))-1;j++)printf(*);printf(\n);}}四、课堂总结1、外循环控制图形的行数2、内循环的第一部分控制输出字符的首位置,第二部分控制输出字符的个数3、用printf(\n)语句换行4、如果关于x轴或y轴对称,循环变量从-(n-1)/2到(n-1)/2,n为行数或列数。五、课后作业利用双重循环结构打印所示图形**********9876543210