算法教学基本要求与建议

文档属性

名称 算法教学基本要求与建议
格式 zip
文件大小 3.6MB
资源类型 教案
版本资源 沪教版
科目 信息技术(信息科技)
更新时间 2012-12-12 22:23:51

文档简介

课件17张PPT。高中算法与 程序设计教学建议 算法教学研究组
2009年3月算法结构算法基础算法实例顺序结构分支结构循环结构算





计知 识 框 图教学课时安排算法基础 4 课时
顺序结构 2 课时
分支结构 3-4课时
循环结构 4-6课时
算法实例 6课时
解析法 1课时
杖举法 2课时
数组 1课时
排序 1课时
查找 1课时
项目活动 4课时
考试复习 6-8课时
说明:教学课时可作调整,建
议不少于24课时。
要求:结合语言教学,较难
的算法只需理解思想
方法,不必编程实现。一、算法基础 算法与算法描述
算法的概念与特征
算法的描述方法
计算机解决问题的一般过程
有穷性 、确定性、可行性
有0个或多个输入、有一个或多个输出实例宜选用顺序结构;
从自然语言过渡到画流程图,注意流程图规范,准确使用各类框图及符号;
流程图中暂不出现变量;
适当进行练习画流程图。基本步骤:输入-处理-输出;
比较计算机解决问题与人工方法的不同点。一、算法基础 变量与变量名
变量、常量
变量命名的基本规则
变量名与实际意义
变量类型
变量的赋值
变量名与变量值
变量的引入;
变量对应存储单元;
知道数值型、字符型两种类型 。
变量名变量值存储单元a3赋值号 a=3一、算法基础 执行下列赋值语句后,写出a,b,c,d的结果。说明变量的特点
变量先赋值,后使用;
变量可反复使用,即“取之不尽”;
变量可重新赋值,即“赋值即覆盖”。一、算法基础 运算符与表达式
各类运算符,优先次序
表达式及其类型
列表法记录变量值不同语言运算符定义会不同;
学习表达式的写法;
暂时不引入累加器与计数器;
关系运算符“=”与赋值号“=”
关系与逻辑表达式为分支学习中的条件作准备。成为记录变量变化的一种方法;
加深变量赋值即覆盖的特点。算法基础教学注意点概念准确和清晰,切忌模糊,使学生一开始就能有正确的认识;
注意循序渐进,还没有出现的概念和知识,决不能事先应用;
各知识点的落实,最后要在解决问题的流程图中统一体现。二、顺序结构顺序结构特征
常用函数
算术平方根 sqr(x)
绝对值 abs(x)
取整函数 int(x)二、顺序结构理解顺序结构;
利用一般数学或物理公式计算。复习巩固变量、变量值、表达式。 【例1】键盘输入一个正方形的边长a,求该正方形与其内切圆所夹部分的面积并输出。学习取整函数int(x);
利用int(x)与取余数运算符mod结合使用。
可适当降低难度 利用带函数sqr(x)的数学公式计算;
进一步巩固表达式。 【例2】键盘输入一个二位正整数n,输出它的十位数x。
【例3】输入任意一个三位正整数n,输出这个三位数各位数字之和total。【例4】输入一元二次方程的系数a、b、c(确保b2-4ac>0),计算并输出两个实根x1、x2。二、顺序结构【例5】交换两个变量的值。--借用第三变量 引入第三个变量t 为了防止有用的数据丢失,预先将a的值保护起来。 分析原因:赋值即覆盖atb①②③二、顺序结构【例5】交换两个变量的值。
写出流程图执行后a与b的值。
分析流程图的功能。
思考还有什么方法解决?并注意学生在提出其它方法是否有条件的限制。二、顺序结构【例6】求银行利息:n元人民币存一年,到期后领取的总金额是多少?可得利息多少?假设年利率为2.25%。
数据来源:一是在程序中直接赋值,二是程序运行中从输入设备读取;
强调输出的必要性;
检查流程图的规范性。【补充 】读流程图,体会输入输出问题。顺序结构教学注意点巩固有关变量、变量值、表达式的相关知识,以及有关函数的知识。
让学生进一步体会计算机解决问题的环节:输入——处理——输出,在顺序结构中,把输入、输出环节的问题解决,就能为后两种结构学习扫除障碍。
取整函数int(x)和mod运算的应用,交换两个变量的值是解决问题中常用工具和算法,学生理解了这部分内容,就为以后应用创造了条件。
算法基础和顺序结构重点在于让学生理解,怎样让计算机按人的思想来实现。
吴逸民 宝山区教师进修学院
E-mail: 900277@eicbs.com谢 谢 !500一元二次方程ax2+bx+c=0,将判别式(b2-4ac)赋给变量d。
某商店一商品价格存放在变量price中,将价格打对折后,仍存放于变量price中。(假设商品原价为500) price=price/2price500price=500变量=<表达式> 先运算,后赋值读写250
CPU250算500/2课件24张PPT。分支结构算法的教学建议——分支结构重要的知识点
引入方法
选用的例题意图及学生容易出现的错误
分支结构的概念:根据给定条件是否成立而决定执行不同步骤的算法结构。
基本模式:双分支结构和单分支结构
复习算法基础中的“算术表达式”、“关系表达式”和 “逻辑表达式” ,找出其本质的不同。
执行到分支结构时,在两条可能的路径中,根据条件是否成立而选择其中一条执行。5.流程图规范画法
流程线,走直角,自上而下。
双分支结构中,条件判断的是、否结果左右分列;单分支结构中,条件判断成立时,往下执行预定步骤,否则跳过预定步骤。
无论单、双分支都一定有判断框和汇聚点,判断框是分支结构的开始,汇聚点是分支结构的结束。
判断框有一个入口,两个出口,而分支结构只有一个入口,即判断框的入口,一个出口,即汇聚点的出口。
分支结构的引入方法,如同前面顺序结构一样,建议先用现实生活中的实际问题引入 。
例1:双分支结构:上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。
单分支结构是双分支结构的一种特例。
例2:单分支结构:出门带伞问题:如果下雨,带伞后出门,否则直接出门。
分支结构的两种基本模式与程序设计中的IF语句:此时,一定要问清楚学生,“否”的这个分支含义是什么,这样当学生学习IF语句中的ELSE时,可以理解ELSE语句中其实隐含着不成立的条件,无须重复书写。双分支结构单分支结构双分支的语句格式:
IF <条件> THEN
<条件成立执行的语句块>
ELSE
<条件不成立时执行的语句块>
END IF
单分支的语句格式:
IF <条件> THEN
<条件成立执行的语句块>
END IF分支结构的两种基本模式与程序设计中的IF语句对应关系:IFTHENELSEEND IFIFTHENEND IF双分支结构单分支结构条件IF语句:
双分支的语句格式:
IF <条件> THEN
<条件成立执行的语句块>
ELSE
<条件不成立时执行的语句块>
END IF
单分支的语句格式:
IF <条件> THEN
<条件成立执行的语句块>
END IF要强调IF和END IF的一一 对应。
要强调分支结构中语句块采用缩进方法书写。
要讲清楚分支结构的执行过程,特别要和顺序结构区别开来。选用的例题意图及学生容易出现的错误引入阶段——例1、例2(生活实例)
分支结构的初步学习——例3、练习1、练习2
分支结构的初步应用——例4、例5
分支嵌套——例6、例7、拓展练习1、拓展练习2
分支结构的提高应用——例8、例9
例3:从键盘输入的两个不相等的数,打印出其中较大的数。(双分支结构)
意图:让学生着手简单的分支结构的运用,尝试写分支的判断条件。
上机调试时,再次强调ELSE语句后面不加条件练习1:求分段函数值 学生可能画出的流程图练习2:输入一个数到变量a,输出它的绝对值(不用绝对值函数)。
通过上述的例题和练习题可以对分支结构进行初步学习和应用,为后续的提高打下基础。例4:输入两个不相等的数a,b,比较大小,将大数放在a中,小数放在b中,然后输出a,b。(单分支结构)本题是为后续的三数比大小做准备,同时可以复习单分支结构。题目比前面的题目难度增加,学生可能会遗忘交换两个变量值的典型算法,教师可以在本例题中提醒学生。
例5:某超市促销苹果,购买一斤苹果,为每斤3元,购买5斤以下每斤原价;超过5斤部分每斤打8折,输入购买的斤数,输出应付款额.(双分支结构)上述两个例子是分支结构的初步应用例6:分段函数问题(分支的嵌套)
分段函数学生容易理解,条件显而易见,可以用数轴的办法,让学生观察数值区域,选择从大到小,或从小到大的判断方法,用分支嵌套来实现。注意语句的书写规范,IF和END IF成对出现。例7:购买地铁车票:乘1-4 站 3元/位;5-9站 4元/位;9站以上5元/位;输入人数person、站数n,输出应付款pay(分支嵌套)。
总结不管先判断哪个条件,后判哪个条件,都要看到条件不成立时隐含着的条件,判断过的无需反复进行判断,但也不要漏掉哪段范围,尤其是一个个的边界值。学生的做法可能有多种,请教师务必留意判断条件的正确性。 上述例题和后续的两个拓展练习“手机通话费用计算”和“一元二次方程求解”都是为巩固分支嵌套而设计的。例8:输入三个不相等的数a,b,c ,将最大数赋值给变量max并输出。(一题多解)
讲解方法:先回忆两数比较大小,然后可先在黑板上将三个数的关系分析清楚,再根据其逻辑关系画出流程图。可通过让学生读流程图或补全流程图来降低难度。如果a≥b如果a≥cmax=a如果a=b THEN
IF a>=c THEN
max=a
ELSE
max=c
END IF
ELSE
IF b>=c THEN
max=b
ELSE
max=c
END IF
END IFIF a>=b and a>=c THEN
max=a
ELSE
IF b>=a and b>=c THEN
max=b
ELSE
max=c
END IF
END IF
PRINT max学生可能用逻辑表达式来找出最大值,甚至利用逻辑表达式,连续用三句单分支结构来解决问题。教师此时需要指出的是重要的是利用分支嵌套的思想来理顺数之间的关系,追求的是逻辑思维过程,而非最后的结果。IF a>=b and a>=c THEN
max=a
END IF
IF b>=a and b>=c THEN
max=b
END IF
IF c>=a and c>=b THEN
max=c
END IF
PRINT max擂台法:
max=a
IF b>max THEN
max=b
END IF
IF c>max THEN
max=c
END IF擂台法学生不容易想到,却是最精炼的一种算法,在有条件的学校,教师可以尝试提示不用分支嵌套结构和逻辑表达式来完成本题。例9:输入一个三位数的整数,将数字位置重新排列,组成一个尽可大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。
本例题是对学生思路的一种拓展,需要结合前面学习的函数与运算符,如mod运算符 和 int函数。教师可以提示学生这些运算符和函数的功能。以上两题都是分支结构的提高应用,教师可以结合学生的特点,选用读流程图、读程序、流程图填空或程序填空的方法,降低难度,加深理解。引入阶段——例1、例2(生活实例)
分支结构的初步学习——例3、练习1、练习2
分支结构的初步应用——例4、例5
分支嵌套——例6、例7、拓展练习1、拓展练习2
分支结构的提高应用——例8、例9
以上题目难度逐渐递进,通过3——4个课时加深学生对分支结构的理解,为后续的循环结构和算法实例打下基础。谢谢!上海市向明中学 励颖课件23张PPT。高中算法与程 序设计教学建议 算法教学研究组
2009年2月算法实例部分一、深度与难度把握
二、在算法教学中的位置
三、如何使用《教学建议》深度与难度把握出现的算法种类
评价学生的方式
数组知识的基本要求
算法种类--解析算法:
【例1】.勾股定律
【例2】.输入三角形边长a,b,c,求三角形面积s。
【例3】.求二个并联电阻的值。
【例4】.输入一元二次方程的系数a,b,c,求方程的解。《教学建议》中的例题处理(1)解析算法:
一般这类问题可以通过一个数学式子就能得出问题的解。学生可用以下方式来实现:
输入(把数据输入到相应的变量中)
计算(解析出的式子)
把式子(表达式)计算的结果(值)送到输出的变量中
输出(把结果变量输出)《教学建议》中的例题处理
不能把数学中方法移植到计算机和程序设计。解析过程是要人来推导的,计算机只是完成“计算”而已。
计算前将已知的数值通过变量计算机,由计算机完成人们给定的“公式”运算后,一般再赋给一个变量,最后把“结果”输出出来。
编程的人是告诉计算机该怎样“计算”,而不是计算机能“自动”计算。 算法种类---枚举算法:
【例5】.求1-1000中,能被3整除的数。
【例6】.找出[1,1000]中所有能被7和11整除的数。
【例7】.判断一个正整数是否质数。
【例8】.找水仙花数
【例9】.百鸡百钱问题
【例10】 涂抹单据。5位数的编号缺连续二位
【例11】涂抹单据。5位数的编号缺不连续二位《教学建议》中的例题处理(2)枚举算法:
通过生活实例,理解枚举算法的定义,找出枚举算法的关键步骤及注意点
在枚举算法中往往把问题分解成二部分:
1)一一列举:
这是一个循环结构。要考虑的问题是如何设置循环变量、初值、终值和递增值。循环变量是否参与检验。(要强调本算法的主要是利用计算机的运算速度快这一特点,不必过多地去做算法优化工作。)《教学建议》中的例题处理 2)检验:
这是一个分支结构。要考虑的问题是检验的对象是谁?逻辑判数后的二个结果该如何处理?
分析出以上二个核心问题后,再合成:
要注意循环变量与判断对象是否是同一个变量。
该算法的输入和输出处理:
输入:大部分情况下是利用循环变量来代替。
输出:一般情况下是判断的一个分支中实现的。 算法种类---最值问题
【例16】求二个数中的最大(小)值。
【例17】求三个数中的最大(小)值。
【例18】求十个数中的最大(小)值。《教学建议》中的例题处理(3)最值问题(引出排序)
二、三个数比较大小一般采用分支结构。
多个数比大小一般用循环加分支结构(俗你“打擂台”方法。)
选择法排序利用“打擂台”方法加上下标变量在一组数中逐个找最大(小)数。
(暂作拓展算法)递推算法:(略)
排序算法
  【例19】*选择法排序(10个数降序排序)
