第7章 程序设计语言和编码_第1页
第7章 程序设计语言和编码_第2页
第7章 程序设计语言和编码_第3页
第7章 程序设计语言和编码_第4页
第7章 程序设计语言和编码_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章程序设计语言和编码教学目标与要求理解编码阶段的主要任务掌握程序设计语言的类别掌握结构化程序设计的主要原则掌握注释的两种类型了解程序设计风格第7章程序设计语言和编码教学重点与难点理解编码阶段的主要任务掌握结构化程序设计的主要原则了解程序设计风格第7章程序设计语言和编码做为软件工程过程的一个阶段,程序编码是设计的继续。编码是在详细设计的基础上进行的,其主要任务是将软件的详细设计转换成用程序设计语言实现的程序代码,也就是根据详细设计阶段给出的程序逻辑结构的描述,选择某种计算机能够接受的程序语言,按照编程规范,编写出高质量的、具有一致性、可移植性、可维护性和高效率的程序代码。程序设计语言的性能和设计风格对于程序设计的效能和质量有着直接的关系。7.1程序设计语言

7.1.1语言类别

1.机器语言——第一代语言机器语言是计算机硬件系统能够识别、执行的一组指令。用这种语言编写的程序,都是二进制代码的形式,且所有的地址分配都是以绝对地址的形式处理。存储空间的安排,寄存器、变址的使用都由程序员计划。对于不同的机器就有相应的一套机器语言。优点:执行效率高,速度快;缺点:不易编制、不易理解,出错率高。b6b5b401234567b3b2b1b000000101001110010111011100000NULDLESP0@P、p10001SOHDC1!1AQaq20010STXDC2“2BRbr30011ETXDC3#3CScs40100EOTDC4$4DTdt50101ENQNAK%5EUeu60110ACKSYN&6FVfv70111BELETB‘7GWgw81000BSCAN(8HXhx91001HTEM)9IYiyA1010LFSUB*:JZjzB1011VTESC+;K[k{C1100FFFS,〈L\l|D1101CRGS-=M]m}E1110SORS·〉N↑n~F1111SIUS/?O↓oDELASCII码表

7.1.1语言类别

2.汇编语言——第二代语言汇编语言是用助记符来代替操作码,用地址符号来代替地址码的语言。存储空间的安排可由机器解决,减少了程序员的工作量,也减少了出错率。汇编程序是把汇编语言程序翻译成机器语言程序的程序,翻译的过程成为汇编。汇编语言因使用的机器不同而不同。优点:执行效率高,速度快,易于理解和记忆。缺点:不同指令集的处理器系统就有自己相应的汇编语言。举例:汇编语言计算1---10的累加和

MVDR1,0;

MVDR2,0A;

MVDR3,0;2066:INCR3;

ADDR1,R3;

CMPR3,R2;

JNZ2066;

RET;

7.1.1语言类别

3.高级语言——第三代语言高级语言不依赖于实现这种语言的计算机。一条语句往往对应多条机器指令,因而用高级语言编写程序使工作量大为减少。翻译方法:编译:先翻译,后执行解释:逐条翻译,逐条执行分类:通用语言:适用性强,应用面广,可移植性强专用语言:面向特定的应用领域举例:C语言计算1---10的累加和

Main(){

intsum=0;

for(inti=1;i<=10;i++)sum=sum+i;printf(“1-10的累加和是:”)+sum;}举例:JAVA语言计算1---10的累加和publicclassForPrime

{

publicstaticvoidmain(String[]args){

intsum=0;

for(inti=1;i<=10;i++)sum=sum+i;

System.out.println("Thesumis:"+sum);

}}

7.1.2语言的选择为什么要选择编码语言

“程序设计语言不是引起软件问题的原因,也不是用它来解决软件问题,但是由于语言在一切软件活动中所处的中心位置,它们能使现存的问题变得较易解决或更加严重”。这段话揭示了语言在软件开发中的作用,提醒我们重视在编码前选好适当的语言。

7.1.2语言的选择当衡量某一语言是否可选作编码语言时,通常要考虑的因素有:1.项目的应用领域2.算法和计算复杂性3.软件的开发环境4.性能因素5.软件开发人员的水平1.项目的应用领域——关键因素各种语言都有自己的适用领域2.算法和计算复杂性

FORTRAN及现代语言都支持较复杂计算和算法。要根据各个语言的特点,选取能够适应软件项目算法和计算复杂性的语言。3.软件的开发环境良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。可视化的软件集成开发环境,提供了强有力的调试工具,可以快速生成高质量的软件,降低软件开发和维护的成本。软件可移植性要求。如果目标系统将在几台不同的计算机上运行,那么应选用可移植性好的语言。4.性能因素有些实时应用要求具有快速的响应速度,此时可选用汇编语言或Ada语言。有时为提高效率,一部分程序用汇编语言书写,其余大部分仍用高级语言来书写。5.软件开发人员的水平新的更强有力的语言,虽然对于应用有很强的吸引力,但是因为已有的语言已经积累了大量的久经使用的程序,具有完整的资料、支撑软件和软件开发工具,程序设计人员比较熟悉,而且有过类似项目的开发经验和成功的先例。由于心理因素,人们往往宁愿选用原有的语种,所以应彻底地分析、评价,介绍新的语言,以便从原有语言过渡到新的语言。如果条件允许,应尽量选用程序员所熟悉的语言。7.2SP方法与编程结构化程序的三个要点:自顶向下和逐步细化顺序、选择、循环等基本结构对三种基本结构可以组合嵌套结构化程序的特点单入口,单出口不用GOTO语句层次分明,易于理解;易于验证、易于测试、易于维护结构化程序设计的主要原则使用语言中的顺序、选择、循环等有限的基本控制结构表示程序逻辑。选用的控制结构只准许有一个入口和一个出口。程序语句组成容易识别的块,每块只有一个入口和一个出口。复杂结构应该用基本控制结构进行组合嵌套来实现。例1打印A,B,C三数中最小者的程序if(A

<B)and(A<C)thenwrite(A)

