1、高中算法与程 序设计教学建议,算法教学研究组 2009年2月,算法实例部分,一、深度与难度把握 二、在算法教学中的位置 三、如何使用教学建议,深度与难度把握,出现的算法种类 评价学生的方式 数组知识的基本要求,算法种类-解析算法:,【例1】勾股定律 【例2】输入三角形边长a,b,c,求三角形面积s。 【例3】求二个并联电阻的值。 【例4】输入一元二次方程的系数a,b,c,求方程的解。,算法种类-枚举算法:,【例5】求1-1000中,能被3整除的数。 【例6】找出1,1000中所有能被7和11整除的数。 【例7】判断一个正整数是否质数。 【例8】找水仙花数 【例9】百鸡百钱问题 【例10】 涂抹
2、单据。5位数的编号缺连续二位 【例11】涂抹单据。5位数的编号缺不连续二位,算法种类-最值问题,【例16】求二个数中的最大(小)值。 【例17】求三个数中的最大(小)值。 【例18】求十个数中的最大(小)值。,(暂作拓展算法),递推算法:(略) 排序算法【例19】*选择法排序(10个数降序排序) 查找算法,目前评价学生的方式,给出流程图填伪代码 给出伪代码填流程图 给出题意填充(最难),数组内容的基本要求,(1)数据的输入 例:由键盘向a数组输入五个数For i=1 to 5Input a(i)Next i (2)数据的输出 例:输出a数组中a(1)-a(5)五个数For i=1 to 5pr
3、int a(i)Next i,数组内容的基本要求,(3)数组的应用S=a(2)+a(5) (4)简单的应用(选票的统计)For i=1 to nInput xa(x)=a(x)+1Next i,二、在算法教学中的位置,基础部分的拓展 三种基本结构的综合应用 程序设计的入门 可持续发展的重要环节,三、如何使用教学建议,如何处理教材、基本要求和教学指导 先读懂再模仿 预设学生会出现的问题。 谈化算法的优化 提倡一题多解,了解算法的非唯一性,如何处理教材、基本要求和教学指导,教 材:依据 教学要求:“考纲”(关注重点剖析和应用实例) 教学建议:参考(提供了所有举例的算法代码和流程图的电子稿),教学建
4、议中的例题处理,(1)解析算法: 一般这类问题可以通过一个数学式子就能得出问题的解。学生可用以下方式来实现: 输入(把数据输入到相应的变量中) 计算(解析出的式子) 把式子(表达式)计算的结果(值)送到输出的变量中 输出(把结果变量输出),教学建议中的例题处理,不能把数学中方法移植到计算机和程序设计。解析过程是要人来推导的,计算机只是完成“计算”而已。 计算前将已知的数值通过变量计算机,由计算机完成人们给定的“公式”运算后,一般再赋给一个变量,最后把“结果”输出出来。 编程的人是告诉计算机该怎样“计算”,而不是计算机能“自动”计算。,教学建议中的例题处理,(2)枚举算法: 通过生活实例,理解枚
5、举算法的定义,找出枚举算法的关键步骤及注意点 在枚举算法中往往把问题分解成二部分: 1)一一列举: 这是一个循环结构。要考虑的问题是如何设置循环变量、初值、终值和递增值。循环变量是否参与检验。(要强调本算法的主要是利用计算机的运算速度快这一特点,不必过多地去做算法优化工作。),教学建议中的例题处理,2)检验: 这是一个分支结构。要考虑的问题是检验的对象是谁?逻辑判数后的二个结果该如何处理?分析出以上二个核心问题后,再合成: 要注意循环变量与判断对象是否是同一个变量。该算法的输入和输出处理: 输入:大部分情况下是利用循环变量来代替。 输出:一般情况下是判断的一个分支中实现的。,教学建议中的例题处
6、理,(3)最值问题(引出排序) 二、三个数比较大小一般采用分支结构。 多个数比大小一般用循环加分支结构(俗你“打擂台”方法。) 选择法排序利用“打擂台”方法加上下标变量在一组数中逐个找最大(小)数。,2.先读懂再模仿(降低要求),一读懂我们所说的题意,即程序设计中的需求分析。从题目的叙述中,提炼出: 本程序要“做什么”即为了设计程序而认为是事实。例如:二个数比较大小。 如何在需求分析中明确哪些是已知信息?例如 在需求分析中如何明确你所期望的结果?例如,2.先读懂再模仿(降低要求),二是读懂为解决本问题的程序(流程图、程序代码)的算法思想。 再模仿:在读懂后,我们在此算法上作一些简单的改变,让学
7、生进行模仿。这时就会很有成就感。例如 适当可背一些常用的模块。增加积累。,3在程序设计中学生会出现的问题,建议要让学生进行上机调试,只有通过上机才能发现程序的错误。 错误造成的原因: 语法错误,例如 x+y=a if endif do/loop 运行错误,例如 除数为0等等 逻辑错误,例如 公式使用错误等如何查错:使用调试器(逐行逐语句),培养学生独立编程,做个程序设计项目活动 编个游戏程序(复兴) 做个姚明在NBA的成长(顾继英) 做个粮食安全的预测(东昌中学),谈化算法的优化,例如:求质数循环终值的处理变形金刚包装问题,提倡一题多解,,三个数找最大数多路分支复合条件取大为先打“擂台”,谢谢!,