当前位置:首页>> 教学改革>> 学科资源>> 信息技术>> 教学设计

教学设计

算法与程序设计之循环结构嵌套

录入者:netlab  人气指数: 次  发布时间:2008年01月24日

循环结构嵌套

课标要求

能够编写程序解决循环嵌套不多于三重的多重循环问题,尝试寻找身边的循环结构问题,分析问题算法并编程解决。

学生情况

高一下学期,在人教版高中数学必修三的课程中,学生们已经初步认识了程序的基本结构,会用循环的思想解答一些数学问题,这些知识可以为选修《算法与程序设计》打下基础。但是数学课上的内容主要还是停留在纸面上,在vb平台上编写程序解决问题并得到正确结果,可以让学生在知识的基础上进一步理解和掌握。

教材处理

教材使用教育科学出版社的《算法与程序设计》(选修),教学内容为第二章(程序设计ABC)第三节(程序的基本结构)中的第三部分(循环结构)。教材中将循环嵌套的内容做为实践活动,本次课将循环嵌套内容做为一节知识探究课程来讲解。教师可以通过复习巩固上节课循环结构内容,再深入学习嵌套,用一节课时间来完成。

教学目标

根据本节教学内容以及学生的特点,结合学生在数学第三模块所学的算法知识,确定本节课教学目标如下。

1、知识与技能

能够牢固掌握程序的循环结构。

会用循环结构嵌套编写程序来解决问题。

2、能力目标

培养学生分析问题、解决问题的能力。

3、情感目标

使学生积极参与,发挥他们的主动性,激发他们的求知欲。

教学方法及策略

建议本节采用1个课时完成,采用示例引导方式进行讲解、探究和学生自主学习相结合的学习方法。 教学过程中教师起主导作用,引导学生关注新知识并思考,学生在倾听、反馈和实验过程中建构知识。

数学课上学习循环结构解决的都是数学上的一些问题,学生已经觉得有点乏味,所以本节内容,将从打印图形的方式来介绍嵌套,使学生能从思想上得到调节,比较轻松地接受循环嵌套的设计思想。本次课主要以for next 结构来讲解循环嵌套,do循环结构可以在课后让学生自己完成。

 

教学的重点与难点

重点:从问题中分析出循环的嵌套

难点:嵌套中的循环变量的意义

 

教学媒体

多媒体教学软件,计算机网络教室

 

教学过程

教学环节

教师活动

学生活动

设计意图

温故知新

上节课我们已经学习了程序的循环结构,主要是两种格式,for-next循环和do while-loop循环,同学们一起先回忆一下两种格式的执行过程

For-next

Do while-loop

For  循环变量 = 初值_ To 终值  [Step  步长]
     
循环体语句块  

 Next  循环变量    

Do While <条件表达式 >

循环体

Loop

 

 

引入:在窗体中打印出一行如下图形:

**********

请学生思考如何实现。

 

 

让学生查看主要代码:

N=10

For i=1 to n

Print “*”;

Next i

(更改n值,可以得到长度不同的图形)

 

 

 

 

学生一起复习知识点并巩固循环结构的基本思想

 

 

 

 

 

 

 

 

 

 

 

 

学生分析,发现其实是重复打印“*”符号,可以利用循环实现

 

 

 

 

复习已有知识并能牢固掌握

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

能够利用循环结构解决问题并复习print用法

创建情境

引入新课

 

 

 

在窗体上演示打印出如下图形:

(图一)

让学生思考分析图形的构成;

 

讲解:原图形可以分解成多行图形,而每一行图形又是由多个基本的“*”构成;从而引入循环嵌套的概念:循环里面又有循环。

 

详细讲解并演示:

从第一行开始逐行输出,每一行里面又逐个“*”输出,一行输完换下行,第i行有i个“*”。

代码如下:

For  i=1  to 6

For j=1  to i

Print “*”;

Next j

Print

Next i

思考分析图形的构成 ,了解嵌套的意义

 

 

 

 

 

 

 

 

 

 

 

学生认真听讲,仔细观察程序的结构。

 

 

 

 

 

 

 

利用图形来调节内容,引起学生的学习兴趣

 

 

 

 

 

 

 

 

 

 

通过分析程序,引入知识点,让学生理解其用法

 

 

 

 

 

 

深入学习

深入

 

若是要打印出下列图形,要如何实现?

(图二)

 

 

 

 

 

在学生的配合下演示用空格实现的代码并运行调试:

For  i=1  to 6

For j=1 to 6-i

Print “ ”;

Next j

For j=1  to i

Print “*”;

Next j

Print

Next i

 

介绍可以利用tab(n)定位函数来解决

For  i=1  to 6

Print tab(7-i);

For j=1  to i

Print “*”;

Next j

Print

Next i

 

再深入:

若是要打印如下图形,又将如何实现?

(图三)

代码:

For  i=1  to 6

Print tab(7-i);

For j=1 to 2*i-1

Print “*”;

Next j

Print

Next i

学生思考,并同教师一起分析,大多数同学发现可以在每行输出“*”前先输出一定数量的空格

 

 

 

 

 

与老师一起完成代码的编写

 

 

 

 

 

 

 

 

 

 

 

认识并掌握tab(n)的用法

 

 

 

 

 

 

 

学生很快分析出图三的构成,原理同图二,只不过第i行的“*”个数为2*i-1

 

 

 

 

 

 

 

 

 

检测学生分析问题、解决问题的能力。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

学生的思路随问题的深入而扩展,掌握并消化重点、难点

 

 

 

 

 

 

 

 

 

上机实践

给出任务

完成教材P40实践1,在窗体上打印出如下图形:

*

***

*****

*******

*********

*******

*****

***

*

 

 

 

教师巡视观察,个别指导

上机完成任务,适时互相讨论,有些学生还根据自己的喜好更改输出的图形符号和规则,找印出自己设计的图形;有能力的同学可以用do结构来完成

学生能够学以致用,并结合前面所学的知识,很好地完成任务

 

 

 

 

 

 

检查学生掌握情况并及时解决出现的问题。

总结归纳

如果一个算法涉及到循环结构嵌套,要注意分析以下几点:

分析循环嵌套的重数及每重循环次数

分析循环体内容:需要重复的内容; 循环变量值的意义。

能够牢固掌握程序的循环结构及其嵌套。

帮助学生巩固知识,形成知识体系

课后作业

思考课本p40 实践2:求出1~1000中的素数并输出,准备下节课上机实现

学生在课后独立思考并做好上机准备

学生能够利用所学知识解决问题