|
《循环的嵌套》教案
◇字体:[大 中 小] 日期:06-06-15 09:17:18 来源:课题研究 作者:江苏省锡山高级中学 刘素珍 一:教学目标: 1、基础知识目标:1:熟练掌握For-Next 循环结构。 2:熟练掌握循环的嵌套,并能编写双重循环结构的程序。 3: Print 方法、 tab(n)函数和abs(n)函数的灵活应用 2、思想教育目标:让学生在解决复杂程序设计的过程中,培养学生不畏困难的学习精神和在解决困难的过程中享受学习的乐趣。 3、能力培养目标:培养学生化繁为简并逐步解决问题的能力。 二:教学重点: 循环的嵌套 三:教学难点: print方法、 tab(n)函数和abs(n) 函数的灵活应用 四:教学方法: 任务驱动法、探索学习法 五:教学平台: Window98、投影仪 六:教学课时: 1课时
课堂教学过程: 一、导入:复习For-Next循环语句的格式,引出循环的嵌套(采用联系前后知识的方法导入新课,便于新课的自然导入和教学效果的提高)。 教师投影:[例1] 设计一个程序,打印如图1所示的图案。
程序如下:Private sub form_click( ) dim i as integer for i=1 to 5 print “*” next i end sub
师生共同分析,得出结论:重复输出星号,要用循环结构,循环变量的初值为1,终值为5。
在[例1]的基础上,进一步激发学生学习和探究的兴趣。 教师投影:[例2]:设计一个程序,打印如图2所示的图案。
程序如下:Private sub form_click( ) dim i as integer for i=1 to 5 print “ *”; next i end sub
师生共同分析,得出结论:与图1相同,仍然重复输出星号,要用循环结构,循环变量的初值为1,终值为5,与图1 不同是5个星号显示在一行上,要用到Print 语句的续行符“分号”。
二、编写具有循环嵌套结构的程序 在[例1]和[例2]的基础上,教师可以指导学生利用掌握的知识,自己动手编写具有循环嵌套。 教师投影:[例3]:设计一个程序,打印如
所示的图案。
(学生思考并动手操作)教师提问:运用一重循环能否实现图3的图案输出? 学生活动:思考并修该程序 学生结论:将例2的For-Next 语句复制粘贴四遍可以实现图3的输出。 教师立即提出问题: 将For-Next语句重复执行5遍,大家能得到什么结果? 学生活动:修改程序 程序设计如下: Private Sub Form_click() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 5 Print " *"; Next j Print Next i End Sub 教师再一次提出问题:Next i 和Next j 能否互换?如果互换,会出现什么问题? 进一步引导学生分析算法如下:使用双重循For-Next循环,外循环确定行数,内循环确定各行打印的个数,再分析该例题,每行输出星号的个数相同,因此内循环变量j的终值为常量5。内循环的print 语句用来输出星号,外循环的Print语句用来起到换行的作用。 (因为学生积极参与,一方面课堂气氛比较活跃,另一方面也提高了学生的动手能力)
三:循环变量的灵活应用 教师投影:[例4]:设计一个程序,打印如图4所示的图形
引导学生观察图4与图3的不同,提出问题让学生思考: (1)外观上图4与图3最大的区别在哪里? (2)在程序上两者的区别在哪里?图4每 行输出星号的个数有何规律? (3)是否需要引入第三个变量? (4)能否借助外循环的循环变量来控制内循 环中星号输出的个数? 学生活动:让学生大胆尝试,自己设计并修改程序。
教师投影:[例5] :设计一个程序,打印如图5所示的图形
引导学生思考: (1)图形5与图形4有何不同?每行的第一个星号的位置有何规律? (2)什么函数能控制字符输出的位置? (3)tab(n)函数的参数可以用哪个变量?与外循环变量i 有何关系? 学生活动:让学生积极思考并大胆尝试,自己修改程序 (通过引导学生对上述问题的思考和分析,加深学生对循环嵌套的理解,进而对循环嵌套中使用的循环变量的作用有更进一步的认识并能够灵活应用循环变量)
四:化繁为简,逐步解决较为复杂的程序设计问题 教师投影:[例6]:设计程序,打印图6所示的图案。
(给出一个相对复杂的图形,引导学生把把复杂的任务分解成相对简单的任务,降低问题的难度。通过完成简单的任务,找出其中的联系,完成最终的设计) 师生共同分析、讨论,将图形6分解成图7 、图8、 图9。
,
,
学生独立完成图7、图8、图9的程序设计。
教师提出问题: (1)如果我们以图形6的第6行为X轴的话,图形6的上半部分是否是关于下半部分对称。 (2)由于图案上下对称,上下对应的起始位置和字符个数完全一致,所以控制输出行数的循环变量是否也可以对称呢? (3)以哪一行作为对称轴,外循环变量i的取值范围应为多少? (4)第i行的起始位置还可以为tab (i+6)吗?要用到什么函数? (5)第i 行的字符个数为多少,能否写成 2*(6-i)-1 的形式。如果写成上述形式会出现什么情况,应该用哪个函数?
程序如下: Private Sub Form_click() Dim i As Integer Dim j As Integer For i = -5 To 5 Print Tab(Abs(i) + 6); For j = 1 To 2 * (6 - Abs(i)) - 1 Print "*"; Next j Print Next i End Sub
备注:在vb 的窗体,也有默认的坐标系,不过与数学中常用的坐标系不同,在数学中X 轴的正向向右,Y轴的正轴向上,在计算机中,X轴的正轴向右,而Y轴的正轴向下。
五:小结 本节重在掌握循环的嵌套,通过菱形图案的输出,让学生在掌握了循环嵌套格式的基础上,学会分析复杂的程序设计问题,并能综合运用vb的三种程序控制结构:顺序结构、分支结构和循环结构。同学在编写程序时,不仅分支结构可以嵌套,循环结构可以嵌套,而且循环结构也可以嵌套分支结构。
六:课后习题 编写求3—100以内的质数的程序。
|