- 1、本文档共119页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(3) 逻辑错误。这种错误即使在运行时也显示不出来,因程序能正常运行,但结果不对。比如把求平方根的函数sqrt(x)写成了求平方的函数sqr(x),把表达式中的加号“+”写成了乘号“*”等。 前两种错误计算机都会有提示或不正常表象,它会迫使你进行修改,但对逻辑错误计算机并不提醒,全靠程序员仔细检查予以排除。 我们可以用一简图来显示一个高级语言源程序的执行过程,如图 1-5 所示。 图 1-5 高级语言源程序的执行过程 1.5 算 法 程序设计离不开算法,算法指导程序设计,算法是程序的灵魂。程序是语句的集合,但如何围绕所要解决的任务来安排这些语句的次序则是由算法决定的。因此程序设计的大致步骤如下: (1) 确定算法和数据结构。算法是和具体任务有关的,而数据结构则是程序要处理的数据的组织。 (2) 把算法以明晰的方法表示出来,如用流程图、N-S图、伪码等方法。 (3) 在算法已明确表示出来的基础上用高级语言编制程序。 1.5.1 算法的特点 算法,简单地讲,就是解决问题的流程安排,即先做什么,后做什么。精确地讲,算法是被精确定义的一系列规则,这些规则规定了解决特定问题的一系列操作顺序,以便在有限步骤内产生出所求问题的解答。尽管算法因求解问题的不同而千变万化、简繁各异,但它们都必须具备以下五个特性。 1. 确定性 算法的每一步运算都必须有确切的定义,即每种运算所执行的操作都必须是确定的、无二义性的。 比如在配制某种溶液时,应明确指出“5升水加 100 克药粉”,而不能是“一桶水加适量的药粉”这种不确定的说法。 2. 能行性 算法中有待实现的运算方法都必须是可执行的,即在执行者(计算机)能力范围之内并能在有限时间内完成。 3. 有穷性 一个算法必须在执行了有穷的步骤之后结束。如果一个计算不具有有穷性,但具有算法的其他特性,则称之为计算方法。比如对无穷调和级数的计算就不是一个算法,而是一个计算方法。但是在确定了项数或精度之后,再进行的计算就是有穷的了,这时对调和级数的计算如求和,就变成了算法。 4. 输入 一个算法可以有 0 个或 0 个以上的输入,可提供算法操作的数据。 5. 输出 一个算法总能产生一个或多个输出,即算法的计算结果。 1.5.2 算法的表示 一个算法应该用明晰的方法展现在人们的面前,这样才易于用计算机语言写出体现算法的程序。 表示一个算法的方法,通常有以下四种。 1. 自然语言描述法 比如求三个数的最大值问题,用自然语言可以描述为:先将两个数a和b进行比较,找出其最大者,然后再把它和第三个数c进行比较,如果它比第三个数大,则它就是最大数, 否则第三个数c就是最大数。 2. 伪码表示法 所谓伪码,就是类似于程序设计语言的语句,但又不是任何一种真实的程序设计语言的语句,它不涉及程序设计的具体细节。比如求三个数的最大值问题,用伪码可表示为: if ab then 把a交给max else 把b交给max if max c then 输出最大值max else 输出最大值c 说明: 用伪码表示的详细程度没有一定的标准,可以很详细,也可以很简略。 3. N-S图表示法 这是一种图语言表示法,其特点是在一个矩形框内完成算法的流程说明。比如求三个数的最大值问题,用N-S图可描述为如图1-6所示的形式。 图1-6 求三个数的最大值问题 4. 流程图表示法 这也是一种图语言表示法,它用一些不同的图例来表示算法的流程。常用的图例主要有如图1-7中所示的几种。 比如求三个数的最大值问题,用流程图法可表示为如图1-8所示的形式。 图 1-7 流程图表示法常用图例 图 1-8 求三个数的最大值问题的流程图表示 1.5.3 结构化程序设计的三种基本结构 20 世纪 60 年代,在开发大型软件的过程中出现了所谓的“软件危机”,其主要表现是:开发进度被推迟;成本超出预算;软件产品不可靠。人们认识到软件开发要比想象的复杂得多。在如何克服“软件危机”的讨论和研究中,诞生了“结构化程序设计”的概念,这是编写出清晰、正确和容易理解的程序的一种指导方针和严格方法。 结构化程序设计的基本方法是:在设计程序时,本着从上到下、逐步求精的原则,将一个大的原始问题分解为多个可独立进行编程的小问题(即小模块),如果某个模块还未精细到能直接进行编程的程度,则继续对它进行分解,直至能直接编程为止。每个模块只有一个入口和一个出口,这样不管编多大的程序,不管有多少人参加编写,都可以把他们的模块很自然地连接起来。与非结构化程序设计方法相比,采用结构化方法能够设计出更易理解的程序,因此也更容易测试、调试和修改,甚至从
您可能关注的文档
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第1章 概述.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第2章 窗体.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第3章 基本控件.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第4章 Visual Basic程序设计基础.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第5章 基本控制语句.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第6章 程序设计基本算法.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第7章 高级数据类型.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第8章 过程.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第9章 文件.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第10章 高级控件.ppt
- 材料力学(第2版)课件 第1章-杆件的轴向拉压.pptx
- 法律逻辑学教程(第四版)课件第8--10章 法律论辩逻辑(上)、法律论辩逻辑 (中)、法律论辩逻辑 (下).ppt
- 法律逻辑学教程(第四版)课件 张大松 第4--10章 侦查逻辑--- 法律论辩逻辑(下);附录 .ppt
- 2025年公需课《新型城镇化实践与发展--新型城镇化总论》答案.docx
- 2025年大学教师入党自传.doc
- 智能建造施工技术课件--墙柱模板安装.ppt
- 智能建造施工技术课件--单层厂房屋架吊装.ppt
- 人工智能基础课件--4.1人工神经网络概述.ppt
- 智能建造施工技术课件-- 砌筑材料-已完成.ppt
- 智能建造施工技术课件--梁板模板的安装-已完成.ppt
文档评论(0)