- 1、本文档共100页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 5 章 结构化程序设计初步 算法及其表示 程序设计风格 C语言的语句与C语言控制结构 简单语句与顺序控制结构 选择控制结构 循环控制结构 break和continue语句 goto语句 应用举例 5.1 算法及其表示 什么是算法 算法的特性 算法的描述 5.1.1 什么是算法 算法(Algorithm):“一个算法是一组(有限个)规则,这些规则给出了解决某一问题的一个运算序列。”这个定义强调了两点:这组规则是有限的;通过这组规则就能得到问题的解,因此规则的定义是明确的无二义性的。分析、分解和定义这组规则的过程称为算法设计。 算法与程序之间存在密切的关系。算法是程序的根基,程序是算法的具体实现。程序设计的关键之一,是如何设计算法:一方面应熟练掌握该语言的语法,能够灵活运用C语言的运算符和各种语句,熟悉常用的库函数,因为它们是算法实现的基础;另一方面就是加强思维训练,锻炼分析、分解、描述算法的能力,最终写出高质量的程序。 5.1.2 算法的特性 有穷性。一个算法必须保证执行有限步之后结束,即该算法是可达的 确定性。算法的每一步骤必须有确切的定义,目的明确,没有二义性。 输入。一个算法有0个或多个输入,以刻画运算对象的初始情况。 输出。作为算法运算的结果,一个算法最终要产生一个或多个输出。 可行性。要求算法中有待实现的运算都是基本的运算,每种运算即使由人用笔和纸做有限次运算后也能完成。 一个算法总是经有限步运算后即可终止。 5.1.3 算法的描述 用伪码描述算法 所谓伪码,就是一种程序设计语言(例如C)和自然语言的混合体。 流程图 流程图是描述算法的一种传统方法。它的特点是用“流程线”给算法中的每一个操作确定了逻辑上的时序关系,因此能把算法执行的控制流表达得十分清楚。下图是常用的流程图符号。 常用的流程图符号 在画流程图时要注意以下两点: 在流程图中,判断框有三个出口,其中,右边或左边的流程线表示判断条件为“真”时的流程,下边的流程线表示条件为“假”时的流程,为了更清晰,可以在其流程线旁边分别标注“真”、“假”或“t”、“f”或“y”、“n”。 如果流程线是从下往上或从右向左的,必须带箭头,除此以外,都不画箭头。一般情况下,总认为流程线的走向是从上往下或从左向右的。当然,在实际应用中,有时候为了更清晰地表达执行流程,也不必完全遵循这个规定,可以习惯地标注箭头。 N-S图和PAD图 N-S图是由美国人I.Nassi和B.Shneiderman共同提出的另一种算法表示法。在N-S图中,一个算法就是一个大矩形框,框内又包含若干基本的框。PAD是问题分析图(Problem Analysis Diagram)的英文缩写。作为一种算法描述方法,近年来它在软件开发中备受青睐。流程图和N-S图只能自上而下,反映的是算法中各个操作的时序关系,而PAD图除了自上而下以外,还可以自左向右展开,它能反映出算法的层次结构,更直观易懂。因此,人们认为流程图、N-S图是一维的算法图形表示法,而PAD图是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于N-S图。 PAD图的几种主要图形符号 在上图中,(a)描述的是顺序执行结构,即按序执行E1、E2和E3;(b)表示一种判断:当“条件”为“真”时执行S;(c)也是表示一种判断:当“条件”为“真”时执行S1,否则执行S2;(d)表示多分支选择,其含义为,当表达式exp=i1时执行S1,exp=i2时执行S2,exp=i3时执行S3,exp=i4时执行S4;(e)描述的是一种循环结构,其含义是,只要“条件”为“真”就执行S,直到“条件”为“假”才终止。 5.2 程序设计风格 程序结构的风格 语言运用的风格 程序文本的风格 输入输出的风格 5.2.1 程序结构的风格 程序结构的风格主要体现在三个方面:一结构要清晰;二思路要清晰;三功能模块“简短朴实”。总的说来,在程序结构的组织上要坚持“清晰第一,效率第二”的原则。可以从以下几个方面着手: 任何程序在编写前应有详细设计文档,一定要有了方案后再写代码。 程序应该是模块化的。被分解的模块应具有简单性、独立性和完整性。 代码和数据应该是分离的。 程序应具备可移植性。 使用统一的编码约定集。 模块(函数)的可复用性。 谨慎使用goto语句,除非舍此结构更糟糕。 谨慎使用全局变量,而且越少越好。 简明的算法以及对算法的表达本身也应该是简明的。 函数应该短小而迷人,而且它只负责做好一件事情。 5.2.2 语言运用的风格 语言运用要注意以下细节: 程序应该是与编译器无关的。 尽量使用标准结构,避免使用容易引起混淆的结构和语句,首先应当考虑可读性。 不要刻意去追求技巧,
您可能关注的文档
- C语言程序设计教程第02章节.ppt
- C语言程序设计教程第03章节.ppt
- C语言程序设计教程第04章节.ppt
- C语言程序设计教程第05章节.ppt
- C语言程序设计教程第07章节.ppt
- C语言程序设计教程第08章节.ppt
- C语言程序设计教程第09章节.ppt
- C语言程序设计教程第10章节.ppt
- C语言程序设计教程第11章节.ppt
- C语言程序设计教程第12章节.ppt
- 2025秋季学期国开电大法律事务专科《民法学(1)》期末纸质考试案例分析题库[珍藏版].doc
- 根治欠薪在建工程项目实地核查情况表.doc
- 2025秋季学期国开电大法律事务专科《民法学(1)》期末纸质考试案例分析题库[珍藏版].pdf
- 建筑材料绿色营销方案.docx
- 2023年湖南安全技术职业学院单招职业技能考试题库及答案解析.pdf
- 2023年北京市化工职业病防治院招聘考试真题.pdf
- 2023年湖南安全生产月知识测试附答案.pdf
- 2023年湖北随州中考地理试题及答案.pdf
- 2023年湖南工业职业技术学院单招职业技能考试题库及答案解析文本版.pdf
- 2023年湖北武汉中考英语试题及答案.pdf
最近下载
- 医疗器械 质量手册.doc VIP
- SYB第八步(3)-制定销售和成本计划.ppt VIP
- 2025广东惠州市生态环境局博罗分局和博罗县污染防治攻坚战总指挥部办公室招聘编外人员38人考试备考试题及答案解析.docx VIP
- 2024年浙江省嵊泗县人民医院公开招聘护理工作人员试题带答案详解.docx VIP
- 常用急救药品ppt课件.pptx VIP
- 人教版八年级下册数学期末测试题汇总.doc VIP
- 鄂尔多斯市天安公交集团招聘笔试真题2024.docx VIP
- 鄂尔多斯市天安公交集团招聘笔试真题2024.docx VIP
- 泉州公交集团招聘考试真题2024.docx VIP
- 高中英语语法知识点总结.pdf VIP
文档评论(0)