东北大学数据库开发技术课件第5章ObjectPascal程序设计语言.ppt
《东北大学数据库开发技术课件第5章ObjectPascal程序设计语言.ppt》由会员分享,可在线阅读,更多相关《东北大学数据库开发技术课件第5章ObjectPascal程序设计语言.ppt(97页珍藏版)》请在三一文库上搜索。
1、第5章 Object Pascal程序设计语言,5.1 常量与变量 5.2 数据类型 5.3 运算符 5.4 语句 5.5 过程与函数 5.6 程序结构 5.7 面向对象程序设计理论,5.1 常量与变量,5.1.1 声明变量 5.1.2 声明常量,返回本章首页,5.1.1 声明变量,变量是程序代码中代表一个内存地址的标识符,而此地址的内存内容在程序代码执行时可以被改变。在所有变量说明以前加上保留字Var。变量说明左边是变量的名称,右边则是该变量的类型,中间用冒号隔开。 另外,在声明变量时注意:一是变量名要符合Pascal语言关于标识符的规则;二是必须指定变量的类型,三是尽量使定义的变量或标识符
2、有意义,以便于记忆。,返回本节,5.1.2 声明常量,1纯常量:是一种预先定义的标识符,其值在定义后永远不会改变。 5.类型常量:用于保存数组、记录、过程以及指针等类型的值。类型常量不能出现在常量表达式中。声明类型常量的语法规则为: Const Identifer:Type=Value,返回本节,5.2 数据类型,5.2.1 简单类型 5.2.2 字符串类型 5.2.3 结构数据类型 5.2.4 指针类型,返回本章首页,5.2.1 简单类型,1有序类型 (1)整数类型(2)字符类型(3)布尔类型 (4)枚举型(5)子界类型 5.实数类型 包括Real48、Single、Double、Exten
3、ded、Comp和Currency。通常使用的Real和Double类型是等价的。,返回本节,5.2.2 字符串类型,Delphi主要支持两种类型的字符串:ShortString和AnsiString。 ShortString数据类型主要是为了能和Delphi1.0和Borland Pascal的早期版本兼容。 String既可以是ShorString类型也可以是AnsiString类型,缺省是AnsiString类型。,返回本节,5.2.3 结构数据类型,1、集合类型 2、数组类型 3、记录类型 4、文件类型 5、类类型 6、类引用类型 7、接口类型等,返回本节,5.2.4 指针类型,在De
4、lphi中创建一个数据结构时,首先要分配内存空间。分配的内存空间用于存储数据结构中的数据。使用指针可以使程序不必每次需要时都去分配,只要申请一次,其他过程或函数使用同一块内存空间时,只需使用该内存空间的地址即可。在运算上,指针变量与一般变量无区别,如p:=q;。当要引用指针所指向的变量时,必须在指针后使用“”。,返回本节,5.3 运算符,5.3.1 算术运算符 5.3.2 逻辑运算符 5.3.3 关系运算符 5.3.4 运算符的优先级,返回本章首页,5.3.1 算术运算符,算术运算符用于完成二元或一元算术运算。 (见表5-1和表5-2 ),表5-1 二元运算符,表5-2 一元运算符,返回本节,
5、5.3.2 逻辑运算符,逻辑运算符实际上可分为两类:逻辑运算符和布尔运算符。(见表5-3 和表5-4),表5-3 逻辑运算符,表5-4 布尔运算符,返回本节,5.3.3 关系运算符,表5-5 关系运算符(1),表5-5 关系运算符(2),返回本节,5.3.4 运算符的优先级,表5-6 运算符的优先级,返回本节,5.4 语句,5.4.1 赋值语句 5.4.2 块语句 5.4.3 控制语句,返回本章首页,5.4.1 赋值语句,下面的例子就是一个最简单的赋值语句: X:=Y+Z; 在赋值语句的左边是此赋值的数据变量,右边是一个数值或者表达式,中间用:=连接。,返回本节,5.4.2 块语句,块语句是一
6、种把若干简单语句组合成复杂语句的方式。经常使用的块语句是BeginEnd语句,下面的例子就是一个简单的块语句: Begin A:=5; C:=A*8/2; End;,返回本节,5.4.3 控制语句,Object Pascal使用控制语句来控制程序的执行顺序。7个是分支语句,3个是循环语句: (1)分支语句 If语句、 Case语句、GOTO语句、 Break语句、 Continue语句、 Exit语句、 Halt语句。 (2)循环语句 Repeat语句、 While语句、For语句,返回本节,条件选择结构(一) if J 0 then begin Result := I/J; Count :=
7、 Count + 1; end else if Count = Last then Done := True else Exit;,分支语句,条件选择结构(二),case selectorExpression of caseList1: statement1; . caseListn: statementn; else statements; end;,分支语句,两种选择结构比较,case I of 15: Caption := Low; 69: Caption := High; 0, 1099: Caption := Out of range; else Caption := ; end;,
8、if I in 15 then Caption := Low else if I in 610 then Caption := High else if (I = 0) or (I in 1099) then Caption := Out of range else Caption := ;,分支语句,循环结构(一),while I 0 do begin if Odd(I) then Z := Z * X; I := I div 2; X := Sqr(X); end;,循环语句,循环结构(二),for I := 1 to 10 do Begin AI:=I; end;,for I := 10
9、 downto 1 do Begin AI:=I; end;,循环语句,循环结构(三),repeat K := I mod J; I := J; J := K; until J = 0;,循环语句,循环结构控制语句,Break Continue,循环语句,5.5 过程与函数,5.5.1 过程与函数的定义和调用 5.5.2 过程与函数的参数,返回本章首页,5.5.1 过程与函数的定义和调用,1过程与函数的定义 每一个过程或函数都从表头开始,表头包含其识别名称及外部传入的参数,过程开始处为保留字Procedure,如: Procedure Name(Const Peter: Integer); F
10、unction Name(Const Peter: Integer):integer; 函数与过程不同的地方是,函数有返回值,这样在函数的首部就多了一个返回结果类型。,5.过程与函数的调用 调用过程的语句只是一个独立的语句,而调用函数的语句不是一个独立的语句,它必须要返回一个值,且返回数值数据类型必须与定义相同。 例如: MinNumber:=Min(People); 另外也可以将函数调用直接作为操作数。例如: X:=Min(People)+50;,5.指示字 (1)External:表示过程或函数是外部的,通常用于从动态连接库中引用过程或函数。 (2)Assembler:表示过程或函数是使用
11、嵌入式汇编语言编写的。 (3)Forward:表示过程或函数是向前查找的。该过程或函数的定义必须在后面的某个地方定义。,4与调用约定 在声明函数或过程时,可以在附属块中指定函数过程或函数的参数传递方式。主要有Register,Pascal,Cdecl,Stdcall,Safecall等五种传递方式。缺省的调用方式是Register。,返回本节,5.5.2 过程与函数的参数,经常用到的参数主要有以下几种: 1传值参数 传值参数会把外部传入的值作一份拷贝,保存在此参数内,因此在过程内对此参数所作的任何改变,都不会影响外部传入的值。参数前不加任何的保留字,即为传值参数。,5.引用参数 通过引用来传递
12、参数时,允许过程或函数改变参数的值。通过引用传递的参数由关键字Var表示。,5.常量参数 在过程或函数的运行当中,如果形参的值不变,就可以使用常量来传递参数。与引用传递的参数不同的是,将参数前加上的保留字Var改为Const。,返回本节,结束放映,返回本章首页,5.6 程序结构,5.6.1 程序模块结构 5.6.2 库单元(unit)结构,procedure TForm.Button1Click(Sender Tobject); var 程序模块的说明部分 Name : string; begin 程序模块的语句部分 Name := Edit1.Text; Edit5.Text := Welc
13、ome to Delphi+Name; end; 程序模块结束,5.6.1 程序模块结构,5.6.2 库单元(unit)结构,unit interface uses 公有说明 implementation uses 私有说明 过程和函数的执行部分 initialization 选择性的 选择性的初始化程序 end.,5.7 面向对象程序设计理论,5.7.1 面向对象的程序设计方法基础 5.7.2 对象和类,5.7.1 面向对象的程序设计方法基础,面向对象的程序设计方法(Object Oriented Programming)简称为OOP,它的基本元素是类(Class)和对象(Object)。
14、使用对象模拟自然的或抽象的实体,对用户掩盖了实现的复杂性(封装),并且能使程序员付出尽可能小的代价,获得尽可能大收益(继承),提高软件的开发效率。,5.7.2 对象和类,类是对事物的特性及操作的抽象描述,对象是类的实体。 从C语言的角度来看,类是结构的自然演化,类就是包含数据声明和函数声明的结构。 类既包含了数据又包含了代码,对类中成员的存取是受控制的,这一控制不仅针对数据,也针对代码,类的这个特性被称为封装。,封装的说明,计算过程的演变: 手工计算 全部手工和脑力完成 计算器(面向过程) 部分借助非人力因素,但仍需对过程进行控制和管理 计算机(面向对象) 完全借助非人力因素,运算一旦开始,可
15、以无需人工的介入,类的说明,The person watching TV does not need to know the TV sets structure and how it works inside.,But he needs to control the TV set. TV needs to provide an interface.,Internal State,对象的例子: TV,开请求,变更频道,调节声音,Turn On,Turn Off,Change Channel,Adjust Volume,Others.,被封装的行为和状态,关请求,类的说明,特性: 脚个数 物理位置
16、 长度 宽度 高度 形状,操作: 搬动 改造,“桌子”类,定义类(最简单实例),关键字class引导类声明,Type是类型声明符,类体,类定义结束,Type Tdate=class Month,Day,Year:Integer Procedure SetValue(m,d,y:Integer); Function LeapYear: Boolean; End;,定义类(最简单实例),类函数定义前缀,Procedure Tdate.SetValue(m,d,y:Integer); Begin Month:=m; Day:=d; Year:=y; End;,Function Tdate.LeapY
17、ear:Boolean; Begin if (Year mod d0) then LeapYear:=false else if (Year mod 1000) then Result:=True else if (Year mod 4000) then LeapYear:=false else Result:=True; End;,使用类(最简单实例),Var Aday1,Aday2:Tdate; Begin /Create Aday1:=Tdate.Create; Aday2:=Tdate.Create; /use Aday1.SetValue(1,1,2000); if Aday1.Le
18、apyear then Showmessage(Leap year: +IntToStr(Aday1.Year); /destroy Aday1.Free; End;,类是一个模板,就象数据类型一样,使用的时候必须定义类变量。定义类变量称为类的实例化,类的实例化变量就是对象。,对象是具有某一个类所描述的共性的,但又有各自特性的个体。,类的变量声明,只保存对象的引用即指针,对象实际的内存需要类中的创建函数Create创建。,类存取控制,类的成员的使用者有三类: 1. 类本身 5. 一般用户 5. 派生类 每种使用者权限不同,对应与 不同的使用权限,有不同的关 键字说明。,类私有成员(privat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东北大学 数据库 开发 技术 课件 ObjectPascal 程序设计语言
链接地址:https://www.31doc.com/p-3421550.html