第一篇:《C语言循环结构》课程教学设计研究(定稿)
《C语言循环结构》课程教学设计研究
作者简介作者简介:徐东(1972-),男,硕士,中国人民解放军海军大连舰艇学院讲师、教研室主任,研究方向为计算机视觉与人工智能、计算机教育。0引言
C语言程序设计中,循环结构、顺序结构和选择结构共同作为各种复杂程序的基本构造单元。C语言中几乎所有实用程序都包含循环,许多问题求解都可归结为重复执行的操作,比如数值计算中的方程迭代求根、非数值计算中的树的遍历等等。循环的特征是:在给定条件成立时,重复执行某程序段,直到条件不成立为止。教学实践证明,循环结构是整个C语言程序设计课程中的“拐点”,这个环节学好了,就有了进一步学习的兴趣,反之,则会让很多学生对C语言的深入学习望而却步。因此熟练掌握循环结构的概念及使用方法是程序设计最基本的要求之一。笔者通过总结学生学习C语言循环结构的一般心理思维规律,结合国内外优秀的计算机语言教学方法和模式,在讲授C语言循环结构程序设计环节的教学过程中,采取“双主体教学模式”,充分运用了项目实例教学、问题驱动教学、多媒体辅助教学等多种教学方法,重视学生的学习主体作用,在课堂教学中,以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,教师极尽启发、诱导、调动学生学习的主动性,使学生在掌握知识、形成能力、开发智力等方面得到最大发展。
1C语言公共课教学中存在的问题
C语言公共课程的授课对象均为非计算机专业学生,C语言教学总课时数也偏紧。C语言相对于计算机基础课程,它注重设计算法、书写程序并进行调试的整个过程,内容较为抽象、复杂,教学方法和学习方法都有极大的不同。笔者通过观察并与学生交流,发现很大一部分学生上课时能听懂课程,但程序一旦稍有改变就便不知所措,学生独立编程时更是无从下手,尤其到了循环结构设计阶段。究其原因,在教学方面存在以下问题。
1.1传统课堂教学方式存在一些弊端
通常,传统的C语言教学方法是选用经典教材,教师在讲解时先给出一般的语法格式,然后逐步讲解语法要点,再给出例子。传统教学方法比较适合基础差的学生,但此方式的缺点也是显而易见的,一方面不利于学生自学能力的培养;另一方面,对于基础好的学生会觉得太罗嗦,甚至因此丧失学习兴趣。多数学生对于这种按部就班讲编程的传统教学方式有厌倦心理,不愿意主动与教师在课后交流,依靠教师的现象比较严重。另外,很大一部分学生还在延续高中时的学习方法,缺乏自主学习的意识和能力。C语言毕竟是一门抽象、复杂的课程,知识点非常散。学生在学习C语言的过程中,在教学内容越来越多、编程越来越困难的情况下,很难自我保持学习的兴趣和热度。
1.2教与学比例不合理
教师在教学实施过程中,往往过于注重对知识的传授,过于强调教学方法,而实际上,C语言是一门实践性很强的课程,理论理解与实际演练密不可分,相辅相成,因而,整个C语言教学过程中如何分配教与学、理论与实践的比例,是学生学好C语言的关键因素之一。
1.3上机实作课时偏少
由于总课时数的限定,目前计划学时内安排上机实作学时不足以完成预订目标,以计划外形式安排课时,学生在自主学习能力较弱的情况下,学习效果不佳。
2双主体教学法
经过多年实践,我们在教学过程中采取了适合C语言公共课的“双主体互动教学模式”。双主体互动教学模式是新型的课堂教学理论,它突破传统教学中的“双主”理论,极其重视学生的学习主体作用,并引入“互动”观念,教、学双方相互影响,彼此促动。在课堂教学中,它以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,提倡教师极尽启发、诱导、调动学生主动性之能事,在授课过程中,采用讲解、现场编程演示、幻灯片、提问、目光交流、练、学生自主学习相结合的方式,授课完毕后进行课堂小结,布置上机作业。
2.1采用实例教学法,提高学生对抽象概念的感观认识
实例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,在讲课过程中,经常举一些与实际生活相关的事例,以精选出的程序实例为中心,把学习的重点放在具体实例讲述上,并引导学生自己去思考解决方案,从主观上让学生感受到成就感,从而保持他们的学习兴趣。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅增强了学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。
为了达到本课程的教学目的,让学生能更加深刻地体会到软件编程的实际作用,提高并保持对该课程的学习兴趣,本文引例就从“实弹射击训练分析系统软件”的编制任务开始,该软件编制任务共分5个阶段完成,编制过程将一直持续到本课程结束,并且会在后续章节中得到进一步完善。“实弹射击训练分析系统软件”具体任务安排:
第一阶段:能记录一名学生的打靶成绩(平均环数)。
说明:为简单起见,规定每名学生打10发子弹,记平均成绩。
第二阶段:能记录每个班的打靶总成绩(总平均环数)。
第三阶段:能对参训学生进行成绩排名;能对参训单位进行成绩排名。
第四阶段:在前3个阶段任务完成的情况下,进一步完善该软件的功能,学生可以添加自定义功能模块。
在简单介绍“实弹射击训练分析系统软件”的编制任务后,提出本次课的任务。运用实例启发学生,明确本节课要解决的任务,即寻求一种循环机制,能够自动循环地对10个成绩求和。这样,不仅激起了学生探究问题的兴趣,而且轻松地引入了本节课的教学内容:循环结构。接下来,就按照软件设计的步骤依次进行。
2.2采用进阶式问题驱动法,提高上机效率
在C语言教学过程中,上机操作是非常必要的。通过上机,学生不但可以进一步理解和掌握知识,而且许多不清楚或不理解的问题也迎刃而解。但在上机过程中,教师不要总是要求学生按部就班地解决问题,要让学生自己寻找解决方法,把学习的主动权还给学生,增强学生的自主学习能力,当然,教师的主导地位不能变。在组织学生上机实践的过程中,教师可以适当地设计一些连续的作业。例如,学完循环结构后,在上机时先带领学生分析一个程序,其功能是输出四行六列并且是由星形符号构成的图案[1,2]。教师可以通过以下步骤引导学生上机实践:
步骤1:教师可用多种编程方法进行程序演示。①利用普通的输出函数如何解决;②利用单循环如何解决;③利用双重循环如何解决;④说明双重循环的优点及特征,然后让学生自行编写并运行程序。
步骤2:待学生完成任务后,在原程序基础上,进一步提出新问题,让学生学会灵活编程。①若要输出每行“#”与“*”相间的四行六列图案应该如何修改程序;②若要输出每行两个连续的“#”和3个连续的“*”的四行五列图案应该如何修改程序;③若要输出用“*”组成的一个正三角形应如何修改程序;④行列数在这里是固定的,可否通过键盘随机输入,等等。
以上问题均可通过修改步骤1中编好的程序逐步解决,每次修改的幅度均不大,难度也是缓慢增加,学生在不知不觉中得到了编程的训练,在很短的时间内掌握了所学知识并灵活运用,学生会拥有成就感,同时会意识到,只要自己肯动脑,问题就会很快解决,从而激发了学生的学习主动性。
2.3以项目为牵引,强化学生课后自主学习
在完成一定的教学任务后,及时布置项目作业,训练学生对所学知识的灵活运用能力,并使每一阶段的内容有足够的焦点,让学生轻松消化每个知识。
在布置项目时,除要包含所学内容的焦点问题外,还要特别注意对新知识的迁移,也就是说,可以在项目中涉及少量的学生没有学过的知识点,促使学生主动探究、主动解决,教师在恰当的时候再给出解答方案,最后由学生自己总结得出项目结果。这么做不仅让学生学习的心态更加主动,而且让学生更具有成就感。
第二篇:C语言循环嵌套结构教学设计探究
C语言循环嵌套结构教学设计探究
摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的基础。该文将针对初学者实际情况,通过教学实例的设计,由浅入深,采用类比、启发等多种教学方法,分析循环嵌套结构程序的设计思路与设计方法,帮助学生掌握C语言循环嵌套结构设计的实质,提高利用循环嵌套结构解决实际问题的能力。
关键词:C语言 循环嵌套 教学设计
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2015)03(a)-0120-02
The Inquiry Teaching Design of Nested Loop Structure on C Language
Duan Hongyi,Wang Huihui
(Science Department of Hetao College,Bayannaoer,Inner Mongolia,015000,China)
Abstract:The C program nested loop structure design is the key and difficult points in chapter C program loop structure teaching,is the follow-up data structure course algorithm in the most frequently used sentence,is the basis for complex programming.This paper will according to the actual situation of beginners,by design,the teaching examples from the shallower to the deeper,by analogy,inspiration and so on many kinds of teaching methods,design analysis and design method of loop nesting structure of the program,to help the students to grasp the essence of C language nested loop structure design,improve the ability of using the nested loop structure to solve the practical problems.Key Words:C language;Loop nests;Teaching design
C语言是一门面向过程的结构化程序设计语言,其程序设计的基本结构单元主要由顺序结构、选择结构与循环结构三种基本结构组成。其中选择结构与循环结构在程序设计中最为重要且使用较多,对于后续课程数据结构来说,其算法实现主要以这两种结构为主,所以在学习数据结构之前,学生必须要通过C语言的学习打下良好的程序设计基础,深入理解并掌握这两种程序结构,并能够正确设计与阅读理解这两种结构的程序。在循环结构程序设计中,循环的嵌套程序设计是一个重点与难点内容,该文结合作者从教以来教授C语言的教学经验及心得体会,探讨如何教会学生理解并掌握循环嵌套结构的设计,提高利用循环嵌套解决实际问题的能力。循环嵌套教学内容引入及设计
循环嵌套结构程序设计的基础是循环结构,在学习循环嵌套结构程序设计之前需要掌握C语言中实现循环结构的三种语句,while语句、do...while语句以及for语句,在此基础上学习循环的嵌套。首先需要知道循环嵌套的概念:一个循环的循环体内包含另外一个完整的循环结构,称为循环的嵌套,内嵌的循环还可以继续嵌套循环,构成多层循环。循环的嵌套结构本质上仍是一个循环语句,只不过其循环体为一个循环语句罢了。C语言中三种循环语句可以互相嵌套构成循环嵌套结构。由于for语句在C语言中最为灵活,下面以for语句为例来讨论循环的嵌套结构。
1.1 循环嵌套结构程序的引入
为了便于理解循环嵌套,首先举一个简单的循环结构的例子来引入嵌套。
例1:输出123456789。
该例子如果利用for循环设计,学生可以轻松写出如下语句。
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
如果对该例进行修改,要设计以下程序。
例2:输出5行123456789。对于该例来说,可以使用循环的嵌套来设计程序。
1.2 循环嵌套结构设计
我们可以利用循环语句的设计思路来解决这个问题,这个例子的关键在于循环体语句为输出123456789及换行符,即要循环5次123456789以及换行符。这里我们先把上述代码以及输出换行符语句看成一个整体即一个语句块。比如用语句块一来表示,则可以写出如下的程序代码。
int j;
for(j=1;j<=5;j++)
{
语句块一;
}
由于语句块一的代码为:
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
所以将语句块一用上述代码进行替换,可以写出例2完整代码如下:
int j;
for(j=1;j
{
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
}
通过这个例子看出,外循环决定内循环(把内循环看成一个整体)的执行次数,而内循环则控制每行内循环的次数。在这个例子中,内循环变量与外循环变量之间没有关系,下面我们再来看一个稍微复杂一些的例子,内循环变量执行的次数取决于当前的外循环变量,来进一步理解循环嵌套结构程序。
例3:设计程序输出如下的图案数字。
2
3
4
5
这个例子要打印5行数字,故外循环次数为5,设外循环变量为i,取值为1~5,再看每一行要打印的数字的个数为1,2,3,4,5,即循环的次数为1,2,3,4,5,假设用j表示内循环变量,那么,内循环变量与外循环变量有什么关系?假设我们要打印的是第i行上的数字,可以发现其打印的数字j取值为1到i。找到了规律就可以写出的循环嵌套程序段:
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf(“%d ”,j);
printf(“\n”);
}
通过这个例子我们可以引导学生,写出如下图案的程序段。
例4:设计程序输出如下的图案数字。
3
5
7
9
提示学生这个程序可以有2种写法。
第一种写法:通过观察,发现例3与例4只是每一行上输出的数字不同,即需要修改例3的内循环语句printf(“%d ”,j);即可。显然第i行上打印的是一个等差数列,其打印的第j个数字应为2*j-1。即例4对应的语句为printf(“%d ”,2*j-1);
第二种写法:不改变例3的printf(“%d ”,j);输出语句,则需要修改内循环for(j=1;j<=i;j++),分析可知第i行的内循环次数为i,而打印的数字最大值j为2*i-1,后一个打印的数比前一个数大2,即步长为2,则将例3的内循环语句改为for(j=1;j<=2*i-1;j+=2)即可。
通过上面例
3、例4两个程序的设计,学生基本上能够掌握循环的嵌套结构了,对循环的嵌套有了更深入的理解,并能利用循环嵌套结构设计并解决简单的实际问题了。
例5:打印如下图的九九乘法表。
这个例子与例3比较相似,一共要打印九行,故外循环为9次,假设用i来表示外循环变量,其值应为1到9;第i行打印输出i个数,假设用j来表示内循环变量,即内循环变量j取值为1到i。并且能写出第i行第j个要打印输出的数为:printf(“%d×%d=%4d”,j,i,j*i);有了例3,例4的基础可以写出如下的程序:
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(“%d×%d=%4d ”,j,i,j*i);
printf(“\n”);
}
结语
在循环嵌套结构设计教学中,教师要充分考虑学生的实际情况,要考虑不同专业、不同层次学生的理解能力,设计针对学生实际情况的教学用例,从浅显易懂的例子出发,逐步引导学生思考,采用类比,启发等多种教学方法,教学实践证明,这种方法能够很好的调动学生的学习积极性,学生的理解能力与程序设计能力有了明显的提高。
参考文献
[1] 谭浩强.C程序设计[M].4版.北京:清华大学出版社,2010.[2] 刘井莲,赵卫绩.C/C++循环嵌套教学实践[J].电脑知识与技术,2012(25).[3] 唐红杰.C语言循环结构教学探讨[J].软件工程师,2014(10):49-50.[4] 刘运,程家兴.图形打印案例在计算机高级语言教学中的应用研究[J].山东农业工程学院学报,2014(6):48-49,58.
第三篇:C语言循环结构教学设计方案
《C语言循环结构》教学设计方案
一、教学内容分析
循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机执行循环或退出循环。
二、学习者分析
循环结构是一种比较复杂的结构,在C语言中,循环结构主要包括for、while和do-while三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。
三、教学目标
1.知识与能力
掌握循环构造的基本特点;区分多种不同类型循环结构的运行过程;掌握循环结构的格式及应用方法。
2.过程与方法
首先学会区分多种不同类型的循环结构,而后学会定义及应用方法,利用上机熟练应用技巧。
3.情感态度与价值观
我们必须抱有自己想学习的心态,多去问老师一些问题,那么你的漏洞将会越来越少,程序量和代码量才会越来越多。
四、重点难点及处理
1.循环语句的的分类和定义
For循环、while循环和do-while循环
特点:在一个程序中可以通过变换语句来使用不同的循环语句,而不改变程序的功能。
2.循环语句的引用
例如:要从1累加到100
使用For循环: for(sum,=0,i=1;i<=100;i++)sum=sum+i
使用while循环:while(i<=100)sum=sum+i
使用do-while循环:do {sum=sum+i;} while(i<=100)
五、教学准备
1.PPT教学课件
2.实验操作:Visual C++6.0软件平台,PC电脑,教学机房,网络课堂。
六、教学思路(教学策略等)
在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。现在我们可以提出一个问题:在计算机程序设计的世界
里是否也有类似的这种相同操作重复出现的问题呢?利用最简单累加求和的例子。
例:求1+2+3+4+5+„+100的和。
下面就可以引出本节课的重点,通过分别使用For循环、while循环和do-while循环来完成本程序,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环,在试着写出比较简单的程序时,可以试着选择素数或者奇数累加来增加难度,还可以使得让学生接受和探究双重循环。
七、教学过程 教学引入
掌握掌握循环结构的基本特点:for语句、while语句和do-while语句 如何计算1+2+3+4+„+100 知识点学习
1)for循环是循环的一种标准形式,通过for语句实现,其语法如下:
for(①;②;③)④
①表达式,通常用于循环的初始化。包括循环变量的赋初值、其他变量的准备等;
②表达式,循环的条件判断式,如果为空则相当于真值;
③表达式,通常设计为循环的调整部分,主要是循环变量的变化部分; ④循环体,由一条或多条语句构成,多条语句需要用一对花括号括起来。
2)while循环通过while语句实现。while循环又称为“当型”循环,其语法如下
while(①)②;①表达式,循环的条件判断式,若值为0,则结束循环,退出while语句;若值为非0,则执行循环体
②循环体,由一条或多条语句构成,多条语句需要用一对花括号括起来。
3)do-while循环,又称为“直到型”循环,用do-while语句来实现,其一般格式为:
do { ①;} while(②);do-while语句的执行过程为:
先执行循环体①,再判断表达式②的值。若值为0,则结束循环,退出do-while语句;若值为非0,则继续执行循环体
4)break语句、continue语句和goto语句
break语句不能用于循环语句和switch语句之外的任何其他语句中,功能为无条件退出循环。
continue语句只结束本次循环,判断下一次循环环条件,满足继续循环,否则退出循环。
goto语句为无条件转向程序中的某条语句。
思考与探究
分别使用For循环、while循环和do-while循环来累加出1-100之间的奇数和。
实践与操作
不管是用or循环、while循环和do-while循环都好,核心算法是类似的,由于要累计出1-100之间的奇数,定义i从1开始,每次累加2即可,把i赋值给sum,直到i大于100即跳出,例使用while循环写出如下语句:
#include
循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。本章介绍的内容主要是For循环、while循环和do-while循环,同时也介绍了下break语句、continue语句和goto语句。while循环和do-while循环的条件判断一个在前,一个在后,为导致循环体执行的次数不同,需要密切注意;for循环为标准的功能很强的循环,通常用于可控制的循环,对于程序的维护和阅读都是最佳选择。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机由“真”变“假”而退出循环。
八、形成性评价试题
如题所示计算表达式s=1+(1+2)+(1+2+3)+„+(1+2+3+4+„+10),请写出程序并计算出S的值。
#include
第四篇:C语言循环结构实习报告 - 副本
认识(实习)报告 实验(实习)名称循环结构程序设计 日期得分指导教师系专业年级班次姓名学号
一、实验目的(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。
⑵了解条件型循环结构的基本测试方法。
⑶掌握如何正确地控制技术型循环结构的次数。
⑷了解对技术型循环结构进行测试的基本方法。
⑸了解在嵌套循环结构中,提高程序效率的方法。
二、实验内容
1.输入一个正整数,并将其颠倒过来,如12345对应54321.程序 :
#include
#include
int main()
{
int n,m,t=0;
scanf(“%d”,&n);
if(n<0)
{
printf(“数据输入错误!n”);
exit(0);
}
while(n!=0)
{
m=n%10;
t=t*10+m;
n=n/10;
}
printf(“反序数为: %dn”,t);
return 0;
}
运行:
12345
反序数为: 54321
Press any key to continue
2.将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数t,其高位仍在高位,低位仍在低位,如s=87653142时,t中的数为8642.程序:
#include
int main()
{
long s,t=0,p=1;
scanf(“%ld”,&s);
while(s!=0)
{
if((s%10)%2==0)
{
t=t+(s%10)*p;
p=p*10;
}
s=s/10;
}
printf(“%ld“,t);
return 0;
}
运行:
87653142
8642
Press any key to continue_
3.判断101~200之间有多少个素数。
程序:
#include
#include
int isprime(int m);
int main()
{
int n,s=0;
for(n=101;n<=200;n++)
{
if(isprime(n))
s++;
}
printf(”%dn",s);
return 0;
}
int isprime(int m)
{
int i;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
return 0;
return 1;
}
运行:
Press any key to continue_
三、分析与讨论
(1)总结条件循环结构的一般方法。
(一)for循环
for循环的一般形式为:
for(<表达式1>;<表达式2>;<表达式3>)
{
语句序列
}
(1)先求解表达式1,然后求解表达式2,若其值为真(true),则执行for语句中内嵌的循环语句;若其值为假(false),则结束循环转到{ }后面的语句执行。
(2)求解表达式3。
(3)转回上面求解表达式2,继续执行。
(4)循环结束,执行for语句下面的一个语句。
(二)while语句
while(表达式)
{
语句序列
}
其语义是,首先计算表达式的值,当值为真(true)时,返回循环体语句;当值为假(false)时结束循环。直到表达式的值为0,则执行结构后面的语句。
特点:先判断,后执行。
(三)do-while语句
do
{
语句序列
}while(表达式);
特点:先执行,后判断。
当循环条件为真(true)时反复执行循环体,直到循环条件为假(false)终止循环。因此,其循环体将至少被执行一次。
如果for、while或do-while循环控制语句的循环体中又包含循环控制语句就构成了嵌套循环。这3种循环语句之间可相互嵌套,构成复杂的逻辑嵌套结构。
(2)如何测试计数型循环结构的控制表达式中的错误?
断点,或使用try,catch抛出异常
(3)从实验中你得到了哪些提高嵌套循环程序效率的启示?
1.注意把循环次数大的循环放在嵌套语句的外层可以产生较好的效率.2.灵活、巧妙运用三种循环语句结构来实现嵌套。
第五篇:《循环结构》教学设计
《循环结构》教学设计
一、教学内容分析
《循环结构》是人民教育出版社课程教材研究所编著的《普通高中课程标准试验教科书数学3(必修)》(A版)中§1.1.2的第二课时的内容。(1)算法是高中数学课程中的新内容,算法的思想是非常重要的,算法思想已逐渐成为每个现代人所必须具备的数学素养。(2)本节课的内容是循环结构,它与顺序结构、条件分支结构是算法的三种基本逻辑结构,可以表示任何一个算法。并且循环结构是算法这一部分的重点和难点,它的重要性就是充分体现计算机的优势,也即能以极快的速度进行重复计算。
二、学生学习情况分析
学生已经学习了有关算法和框图的基础知识。绝大多数同学对算法和框图的学习有相当的兴趣和积极性。但在探究问题的能力,应用数学的意识等方面发展不够均衡,尚有待加强。
三、设计思想
建构主义学习理论认为,建构就是认知结构的组建,其过程一般是引导学生从身边的、生活中的实际问题出发,发现问题,思考如何解决问题,进而联系所学的旧知识,首先明确问题的实质,然后总结出新知识的有关概念和规律,形成知识点,把知识点按照逻辑线索和内在联系,串成知识线,再由若干条知识线形成知识面,最后由知识面按照其内容、性质、作用、因果等关系组成综合的知识体。也就是以学生为主体,强调学生对知识的主动探索、主动发现以及学生对所学知识意义的主动建构。基于以上理论,本节课遵循引导发现,循序渐进的思路,采用问题探究式教学,运用多媒体,投影仪辅助,倡导“自主、合作、探究”的学习方式。具体流程如下:
创设情景(课前准备、引入实例)→授新设疑(自主探索形成概念→理解概念能识别框图)→质疑问难、论争辩难(进一步加深对概念的理解→突破难点)→沟通发展(反馈练习→归纳小结)→布置作业。
四、教学目标
理解循环结构,能识别和理解简单的框图的功能,通过模仿、操作、探索,学习设计程序框图表达,解决问题的过程,发展有条理的思考与表达的能力,提高逻辑思维能力;能运用循环结构设计程序框图解决简单的问题,感受和体会算法思想在解决具体问题中的意义,增强学生的创新能力和应用数学的意识。
五、教学重点与难点
重点:理解循环结构,能识别和画出简单的循环结构框图。
难点:循环结构中循环条件和循环体的确定。
六、教学过程设计
(一)创设情境
引例:德国著名数学家高斯幼年时代聪明过人,上学时,有一天老师出了一道题让同学们计算:
1+2+3+4+…+99+100=?
老师出完题后,全班同学都在埋头计算,小高斯却很快算出答案等于5050。(课本例6)你能否写出求法,并用框图表示你的算法。
此例由学生动手完成,投影展示学生的做法,师生共同点评。鼓励学生一题多解。
【设计意图】通过高斯求和的故事,复习顺序结构,提出递推求和的方法,导入新课。此环节旨在提升学生的求知欲、探索欲,使学生保持良好、积极的情感体验。
(二)授新设疑
1.循序渐进,理解知识
(1)引进“计数变量”、“累加变量”。借助“计数变量”和 “累加变量”使学生经历把“递推求和”转化为“循环求和”的过程,同时经历初始化变量,确定循环体,设置循环终止条件3个构造循环结构的关键步骤。①将“递推求和”转化为“循环求和”的缘由及转化的方法和途径 引例“求的值”这个问题的自然求和过程可以表示为:
用递推公式表示为:的值的一个算
直接利用这个递推公式构造算法在步骤中使用了共100个变量,计算机执行这样的算法时需要占用较大的内存。为了节省变量,充分体现计算机能以极快的速度进行重复计算的优势,需要从上述递推求和的步骤
中提取出共同的结构,即第步的结果=第(-1)步的结果+。若引进一个计数变量来表示计算到第几步,一个累加变量则第步可以表示为赋值过程②“”、“
”的含义
来表示每一步的计算结果。
利用多媒体动画展示计算机中计数器的工作原理,借助形象直观对知识点进行强调说明 1)量。
2)赋值号“=”右边的变量“”表示前一步累加所得的和,赋值号“=”左边的“”表示该步累加所得的和,含义不同。3)赋值号“=”与数学中的等号意义不同。4)边的变量的作用是将赋值号右边表达式。(类比
理解)
在数学中是不成立的。的值赋给赋值号左的作用是将赋值号右边表达式的值赋给赋值号左边的变借助“计数变量”、“累加变量”既突破了难点,同时也使学生理解了“”、“
”的含义。
③初始化变量,设置循环终止条件 由的初始值为0,的值由1增加到100,可以初始化循环变量和设置循环终止条件。(2)循环结构的概念
从某处开始,按照一定条件,反复执行某一处理步骤的结构称为循环结构。
教师学生一起共同完成引例的框图表示,并由此引出本节课的重点知识循环结构的概念(循环变量、循环体、循环终止的条件)。
【设计意图】这样讲解既突出了重点又突破了难点,同时学生在教师引导下,在已有探索经验的基础上,借助多媒体的形象直观,共同完成问题的抽象过程和算法的构建过程。体现研究问题常用的“由特殊到一般”的思维方式。2.类比探究,掌握知识
例1:改造引例的程序框图表示 ①求②求③求的值 的值 的值 此例可由学生独立思考、回答,师生共同点评完成。
【设计意图】通过对引例框图的反复改造逐步帮助学生深入理解循环结构,体会用循环结构表达算法,关键要做好三点:
① 确定循环变量和初始值 ② 确定循环体 ③ 确定循环终止条件。
例2:根据程序框图回答下面的问题
图A
图B(1)图中箭头指向①时,输出=_____。
(2)该程序框图的算法功能是_______________________。(3)去掉条件“
”按程序框图所蕴含的算法,能执行到底吗,若能
=______;指向②时输出执行到底,最后输出的结果是什么? 对比练习:(1)图B输出
=_____。(2)图A指向②时与图B有何不同?你能得到什么结论?
(3)对比“引例”与“例2”的程序框图,试说明二者的区别和联系? 可由学生小组讨论,教师巡视,加强对学生的个别指导,再由学生分析。
例2是写出程序框图的运算结果,及其功能。
【设计意图】设计此例的目的是让学生通过类比意识到:
①循环结构不能是永无终止的死循环,一定要在某个条件下终止循环,这就需要条件结构来做出判断,因此,循环结构一定包含条件结构。
②循环结构中语句的顺序对算法的影响。③当型循环结构与直到型循环结构的区别。
(三)质疑问难、论争辩难
例3 图(1),图(2),图(3),图(4)是为计算而绘制的程序框图。根据程序框图回答下面的问题:
图(1)
图(2)
图(3)
图(4)
①其中正确的程序框图有哪几个?错误的要指出错在哪里。
②错误的程序框图中,按该程序框图所蕴含的算法,能执行到底吗?若能执行到底,最后输出的结果是什么?
③根据上面的回答总结出应用循环结构编制程序框图应该注意哪几方面的问题?
【设计意图】通过类比,自主探究,帮助学生深入理解知识,完善知识结构,提升认知水平。通过小组讨论,实现生生互动,师生互助,丰富情感体验,活跃课堂气氛。
(四)沟通发展、归纳小结 1.沟通发展
仿照本节课例题,同桌俩人一人编题一人解答。【设计意图】通过练习进一步巩固所学知识,培养和提升学生的认知水平。沟通发展,有助于及时查漏补缺,保持学生学习的热情和信心。2.课后小节
①理解循环结构的逻辑。
②明确条件结构与循环结构的区别,联系。③当型循环结构与直到型循环结构的区别。④数学思想方法:算法思想,类比方法。
【设计意图】通过小结使学生对本节课的知识有一个全面的认识,掌握知识。为今后学习其它知识打基础。
(五)布置作业
①课本P11习题1-1 A组 2
②课外拓展:写出一个求满足1×2×3×…×n>5000的最小正整数的算法并画出相应的程序框图。
【设计意图】书面作业第一个层次要求所有学生完成,第二个层次,只要求学有余力的同学完成。体现了差异发展教学。
七、教学反思
循环结构这部分内容在算法中起着承上启下的作用。本节施教过程中,基本完成设计构思,教学效果良好,但仍发现一些不足之处:
1、学生对循环终止条件的确定还存在一定困难,尤其循环体中“”、“”的顺序对终止条件的影响。
”、“
”中滲透的函数思
2、教学过程中对循环体“想(数学本质)体现不够。对算法教学的思考:教材将“算法与程序框图”和“基本算法语句”分开处理。是否将这两部分内容结合起来处理,在讲基本结构的时候,通过基本算法语句在计算机上演示计算结果,是否会更生动,效果会更好。强调基本结构,适当降低程序框图和算法语句的难度(学生反映其中的一些例题结构太复杂,理解比较吃力)。
算法作为数学与计算机技术的桥梁,体现了数学研究的一个新的方向,其作用是勿庸质疑的,但作为高中数学课程中的新内容,如何将其更完美地展现给学生,还需大家共同努力!