elseif(A

B)and(B

<C)then

write(B)

else

write(C)

endifendif7.3程序内部文档程序内部带有的说明性材料就是程序的内部文档,它是直接写在代码中的描述性材料。内部文档可用注释语句书写。夹在程序中的注释是程序员与日后的程序读者之间通信的重要手段。注释是不可执行的。一些正规的程序文本中,注释行的数量占到整个源程序的1/3到1/2,甚至更多。注释分为序言性注释和描述性注释。序言性注释序言性注释通常放在每个程序模块的开头部分,它应当给出程序模块的整体说明,对于理解程序模块具有引导作用。描述:

①程序标题:有关该模块的功能和目的说明;②接口说明:包括调用形式,参数描述,子程序清单;③有关数据描述(重要的变量及其用途,约束或限制条件,以及其他有关信息);④模块位置(在哪一个源文件中,或隶属于哪一个软件包);⑤开发简历:模块设计者,复审者,复审日期,修改日期及有关说明等。描述性注释描述性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样。描述:

①用于描述一段程序,而不是每一个语句;②用缩进或空行或其它颜色,使程序与注释容易区别;③注释要正确。7.4程序设计风格程序设计风格是指书写源程序的习惯、程序代码的逻辑结构与习惯的编程技术。程序设计风格在很大程度上影响着程序的可读性、可测试性和可维护性。7.4.1编码原则要写清楚使用括号以避免二义性使用缩排格式显示程序的逻辑结构采用3种基本控制结构模块化,使用子程序使用有意义的变量名所有的变量在使用前应初始化7.4.2编码风格1、符号名的选择符号名即标识符,包括模块名、变量名、常量名、标号名、子程序名、数据区名以及缓冲区名等。这些名字应能反映它所代表的实际东西,应有一定实际意义。显示声明一切变量。通常在一个程序中,一个变量只应用于一种用途,即一个变量不能身兼几种含义。名字不是越长越好,应当选择精炼的意义明确的名字。必要时可使用缩写名字,但这时要注意缩写规则要一致,并且要给每一个名字加注释。2、程序的视觉组织恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。例如,将表达式

(A<-17)ANDNOT(B<=49)ORC

写成

(A<-17)ANDNOT(B<=49)ORC自然的程序段之间可用空行隔开;2、程序的视觉组织移行也叫做向右缩格。它是指程序中的各行不必都在左端对齐,都从第一格起排列。对于选择语句和循环语句,把其中的程序段语句向右做阶梯式移行。使程序的逻辑结构更加清晰。阶梯式移行示例IF(…)THENIF(…)THEN

……

ELSE

……

ENDIF

……ELSE

…ENDIF3、表达式的书写(1)尽量少用中间变量(2)注意添加括号澄清计算意图(3)注意浮点运算的误差(4)注意整数运算的特点4、数据说明

数据说明的次序应当规范化。例如:常量说明→简单变量类型说明→数组说明→公共数据块说明→所有的文件说明。例如:整型量说明→实型量说明→字符量说明→逻辑量说明。当多个变量名用一个语句说明时,应当对这些变量按字母的顺序排列。如果设计了一个复杂数据结构,应使用注释说明在程序实现时这个数据结构的特点。5、语句构造在设计阶段确定了软件的逻辑结构,但构造单个语句则是编码阶段的任务。语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。语句构造的规则①在一行内只写一条语句,并且采取适当的移行格式,使程序的逻辑和功能变得更加明确。FORI:=1TON-1DOBEGINT:=I;FORJ:=I+1TONDOIFA[J]<A[T]THENT:=J;IFT≠ITHENBEGINWORK:=A[T];A[T]:=A[I];A[I]:=WORK;ENDEND;数组的排序示例FORI:=1TON-1DO//改进布局

BEGIN

T:=I;

FORJ:=I+1TONDO

IFA[J]<A[T]THENT:=J;

IFT≠ITHEN

BEGIN

WORK:=A[T];

A[T]:=A[I];

A[I]:=WORK;

END

END;语句构造的规则②尽量避免复杂的条件测试。③避免大量使用循环嵌套和条件嵌套。④利用括号使逻辑表达式或算术表达式的运算次序清晰直观。6、输入/输出输入和输出信息是与用户的使用直接相关的。输入和输出的方式和格式应当尽可能方便用户的使用。一定要避免因设计不当给用户带来的麻烦。因此,在软件需求分析阶段和设计阶段,就应基本确定输入和输出的风格。系统能否被用户接受,有时就取决于输入和输出的风格。输入/输出风格还受到许多其他因素的影响,如输入/输出设备、用户的熟练程度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论