课程名称多重循环——文本作图问题教材分析重点熟练掌握循环的嵌套,并能双重循环结构编写的程序对双重循环的外循环和内循环的理解与应用教学目标知识目标:巩固循环,掌握的程序设计方法
能力目标:培养学生分析问题、解决问题的能力,训练学生逻辑思维和判断能力
发展目标:教给学生灵活的思维方法,培养学生的学习兴趣和勇于探索、勇于创新的精神,提高综合素质
讲授、演示与学生自己编程并演示教具多媒体(ppt)教学过程一、复习多重循环
1、循环的嵌套
一个循环体内包含另一个完整的循环结构,称为循环的嵌套。
while语句、do-while语句和for语句都可以互相嵌套,甚至可以多层嵌套。例如:
while( )
{
for( )
{
}
}
for( )
{
for( )
{
}
}
二重循环
假设外循共循环m次,内循环共循环n次,则:
? 内外循环用到的循环变量名不能相同
? 1次,内循环需要完成整个n次循环
? 内循环的循环体共执行m×n
二、新课引入
给出各种图片,引发学生的兴趣。
*
**
***
****
*
**
***
****
*
***
*****
*******
*
***
*****
*******
*****
***
*
1
22
333
……
999999999
1
121
12321
1234321
……
12345678987654321
三、新课内容
现场编程
例1、
输出以下图形
*
**
***
****
分析
1、该问题用二重循环实现
2、外循环控制输出行数,for(i=1;i<=n;i++)
内循环实现输出列数,for(j=1;j<=m;j++)
3i与列数j的关系是j<=i
代码
#include
main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
例2、
输出以下图形
*
**
***
****
分析
1、该问题用二重循环实现
2、外循环控制输出行数
内循环中第一部分用循环打印空格确定打印字符的初始位置,第二部分确定每行打印符号的个数
3、该题行数i与列数j的关系是j<=i
代码
#include
main()
{
int i,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、本题图形的规律:每行“*”的个数与行数i2*i-1
代码
#include
main()
{
int i,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");
}
}
拓展练习
输出以下图形
1
121
12321
……
12345678987654321
行数(i)
空格数(9-i)
前半段数字