查找算法目前评价学生的方式给出流程图填伪代码
给出伪代码填流程图
给出题意填充(最难)数组内容的基本要求 (1)数据的输入
例:由键盘向a数组输入五个数
  For i=1 to 5
    Input a(i)
  Next i
(2)数据的输出
例:输出a数组中a(1)-a(5)五个数
  For i=1 to 5
    print a(i)
  Next i
数组内容的基本要求 (3)数组的应用
S=a(2)+a(5)
(4)简单的应用(选票的统计)
For i=1 to n
Input x
a(x)=a(x)+1
Next i二、在算法教学中的位置基础部分的拓展
三种基本结构的综合应用
程序设计的入门
可持续发展的重要环节 三、如何使用《教学建议》如何处理教材、基本要求和教学指导
先读懂再模仿
预设学生会出现的问题。
培养学生独立编程
提倡一题多解,了解算法的非唯一性如何处理教材、基本要求和教学指导教  材:依据
教学要求:关注内容与要求、重点剖析和应用实例
教学建议:参考(提供了所有举例的算法代码和流程图的电子稿) 2.先读懂再模仿(降低要求)二是读懂为解决本问题的程序(流程图、程序代码)的算法思想。
再模仿:在读懂后,我们在此算法上作一些简单的改变,让学生进行模仿。这时就会很有成就感。例如……
适当可背一些常用的模块。增加积累。 3.在程序设计中学生会出现的问题
建议要让学生进行上机调试,只有通过上机才能发现程序的错误。
错误造成的原因:
语法错误,例如 x+y=a if endif do/loop
运行错误,例如 除数为0等等
逻辑错误,例如 公式使用错误等
如何查错:使用调试器(逐行逐语句) 培养学生独立编程做个程序设计项目活动
编个游戏程序(复兴)
做个姚明在NBA的成长(顾继英)
做个粮食安全的预测(东昌中学)提倡一题多解,三个数找最大数
多路分支
复合条件
取大为先
打“擂台”谢谢!课件1张PPT。顺序查找算法的改进 (《教学基本要求》p.76 )开始开始结束结束输入 n输入 ni ← 1i ← 1i <= 10d[ i ] = nd[ i ] = ni ← i + 1i ← i + 1 r ← i输出 r输出 i输出 0 , r ← 0i <= 10r = 0and自然语言描述:
当没有超出范围并且没有找到
就要继续查找。
设置变量r←0 ,result 没找到NNNNYYYY枚举算法的一个案例
可以用“找钥匙”问题为模型
循环结构嵌套分支结构