1.2.1算法是“灵魂”精选.pptVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.2.1算法是“灵魂”精选

1.2 算法描述与设计 算法对于程序设计至关重要,当找到算法后还要考虑如何准确、具体地描述算法,通过本节的学习你将能做到: ■ 进一步理解什么是算法,知道算法的多样性 ■ 能够对设计的算法做简单的评价 ■ 学会用自然语言、流程图和伪代码来描述算法 回顾: 1.2.1 算法是“灵魂” 实践: 1.请写出求解一元二次方程ax2+bx+c=0的算法。 2.“水仙花数问题”:水仙花数是指一个三位数,它的各位数的立方和正好等于该数本身。如:153=13+53+33。请设计算法求解“水仙花数问题”(10000以内)。 分析问题(找出已知和未知、列出已知和未知之间的关系) ??? 设所求的数为X,则X应满足:X整除3余1 ,X整除5余2,X整除7余4 写出解题步骤 1、令X为1。 2、如果X整除3余1,X整除5余2,?????? X整除7余4,这就是题目要求的数,则记下这个X。 3、令X为X+1(为算下一个作准备)。 4、如果算出,则结束;否则跳转2。 5、写出答案。(穷举法) * * 当我们用计算机解决问题时,首先要分析问题,然后根据问题的要求选择合适的软件。如果现有的软件能满足我们的要求,我们会直接用这些软件来完成任务,例如,用计算机写一篇文稿,我们会选择WPS、Word等软件;要完成少量的数据统计工作,Excel就能满足我们的要求。除此之外,现实生活中还有许多工作往往比较特殊,现有的软件不能很好地完成,或者由于其他方面的原因无法使用,这就需要我们编写程序来解决问题。例如,学校的图书管理可能有某些特殊的规定,现在的图书管理软件达不到要求,我们只有自己动手编写程序来解决问题。 计算机虽然被称为“电脑”,但它和人脑解决问题还是有本质区别的。计算机毕竟只是一种高级工具,用计算机来解决问题要经历分析问题、确定算法、编程求解等基本过程,其流程如图1-1所示。 我们要编写程序,首先要对问题进行详细地分析,通过分析,弄清楚已 知条件下的初始状态及要达到的目标,找出求解问题的方法和过程,并抽取 出一个数学模型,形成算法;然后,将这个数学模型连同它要处理的数据用 计算机能识别的方式描述出来,使之成为计算机能处理的对象;最后,用程 序设计语言设计出具体的问题求解过程,形成计算机程序,这样,计算机就 会按照我们给定的指令一条一条地进行处理了。 无论使用现成的软件解决问题,还是自己动手编程解决问题,其实质都 是一样的。现有的计算机软件同样也经历了这些过程,其差别在于,用程序 设计解决问题需要我们亲自动手设计软件,而使用现成的软件,是别人已经 给我们设计好了的。 计算机程序( ComputerProgram)就是指示计算机如何去解决问题或完成任务的一组可执行的指令。 程序设计(Program Design)就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。 程序设计语言( ProgramLanguage)泛指一切用于书写计算机程序的语言。 注意:程序设计语言和计算机语言(ComputerLanguage)是两个不同的概念,程序设计语言是一种重要的计算机语言。 简单地说,算法(Algorithm)就是解决问题的方法和步骤。同学们在上一 节填写的“韩信点兵问题”的不同求解过程就是不同的算法。其实,我们日 常生活中也经常使用算法,只是没意识到罢了。例如,我们到商店购物,首 先确定要购买的东西,然后进行挑选、比较,最后到收银台付款,这一系列 活动实际上就包含着算法。解决问题的过程,就是实现算法的过程。 算法是程序设计的“灵魂”,世界著名计算机科学家尼克劳斯·沃思(N· Wirth)指出:算法+数据结构(Data Structure)=程序,可见,算法在程序设 计中具有多么重要的地位。算法独立于任何具体的程序设计语言,一个算法 可以用多种程序设计语言来实现。例如,“韩信点兵问题”的算法可以用 BASIC语言来实现,也可以用C语言来实现。 算法的特征: 有穷性:执行有限步之后结束,且每一步的执行时间也都是有限的; 确定性:每一步都有确切的含义; 输入:有零个或多个输入; 输出:至少产生一个输出; 可行性:原则上能精确运行,用纸和笔做有限次运算后即可完成。 事实上,计算机能有如此广泛而神奇的应用,除了半导体集成电路芯片制造工艺的提高外,主要是靠软件,而软件的核心是算法。无论是制造芯片的软件,还是“深蓝”战胜卡斯帕罗夫,都是靠巧妙的算法。算法是人类智慧的结晶,计算机科学中的知识创新,主要就是算法的创新,创建一种新算法其意义不亚于建造一种新机型。 求解一元二次方程ax2+bx+c=0的算法步骤(自然语言描述) 1.输入a,b,c; 2.计算d=b2-4ac; 3.判断d0是否满足,若满足,则输出“方程无实数解”;若不满足,进入步骤4; 4.判断d=0是

文档评论(0)

pfenejiarz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档