1、算法描述与实现算法描述与实现算法与程序设计2【前情回顾】用计算机解决问题的一般步骤是什么?分析问题寻找解决问题的途径和方法用计算机处理设计算法-编写运行程序来实现算法算法的重要性-算法是程序设计的灵魂有两个重要环节农夫如何安全带这三样东西过河?算法初体验农夫过河 一个农夫带着一条狼、一头山羊和一篮蔬菜要过河。限制条件:只有一条船,农夫只能带一样东西。当农夫在场的时候,这三样东西相安无事。一旦农夫不在,狼会吃羊,羊会吃菜。请设计一个方法,使农夫能安全地将这三样东西带过河。活动方式:小组讨论、自制卡片模拟场景,采用举手竞答上机操作方式,在最短时间内完成过河的小组加1分算法初体验农夫过河农夫带狼、山
2、羊、蔬菜过河农夫带狼、山羊、蔬菜过河步骤步骤(完成导学案活动模块一内容,自制卡片小组内模拟场景实验完成导学案活动模块一内容,自制卡片小组内模拟场景实验)51234农夫带羊过河农夫带羊过河56农夫独自返回农夫独自返回农夫带农夫带狼狼过河过河农夫带羊返回农夫带羊返回农夫带蔬菜过河农夫带蔬菜过河农夫独自返回农夫独自返回7农夫带羊过河农夫带羊过河1234农夫带羊过河农夫带羊过河56农夫独自返回农夫独自返回农夫带农夫带蔬菜蔬菜过河过河农夫带羊返回农夫带羊返回农夫带狼过河农夫带狼过河农夫独自返回农夫独自返回7农夫带羊过河农夫带羊过河农夫带狼、山羊、蔬菜过河步骤农夫带狼、山羊、蔬菜过河步骤61234农夫带羊
3、过河农夫带羊过河56农夫独自返回农夫独自返回农夫带狼过河农夫带狼过河农夫带羊返回农夫带羊返回农夫带蔬菜过河农夫带蔬菜过河农夫独自返回农夫独自返回7农夫带羊过河农夫带羊过河1234农夫带羊过河农夫带羊过河56农夫独自返回农夫独自返回农夫带蔬菜过河农夫带蔬菜过河农夫带羊返回农夫带羊返回农夫带狼过河农夫带狼过河农夫独自返回农夫独自返回7农夫带羊过河农夫带羊过河以上解决问题的方法及其序列便组成了算法。以上解决问题的方法及其序列便组成了算法。生活中的算法生活中的算法7眼保健操图解 做眼保健操的算法乐谱 乐队演奏的算法菜谱 厨师做菜的算法商店购物1 1 算法的概念算法的概念&特征特征8算法算法算法描述的是
4、一种有穷的动作序列,每一步的执行时间都是有限的。算法是解决问题的方法和步骤,是解题方法的精确描述。有穷性有穷性定义定义算法中的每个步骤必须有确切的含义,不应当模棱两可。确定性确定性算法中的每个步骤都要足够简单,是能实现的,而且能在有限的时间内完成。可行性可行性有有0 0个或多个输入个或多个输入有一个或多个输出有一个或多个输出9完成导学案中任务一【任务一任务一】泡茶算法泡茶算法10洗热水壶灌凉水洗茶壶洗茶杯拿茶叶烧开水泡茶叶洗热水壶洗茶壶洗茶杯拿茶叶灌凉水烧开水泡茶叶洗热水壶洗茶壶洗茶杯拿茶叶灌凉水烧开水泡茶叶方法一方法二方法三为了有效地解决问题,在保证算法正确性的同时,还要考虑算法的质量,设计
5、出最优算法。2 2 常用的算法表示形式常用的算法表示形式11自然语言是指人们在日常生活中使用的语言,用自然语言描述的算法通俗易懂,但缺乏直观性和简洁性,还容易产生歧义。自然语言自然语言【示例】第一步:1加2得3,记住3;第二步:3加3得6,记住6;第三步:6加4得10,记住10;第四步:10加5得15,记住15;第九十九步:4950加100得5050,记住5050;第一百步:运算结束,输出5050。计算机语言计算机语言常用的计算机语言有Basic、Visual Basic、C、C+、Java、Pascal等。只有通过计算机语言将算法编写出程序,才能被计算机识别与执行。【示例】Private S
6、ub Command1_Click()Dim i As Integer,n As Integer Dim f As Integer n=Val(Text1.Text)f=1 i=1 Do While i=n f=f+I i=i+1 Loop Text2.Text=Str(f)End Sub流程图流程图流程图是人们经常用来描述算法的工具,也称为程序框图,它是算法的一种图形化的表示方法,用图框及流程线来表示算法,形象、直观、更容易理解。程序设计人员往往先用流程图描述算法,然后根据流程图编写程序代码!开始输入变量n的值f1i1inff+iii+1输出变量f的值结束YN3 3 认识流程图认识流程图12
7、符号名称含义【练一练练一练】用流程图表示农夫过河与泡茶用流程图表示农夫过河与泡茶算法算法(完成导学案中的任务完成导学案中的任务2 2)13带羊过河独自返回带狼过河带羊返回带菜过河独自返回带羊过河开始结束农夫过河泡茶算法洗热水壶灌凉水烧开水泡茶叶洗茶壶洗茶杯拿茶叶【任务二任务二】用流程图表示农夫过河与泡茶算法用流程图表示农夫过河与泡茶算法14带羊过河独自返回带狼过河带羊返回带菜过河独自返回带羊过河洗热水壶灌凉水烧开水洗茶壶洗茶杯拿茶叶泡茶叶表现形式优点缺点自然语言通俗易懂冗长、歧义、对复杂问题难以表述正确、不能被计算机识别和执行流程图形象直观、容易理解不能被计算机识别和执行机器语言可直接被计算机
8、识别与执行需要专业技能、不直观算法的结构顺序结构www.islide.cc 15算法的结构-选择结构www.islide.cc 16算法的结构循环结构www.islide.cc 17绘制流程图(绘制流程图(完成导学案中任务三内容完成导学案中任务三内容)18A.把大象装进冰箱。(竞答获胜组奖励1分)B.学校上体育课一般在操场上课,遇到下雨的话,就会改在室内上课。(竞答获胜组奖励2分)C.在抽屉中寻找钥匙。(竞答获胜组奖励3分)D.求 1+2+3+4+-+100(竞答获胜组奖励4分)3.13.1 顺序结构顺序结构19最简单、最基本的结构方式,各语句依次按顺序执行。开始语句1语句2结束开始打开冰箱门
9、把大象放进冰箱关上冰箱门结束3.23.2 选择(分支)结构选择(分支)结构20对给定条件进行判断,条件正确(YES)时执行一条分支,条件错误(NO)时执行另一个分支。开始语句1语句2语句4结束条件判断语句3YN开始准备上体育课操场上课结束下雨?室内上课NY3.33.3 循环结构循环结构21判断条件是否成立,不成立则直接绕过循环体执行循环体后的语句;如果成立则执行循环体内的指令,执行完后,再次判断条件是否成立,如果成立,则再次执行循环体,直至条件不成立,退出循环体。结束开始语句1语句2条件判断YN开始在抽屉里翻找结束找到钥匙了吗?NY取出钥匙224 4 小结小结2301.算法是什么?02.算法的特征?03.常用的算法表示形式?04.流程图常用的基本符号?05.算法的基本结构?算法是解决问题的方法和步骤,是解题方法的精确描述。有穷性、确定性、可行性。自然语言、流程图、计算机语言。开始/终止框、处理框、输入/输出框、判断框、连接框、流程线。顺序结构、选择(分支)结构、循环结构。【课后任务课后任务】24一、设计一、设计算法算法01.煮方便面。02.比较你和同桌的身高,输出较高的人的身高。二、完成学生自评与试题测评。Thanks.