欢迎来到天天文库
浏览记录
ID:36187443
大小:932.50 KB
页数:19页
时间:2019-05-06
《1.2算法的描述与设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、算法的描述与设计高级中学赵晓乐算法的描述与设计有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,牧羊人应如何过河?要求:现在请同学们来设计一个方案,把3样东西安然无恙的带过河。农夫问题思考1234这个方案总共有多少步?哪几步顺序可以颠倒?同学们农夫过河问题解决了,那到底什么是算法?【农夫问题】中,我们是用什么来描述算法的?5算法还有其他的描述方法吗?过河方案牧羊人过河方案第一步:将羊运过去第二步:人返回第三步:将菜运过去第四步:将
2、羊运过来第五步:将狼运过去第六步:人返回第七步:将羊运过来算法就是解决问题的方法和步骤一个能被解决的问题,其中都包含着算法算法是程序设计的“灵魂”,世界著名计算机科学家尼克劳斯·沃思(N·wirth)指出:算法+数据结构(DataStructure)=程序,可见,算法在程序设中具有多么重要的地位。算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。例如,“鸡兔同笼问题”的算法可以用BASIC语言来实现,也可以用C语言来实现。算法的概念算法那算法都有哪些特征呢?也就是问题的解决都有哪些特点,我们应该注意些什么呢?算法的特征有穷性:执行有限步
3、,每一部执行时间有限确定性:每一步都有确切的含义输入:有零个或多个输入输出:至少产生一个输出可行性:原则上能精确运行,用纸和笔做有限次运算后即可完成自然语言用自然语言表达算法,就是把算法的各个步骤,依次用人们熟悉的自然语言表示出来。优点:容易理解缺点:书写较烦、不确定性、对复杂的问题难以表达准确、不能被计算机识别和执行自然语言描述实践活动二S1:输入a,b的值,确定方程;S2:若a=0,b≠0,方程无解,结束;S3:若a=0,b=0,x为任意值,结束;S4:若a不等于0,移项得ax=-b则x=-b/a,结束。自然语言用自然语言描述求解ax+b=0的过程
4、(注意讨论a,b的情况)算法的描述方法算法的描述用自然语言描述算法用流程图描述算法用伪代码描述算法用???描述解方程ax+b=0流程图算法的开始或结束输入或输出信息条件判断程序框名称功能开始/结束算法的开始或结束输入/输出输入或输出信息处理计算与赋值判断条件判断流程线算法中的流向连接圈表示算法流向出口或入口连接点常用的“流程图”所用的基本符号流程图也称为程序框图,它是算法的一种图形化表示方法。优点:形象、直观、容易理解流程图描述描述解方程ax+b=0算法的两种方法流程图S1:输入a,b的值,确定方程;S2:若a=0,b≠0,方程无解,结束;S3:若a=0,b
5、=0,x为任意值,结束;S4:若a不等于0,移项得ax=-b则x=-b/a,结束。自然语言自然语言描述与流程图描述的比较自然语言描述流程图描述直观清晰确定性繁琐程度是否容易修改通俗易懂伪代码伪代码表示举例(1)表示条件判断(2)表示循环处理if条件thendowhile条件执行语句一循环处理语句elseloop执行语句二endif伪代码描述Ifa除以2余数为0then输出“a为偶数”判断某个数是否偶数Elsex=-b/aEndif求解ax+b=0Else输出“a不是偶数”Endif输入正数a输入a,bIfa=0thenifb=0then输出x为任意值e
6、lse输出x无实数解endif伪代码伪代码是介于自然语言和计算机程序语言之间的一种算法描述。优点:简洁、易懂、修改容易缺点:不直观、一旦出现逻辑错误不容易排查伪代码描述描述求解ax+b=0的三种方法输入a,bIfa=0thenifb=0then输出x为任意值else输出x无实数解endifElsex=-b/aEndif伪代码描述S1:输入a,b的值,确定方程;S2:若a=0,b≠0,方程无解,结束;S3:若a=0,b=0,x为任意值,结束;S4:若a不等于0,移项得ax=-b则x=-b/a,结束。自然语言描述流程图描述根据具体的情况选择不同的方法小结特征:有
7、输入确定性有穷性有输出可行性算法的描述用自然语言描述算法用流程图描述算法用伪代码描述算法算法——解决问题的方法和步骤一个问题,可能有多种算法,应该通过分析、比较、挑选一种最优的算法。一个好算法必须用到科学的方法,应该好好学习各学科处理问题的科学方法。
此文档下载收益归作者所有