C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步

C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步

ID:40238599

大小:959.50 KB

页数:79页

时间:2019-07-28

C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步_第1页
C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步_第2页
C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步_第3页
C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步_第4页
C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步_第5页
资源描述:

《C语言程序设计教程 王秀贵 等 第5章 结构化程序设计初步》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章结构化程序设计初步算法及其表示程序设计风格C语言的语句与C语言控制结构简单语句与顺序控制结构选择控制结构循环控制结构break和continue语句goto语句应用举例第页共78页5.1算法及其表示什么是算法算法的特性算法的描述第页共78页5.1.1什么是算法算法(Algorithm):“一个算法是一组(有限个)规则,这些规则给出了解决某一问题的一个运算序列。”这个定义强调了两点:这组规则是有限的;通过这组规则就能得到问题的解,因此规则的定义是明确的无二义性的。分析、分解和定义这组规则的过程称为算法设计。算法与程序之间存在密切的关系。算法是程序的根基,程序是算法的具体实

2、现。程序设计的关键之一,是如何设计算法:一方面应熟练掌握该语言的语法,能够灵活运用C语言的运算符和各种语句,熟悉常用的库函数,因为它们是算法实现的基础;另一方面就是加强思维训练,锻炼分析、分解、描述算法的能力,最终写出高质量的程序。第页共78页5.1.2算法的特性有穷性。一个算法必须保证执行有限步之后结束,即该算法是可达的确定性。算法的每一步骤必须有确切的定义,目的明确,没有二义性。输入。一个算法有0个或多个输入,以刻画运算对象的初始情况。输出。作为算法运算的结果,一个算法最终要产生一个或多个输出。可行性。要求算法中有待实现的运算都是基本的运算,每种运算即使由人用笔和纸做有限

3、次运算后也能完成。一个算法总是经有限步运算后即可终止。第页共78页5.1.3算法的描述用伪码描述算法所谓伪码,就是一种程序设计语言(例如C)和自然语言的混合体。流程图流程图是描述算法的一种传统方法。它的特点是用“流程线”给算法中的每一个操作确定了逻辑上的时序关系,因此能把算法执行的控制流表达得十分清楚。下图是常用的流程图符号。第页共78页常用的流程图符号第页共78页在画流程图时要注意以下两点:在流程图中,判断框有三个出口,其中,右边或左边的流程线表示判断条件为“真”时的流程,下边的流程线表示条件为“假”时的流程,为了更清晰,可以在其流程线旁边分别标注“真”、“假”或“t”、“

4、f”或“y”、“n”。如果流程线是从下往上或从右向左的,必须带箭头,除此以外,都不画箭头。一般情况下,总认为流程线的走向是从上往下或从左向右的。当然,在实际应用中,有时候为了更清晰地表达执行流程,也不必完全遵循这个规定,可以习惯地标注箭头。第页共78页N-S图和PAD图N-S图是由美国人I.Nassi和B.Shneiderman共同提出的另一种算法表示法。在N-S图中,一个算法就是一个大矩形框,框内又包含若干基本的框。PAD是问题分析图(ProblemAnalysisDiagram)的英文缩写。作为一种算法描述方法,近年来它在软件开发中备受青睐。流程图和N-S图只能自上而下,

5、反映的是算法中各个操作的时序关系,而PAD图除了自上而下以外,还可以自左向右展开,它能反映出算法的层次结构,更直观易懂。因此,人们认为流程图、N-S图是一维的算法图形表示法,而PAD图是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于N-S图。第页共78页PAD图的几种主要图形符号第页共78页在上图中,(a)描述的是顺序执行结构,即按序执行E1、E2和E3;(b)表示一种判断:当“条件”为“真”时执行S;(c)也是表示一种判断:当“条件”为“真”时执行S1,否则执行S2;(d)表示多分支选择,其含义为,当表达式exp=i1时执行S1,exp=i2时执行S2

6、,exp=i3时执行S3,exp=i4时执行S4;(e)描述的是一种循环结构,其含义是,只要“条件”为“真”就执行S,直到“条件”为“假”才终止。第页共78页5.2程序设计风格程序结构的风格语言运用的风格程序文本的风格输入输出的风格第页共78页5.2.1程序结构的风格程序结构的风格主要体现在三个方面:一结构要清晰;二思路要清晰;三功能模块“简短朴实”。总的说来,在程序结构的组织上要坚持“清晰第一,效率第二”的原则。可以从以下几个方面着手:任何程序在编写前应有详细设计文档,一定要有了方案后再写代码。程序应该是模块化的。被分解的模块应具有简单性、独立性和完整性。代码和数据应该是分

7、离的。程序应具备可移植性。使用统一的编码约定集。第页共78页模块(函数)的可复用性。谨慎使用goto语句,除非舍此结构更糟糕。谨慎使用全局变量,而且越少越好。简明的算法以及对算法的表达本身也应该是简明的。函数应该短小而迷人,而且它只负责做好一件事情。第页共78页5.2.2语言运用的风格语言运用要注意以下细节:程序应该是与编译器无关的。尽量使用标准结构,避免使用容易引起混淆的结构和语句,首先应当考虑可读性。不要刻意去追求技巧,它可能会大大降低程序的可读性。表达式尽可能保持数据处理业务的原始形式。避免过多的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。