第一章 C语言程序设计概述汇总.pdf
《第一章 C语言程序设计概述汇总.pdf》由会员分享,可在线阅读,更多相关《第一章 C语言程序设计概述汇总.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 C 语言程序设计概述1.11.1程序和程序设计语言程序和程序设计语言计算机是在程序的控制下工作的。要让计算机能够正常的运行,需要预先编写好计算机工作步骤的指令序列,即系统程序;要利用计算机来解决一个具体的实际问题,同样需要编写程序,即应用程序。这些都要进行程序设计工作。1.1.11.1.1 程序与程序设计程序与程序设计所谓程序,就是一系列遵循一定规则和思想并能正确完成指定工作的代码(也称为指令的序列)。通常一个计算机程序主要描述两部分的内容,其一是描述问题的每个对象及他们之间的关系,即数据结构的内容;其二是描述对这些对象进行处理的动作、动作的先后顺序,即求解的算法。因此,程序也可以用经
2、典的公式来表示:程序数据结构算法所谓程序设计,就是根据计算机要完成的任务,提出相应的需求,在此基础上设计数据结构和算法,然后用某种程序设计语言编写相应的程序代码。一个设计合理的数据结构往往可以简化算法,而且一个好的程序有可靠性、易读性、可维护性等良好特性。1.1.21.1.2 程序设计语言程序设计语言程序设计语言是人与计算机交流的工具,是用来书写计算机程序的工具。程序设计的语言有几百种,最常用的不过十多种。按照程序设计语言发展的过程,可以分为三类。1.1.机器语言机器语言机器语言是由 0 和 1 这样的二进制代码按一定规则组成的、能被机器直接理解和执行的指令集合。机器语言中的每一条语句实际上是
3、一条二进制形式的指令代码(即机器指令),机器指令一般由操作码和操作数两个部分组成,操作码表示该指令所要完成的功能,操作数指出完成这个功能所需要的数据或数据在内存中的地址。例如,某种计算机上计算A=15+10 的机器语言程序如下:10110000 00001111把 15 放入累加器 A 中00101100 0000101010 与累加器 A 中的值相加,结果仍放入A 中111110100结束,停机用机器语言编写的程序,计算机可以直接识别和执行,因而执行效率高。但由于不同的机器,其指令系统不同,因此机器语言程序通用性差。另外,机器语言的指令不直观,难认、难记、难理解、难修改、易出错。因此,很少有
4、人用机器语言直接编程。2.2.汇编语言汇编语言为了便于理解和记忆,人们采用能够帮助记忆的指令助记符来代替机器语言指令代码中的操作码,用地址符号或十进制数来代替操作数。指令助记符一般采用描述该指令功能的英文单词的缩写,如用 ADD 表示加法操作、SUB 表示减法操作、JMP 表示程序跳转等等。这种指令助记符的语言就是汇编语言,又称为符号语言。例如,上述计算 A=15+10 的汇编语言程序如下:MOVA,15把 15 放入累加器 A 中ADDA,1010 与累加器 A 中的值相加,结果仍放入A 中HLT结束,停机计算机不能直接执行用汇编语言编写的程序,必须由一种专门的翻译程序(即汇编程序)将汇编语
5、言源程序翻译成机器语言程序,计算机才能执行。3.3.高级语言高级语言机器语言和汇编语言都是面向机器的语言,一般称为低级语言。它们对机器的依赖性很大,用它们开发出的程序通用性差,而且要求程序的开发者必须熟悉和了解计算机硬件的每一个细节,因此,它们面对的用户一般是计算机专业人员。随着计算机技术的发展及计算机应用领域的不断扩大,计算机用户的队伍也在不断壮大,而且这个队伍中绝大部分人不是计算机专业人员。为此,从20 世纪 50 年代中期开始,逐步发展了面向问题的程序设计语言,称为高级语言。高级语言与具体的计算机硬件无关,其表达方式接近于被描述的问题,接近于自然语言和数学语言,易为人们接受和掌握。用高级
6、语言编写程序要比用低级语言容易得多,大大简化了程序的编制和调试过程,使编程效率得到大幅度的提高。例如,上述计算 A=15+10 的 BASIC 语言程序如下:A=15+10 15与 10 相加的结果放入 A 中PRINT A 输出 AEND 程序结束用高级语言编写的程序易学、易读、易修改,通用性好。但是,计算机同样不能直接执行高级语言程序,必须经过语言处理程序的翻译后才能被机器接受。下面列出几种最常用的高级语言及其最适用的领域:Basic教学和微小型应用程序的开发 Fortran科学及工程计算程序的开发 Pascal专业教学和应用程序的开发 C中、小型系统程序的开发 C+面向对象程序的开发2
7、Java Internet上应用的重要编程语言Visual Basic面向对象程序的开发 Cobol商业、交通和银行等行业应用程序的开发 Lisp人工智能程序的开发 Prolog人工智能程序的开发1.1.31.1.3语言处理程序语言处理程序计算机可以直接识别和执行的只能是机器语言程序。用汇编语言和高级语言编写的程序,都必须经过一个翻译过程才能转换为计算机所能识别的机器语言程序,实现这个翻译过程的工具是语言处理程序,即翻译程序。翻译程序除了要完成语言间的转换外,还要进行语法、语义等方面的检查。针对不同的程序设计语言编写出的程序,有各自的翻译程序,互相不通用。翻译程序可分为汇编程序和高级语言翻译程
8、序;高级语言翻译程序有两种工作方式:解释方式和编译方式,对应的是解释程序和编译程序。1.1.汇编程序汇编程序汇编程序是一种由专业的软件开发商提供的系统软件,它能将用汇编语言编写的源程序翻译成某种类型的计算机的机器语言程序,即目标程序,这一翻译过程称为汇编。图1.1 是汇编程序的功能示意图。汇编语言源程序汇编机器语言目标程序执行执行结果汇编程序图 1.1汇编过程示意图汇编程序通常是将一条汇编语言指令翻译成一条机器语言指令。在翻译的过程中,还要对每一条指令进行语法检查,若有错误,就中断汇编过程,并以某种方式输出错误的类型及有关信息,以便用户进行修改。若没有错误,就自动生成相应的目标程序,再经过一定
9、处理之后,便可以运行了。运行的是可执行的目标代码,与源程序及汇编程序无关。若源程序作了某些修改,则必须再重新进行汇编。2.2.解释程序解释程序解释程序的工作过程是将高级语言源程序一句一句地读入,每读入一个语句都要对它进行分析和解释,若有错误就即时中断其解释过程,并通知用户进行修改,若没有错误就按照解释结果执行所要求的操作。其工作过程如图1.2 所示。高级程序源程序一句一句地解释并执行图 1.2解释过程示意图3执行结果解释程序BASIC、LISP 等语言采用解释方式。解释方式灵活、方便,交互性好,解释执行程序的过程中也不会产生目标程序。但因为是边解释边执行,所以程序的执行速度很慢,如果源程序中出
10、现循环结构,解释程序也要重复多次地解释循环体中的每一条语句,造成很大浪费,而且解释方式在运行源程序时离不开翻译程序。3.3.编译程序编译程序编译程序的功能是将用高级语言编写的源程序翻译成机器语言程序,即目标程序,这一翻译过程称为编译。但目标程序还不能立即装入机器执行,因为还没有连接成一个整体,在目标程序中还可能要调用一些其他语言编写的程序和标准程序库中的标准子程序,所有这些程序通过连接程序将目标程序和有关的程序库组合成一个完整的可执行程序。产生的可执行程序可以脱离编译程序和源程序独立存在并反复使用。故编译方式执行速度快,但每次修改源程序后,都必须重新编译。其工作过程如图1.3 所示。图 1.3
11、编译过程示意图源程序编译程序目标程序连接连接程序可执行程序执行执行结果与汇编程序不同的是,编译程序往往需要将一条高级语言的语句转换成若干条机器语言指令,而且翻译的过程也要复杂得多。一般高级语言(C/C+、PASCAL、FORTRAN、COBOL等)都是采用编译方式。1.1.41.1.4 设计程序的基本原则设计程序的基本原则要设计出一个好的程序,必须了解利用计算机解决实际问题的过程,掌握程序设计的基本技术,熟练地掌握一种程序设计语言。计算机解决问题的基本过程如图1.4 所示。分析问题确定问题解决方案确定实现算法编写程序整理程序运行程序图 1.4 计算机解决问题的基本过程如何才能编写出高质量的程序
12、呢?下面是设计程序时应遵循的基本原则:(1)正确性。正确性是指程序本身必须具备且只能具备程序设计规格说明书中所列举的全部功能。它是判断程序质量的首要标准。(2)可靠性。可靠性是指程序在多次反复使用过程中不失败的概率。(3)简明性。简明性的目标是要求程序简明易读。(4)有效性。程序在计算机上运行需要使用一定数量的计算机资源,如CPU 的时间、存储器的存储空间。有效性就是要在一定的软、硬件条件下,反映出程序的综合效率。(5)可维护性。程序的维护可分为校正性维护、适应性维护和完善性维护。一个软件的4可维护性直接关系到程序的可用性,因此应特别予以关注。(6)可移植性。程序主要与其所完成的任务有关,但也
13、与它的运行环境有着一定的联系。软件的开发应尽可能远离机器的特征,以提高它的可移植程度。为了有效地进行程序设计,不仅要掌握一门高级语言,还应该学会对各类问题拟定出有效的解题步骤即算法设计。有了正确的算法,才能够编制程序。算法的好坏,决定了程序的优劣,因此,程序设计的核心任务之一就是设计算法。1.2算法所谓算法,就是问题的求解方法。例如,期末考试前的复习计划,就是“复习算法”;到医院看病,先挂号,后诊断、检查,再取药等,是“看病算法”。在计算机中,把解题过程的准确而完整地描述称为解题算法。一个算法由一些操作组成,而这些操作又是按一定的控制结构所规定的次序执行的,也就是算法由操作与控制结构两个要素组
14、成。一个算法应该具有如下特点:(1)有穷性:一个算法应该包含有限的操作步骤,而不能是无限的;并且能在有限的时间内完成。(2)确定性:每一个步骤都是确定的,而不能是含糊的、模棱两可的。(3)有效性:每一个步骤都能得到有效地执行,并得到确定的结果。(4)有零个或多个输入:所谓输入是指执行算法时需要从外界取得必要的信息。(5)有一个或多个输出:算法的目的就是为了求解,“解”就是输出。上述所讲的算法特性,约束人们去正确地书写算法,使之能够正确无误地执行,达到求解问题的预期效果。同时,算法还应该具有直观、清晰、易懂的表示形式,以利于维护、修改和交流。1 1简单算法举例简单算法举例例例 1.11.1给出求
15、 x1+x2+x3+x4+x5 的值的算法。算法分析如下:(1)手工计算的算法。采用手工计算的步骤为:将 x1 与 x2 相加,得到两个数之和;将上一步的和与 x3 相加,得到三个数之和;将上一步的和与 x4 相加,得到四个数之和;将上一步的和与 x5 相加,得到五个数之和。这种算法虽然是正确的,但太繁琐。如果要求x1+x2+x100,则要写 99 个步骤,显然是不可取的。(2)适合计算机处理的算法。该算法能更加简洁地表达上述解题过程,并具有通用性。先定义几个变量:设置变量 s 表示多项式之和,其初值为零;设置变量a 表示多项式中的5一项,它的值可以为 x1,x2,x5;用 i 记录被加了几次
16、,其初值为1。解题步骤为:s0;i1;axi;(使 a 等于多项式中的第 i 项)ss+a;(求和,并将结果保留在s 中)ii+1;(计数增值)若 i 5,则重复,各步;否则,计算结束;输出 s。2 2算法的表示算法的表示算法的表示,有多种不同的方法。如自然语言、传统流程图、结构化流程图、伪代码、PAD图等。(1)自然语言。自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。这样的算法通俗易懂,但文字冗长,容易出现“歧义性”,在表示包含分支和循环的算法时,不太方便和直观。因此,除了很简单的问题以外,一般不用自然语言表示。(2)传统流程图。流程图(Flowchart)是用一些框图、线条及
17、文字说明来描述算法。美国国家标准化协会 ANSI 规定了一些常用的流程图符号。如表1.1 所示。用三种基本结构作为表示一个良好算法的基本单元,由它们可以嵌套、组合,形成复杂的程序流程图。图1.5 表示了三种基本结构的传统流程图。其中,(a)表示顺序结构,(b)表示选择结构,(c)表示当型循环结构,(d)表示直到型循环结构。顺序结构。图 1.5(a)中,两个框是顺序执行的。即先执行“处理 1”框所指定的操作,接着执行“处理 2”框所指定的操作。选择结构,又称分支结构。图1.5(b)中,当条件满足时执行“处理1”框,否则执行“处理 2”框。循环结构,又称重复结构。图1.5(c)中,首先判断条件是否
18、满足,若条件满足,则执行“处理”框指定的操作,之后返回再判断条件,由此构成循环,直至条件不满足为止;图1.5(d)中,先执行“处理”框指定的操作,之后判断条件是否满足,若条件不满足,就返回执行“处理”框指定的操作,直到条件满足为止。处理 12处理(a)顺序结构(b)选择结构(c)当型循环结构(d)直到型循环结构图 1.5 三种基本结构的传统流程图满足条件处理 1处理 2不满足条件满足处理不满足处理条件不满足满足6表 1.1传统流程图常用的符号图形名称说明流向线表示算法流程方向;箭头方向为入口,相背方向为出口开始、结束框开始框仅有流向线从其流出,而结束框仅有流向线流入处理框也称矩形框,表示确定的
19、处理、步骤输入输出框表示原始数据的输入和处理结果的输出判断框允许有一个入口,两个或两个以上的可选择的出口连接点用来将画在不同地点的流程线连接起来功能调用框表示执行模块或子程序注释框用于书写注释信息流程图形象、直观,便于交流,广泛使用。例例 1.21.2输入一个整数,将它倒过来输出。例如,输入12345,输出为 54321。试给出其算法。流程图见图 1.6。定义变量 x输入一整数给 xx0?是不是d=x%10;输出 d;x=x/10 的整数;程序结束图 1.6 用传统流程图表示算法例例 1.31.3从键盘输入 100 个数,求出这 100 个数的累加和,并找出它们的最大值和最小值。试用传统流程图
20、表示解决这个问题的算法。流程图见图 1.7。7程序结束图 1.7 传统流程图的应用输出变量 sum,max,min 的值xmin是min=ximax是不是max=xsum=sum+xi=i+1(3)N-S 流程图。随着结构化程序设计的兴起,简化了控制流向,出现了N-S 图。N-S 图是美国学者 I.Nassi 和 B.Shneiderman 提出的一种新的流程图形式。N-S 图中去掉了传统流程图中带箭头的流向线,全部算法以一个大的矩形框表示,该框内还可以包含一些从属于它的小矩形框,适于结构化程序设计。图 1.8 表示了结构化程序设计的三种基本结构的N-S 流程图表示。其中,(a)表示顺序结构,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 C语言程序设计概述汇总 语言程序设计 概述 汇总
限制150内