- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言chap1 C语言程序设计的概念
第一章 C语言程序设计初步;1.1程序与程序设计语言 ;那么,为什么现代计算机可以自动完成计算过程呢?这 首先要从程序说起。程序实际上是一个非常普通的概念:按照一定的顺序安排的工作步骤。可以说,做任何事情都有相应的程序。做的事情不同,要求的效果不同,程序就不同。例如,用同样的原料,采用不同的程序,会做出不同的菜肴来。
一种工具能够自动工作,一是要有记忆功能,能够记住程序;二是具有按照程序控制相关部件操作的能力。如果能让算盘记住做某种计算的口诀和计算的数据,并且有能按照口诀控制算珠自动运动的机制,则只要发出开始执行的命令,算盘就会自动完成计算。
可惜这样的机制并没有在算盘中实现。但是,却有另外一种机器却在这方面向前推进了一步。这就是明朝末年宋应星在其《天工开物》中记载的中国古代提花机(见图1.2)。
;图1.2 中国古???的提花机;中国提花机大约出现于西汉末年(公元前)。它采用用丝线结成的“花本”(花版)控制经线起落,以织成要求的图样。这是最早的程序控制思想。后来,提花机沿着丝绸之路传到欧洲,历经改进,1805年法国人Joseph Jacquard制造成功用穿孔卡片(见图1.3)控制连杆(横针),用有孔和无孔进一步控制经线起落的提花机。
;穿孔卡片把程序控制技术向前推进了一步。这一技术被一位英国数学家Charles Babbage(见图1.4)引入到了计算机中机,用有孔和无孔的组合来表示数据和程序。
;18世纪末,法国数学界调集大批数学家,组成了人工手算的流水线,经过长期艰苦奋斗,终于完成了17卷《数学用表》的编制,但是,手工计算出的数据出现了大量错误。这件事情强烈刺激了Babbage。1812年20岁的Babbage开始计算机的研制工作,他要把函数表的复杂算式转化为差分运算,用简单的加法代替平方运算,快速编制不同函数的数学用表,并将这种机器称为“差分机”。经过十年的努力,终于于1822年完成了第一台差分机,可以处理3个不同的5位数,计算精度达到6位小数。1833年他又开始投身于一种“会分析的机器”——分析机的研制中。他把机器设计成三个部分,一是用来储存数据信息的“仓库(The Store)”,二是进行数据运算处理的“工场(The mill)”,三是使用穿孔卡片来输入程序并用穿孔卡片输出数据。
这台机器虽然没有制造成功,但它的工作原理——程序存储控制为今天的计算机奠定了基础:
(1)任何工具的工作,都是由程序控制的;
(2)只有工具具有了记忆程序的功能,并具有了按照程序进行自我控制的功能,该工具才能自动工作。
;1.1.2 计算机程序设计语言
程序要需要用某种形式(语言)来描述。例如,用算盘进行计算,程序是用口诀描述的,珠算的语言是口诀。现代计算机的程序则是用计算机程序设计语言来描述的。从计算机诞生到今天,程序设计语言也在伴着计算机技术的进步不断升级换代。
1. 机器语言
一种CPU的指令系统,也称该CPU的机器语言,它是该CPU可以识别的一组由0和1序列构成的指令码。下面是某CPU指令系统中的两条指令:
1 0 0 0 0 0 0 0 (进行一次加法运算)
1 0 0 1 0 0 0 0 (进行一次减法运算)
用机器语言编程序,就是从所使用的CPU的指令系统中挑选合适的指令,组成一个指令系列。这种程序虽然可以被机器直接理解和执行,却由于它们不直观,难记、难认、难理解、不易查错,只能被少数专业人员掌握,同时编写程序的效率很低,质量难以保证。这种繁重的手工方式与高速、自动工作的计算机极不相称。这种方式仅使用于计算机出现的初期(使用穿孔纸带的时期)的编程(用有孔、无孔,分别代表1、0),现在已经不再使用 ;2. 汇编语言
为减轻人们在编程中的劳动强度,20世纪50年代中期人们开始用一些“助记符号”来代替0,1码编程。如前面的两条机器指令可以写为
A+B => A或ADD A,B
A-B =>个样 A或SUB A,B
这种用助记符号描述的指令系统,称为符号语言或汇编语言。
用汇编语言编程,程序的生产效率及质量都有所提高。但是汇编语言指令是机器不能直接识别、理解和执行的。用它编写的程序经检查无误后,要先翻译成机器语言程序才能被机器理解、执行。这个翻译转换过程称为“代真”。代真后得到的机器语言程序称为目标程序(object program),代真以前的程序,称为源程序(source program)。由于汇编语言指令与机器语言指令基本上具有一一对应的关系,所以汇编语言源程序的代真可以由汇编系统以查表的方式进行。
汇编语言与机器语言,都是依CPU的不同而异,它们都称为面向机器的语言。用面向机器的语言编程,可以编出效率极高的程序。但是程序员用它们编程时,不仅要考虑解题思路,还要熟悉机器的内部结构,并且要“手工”地进
文档评论(0)