网站大量收购独家精品文档,联系QQ:2885784924

第二章程序的设计语言.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 程序设计语言; 第二章 程序设计语言;2.1 高级程序设计语言概述;用容易记忆的英文单词代替约定的指令,易读写程序, 导致了汇编语言的诞生;DATA SEGMENT XX DB X YY DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BLGR MOV AL,0FFH MOV YY,AL HLT BLGR: JE EQUT MOV AL,01H MOV YY,AL HLT EQUT: MOVE YY,AL HLT CODE ENDS ENDSTART;2.2 高级程序设计语言实现计算的方式;第三步作语义分析(Semantic Analysis)对各句子的语法树作检查:运算符两边类型是否相兼容;该作哪些类型转换;控制转移到不该去的地方;是否有重名等等。若有错转出错处理,否则生成执行代码 第四步是中间代码生成。中间代码是向目标码过渡的一种编码,形式尽可能和机器的汇编语言相???,但不涉及具体机器的操作码和地址码。好处是可在中间码上作优化 第五步是优化。对中间码程序作局部和全局优化,使运行更快,占用空间最小 第六步是代码生成 。 生成目标机器的目标码(或汇编)程序 ;;;2.2.2 高级语言程序的解释执行;;2.3 高级程序设计语言基本特征;2.3.2 程序的控制结构-条件语句;2.迭代语句;迭代结构的一般式有几种:;(1)结构化程序控制;;(2)其它控制结构 ;其它控制; 2.3.2 数据类型;强类型语言(所谓强类型,就是编译时所有变量类型均确定,类型转换必须显式地给出) 无类型语言则无需变量的类型声明,给它什么值它就是什么类型。 2. 数组 Dim Names(15) As String 声明16个元素数组,每个元素都是字符串类型 Dim Matrix(9,9) As Double 是10*10=100元素的方阵,元素为双精度浮点数 不同类型的一维数组能否组成一多维数组?一般语言不可以,VB利用Variant可以把它们联接起来并把它叫做数组的数组;3. 记录;;4.指针类型;提供指针类型的语言一般都提供两种与指针有关的操作:取地址操作和取值操作 取值操作取的是指针所指的变量的值,*P=123 取地址操作取的是变量的内存地址,P=A 若给指针赋了初值,并在程序的运行期间不再改变,则称这种指针为常量指针 指针是一种简洁、灵活的语言对象。审慎的使用可以显著提高编程的灵活性和效率,但不负责任的使用将使你掉进错误的深渊。 ; 2.3.4 过程;;在过程中声明的变量是局部变量,只在过程中有效 2.过程调用 函数过程用函数名引用,需有与形参表变元的个数、类型、次序一样的实参表,子程序过程的引用是过程调用,也要有实参表 形参和实参匹配后, 主程序中声明的变量在过程中自动可用。但反过来不行;2.3.5 过程的数据传递-无参过程;;2.传递变元 从主程序向过程传递数据可以有两种方式:传值和引用 ? 引用;2.3.6 变量的生命期和Static变量;2.3.7 输入/输出;2.4 面向对象程序语言的基本特征;“分而治之”的思想使我们想到进一步封装,即把相关的数据与过程装在一起,尽可能让它独立。 设想有一程序有100个子程序,经过分析,这100个子程序并不是每个子程序都要用到所有的数据,把数据相关和程序相关(有嵌套调用)的分成组。;数据叫做对象的属性(Attribate), 操作则改称方法(Method), 即改变属性的方法。对象间相互只有通信,“调用”方法叫发消息(Message) ;2.4.2 类与对象;堆栈类;有了这个类就可以对实例对象作计算了,下面给出该类的使用例子: main() { char c char_stack stk1(100) //声明一实例对象stk1 stk1.push(‘%’) //压入’%’到stk1中 stk1.push (‘#’) c=stk1.pop() //从stk1中弹出一字符 if (stk1.top()==‘#’){...} else … } ;2.4.3 类定义;面向对象的封装性可以支持各独立对象的协作计算,不需要主控对象。 在其它类

文档评论(0)

134****9146 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档