资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,模块,1,程序设计基础知识,程序设计,方法(,C&C+,),程序设计方法(,C&C+,),主讲教师:高飞,授课对象:,2010,级本硕博班,总课时:,64,学时,(,理论教学,48,,上机编程,16,),上课时间:星期一,第七、八节,星期三,第五、六节,上课地点:良乡,1-,104,教室,2,程序设计方法(,C&C+,),教材与教学参考书,教 材:,C/C+,程序设计教程,国防工业出版社 梁成升编,参考书:,C,语言程序设计教程,北京理工大学出版社 李凤霞编,C+,与数据结构,北京理工大学出版社 高飞编,C+,与数据结构实验教程,北京理工大学出版社 苏京霞、高飞编,上机环境:,Visual C+,3,期末考核方法,平时作业,网络教室,,我 们 开 始 吧,10,本模块主要内容,计算机程序设计语言的发展,信息的表示与存储,程序设计方法的发展过程,程序的开发过程,11,计算机程序,计算机的工作是用程序来控制的;,程序是指令的集合;,指令是计算机可以识别的命令。,计算机语言的发展,12,机器语言与汇编语言,由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。,计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。,汇编语言将机器指令映射为一些可以被人读懂的助记符,如,ADD,、,SUB,等。,此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。,计算机语言的发展,13,高级语言,高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定含义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。,计算机语言的发展,14,面向过程语言,面向对象语言,FORTRAN,BASIC,C&,C,+,PASCAL,COBOL,LISP,C+,Turbo PASCAL,V,isual,BASIC,V,isual,J+,V,isual,FoxPro,系统软件设计,具有图形功能,科学计算,商用,人工智能,高级语言分类,15,面向过程语言(,Procedural languages,),:,面向过程语言是一套指令,这些指令从头到尾一条一条执行,除非有指令在别处强行控制。,-,面向过程语言的每条指令都是一个为完成特定任务而对计算机系统发出的命令,所以有时又被称为强制性语言。,面向过程语言,16,面向对象的语言,出发点:,更直接地描述客观世界中存在的事物,(,对象,),以及它们之间的关系。,特点:,是高级语言。,将客观事物看作具有属性和行为的对象。,通过抽象找出同一类对象的共同属性和行为,形成类。,通过类的继承与多态实现代码重用。,计算机语言的发展,17,面向对象的语言,优点:,使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。,计算机语言的发展,18,信息的表示和存储,信息的分类,计算机的数字系统,程序设计中常用的数制,不同进位计数制间的转换,二进制数的编码表示,小数的表示方法,19,信息的分类,指令,控制信息,控制字,信息,定点数,数值信息,数据信息,浮点数,字符数据,非数值信息,逻辑数据,信息的表示与存储,20,计算机的数字系统,计算机采用的是二进制数字系统。,基本符号:,0,、,1,进位原则:逢二进一,优点:,易于物理实现,二进制数运算简单,机器可靠性高,通用性强,缺点:对人来说可读性差,信息的表示与存储,21,信息的表示与存储,用,一组固定的数字,和一套,统一的规则,表示数目,进位的规律,2.,基数,数制中所含数字符号的个数,3.,常用种类,十进制 八进制,十六进制 二进制,符号的个数,数制所包含的数字符号的个数称,基数,1.,数制,22,数制,十进制,由,十,个数字组成,0,,,1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9,二进制 由两,个数字组成,0,,,1,八进制 由八,个数字组成,0,,,1,,,2,,,3,,,4,,,5,,,6,,,7,基数,10,基数,2,基数,8,例,n,进制由,n,个数字组成,计数方法是:逢,n,进一,23,权,权,(,S,),R,=,K,i,R,i,K,i,0,1,R-1,n,i=-m,(,2 5 .6,),10,2,10,1,5,10,0,6,10,-1,(,5 2 .6,),10,5,10,1,2,10,0,6,10,-1,n,=整数位数-1,m=,小数位数,1.,权的概念,24,权,2.,数的按权展开,任何一个数值都是各位数字,本身的值与其权之积的总和,(1234),10,=1,10,3,+2,10,2,+3,10,1,+4,10,0,权,25,数制,3.,不同数制下的权,整数:从右向左,i=0,1,2,3,小数:从左向右,i=-1,-2,-3.,十进制,(D),10,i,八进制,(O),二进制,(B),十六进制,(H),16,i,8,i,2,i,i :,序号,26,一、,二进制数及其与十进制数间的转换,1.,二进制数的表示,(101.11),2,=1,2,2,+0,2,1,+1,2,0,+1,2,-1,+1,2,-2,2.,二进制数的特点,逢,2,进,1,;,有,0,和,1,两个不同的数字符号;,数位的,权,为,2,的幂次方,2,n,。,(49),10,=,(,?,),2,计算机,计算机,(,?,),2,=,(,?,),10,不同数制间的转换,基数为,2,27,3.,二进制数 十进制数,不同数制间的转换,(,续,),(101.01),2,=(,?,),10,(101.01),2,=1,2,2,0,2,1,1,2,0,0,2,-1,1,2,-2,=2,2,+2,0,+2,-2,=4+1+0.25,=(5.25),10,5.25,按权展开法,(101101.101),2,=,2,5,2,3,2,2,2,0,2,-1,2,-3,=32,8,4,1,0.5,0.125,=(45.625),10,关键!记住权值,例,28,不同数制间的转换,(,续,),整数除,2,倒取余,4.,十进制数 二进制数,小数乘正取整,4.,十进制数 二进制数,29,不同数制间的转换,(,续,),2,49,2,24-,1,2,12-,0,2,6-,0,2,3-,0,2,1-,1,0-,1,例:,(,49.58,),10,=(,?,),2,110001.,整数除以,2,倒取余数,小数乘以正取整数,0.58,2,1,.16,2,0,.32,2,0,.64,100,30,不同数制间的转换,(,续,),注意:,所有的十进制整数都能准确地转换成二进制整数,十进制小数,不一定,能精确地转换成二进制小数!根据精度要求取,m,位。,31,不同数制间的转换,(,续,),例:,0.6531,2=,1,.3062 ,1,0.30622=,0,.6124 ,0,0.61242=,1,.2248 ,1,0.22482=,0,.4496 ,0,0.44962=,0,.8992 ,0,(,0.6 5 3 1,),10,(,0.,1,0,1,0 0,),2,32,不同数制间的转换,(,续,),二、,八进制数及其转换,1.,八进制数的表示,(375.42),8,=3,8,2,+7,8,1,+5,8,0,+4,8,-1,+2,8,-2,2.,特点,逢,8,进,1,;,有,0,7,八个不同的数字符号;,数位的,权,为,8,的幂次方,8,n,。,2,3,=8,,,三位二进制数 一位八进制数,。,33,3.,八进制数 十进制数,不同数制间的转换,(,续,),(375.42),8,=(,?,),10,(375.42),8,=3,8,2,+7,8,1,+5,8,0,+4,8,-1,+2,8,-2,=192,+56,+5+0.5+0.03,=(253.53),10,253.53,按权展开法,34,4.,二进制数 八进制数,不同数制间的转换,(,续,),(,10 111,011,.110 1,),2,=(),8,5.,八进制数 二进制数,(,675,4,.32,),8,=(),2,110,111,101,100,011,01,0,.,.,2,7,3,6,4,2,3,=8,以小数点为界,分别向左、向右,每,3,位一组,直接将一位八进制数写成,三位二进制数,或将三位二进制数写成一,位八进制数,不足,3,位补,0,!,35,不同数制间的转换,(,续,),三、十六,进制数及其转换,1.,十六进制数的表示,(97,B,.4,C,),16,=9,16,2,+7,16,1,+,1,1,16,0,+4,16,-1,+,12,16,-2,2.,特点,逢,16,进,1,;,有,0 9,、,A,F,共十六个不同的数字符号;,数位的,权,为,16,的幂次方,16,n,;,2,4,=16,,,四位二进制数 一位十六进制数。,36,3.,十六进制数 十进制数,不同数制间的转换,(,续,),(ABC.DE),16,=(?),10,(ABC.DE),16,=10,16,2,+11,16,1,+12,16,0,+13,16,-1,+14,16,-2,=2560,+176,+12+0.81+0.05,=(2748.86),10,2748.86,按权展开法,37,6.,二进制数 十六进制数,不同数制间的转换,(,续,),(,1011 1110,0110,.1101,1,),2,=(),16,7.,十六进制数 二进制数,(,A7B,8,.C 9,),16,=(),2,1010,0111,1011,1000,1100,1001,.,.,B,E,6,D,8,2,4,=16,以小数点为界,分别向左、向右,每,4,位一组,直接将一位十六进制数写,成四位二进制数,或将四位二进制数写成一,位十六进制数,不足,4,位补,0,!,38,不同数制间的转换,(,完,),四、,R,进制数与十进制数的相互转换,1.,R,进制数转换为,十,进制数,按,R,n,权值展开法,2.,十,进制数转换为,R,进制数,整数除以,R,倒取余数,小数乘以,R,正取整数,39,不同数制间的转换,(,完,),计算机中常见的数值,2,1,=,2,2,=,2,3,=,2,4,=,2,5,=,2,6,=,2,7,=,2,8,=,2,9,=,2,4,8,16,32,64,128,256,512,2,10,=,1024,=,1K,2,20,=,10241024,=,1024K,=,1M,2,30,=,1024 1024 1024,=,1024M,=,1G,40,数的原码、反码和补码表示,二进制,数的符号,由最高位表示,“,0,”,表示,“,+,”,“,1,”,表示,“,”,一、基本概念,1,、机器数、真值和模数,模数,:一个计量器的容量或者与零等价的数。,机器数,:数(连同符号)在机器中的编码表示,真值,:机器数所对应的十进制数值,带符号数如何表示?,0 0 0 0 0 1 0 1,1 0 0 0 0 1 0 1,机器数,5 -5,真值,41,数的原码、反码和补码表示(续),对模数的理解,1.,计数器,从,“,0,”,开始,计数。,2.,计数器,所能计的数值的个数,即模数。,3.,计数器的,模数,=,最大值,+1,。,4.,计数器的模数,(,R,n,),取决于,基数(,R,),和位数(,n,),42,数的原码、反码和补码表示(续),基数,10;,位数,2;,模数,10,2,=100=99+1。,1.,二,位,十,进制计数器的,模数,是多少?,2.,八,位,二,进制计数器的,模数,是多少?,基数,2;,位数,8;,模数,2,8,=256=255+1。,二,位,十,进制计数器最多可以计,100,个数,八,位,二,进制计数器最多可以计,256,个数,43,数的原码、反码和补码表示(续),2,、带符号数和无符号数,带符号数,1 0 0 0 0 1 0 1,-5,带符号数,无符号数,133,无符号数(机器编码),44,数的原码、反码和补码表示(续),二、机器数表示数值的几种方法,原码,反码,补码,解决数值计算问题 减法问题,45,数的原码、反码和补码表示(续),带符号的二进制数,按数位的,宽度填满,最高位是符号位,1,、数的原码表示,带符号数,-12,1 0 0 0 1 1 0 0,带符号数,+12,0 0 0 0 1 1 0 0,例,a=-12 b=+12,a,原,=10001100,b,原,=00001100,记为,:,46,数的原码、反码和补码表示(续),原码的表示范围:,(2,n1,1)(2,n1,1),最小的负数,最大的正数,正,0,和负,0,的,区别是什么?,+0,原,=,0,0000000,-0,原,=,1,0000000,-127,+127,1 1 1 1 1 1 1 1,0 1 1 1 1 1 1 1,当,n=8,时,,原码的表示范围是?,47,数的原码、反码和补码表示(续),对原码除符号位之外按位求反,0,变,1,,,1,变,0,2,、数的反码表示,原码,-12,1 0 0 0 1 1 0 0,反码,1 1 1 1 0 0 1 1,例,a=-12,记为:,a,反,=11110011,48,数的原码、反码和补码表示(续),计算机不会直接做减法!,6+7=13,6-7=,?,8-3=,?,为什么要用补码?,3,、数的补码表示,解决方法:,将负数表示成正数!,-7=+,?,-3=+,?,49,数的原码、反码和补码表示(续),将时针由,8,点校对到,3,点,蓝:顺时针,+7 8+7=15=3,黄:逆时针,5 8-5=3,8,+7,=8,5,=3,什么是补码?,+7,是,-5,的补码,丢掉,模数,12,基本概念,50,数的原码、反码和补码表示(续),有证明:,a-x(,小于模,的数,),=,a+(,模,-x),对于钟表而言:,1,、,9-5,(,小,于,12,),=9+,(,12-5,),4=9+7=16=4,(,丢掉模,),-5,的补码是,+7,2,、,3-4=3+,(,12-4,),-1=3+8=11,-4,的补码是,+8,例,差,1,点到模数(,11,点),-x,总可以用,+(,模,-x),表示,等值,51,数的原码、反码和补码表示(续),补码的,求法,对于,2,位十进制数,求补码:,模,=10,2,=100,-28,补,=,10,2,-28=72,75-28=47 =75+72=147,(,模,100,),对于,4,位二进制数,-1001,求补码,:,模,=2,4,=16,-1001,补,=,2,4,-1001=10000-1001=0111,1100-1001=0011 =1100+0111=10011,(,模,10000,),-x,补,=,2,n,-|,x,|,例,52,数的原码、反码和补码表示(续),计算机如何求补码,对原码除符号位以外按位变反,加,1,对二进制数,-1001,求补码:,不用模数,-1001,补,=,-1001,反,+1=,1 0110,+1=10111,对于,8,位二进制数,-1001,求补码:,-1001,补,=,-1001,反,+1=,1 1110110,+1=11110111,例,53,数的原码、反码和补码表示(完),补码的表示范围:,2,n1,(2,n1,1),当,n=8,时,补,码的表示范围是?,+0,补,=,-0,补,=0,0,补,的两种表示是什么?,-128,+127,-0,反,=,11111111,对补码再求补码就得到原码,正数的原码、反码、补码相同,,只有负数的原码、反码、补码不同!,54,数的原码、反码和补码表示(续),为什么负数补码的编码多一个?,-128,补,=2,8-1,补,=2,8,|,2,7,|,=,2,8,2,7,=2,2,7,2,7,=,2,7,=,(,1000 0000,),2,当,n=8,时,,,2,8-1,(-128),的补码是?,讨论,这是,-128,的补码,还是,-0,的补码?,0,补,=2,8,0,=(,1,0000 0000),2,0,=(0000 0000),2,=+0,补码可以,唯一表示,0,55,数的定点和浮点表示,小数点,在计算机中如何表示,两种方法,位置固定:,3.14159-,定点,位置变化,:,3.14159-,浮点,3.14159X10,0,0.314159X10,1,0.0314159X10,2,的位置移动,数的大小不变,56,数的定点和浮点表示(续),1.,定点小数格式,N,s,N,-1,N,-2,N,-,m,.,符号位,数值部分,小数点,(,隐含,),小数点位置,固定,在某一位置。,包括:,定点小数,和,定点整数,小数点固定在最高数据位的左边,所有的数都是纯小数,只能表示小数,一、定点表示法,57,数的定点和浮点表示(续),例,1,:,0.6875,用,8,位定点小数表示,0.6875,0.1011,0.1011000,0 1011000,58 H,小数点隐藏,0.6875,58H,0,表示正数,58,数的定点和浮点表示(续),例,2,:,-0.6875,用,8,位定点小数表示,-0.6875,-0.1011,-0.1011000,11011000,D8 H,小数点隐藏,-0.6875,D8H,1,表示负数,59,数的定点和浮点表示(续),用,32,位字长做定点小数时,表示的数的范围是:,(,1 2,-31,),1,最小绝对值是:,2,-31,1 1 1,1 1 1 1,x,30 29,3 2 1 0,60,数的定点和浮点表示(续),2.,定点,整数,格式:,N,s,N,n-1,N,n-2,N,0,.,符号位,数值部分,小数点,(,隐含,),小数点固定在最低位数字的右边,是不是除一个比例因子就能表示小数,定点表示有什么特点,?,直观、简单、节省硬件,数据范围小,不灵活,61,数的定点和浮点表示(续),例如,-113,,用定点整数表示为:,1 1 1 1 0 0 0 1,例如,113,,用定点整数表示为:,0 1 1 1 0 0 0 1,62,小数点位置可任意,移动,M,R,E,尾数,基数,阶,数的定点和浮点表示,(,续,),3.14159X10,0,0.314159X10,1,0.0314159X10,2,3.14159,尾数:数的有效数字,阶:小数在数中的实际位置,二、浮点表示法,63,阶符,阶码,数符 尾数,尾数,阶,数的定点和浮点表示,(,续,),尾数,常用定点小数表示,有一个符号位,阶,常用整数表示,有一个符号位,假定:,32,位字长,,8,位作阶,,24,位作尾数,能表示的最大的数?最小数?,64,数的定点和浮点表示,(,续,),当阶的符号位为,0,,其余为,1,当尾数符号位为,0,,其余为,1,时表示的数最大,:,10,38,当阶的符号位为,0,,其余为,1,当尾数符号位为,1,,其余为,1,时表示的数最小,:,-10,38,怎么得到的,2,7,-1,2 *,(,1-2,-23,),2,127,10,38,2,7,-1,-2 *,(,1-2,-23,),-,2,127,-,10,38,65,数的定点和浮点表示,(,续,),32,位字长,,8,位作阶,,24,位作尾数时,表示的数的范围是:,-,2,-150,-,10,38,2,-150,10,38,66,数的定点和浮点表示,(,续,),当浮点数字长一定时,,阶数位数越长,则所表示的数据范围越大,。,当浮点数字长一定时,,尾数位数越长,则所表示的数据精度越高,。,67,程序设计方法的发展历程,面向,过程,的程序设计方法,程序的目的:用于数学计算,主要工作:设计求解问题的过程,缺点:对于庞大、复杂的程序难以开发和维护,68,程序设计方法的发展历程,面向,过程,的,结构化,程序设计方法,设计思路,自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。,程序结构:,按功能划分为若干个基本模块,形成一个树状结构。,各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。,其模块化实现的具体方法是使用子程序。,69,程序的三种基本结构,特点:,一个入口,一个出口,顺序执行,S1,S2,a,b,顺序结构,程序设计方法的发展历程,面向,过程,的,结构化,程序设计方法,70,选择结构,语句,N,条件,Y,条件,语句,1,语句,2,Y,N,双选择,单选择,功能,:,判断条件为真时执行语句,否则,,跳过,语句,功能,:,判断条件为真时执行语句,1,否则,,执行,语句,2,71,循环结构,循环体,N,条件,Y,当型循环,直到型循环,条件,N,Y,循环体,先循环后判断,入口,出口,72,程序设计方法的发展历程,面向,过程,的,结构化,程序设计方法,优点:,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。,73,程序设计方法的发展历程,面向,过程,的,结构化,程序设计方法,缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件,把数据和处理数据的过程分离为相互独立的实体。,当数据结构改变时,所有相关的处理过程都要进行相应的修改。,每一种相对于老问题的新方法都要带来额外的开销。,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。,74,程序设计方法的发展历程,面向,对象,的方法,将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体,对象。,对同类型对象抽象出其共性,形成类。,类通过一个简单的外部接口,与外界发生关系。,对象与对象之间通过消息进行通讯。,75,程序设计方法的发展历程,面向,对象,的方法,优点:,程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。,通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。,76,程序设计与算法,程序设计,数据结构,算法,方法,工具,程序设计,编程,对求解问题的数据描述:数据结构,对求解问题的过程的描述:算法,77,程序设计与算法,?什么是数据结构,计算机的别名:,数据处理机,数据元素:,数据的最小单位,数据结构:,数据元素的组织形式,程序设计,数据结构,算法,数据结构的优劣决定,软件或程序的复杂程度和面貌,数据结构,数据类型,78,目的:,改善环境,加快程序开发过程。,常用工具:,描述算法的图形工具、表,示结构的开发工具等。,程序设计工具,程序设计与算法,79,程序设计的一般步骤,程序设计与算法,分析问题,建立数学模型,确定数据结构和算法,编写程序,调试运行,分析整理结果,80,程序设计与算法,算法:,完成一项任务的具体步骤,计算机语言的别名:,算法语言,2,R=,L,,,R,2,=,S,3,次乘法,1,次乘方,R=,A,,,2A,=L,,,AR=S,3,次乘法,2,R=,L,,,RR=,S,4,次乘法,一、,什么是算法?,例,求圆周长和圆面积,数学模型:,L,2,R S,R,2,三种算法:,可读性好,执行效率高,综合,的优点,81,程序设计与算法,二、,算法的两要素,基本功能操作,控制结构,基本功能操作:,逻辑运算:与、或、非;,算术运算:加、减、乘、除;,数据比较:大于、小于、等于、不等于、,大等于、小于等于;,数据传送:输入、输出、赋值。,控制结构:,顺序、选择、循环,82,程序设计与算法,三、,算法的表示,图形符号,起止框,判断框,处理框,输入,/,输出框,注释框,流向线,连接点,83,程序设计与算法,用流程图表示算法,t=1,开始,t2,t,t,3t,t,4t,1,1,t,5t,输出,t,结束,开始,t=1,i=2,t,i t,i+1i,i,5,1,1,输出,t,结束,例,2:,求,1,2,3,4,5,,即,5,。用流程图表示法。,方法一:,方法二:,i=i+1,计数器,i=i+n,计数器,t=t+x,累加器,a=a*x,累乘器,84,程序设计与算法,计算函数值算法流程图,开 始,输入,a,b,c,x,输出,m,结束,xa,Y,bx+a,2,m,a(c-x)+c,2,m,N,求最大公约数算法流程图,m/n,余数,r,nm,rn,N,开 始,输入,m,n,输出,n,结束,r=0?,Y,求余数,选择结构流程图,循环结构流程图,85,结构,化程序设计方法,一、程序的三种基本结构,特点:,一个入口,一个出口,顺序执行,S1,S2,a,b,顺序结构,86,结构,化程序设计方法,选择结构,语句,N,条件,Y,条件,语句,1,语句,2,Y,N,双选择,单选择,功能,:,判断条件为真时执行语句,否则,,跳过,语句,功能,:,判断条件为真时执行语句,1,否则,,执行,语句,2,87,结构,化程序设计方法,语句,1,N,条件,1,Y,条件,2,条件,n,Y,Y,语句,2,语句,3,语句,n,N,N,多分支,功能,:,从多个条件中选择满足条件的一个分支执行。,88,结构,化程序设计方法,循环结构,循环体,N,条件,Y,当型循环,直到型循环,条件,N,Y,循环体,先循环后判断,入口,出口,89,结构,化程序设计方法,二、,N,S,流程图,条件,Y,N,S1 S2,2.,选择结构,S1,S2,1.,顺序结构,90,3.,循环结构,结构,化程序设计方法,循环体,循环体,当满足条件时,直到条件满足时,当型循环,直到型循环,91,0,t,1i,t+i,t,i+1,i,直到,i,100,输出,t,的值,4,、传统流程图与,N-S,流程图的比较,结构,化程序设计方法,开始,0,t,1i,t+i,t,i+1,i,i,100,不成立,成立,输出,t,的值,结束,例,1,:,1+2+3+,直到,t,的值大于,100,。,?,92,例,2,:输入,10,个整数,要求打印出其中最大的数。用,N-S,图表示,。,结构,化程序设计方法,输入,1,个数,max,计数器,i=1,输入一个数,x,x,max,是,否,x,max,i+1,i,直到,i=10,输出,max,直到型循环,三、模块化程序设计,输入一个数,比较,输出最大数,顶层设计,详细设计,93,基本术语,源程序:,用源语言写的,有待翻译的程序,目标程序:,也称为,结果程序,,是源程序通过翻译程序加工以后所生成的程序。,翻译程序:,是指一个把源程序翻译成等价的目标程序的程序。,程序的开发过程,94,基本术语,三种不同类型的翻译程序,汇编程序:,其任务是把用汇编语言写成的源程序,翻译成机器语言形式的目标程序。,编译程序:,若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为,编译程序,。,程序的开发过程,95,基本术语,三种不同类型的翻译程序,解释程序:,这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:它是边翻译边执行的,即输入一句、翻译一句、执行一句,直至将整个源程序翻译并执行完毕。,程序的开发过程,96,程序的开发过程,编辑,将源程序输入到计算机中,生成后缀为,c,或,cpp,的磁盘文件。,编译,将程序的源代码转换为机器语言代码。,连接,将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为,exe,的可执行文件。,运行调试,程序的开发过程,97,
展开阅读全文