1、1、把冰箱门打开 2、把大象装进去 3、把冰箱门关上 在中央电视台幸运在中央电视台幸运5252节目中节目中,有一个猜商品有一个猜商品价格的环节价格的环节,竟猜者如在规定的时间内大体猜出竟猜者如在规定的时间内大体猜出某种商品的价格某种商品的价格,就可获得该件商品就可获得该件商品.现有一商品现有一商品,价格在价格在0-80000-8000元之间元之间,采取怎样的策略才能在较采取怎样的策略才能在较短的时间内说出正确短的时间内说出正确(大体上大体上)的答案呢的答案呢?第一步第一步:报报“4000”;第二步第二步:若主持人说高了若主持人说高了(说明答说明答案在案在04000之间之间),就报就报“2000
2、”,否则否则(答数在答数在40008000之间之间)报报“6000”;第三步第三步:重复第二步的报数方法取中间数重复第二步的报数方法取中间数,直至直至得到正确结果得到正确结果.什么是算法?什么是算法?算法算法通常是解决问题的方法与步骤。通常是解决问题的方法与步骤。现在,算法通常可以编成计算机程序,让计算机执行并解决问题.做每一件事情必须有基本元素,这种基本元素叫做每一件事情必须有基本元素,这种基本元素叫数据数据。数据数据和和算法算法构成了一个完整的构成了一个完整的程序程序(程序程序=数据数据+算法算法)1.确定性确定性:算法中的每一步应该是确定的并且能有效地执行且算法中的每一步应该是确定的并且
3、能有效地执行且得到确定的结果,而不应当是模棱两可得到确定的结果,而不应当是模棱两可.2.有限性有限性:一个算法的步骤序列是有限的,它应在有限步操作一个算法的步骤序列是有限的,它应在有限步操作之后停止,而不能是无限的之后停止,而不能是无限的.3.可执行性可执行性:算法中的每一步操作都必须是可执行的,也就是算法中的每一步操作都必须是可执行的,也就是说算法中的每一步都能通过手工和机器在有限时间内完成说算法中的每一步都能通过手工和机器在有限时间内完成.4.有输入信息有输入信息.5.有输出结果有输出结果.算法的要求算法的要求(特征特征)自然语言就是人们日常使用的语言自然语言就是人们日常使用的语言,可以是
4、汉语、可以是汉语、英语或数学语言等英语或数学语言等.用自然语言描述算法的优点是通俗用自然语言描述算法的优点是通俗易懂易懂,当算法中的操作步骤都是顺序执行时比较容易理当算法中的操作步骤都是顺序执行时比较容易理解解.缺点是如果算法中包含判断和转向缺点是如果算法中包含判断和转向,并且操作步骤并且操作步骤较多时较多时,就不那么直观清晰了就不那么直观清晰了.(1)(1)自然语言自然语言算法的表示算法的表示 描述算法可以有不同的方式描述算法可以有不同的方式,常用的有常用的有:例例4.写出交换两个大小相同的杯子中写出交换两个大小相同的杯子中 的液体的液体 (A 水、水、B 酒酒)的一个算法的一个算法第一步第
5、一步,找一个大小与找一个大小与A A相同的空杯子相同的空杯子C.C.第二步第二步,将将A A 中的水倒入中的水倒入C C中中.第三步第三步,将将B B中的酒精倒入中的酒精倒入A A中中.第四步第四步,将将C C中的水倒入中的水倒入B B中中,结束结束.趣味题趣味题.一个农夫带着一条狼、一头山羊和一一个农夫带着一条狼、一头山羊和一篮蔬菜要过河篮蔬菜要过河,但只有一条小船但只有一条小船.乘船时乘船时,农夫只农夫只能带一样东西能带一样东西.当农夫在场的时候当农夫在场的时候,这三样东西相这三样东西相安无事安无事.一旦农夫不在一旦农夫不在,狼会吃羊狼会吃羊,羊会吃菜羊会吃菜.请设请设计一个算法计一个算法
6、,使农夫能安全地将这三样东西带过使农夫能安全地将这三样东西带过河河.第一步第一步:农夫带羊过河农夫带羊过河;第二步第二步:农夫独自回来农夫独自回来;第三步第三步:农夫带狼过河农夫带狼过河;第四步第四步:农夫带羊回来农夫带羊回来;第五步第五步:农夫带蔬菜过河农夫带蔬菜过河;第六步第六步:农夫独自回来农夫独自回来;第七步第七步:农夫带羊过河农夫带羊过河.、一位商人有、一位商人有9枚银元,其中有枚银元,其中有1枚略轻的是假银元。你能用天平(不用枚略轻的是假银元。你能用天平(不用砝码)将假银元找出来吗?砝码)将假银元找出来吗?第一步第一步:将将9 9枚金币平均分成三组枚金币平均分成三组,将其中两组将其
7、中两组放在天平的两边放在天平的两边.如果天平平衡如果天平平衡,则假的金币则假的金币必定在另外一组必定在另外一组;如果天平不平衡如果天平不平衡,则假的金币则假的金币必定在较轻的一组必定在较轻的一组;第二步第二步:将有假金币的一组金币中将有假金币的一组金币中,取出两枚金取出两枚金币币,分别放在天平的两边分别放在天平的两边.如果天平平衡如果天平平衡,则假则假的金币必定是剩余的的金币必定是剩余的;如果天平不平衡如果天平不平衡,则假的则假的金币必定在较轻的一边金币必定在较轻的一边.1、把冰箱门打开 2、把大象装进去 3、把冰箱门关上 结束结束开始开始把冰箱门打开把冰箱门打开把大象装进去把大象装进去把冰箱
8、门关上把冰箱门关上用程序框图表示的算法更加简练用程序框图表示的算法更加简练,直观直观,流向清楚流向清楚.(2)流程图表示程序框图程序框图又称又称流程图流程图,是一种用规定的图形、是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的指向线及文字说明来准确、直观地表示算法的图形图形.通常通常,程序框图由程序框和流程线组成程序框图由程序框和流程线组成.一个或几个程序框的组合表示算法中的一个步骤一个或几个程序框的组合表示算法中的一个步骤;流程线是方向箭头流程线是方向箭头,按照算法进行的顺序将程序按照算法进行的顺序将程序框连接起来框连接起来.基本的程序框和它们各自表示的功能如下基本的程序框和它们
9、各自表示的功能如下:图形符号图形符号名称名称功能功能终端框终端框(起止框起止框)表示一个算法的起始表示一个算法的起始和结束和结束输入、输输入、输出框出框表示一个算法输入和表示一个算法输入和输出的信息输出的信息处理框处理框(执行框执行框)判断某一条件是否成立判断某一条件是否成立,成立成立时在出口处标明时在出口处标明“是是”或或“Y”;不;不”成立时标明成立时标明“否否”或或“N”.判断框判断框赋值、计算赋值、计算流程线流程线连接程序框连接程序框连接点连接点连接程序框图的两部分连接程序框图的两部分小结小结1、算法的定义、算法的定义2、算法的特点与作用、算法的特点与作用3、算法的表示、算法的表示自然语言自然语言 流程图流程图