您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计教程 第1章
第1章绪论1.1程序设计语言的发展1.2程序设计的基本过程1.3程序设计的基本方法程序设计语言一般分为机器语言、汇编语言和高级语言三大类。1.机器语言对于计算机来说,一组机器指令就是程序,称为机器语言程序。2.汇编语言为了便于理解与记忆,人们采用能帮助记忆的英文缩写符号(称为指令助记符)来代替机器语言指令代码中的操作码,用地址符号来代替地址码。3.高级语言机器语言和汇编语言都是面向机器的语言,一般称为低级语言。1.1程序设计语言的发展表1.1语言名称适用范围Basic教学和小型应用程序的开发Fortran科学及工程计算程序的开发Pascal专业教学和应用程序的开发C中、小型系统程序的开发COBOL商业与管理应用程序的开发dBASE数据库管理程序的开发FoxBASE数据库管理程序的开发C++面向对象程序的开发LISP人工智能程序的开发PROLOG人工智能程序的开发Java面向对象程序的开发1.2程序设计的基本过程程序设计=算法+数据结构+方法+工具1.问题分析(1)问题的性质(2)输入/输出数据数据处理是计算机应用中最广泛的一个领域。在用计算机解决问题时,一般总要有一些输入数据,计算的结果也要以某种方式进行输出。(3)数学模型或常用的方法对于数值型问题,一般要考虑数学模型的设计,或者要对常用的一些方法进行分析与比较,从而根据问题的性质选择一种合理的解决方案。2.结构特性的设计(1)控制结构1966年,Bohm和Jacopini证明了任何复杂的程序都可以用顺序、选择和循环3种基本结构组合而成。这几种基本控制结构的传统流程图如图1.1所示。图1.1基本控制结构的传统流程图顺序结构ABABSSA1A2AnPPP=1P=2P=nPFT选择结构FFTTF…FTTF当型循环直到型循环多情况选择结构(2)数据结构在计算机的各种应用中,数据处理所占的比重将越来越大。在实际应用中,需要处理的数据元素一般有很多,而且,各数据元素之间不仅具有逻辑上的关系,还具有在计算机中实际存储位置上的关系。3.算法的设计所谓算法,是指解题方案的准确而完整的描述。选择算法主要应考虑以下两个基本原则:①实现算法所花费的代价要尽量的小,即计算工作量要小;②根据算法所得到的计算结果应可靠。例1.1某计算工具具有4位有效数字(如4位数学用表),现要计算当x=1000时的下列函数值:解:直接将x=1000代入函数表达式,其计算结果如下:将该函数表达式作如下恒等变换:然后将x=1000代入,其计算结果如下:xxxf1)(02.062.3164.3110001001100011000)1000(fxxxxxf111)(01581.062.3164.3111000100111000110001)1000(f4.流程的描述(1)自然语言自然语言是人们在日常生活、工作、学习中通用的语言,一般不需专门的学习和训练就能理解用这种语言所表达的意思。(2)算法描述语言为了说明程序的流程,还可以用专门规定的某种语言来描述,这种语言通常称为算法描述语言。(3)流程图人们在程序设计的实践过程中,总结出了一套用图形来描述问题的处理过程,使流程更直观,易被一般人所接受。输入x,yx=0yesno输出错误信息y/xz输出z结束图1.2结构化流程图例(4)编程用某种程序设计语言编写的程序,本质上也是问题处理方案的描述,并且是最终的描述。5.调试与运行最后编写出的程序还需要进行测试和调试。只有经过调试后的程序才能正式运行。1.3程序设计的基本方法1.3.1结构化程序设计结构化程序设计要求把程序的结构限制为顺序、选择和循环3种基本结构,以便提高程序的可读性。这种结构化程序具有以下两个特点:(1)以控制结构为单位,只有一个入口和一个出口,使各单位之间的接口比较简单,每个单位也容易被人们所理解;(2)缩小了程序的静态结构与动态执行之间的差异,使人们能方便、正确地理解程序的功能。NS图是一种不允许破坏结构化原则的图形算法描述工具,又称盒图。NS图有以下几个基本特点:(1)功能域比较明确,可以从框图中直接反映出来;(2)不可能任意转移控制,符合结构化原则;(3)很容易确定局部和全程数据的作用域;(4)很容易表示嵌套关系,也可以表示模块的层次结构。1.顺序结构顺序结构的结构化流程图如图1.3所示。图1.3顺序结构的结构化流程图S1S2S32.选择结构(1)两路分支结构两路分支选择结构的结构化流程图如图1.4所示。图1.4两路分支选择结构的结构化流程图条件满足不满足S1S2(2)多路分支结构图1.5多路分支选择结构的结构化流程图条件情况1S1情况2S2情况nSn……3.循环结构循环结构分为当型循环结构和直到型循环结构。(1)当型循环结构当型循环结构的结构化流程图如图1.6所示。图1.6当型循环结构的结构化流程图WHILE条件S(2)直到型循环结构直到型循环结构的结构化流程图如图1.7所示。图1.7直到型循环结构的结构化流程图UNTIL条件S图1.8是顺序输出3到100之间所有素数的结构化流程图,在这个流程图中,表示了3种基本结构互相嵌套的情况。3nn100i≤k且flag=0i除尽n?是1flagi+1iflag=0?输出n是n+1n否否nk,2i,0flag图1.83种基本结构互相嵌套的情况1.3.2模块化程序设计模块化设计是指把一个大程序按人们能理解的大小规模进行分解。1.按功能划分模块(1)模块间的接口关系比较简单,并且每个模块都是人的智力所能及的。(2)各模块的功能比较单一,当需要修改某一功能时,一般只涉及到一个模块,不会影响到其他模块。(3)人们可以脱离程序的上、下文也能单独地验证一个模块的正确性。(4)在扩充系统或建立新系统时,可以充分利用已有的一些模块,用积木式的方法进行开发。2.按层次组织模块主模块模块2模块5模块4模块1模块3模块6图1.9按层次组织模块1.3.3自顶向下、逐步细化的设计过程自顶向下、逐步细化的设计过程,包括以下两个方面:(1)将一个复杂问题的解法分解和细化成由若干模块组成的层次结构;(2)将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。自顶向下、逐步细化的设计过程具有以下两个优点:(1)自顶向下、逐步细化的方法符合人们解决复杂问题的普遍规律,可以显著提高程序设计的效率;(2)用先全局后局部、先整体后细节、先抽象后具体的逐步细化过程设计出的程序具有清晰的层次结构,容易阅读和理解。
本文标题:C语言程序设计教程 第1章
链接地址:https://www.777doc.com/doc-3262438 .html