下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.2算法及其描述【本节对应课标的内容要求】从生活实例出发,概述算法的概念与特征,运用恰当的描述方法和控制结构表示简单算法。【知识技能要点】1、理解算法的概念2、掌握算法的特征3、从生活实例出发,概述算法的概念与特征4、运用恰当的描述方法和控制结构表示简单算法。【课前准备】智能过河游戏、微课视频、算法优化python程序、课件、课堂小测、学习任务单【教学过程】〖知识回顾〗上一节课我们学习体验了计算机解决问题的方法和步骤:“分析问题”、“设计算法”、“编写程序”、“调试运行程序”,而算法是整个问题解决的核心。什么是算法呢?〖游戏导入〗游戏规则:三个人来到河边准备过河,这时他们遇到三个鬼也准备过河。但是河上面的船比较小,只能同时乘两个人(或鬼)。条件:鬼在比人多的情况下是会吃人的。你能想办法让这三个人和这三个鬼顺利地过河吗?比一比,看看哪个小组同学最快完成。请一位同学根据本小组体验结果,将拖动左侧项目到对应的步骤上去,完成过河。〖讲授新课〗一、算法的概念师:智力过河问题通过六步得到完美解决,解决问题的过程步骤我们就可以理解为是一个广义的算法。那什么是算法呢?我们通过一个微课来了解一下。播放微课视频《什么是算法》二、算法的特征简单点说,算法就是解决问题的方法,我们再来回顾一下智力过河的算法,从这个算法中同学们能发现算法具有什么特征吗?①只有六步②每一步都比较明确③每一个步骤都是可实施的师:这些就是算法的特征。从刚才我们学习的算法概念里,我们也可以找出算法的几个特征:有穷性、确定性、可行性。算法:是指在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。除此外,算法还有两个特征:数据输入、数据输出。数据输入指一个算法必须有零个或多个数据输入(如:只有一条print()语句的程序,没有数据输入);数据输出指一个算法有一个或多个数据输出。如果没有数据输出,我们的程序就没有任何意义了。算法的特征都记住了吗?一句口诀帮助你记忆:“有出入可确定”,是不是好记多了。三、算法的描述韩信是汉高祖刘邦手下的一名大将,相传他有一个《韩信点兵》小故事,我们先来欣赏一下。播放《韩信点兵》视频你能帮刘邦算出有多少士兵吗?(假设士兵数量小于2000人)“3列纵队操练,余有1人;5列纵队操练,余有2人;7列纵队操练,余有2人。”对于这样的问题,应该怎样解决呢?同学们小组讨论分析,试用语言描述士兵数量计算的过程。同学讨论回答,老师整理出解决步骤:①S取0②S加1③如果S除以3余1、S除认5余2、S除以7余2,则输出数S④如果S<2000则跳转至步骤○2,否则执行步骤○5⑤程序结束我们设计的算法要想被别人理解和执行,就必须将它描述出来。描述算法常用的的方法有三种:自然语言描述、流程图描述、伪代码。刚才同学们对韩信点兵问题的回答就是算法的一种描述方法——自然语言描述。(一)自然语言描述算法,就是用人们日常所用的语言,如汉语、英语等来描述算法。从韩信点兵的算法中我们可以看出自然语言描述有什么特点?优点:通俗易懂,符合我们平时的表达习惯。但是平时我们的自然语言也有不足。如这句话:我要炒白菜。你怎么理解这句话呢?很显然,是有歧义的。缺点:自然语言描述的不足是对复杂问题表述不当,容易产生歧义性,导致算法执行的不确定。除了自然语言,还有一种算法描述方法——流程图。(二)流程图描述算法。流程图描述算法:是用程序框图来描述算法的一种表示方法。请快速记忆下面流程图的基本图形及功能。根据自然语言描述,将韩信点兵问题算法转化成流程图。流程图中用不同的图形代表不同的功能。请同学在白板上,拖动相应环节和图形到流程图虚线框里,完成流程图。从韩信点兵的流程图中,可以看出。流程图描述算法的优点:形象、直观、清晰、简洁。但它的不足是:需要特定的规则,运用大量图形符号,书写不方便。(三)伪代码描述算法第三种算法描述方法——伪代码。伪代码描述算法:是用介于自然语言和计算机语言之间的文字和符号来描述算法。上面的代码并不是我们计算机可以直接执行的程序代码,所以我们称它为伪代码。但它接近于我们学习的程序代码了。所以它的优点:书写方便,格式紧凑,易于理解,容易向计算机程序设计语言过渡。但它普适性不强。学习了三种算法描述方法,我们来做一个小游戏:为小蝌蚪找妈妈,将小蝌蚪的词条拖动到对应的青蛙上面。教师对描述算法的三种方式的特点作个简单总结。以后碰到这样的问题时,我们可以根据实际情况挑选一种合适的方式先对问题进行算法描述,再来编写程序代码就可以做到事半功倍了。练习:任意输入三个数,输出三个数中最大的值。小组讨论,将以上解决问题的算法用流程图表示出来。(传屏,对同学练习情况进行展示评价)同一问题可以用不同的算法来实现,所谓条条大路通罗马。但是,不同的算法往往会对解决问题的效率造成很大的影响。四、算法的优化算法是计算机程序解决问题的核心。设计一个好的算法,非常重要。在同学们电脑的桌面上有一个“程序效率”的python语言编写的程序。已知a+b+c=1000,且a2+b2=c2,求a,b,c的所有自然数解。运行程序,体验一下,看一看运行结果。师:程序除了光标在闪动外,没其他的反应是吧?不是没反应,而是程序在一直高速运转。为什么呢?(分析对比程序优化前后时间效率差异。优化前程序用时1357。15秒;优化后程序用时1.38秒差了近一千倍)通过流程图对比,感受算法设计差异。算法的差异得到的不仅仅是事半功倍,也可能是事半功千倍,甚至是万倍亿倍。这也是我们学习算法的意义和目的。五、三种基本控制结构还是以刚才的流程图为例:绿色框内部分,每个步骤都是按照先后顺序执行的,执行完一遍后,算法结束,这种结构就是算法控制的顺序结构。蓝色框内部分,表示算法中出现了分支,根据分支条件的真或假进行选择,选择其中的某一条分支执行,这种结构我们称为选择结构。桔色框内部分,表示在算法中的某一步或某几步需要反复执行,直到判断条件为真或假时才可终止,这种结构就是循环结构。以上就是算法描述中常用到的三种基本控制结构,而任何复杂的算法都可以用这3种基本控制组合来表示。使用三种基本控制结构的组合来描述算法,可以改善算法的清晰度,提高算法的可读性,原因如下:以控制结构为单位,只有一个入口和一个出口,各单位之间接口简单,比较容易独立地理解每一单位。缩小了算法的静态描述与动态执行过程之间的差异,使得两者容易对应,易于理解。【课堂检测】智力大比拼,完成课堂评测。课堂检测:1.关于算法的特征,以下说法正确的一项是()A、算法的步骤可以永远执行B、算法的每一个步骤都需要有明确的定义,不能有歧义出现C、算法必须要有数据输入D、算法可以没有数据的输出2.下列关于算法的描述,正确的是()A、算法只能用自然语言描述B、算法必须在有限步骤内实现C、算法就是一种高级程序设计语言D、算法可以有0个或多个输入,但只能有一个输出3.用流程图表示条件”A>B”是否成立,要用到以下哪个图形?()A、平行四边形B、圆角形C、菱形D、直角矩形4.下列问题不能用算法描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45164-2024熔模铸件缺陷分类及命名
- 二零二五年度百货商场停车场管理合同样本3篇
- 二零二五版员工股权激励与管理合同模板3篇
- 二零二五年防盗门研发、生产、销售一体化合作协议3篇
- 2024版家具经销商合作协议范本
- 二零二五年度音乐器材行业标准制定与执行合同3篇
- 2024版云计算服务租赁合同
- 二零二五版个人子女教育还借款合同3篇
- 2024版前期物业服务管理协议
- 二零二五版体育健身器材研发与销售合同3篇
- 2024年安全教育培训试题附完整答案(夺冠系列)
- 化学-山东省潍坊市、临沂市2024-2025学年度2025届高三上学期期末质量检测试题和答案
- 领导学 课件全套 孙健 第1-9章 领导要素- 领导力开发
- 文化资本与民族认同建构-洞察分析
- 2025新译林版英语七年级下单词默写表
- 2024年私募基金争议解决研究报告之一:私募基金管理人谨慎勤勉义务之边界探析-国枫研究院
- 物业客服服务技巧培训
- 环卫设施设备更新实施方案
- 招聘技巧的培训
- 北师大版一年级上册数学全册教案(教学设计)及教学反思
- 福建省公路水运工程试验检测费用参考指标
评论
0/150
提交评论