算 法
课题:算法(第4章
第2节
第1课时)
一、教材分析
本课是第4章第2节第1课时,前面已经介绍了程序设计的概念,学生了解了计算机程序解决实际问题的过程,本节课直指程序设计的核心——算法,在解决问题过程中算法的优劣直接影响所编程序的质量,引发学生对算法和程序语言的思考,也为后续学习程序设计语言提供基础和铺垫。
二、学情分析
本次授课对象为八年级学生,该年龄段学生已经具备了一定的分析问题、解决问题的能力,逻辑思维能力正在逐渐增强。但是如何从生活实际中提炼解决问题的算法,如何筛选优秀算法解决问题优化方案,这方面的认知还是比较欠缺的。
三、教学目标
1.
知识与技能
(1)了解算法的基本概念与算法程序设计中的重要性。
(2)能够用自然语言、流程图来描述问题的算法。
2.
过程与方法
(1)用多种算法解决同一问题,体验算法具有优劣之分。
(2)在解决实际问题的过程中能有意识地设计与筛选算法,优化问题解决的方案。
3.
情感、态度与价值观
通过对问题的算法分析与表达,学生感悟到生活中处处有算法,算法并不神秘,提高学习的信心与兴趣。
四、教学方法
讲解、演示、讨论学习。
五、教学重点与难点
1.
重点
(1)算法在程序设计中的重要性。
(2)用自然语言与流程图描述算法。
2.难点
(1)用流程图描述算法。
(2)将实际问题抽象成计算机解决问题的算法。
六、教学策略
通过生活及学习当中的实际问题引发学生思考算法及算法优劣的影响,并通过读流程图、自然语言转换为流程图,到自己根据解决问题的需要设计算法设计流程图,层层递进的任务设计促进学生对流程图的灵活应用。
七、教学过程
(一)情境导入
1.
教师活动
烧水泡茶,它需要做4项工作,即洗好水壶(2分钟),洗好茶杯(3分钟),准备茶叶(1分钟),烧开水(10分钟)。
你会如何泡茶呢?
这是著名的华罗庚泡茶问题。
几种方法都能达成泡茶的目的,但是哪一种方法你觉得最好,为什么?
解决问题的方法和步骤我们称为算法。那么刚才的几种方法都能解决泡茶这个问题,但是同学们发现有一种算法时间效率最高。
生活中我们要思考较好的算法,在编写程序时同样我们要探寻较好的算法。
2.
学生活动
(1)回答泡茶的几种不同的方法。
(2)思考各种方法的不同,发现在烧水同时洗好茶杯、准备好茶叶这种方法最节省时间。
3.
设计意图
通过生活中的实际案例,体会解决问题方法的多样性,同时,引出为何要深入研究算法。
(二)新授课
1.
算法的重要性
(1)例题:查数问题
教师活动
编写一个包含有1000个有序数列(序号从1到1000)的数列,查找数字的程序:当输入某个数字时,程序立刻显示出该数字所在的序号。
应该如何查找数字呢?
解决该问题的算法有:
a.顺序查找;
b.随机查找;
c.二分查找;
……
思考问题:
a.哪一种算法比较好?为什么?
b.如何理解“算法的优劣直接影响所编程序的质量,算法是程序的灵魂”这句话呢?
同学们通过口头语言清晰地表述出了解决查数问题的各种方法,这种描述算法的方法我们称为——“自然语言”。
学生活动
a.思考解决查数问题的多种方法,体会到算法的重要性,算法有优劣,选择较优的算法。
b.进一步理解算法的重要性。
c.引出自然语言描述算法。
设计意图
从查数程序引出算法的重要性,算法是程序的灵魂,选择合适的算法能提高整个程序的质量。并通过学生在描述多种解决问题的方法时引入可通过自然语言描述算法。
(2)探究练习
教师活动
计算出S=2+4+6…+100的值,试设计出多种算法,并比较这些算法中哪种算法更加简单与高效。
用自然语言描述算法。
学生活动
鼓励学生设计出解决此问题的多种方法来。并分析不同算法解决问题的效果是否相同。
设计意图
进一步体会算法的优化可以大大提高工作效率。
2.
如何去描述算法
查数问题的多种算法刚才是用自然语言来描述的,同学们都很容易理解,但自然语言描述算法在某些时候会出现一些问题。
(1)例题
教师活动
阅读句子“将a加b除以a减b的值赋给x
变量”,填写出相应的赋值语句,然后统计全班同学所填写的是否一致。根据统计的结果,分析产生这种情况的原因。
所以在用自然语言描述算法的过程中要注意语言的严密性。
可以用其他的方法描述出这个问题的算法,见下图。
流程图1
可以通过这样的几何图形把每一个步骤都清楚地表示出来。这样的表示方式我们称为流程图。
学生活动
a.体会自然语言的优缺点。
b.阅读几何图形描绘的算法,清晰表述出算法,引出流程图。
设计意图
a.掌握自然语言描述算法的方法,了解自然语言的优缺点和适用情况。
b.引出流程图,并了解流程图的优缺点。
(2)流程图
流程图,就是用图形符号来描述解决问题的过程,其优点是直观、简洁、易懂,并且逻辑关系清晰。
教师介绍流程图各个图形符号所代表的含义。
表1
符
号
符号名称
含
义
起止框
表示算法的开始和结束
处理框
表示对框内的内容进行处理
输入/输出框
表示输入/输出操作
判断框
表示对框内的条件进行判断
流程线
表示流程的方向
教师示范运用流程图描述顺序查找数字的方法。
表2
描述方法
自然语言
流程图
优点
容易理解
逻辑清晰
缺点
产生歧义
描绘麻烦
学生活动
a.掌握流程图的使用方法。
b.掌握各个几何图形在流程图中的作用。
c.理解自然语言和流程图的各自优缺点,掌握各自适用情况。
(3)练习
教师活动
a.阅读流程图,说明该流程图描述的算法及功能。
流程图2
b.用流程图描述前面“查数问题”的顺序查找算法。
学生活动
a.阅读流程图,加深对流程图的理解。
b.分析问题,找出算法,并能运用流程图描述算法。
c.能够运用自然语言和流程图解决生活中的实际问题。
设计意图
a.通过阅读流程图,巩固算法描述的知识。
b.通过学生自主设计流程图,培养学生应用“算法描述”解决问题的能力。
c.知识螺旋上升。
(4)拓展练习
教师活动
从键盘输入两个不同的数,然后显示大的数。请设计算法并画出流程图。
学生活动
尝试应用“画程”软件绘制流程图。
(三)小结
1.
教师活动
总结本课知识。
归纳:(1)算法的重要性。(2)描述算法的方法。
2.
学生活动
归纳与总结。
3.
设计意图
归纳与建构知识体系。(共13张PPT)
走进算法
——算法与算法描述
生活中处处有算法
烧水泡茶,它需要做4项工作,即洗好水壶(2分钟),洗好
茶杯(3分钟),准备茶叶(1分钟),烧开水(10分钟)。
1.
洗水壶,灌水烧水;水开后,再洗茶杯,准备茶叶,冲水泡茶。
2.
先洗水壶,洗茶杯,放茶叶,一切就绪,再烧水,水开后再泡茶。
3.
洗水壶,灌水烧水;烧水过程中,洗茶杯,放茶叶,水开后泡茶。
什么是算法
算法:解决问题的方法和步骤。
有穷性:指算法必须能在执行有限个步骤之后终止
。
确切性:算法的每一步骤必须有确切的定义(无二义性)。“张三
对李四说他的孩子考上了大学”。
输入项:
一个算法有0个或多个输入。
输出项:
一个算法有一个或多个输出。没有输出的算法是毫无意义。
可行性:每个操作步骤都可以在有限时间内完成(也称之为有效性)。
编写一个包含有1000个有序数列(序号从1到1000)的数列,查找数字的程序:当输入某个数字时,程序立刻显示出该数字所在的序号。
随机查找
顺序查找
二分查找
思考问题:
(1)哪一种算法比较好?为什么?
(2)如何理解“算法的优劣直接影响所编程序
的质量,算法是程序的灵魂”这句话呢?
查数问题
计算出s=2+4+6…+100的值。
试设计出多种算法,并比较这些算法中哪算法更加简单与高效。
用自然语言描述算法。
练一练
写写看:
“将a加b除以a减b的值赋给x
变量”写出x变量的赋值语句。
用自然语言描述。
流程图:几何图形来描述算法流程。
算法如何描述
符
号
名
称
含
义
起止框
开始、结束
处理框
计算等处理
输入/输出
输入和输出内容
判断框
判断条件满足与否
流程线
程序的流向
(1)自然语言。
(2)流程图。
(3)程序设计语言。
算法如何描述
例题:给定三角形的底和高,计算三角形的面积?
算法描述
自然语言:
(1)输入三角形的底a和高h。
(2)判断a>0,h>0。
(3)计算面积公式s=a
h/2。
(4)输出面积s。
流程图
a
=
InputBox("输入长")
h
=
InputBox("输入高")
if
(a>0)
and
(h>0)
then
s
=
a
h
/
2
Print
s
Else
Print
“无解”
End
If
VB程序设计语言
1.
阅读流程图,说明该流程图描述的算法及功能。
练一练
练一练
2.
阅读流程图,说明该流程图描述的算法及功能。
练一练
3.
ax+b=0,一元一次方程求解的算法描述:
用自然语言、流程图描述
拓展题
从键盘输入两个不同的数,然后显示大的数。请设计算法并画出流程图。