资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,C,语言与数据结构,第,6,次课,-,循环结构,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章,第,7,次课,-,循环结构,C,语言与数据结构,本次课我们继续学习,循环结构,!,教学主题,循环结构,教学目标,通过本次课的学习,使学生掌握循环的基本结构、循环语句、循环控制技术。,教学重点,循环语句的使用(,while,语句、,do-while,语句和,for,语句)。,教学难点,for,语句、,break,语句、,continue,语句。,教案,主要内容,程序的三种基本结构,循环结构的类型及其,C,语言实现,循环控制的特殊技术,任务实现,本章任务,编制一个简单的成绩管理程序,输入班中所有学生的某门课成绩,要求:(,1,)计算平均成绩;(,2,)完成百分制和等级制的转换,并统计取得各等级成绩的学生人数。,程序的三种基本结构,返回,1.,顺序结构,2,选择结构,3,循环结构,循环结构类型,根据循环条件判断的位置不同,循环结构可以分为:,当型循环,直到型循环,根据循环条件判断的位置不同,循环结构可以分为:,当型循环,直到型循环,当型循环的流程图和,C,语言实现,可以用,while,语句来实现。一般格式如下:,while (,条件,),循环体部分(,P,),流程图,C,语言实现,循环体,直到型循环的流程图和,C,语言实现,可以用,dowhile,语句来实现。一般格式如下:,do,循环体部分(,P,),while (,条件,),;,流程图,C,语言实现,循环体,当条件为真时继续循环;最后的分号不能少,当型循环和直到型循环的区别,当型循环是先判断条件后执行循环体;,直到型循环是先执行循环体后判断条件;,所以,,直到型循环至少执行一次循环体,而当型循环可能一次都不执行,。,当型循环的另一种,C,语言实现,可以用,for,语句实现。,for,语句是,C,语言的特色,也是一种“当型循环语句”。,其一般格式为:,for (,表达式,1,;表达式,2,;表达式,3,),语句,P,;,for,语句的执行过程:,当型循环的另一种,C,语言实现,最简单的应用形式或者说最易理解的形式如下:,for (,循环变量赋初值;循环条件;循环变量增值,),语句,P,;,for,语句的执行过程:,等价的,while,语句:,循环变量赋初值;,while(,循环条件,),语句,P,循环变量增值;,循环结构举例,2,【,问题,2】,编程计算:,int,n;,scanf(“%d”,&n,);,sum=0;,for(i=1;,i=,n,;i,+),sum=,sum+i,;,流程图,运行程序,(6_2),看源程序,(6_2),源程序,循环结构举例,3,【,问题,3】,编程计算:,int,i,j,;,long factorial;,scanf(“%d”,&i,);,factorial=1;,for(j=1;j=,i;j,+),factorial*=j;,流程图,运行程序,(6_3),看源程序,(6_3),源程序,循环结构举例,4,【,问题,4】,编程计算:,流程图,运行程序,(6_4),看源程序,(6_4),源程序,循环的嵌套,循环的嵌套,循环的嵌套:一个循环体内又包含另一个完整的循环结构。,三种循环可以相互嵌套。,返回,循环控制的特殊技术,在循环执行的过程中,如果需要退出循环,在,C,语言中,可以用,“,break,语句”,来实现。,在循环执行的过程中,如果需要中止本次循环的执行(也就是结束本次循环后继语句的执行),转而通过循环条件判断是否继续开始新的一次循环,在,C,语言中,可以用,“,continue,语句,”,来实现。,break,语句,格式,break,;,作用,可用于,switch,语句,其作用是跳出,switch,语句。,可用于,while,、,do,while,和,for,这三种循环语句,其作用是跳出循环体。,循环结构举例,5,【,问题,5】,编程实现:判断,m,是否为素数。,分析,运行程序,(6_5),看源程序,(6_5),源程序,只能被,1,和自己整除的数。,流程图,让,m,被,2,到 除,如果都不能整除,则,m,是素数;否则不是素数。,提前退出循环,continue,语句,格式,continue,;,作用,可用于,while,、,do,while,和,for,这三种循环语句,其作用,结束本次循环,,即跳过循环体中下面未执行的语句,接着进行下一次是否执行循环的判断。,循环结构举例,6,【,问题,6】,把,100,200,之间的不能被,3,整除的数输出。,源程序,#include,“,stdio.h,”,void main(),int,n;,for(n=100;n=200;n+),if(n%3=0),printf(,“,%d,”,n,);,运行程序,(6_6),continue;,返回,流程图,用,while,实现,结果会如何?,任务实现,任务内容,编制一个简单的成绩管理程序,输入班中所有学生的某门课成绩,要求:(,1,)计算平均成绩;(,2,)完成百分制和等级制的转换,并统计取得各等级成绩的学生人数。,任务分析,要处理的数据,设置变量,并考虑分别用什么类型。,n -,学生总人数,ach -,学生的百分制成绩,total -,学生总分,average -,学生平均成绩,a,b,c,d,e,-,“,优,”,、,“,良,”,、,“,中,”,、,“,及格,”,、,“,不及格,”,不同等级成绩的学生人数,任务分析,算法分析,1,、输入学生总人数,n,。,2,、循环,n,次,每次执行以下步骤:,输入某个学生的成绩。,判断输入成绩的合理性。如果不合理,则重新输入。,将成绩计入总分。,根据百分制成绩划分等级,并累计等级人数。,3,、计算平均成绩。,4,、输出结果。,任务流程图及源程序,运行程序,(6_7),看源程序,(6_7),源程序,流程图,如何实现,思考,用,for,实现,结果会如何?,本次课总结,程序的三种基本结构,循环结构的类型及其,C,语言实现,当型循环,直到型循环,循环控制的特殊技术,break,语句,continue,语句,任务实现,用,while,语句、,for,语句实现,用,dowhile,语句实现,本章小结,程序的三种基本结构,顺序结构,条件结构及其,C,语言实现,if,语句、,switch,语句,循环结构的类型及其,C,语言实现,当型循环,直到型循环,循环控制的特殊技术,break,语句、,continue,语句,任务实现,用,while,语句、,for,语句实现,用,dowhile,语句实现,下课,Thank You!,The End.,
展开阅读全文