- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
算法和程序设计主讲:沈涵飞C语言程序设计
程序=算法+数据结构1975年,著名的瑞士计算机科学家、Pascal语言的发明人、1984年图灵奖获得者沃思(NiklausEmilWirth)教授出版了《Algorithms+DataStructures=Programs》,提出过一个经典公式:算法+数据结构=程序Algorithms+DataStructures=Programs算法反映了计算机的执行过程,是对解决特定问题的操作步骤的一种描述数据结构是对参与运算的数据及它们之间关系所进行的描述算法和数据结构是程序的两个重要方面编写一个程序的关键就是合理地组织数据和设计好的算法
数值运算和非数值运算数值运算的目的是求数值解,例如求方程的根、求一个函数的定积分等,都属于数值运算范围。非数值运算包括的面十分广泛,最常见的是用于事务管理领域,例如对一批职工按姓名排序、图书检索、人事管理和行车调度管理等。目前,计算机在非数值运算方面的应用远远超过了在数值运算方面的应用。
算法的五大特点有穷性算法必须保证执行有限步之后结束。“有穷性往往指“在合理的范围之内。确定性算法中的每一步骤都应当是确定的,而不应当是含糊的、模棱两可的,不允许存在二义性。有效性(可执行性)算法中描述的每一步操作都应该能有效地执行,并得到确定的结果。例如,当y=0时,x/y是不能有效执行的。有零个或多个输入输入是指在执行算法时需要从外界获得的必要信息。一个算法可以有0个或多个输入数据。有输出算法的目的是求解,算法得到的结果就是算法的输出。没有输出的算法是毫无意义的。
算法的表示:流程图流程图是用一些图框来表示各种操作。用图形表示算法,直观形象,易于理解。美国国家标准化协会ANSI(AmericanNationalStandardInstitute)规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用。一个流程图包括以下几个部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的文字说明。
程序设计的步骤问题分析对于接手的问题要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法。设计算法根据选取的数学模型和确定的方案,设计出具体的操作步骤,并用流程图清晰、直观地表示出来。编写程序选择合适的开发平台和程序设计语言,编写出源程序。调试运行程序将源程序编译、链接,得到可执行程序,然后运行程序,得到运行结果。能得到运行结果并不意味着程序正确,还要对程序进行测试。建立文档资料许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书(也称为用户文档)。
结构化程序设计方法结构化程序设计(structuredprogramming)思想产生于20世纪60年代,其概念最早由荷兰计算机科学家狄克斯特拉(E.W.Dijikstra)在1965年提出的,是软件发展的重要里程碑。主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。采取以下方法来保证得到结构化的程序:(1)自顶向下;(2)逐步求精;(3)模块化设计;(4)结构化编码。
C++中的标准模板库(STL)C语言以简洁著称,除了快速排序和二分搜索外,ANSIC标准并不包含基本的数据结构和算法库。如果想要直接使用栈、队列、集合、优先队列等数据结构,可以考虑使用C++中的标准模板库。STL(StandardTemplateLibrary),即标准模板库。该库包含了计算机科学领域里所常用的基本数据结构和基本算法,为程序员提供了一个可扩展的应用框架,高度体现了软件的可复用性。STL的一个重要特点是数据结构和算法的分离,使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表、容器和数组。STL另一个重要特性是它不是面向对象的。
STL应用示例:平方末尾能够表示为某个整数的平方的数字称为“平方数”,比如25、64。虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数。因为平方数的末位只可能是:[0,1,4,5,6,9]这6个数字中的某个。所以,4325435332必然不是平方数。如果给你一个2位或2位以上的数字,你能根据末位的两位来断定它不是平方数吗?请计算一下,一个2位以上的平方数的最后两位有多少种可能性?
示例:平方末尾#includecstdio#includesetusingnamespacestd;?intmain(void){seti
原创力文档


文档评论(0)