内容分析:
本节课主要上让学生了解什么是算法及其特征,掌握三种描述算法的方法
教学目标:
知识与技能:进一步理解什么是算法,知道算法的多样性;能够对设计的算法做简装的评价;学会利用自然语言、流程图和伪代码来描述算法。
过程与方法:培养学生用算法描述问题的能力和正确解决问题的过程。
情感态度价值观:培养学生的高阶思维能力,如综合、评价、分析、思辨等。
教学设想:
将韩信点兵、凯撒密码等学生感兴趣的内容与算法设计结合起来,让学生体会到算法描述并不枯燥,很有意思,因势利导,鼓励他们把数学课中的内容也用算法描述出来,达到学科相融的目的。
教学重点:
1、算法的特性
2、用自然语言、流程图、伪代码描述算法
教学难点:
用流程图描述算法
教学策略:任务驱动、示范观察、合作讨论、自主探究相结合
教学课时:1课时
教学过程:
任务一:为什么说算法是“灵魂?
活动:讨论引入
算法存在于人们生活中,如:上街购物、顾客付款、营业员(主)找银等。
回顾:韩信点兵
“韩信点兵问题”有不同的求解过程,就有不同的算法。
有N个人,除以3,5,7,分别余2,3,2,求N。
分析:算法
1、解决问题的方法和步骤。
算法是尼克劳斯.沃斯(N.Writh)提出的,他指出:算法+数据结构=程序。
(即算法不能单独构成程序,它必须和数据结构合二为一)
2、算法的发现
时间:公元前3000年~公元前1500年?地点:巴比伦
巴比伦人求解“算法”的过程:先用解代数方法,再计算实际数目,最后写上一句短句“这就是一个过程”。
3、算法的特征
我们曾在必须修课中提过一点算法,如:冒泡排序法。
例:计算1+2+3+……+100=?
这个算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性。计算此算法可以用纸笔、算盘、运算器和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行性、确定性。
计算方法:
⑴把这100个数按顺序相加。
⑵用凑数法:1+99=100,2+98=100,3+97=100,……,49+51,最后只剩下50和100。
⑶令S=0,使1≤n≤100,先执行S=S+n?⑴,再执行n=n+1?⑵
n=1,S=0时,S(0)=1 n=2,S=1时,S(0)=3 n=3,S=3时,S(0)=6
n=4,S=6时,S(0)=10 n=5,S=10时,S(0)=15 n=6,S=15时,S(0)=21……
算法的另外一个特征:输入、输出。
实践:算法应用
练习:水仙花数问题,如153=1^3+5^3+3^3,分析它应满足什么条件才能使用此方法?
任务二、如何描述算法?
分析:1、用自然语言描述算法
⑴自然语言——人们日常生活中使用的语言。
⑵此种语言的特点:通俗语易懂,缺乏直观性和简洁,且易产生歧义。
使用此种语言的注意事项:描述要求尽可能精确,详尽。
示范:用自然语言描述凯撒密码的原理
第1步:输入26个英文字母,它们分别对应1~26个数学。
第2步:令a=1,k=3,n=26。
第3步:使a的取值范围为1≤a≤26,F(a)=(a+k) mod n,转第5步。
第4步:a=a+1,转第3步。
第5步:输出F(a)相对应的数字。
第6步:把数学转化成相当的字母,输出字母。
第7步:累计字母出现顺序,转第4步。
练习:现有一串字母“PROGRAM”给它加密,请设计算法,用自然语言描述。
分析:2、用流程图描述算法
⑴特点:描述算法形象、直观,容易理解。
⑵流程图符
示范:
探究:用流程图表示1+2+3+……+100=?
分析:.3、用伪代码描述算法
特点:描述的算法简、易懂,修改容易,容易转化为程序语言代码。
探究:分析课本第9页算法描述
第一个条件:y mod 4=0
判断闰年的条件:⑴y不能被100整除;⑵y能被400整除且y能被400整除。
判断不是闰年的条件:⑴y mod 4=0?且y mod 100=0,但y不能被400整除;⑵y不能被4整除。
表示条件判断语句?表示循环处理语句:
IF?条件?THEN?执行语句一?Do While?条件循环语句
ELSE执行语句二?Loop
END IF
条件语句中可以包含多个子语句
实践:用表格比较自然语言、流程图和伪代码3种描述方法的优缺点。
方法 特性 | 自然语言 | 流程图 | 伪代码 |
直观清晰 | ? | ? | ? |
确定性 | ? | ? | ? |
烦琐程度 | ? | ? | ? |
是否容易修改 | ? | ? | ? |
通俗易懂 | ? | ? | ? |
总结:
学生进一步理解什么是算法,知道算法的多样性;能够对设计的算法做简装的评价;掌握利用自然语言、流程图和伪代码来描述算法,通过分析对比,我们知道了三种描述方法的优劣。用伪代码描述的算法简洁、易懂,修改起来比较容易,并且很容易转化为程序语言代码,但它没有流程图描述的算法直观,一旦出现逻辑错误也不便排查。