§5.5结构化程序设计基础
太原市第十职业中学 王孟转
一、课标要求与教材分析 1.通过本课教学,使学生掌握结构化程序设计的基本方法,掌握选择结构、循环结构语句格式及功能,具有比较熟练的运用程序设计方法进行基本程序设计的能力,能够独立完成较简单程序设计,并且能较好地理解计算机在各个专业领域中的应用,提高解决实际问题的能力。 2. 本课教学内容选自魏茂林主编的《数据库应用技术__Visual FoxPro 6.0》第三版,VFP是中等职业学校计算机应用专业学生的必修课,也是对口高考的专业课考试科目。VFP的重点内容就是结构化程序设计,这部分内容既是数据库操作的深层应用,又是可视化编程的学习基础,是教材的重点和难点章节。课标对它的界定非常明确:要求学生掌握三种结构的运作过程,掌握三种结构的功能,能够利用学过知识解决实际问题。为了使学生学好本节内容,根据学生的具体状况,我对教材进行了如下处理:基本命令和顺序结构用一节课,选择结构中的单分支和双分支为一节内容,而if嵌套和多分支则我为一节内家,对于循环结构格式中暂时用不到,而且难以理解的短路命令LOOP和强行退出命令EXIT隐藏不提;重点放在理解循环的基本思想,将指针循环格式(scan??endscan)和计数循环格式(for??endfor)放在一节讲;增加了数据表中记录循环操作的方法和条件累加和条件计数功能的理解和运用 二、学情分析
本课教学对象是职高二年级计算机应用专业学生。他们在第一学年对计算机有一定的操作技能,为VFP程序设计学习奠定了基础。但职高学生一般对动手操作的技能学习较感兴趣,而理论性较强的语言类课程的学习缺乏信心,他们的逻辑思维能力、空间想象能力和自主学习的能力都很薄弱。因此,教学中要注重提高学生的学习兴趣,采取有效的教学方法和趣味的教学形式,由浅入深,循序渐进。在充分注重教学效率的同时,尽可能地分散教学难点,并注重在教学中培养合作学习能力。 三、教学目标 知识和技能:
1. 掌握选择结构、循环结构语句格式及功能
2. 掌握顺序结构、选择结构和循环结构程序设计的基本方法 3. 能编写顺序结构、选择结构和循环结构程序设计 4. 能在程序中正确实现分支和循环嵌套 5. 能够利用学过知识解决实际问题 过程和方法
VFP是一门理论与实践性都很强的学科,它要求教学不能仅仅满足于使学生掌握一些理论知识,而应着力于发展学生的能力(特别是自学和创新能力),培养学生全面思考问题,养成科学思维的习惯。为达到上述目的,我在教学过程中主要采用以下的几种方法: (1) 讲授法(口述法);(2) 演示法; (3) 实验法;(4) 谈话法(问答法)和讨论法; (5) 练习法;(6) 自学法; 情感态度与价值观
提高学习本课程的兴趣,培养学生小组互助、合作学习的能力; ②培养学生的逻辑思维能力和分析问题、解决问题的能力。
§5.5.2选择结构
一、 教学分析 1、 教学目标 知识和技能
(1)掌握IF语句的格式和功能,掌握选择结构程序设计的基本方法 (2)学会画IF语句的流程框图,并能根据流程图编写程序 (3)学会用IF语句解决日常生活中实际问题 过程和方法
(1)通过采用情境导入法来激发学生学习兴趣 (2)面向任务的思考,引领分析解决方案
(3)自己阅读if语句功能和格式。加深对其理解,通过任务全面解析选择结构的运作过程。拓展性的巩固练习,采取两人一组互助的形式;通过学习双分支结构,将知识迁移到单选择结构,自主探究 ,师生共同分析并及时总结深化,将实例应用上升到理论归结。作业设计既能检查巩固知识运用,又能对新知识的进一步拓展,以开阔思路,培养学生学习能力和知识综合运用能力。整个教学过程避免空泛的讲述,实施变抽象为具体的教学策略。 情感态度与价值观
通过比较使学生积极参与,发挥他们的主动性,激发他们的求知欲.,通过采用生活中实例培养学生善于观察的习惯和勇于探索的精神,利用任务驱动法来提高学生发现问题、分析问题、解决问题的能力,同时激发学生学习的兴趣和热情。 2.重点、难点
重点:掌握IF语句的格式和功能。
难点:运用IF语句解决实际问题的能力。
3.教法:讲解法、讨论法、演示法、实验法、任务驱动法 4.学法:小组协作法、自主探究法 二、 学情分析及教材处理
本节课教学内容选自魏茂林主编的《数据库应用技术__Visual FoxPro 6.0》第三版, 《选择结构》它是建立在学生已学习的顺序结构基础之上,为后续学习循环结构作了铺垫。本节内容分两课时完成,本节课是第一课时,重在讲解选择结构中的单分支和双分支,即if语句。VFP中IF语句分支结对学生来说,并不难理解,如果采用英语中的if格式导入则较好理解,但职高学生的英语水平普遍都很差,所以我采用了实际生活中根据天气情况决定出行地的假设来导入本节课的内容,本节课的重心放在如何引导学生明确程序设计的思想,如何利用IF语句解决实际问题的能力。If语句的嵌套和双分支放在下一课时讲解。 三、 教学过程
(一)创设情境 引入课题 师:小明和小华约定:如果明天下雨,我们就到图书馆,否则我们郊游,这在实际生活中是一个选择性的问题,同学们:他们需要根据“是否下雨”这个条件来选择出行的地方,条件不同,会有不同的结果,那么这类问题体现在程序设计上就是选择结构程序设计。本节课我们将学习程序设计中的选择结构。(板书:§5.5.2选择结构) 师:从上例可以看出选择结构根据指定的条件选择执行不同的程序分支,那么根据程序分支的数目可以将选择结构分为单分支结构、双分支和多分支,我们今天来学习单分支和双分支。(设计意图:成功的教学不是强制,而在于激发学生的学习兴趣,从学生熟悉的事情着手,创设教学情境,有效地激发学生的学习兴趣。) (二)合作探究 构建新知
师:请同学们阅读并理解P105选择结构语句格式.看到不认识的英文单词问同桌或查字典 教师板书:一、选择分支结构
师:好,同学们看完了吧,咱们一起来看if…..endif 的语句格式.请同学说老师写 生:阅读格式 师:板书 If <条件> <语句序列1> [ELSE
<语句序列2>] ENDIF <注释>
请同学们解释其中的英语单词:
生:if 是如果、假设,else 否则, endif 结束假设。 师:好,我们请位同学说下程序的执行过程 生:首先检查if后面的“条件”,如果满足条件,则执行语句序列1,否则执行语句序列2 师:很好,也就是说它的功能是:当条件成立时,则执行语句1,否则执行语句2(边说边板书)从上面我们可以看出if语句是入口,endif 语句是出口.<条件>为逻辑表达式,我们用上节课老师教大家画流程图的方法试一起来画出流程图: 师:板书(图1) N Y N 条件?
条件? Y
语句组1
语句组1 语句组2
语句组2
ENDIF后的语句 ENDIF后语 句 (图1) (图2)
生:学生边看老师板书边思考 师:还有其它画法吗? 生:有
师:请这位同学在黑板上画出来吧(板书上图(2) 生:一位学生上黑板板演
师:这们同学的画法很对,特别清晰,我觉得比老师这个好理解,好:现在请同学们利用if 语句来为小明和小华设计一个出行的程序吧
师:(提示)同学们如何将文字序述转化为数学表达式来做为判断条件.请大家讨论。先画流程图然后再设计语序
生:学生讨论(畅所欲言,如何编写程序) 师:巡视、指导、答疑
(在巡视过程中大部分同学会画流程图,写条件可能存在问题) 师:大家可以假设下雨让a=0 来代表,否则不下雨 师:请每组选出代表利用多媒体来展示成果
师: 肯定每组学生的闪光点,并提出建议性意见,最后根据学生所谈,理出一个普遍被大家都认可的意见:
(1) 屏幕首先提示:如果下雨请给a赋值为0
(2) 当从键盘输入“0”,则屏幕显示为“去图书馆”,输入其他,则显示“去郊游”。 建立VFP程序:
生:每位学生根据刚才编写的程序代码来调试运行程序 师:巡视、指导,在这一过程中,学生可能会出现很多错误。
反馈结果:通过多媒体,展示个别有代表表学生的结果。首先引导学生判断该程序对不对,告诉学生“实践是检验真理的唯一标准”,对不对运行此程序即可;其次,若程序不对,引导学生分析此程序错在哪?为什么会错,这么的错误将导致什么样的结果?最后提出如何解决?以此帮助部分薄弱的学生重新调整思路,便于更好地解决问题。 教师利用多媒体给出编写代码: Input “输入a的值” to a If a=0
?“去图书馆” Else
?“去郊游” Endif Return 师:从上例中我们知道解决实际问题先分析,决定如何去做,根据算法编出程序,在执行过程中我们发现if……endif 要成对出现.缺一不可。 (三)完善程序 巩固新知
师:请运用本课知识,进行修改、调试,巩固本课重点。要求两人一组,两人共同对两个练习进行分析,然后每人选做一题,可以互相帮助,做完后互相交流,互相评价结果。 多媒体给出:
练习一:求一个数的绝对值,此处设计要求学生会找出条件。
练习二:输入三角形的三边长,输出三角形的面积。此处设计意在引导学生分如输入的三个数值无法构成三角形,则应该显示“不能构成三角形”。
师生互动:在学生活动过程中,我以合作者学习者的身份加入到各合作学习小组进行指导,指导学生虚心听取他人意见,尊重他人发言,鼓励学生敢于阐述自己的观点,敢于质疑,当学生遇到困难时,总是引导点拔他们自己去寻找解决问题的方法。 (四)自主探究,总结归纳
请同学们编写下面程序:在xj.dbf中根据学号查找某一记录,如果该记录存在,则显示该记录息 师:请同学们分组讨论如何编写? 生:分组讨论
师:好,我们请一组代表说下他们的方案: 生:1.学号由键盘输入,用accept 2.由locate 语句来查询
3.不会判断条件,显示信息用display 师:其他组有办法帮他们解决吗? 生:用 eof( )来判断,主要是看记录指针的位置,我用 if not eof( ),就是指针不指向文件尾,表示

