第02章面向对象的Pascal语言.ppt
《第02章面向对象的Pascal语言.ppt》由会员分享,可在线阅读,更多相关《第02章面向对象的Pascal语言.ppt(123页珍藏版)》请在三一文库上搜索。
1、第2章 面向对象的Pascal语言,Delphi实用教程,第2章 面向对象的Pascal语言,第2章 面向对象的Pascal语言,2.1 Object Pascal概述,2.1.1 标识符 标识符(Identifiers)是以字母或下划线开头、后跟字母、数字或下划线所组成的串,其作用是标识常量、变量、类型、属性、对象、过程、函数、程序、单元、库和组件库等。Object Pascal标识符对字母的大小写是不敏感的,有效长度为255个字符。 2.1.2 保留字 Object Pascal的保留字: AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,
2、FILE,FOR,FUNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH,EXPORTS,SHR,STRING,ASM,OBJECT,UNIT,CONSTRUCTOR,IMPLEMENTATION,DESTRUCTOR,USES,INHERITED,INLINE,INTERFACE,LIBRARY,XOR,SHL,第2章 面向对象的Pascal语言,2.1.3 注释,(1) 大括号注释:“”与“”的成对使用表示它
3、们之间的内容为注释部分 (2) 带星号的小括号注释:“( *”与“* )”的成对使用表示它们之间的内容为注释部分。 (3) 双斜杠注释“/”:表示所在行的该符号之后的内容为注释。 例如: begin 下面的这条语句是为组件Label1设置Caption属性值 /注释 Label1.caption:=请输入文件名: end .,第2章 面向对象的Pascal语言,2.1.4 常量和变量,1. 常量 一般常量 如123,-10,-10.56,”abc”,TRUE等都是一般常量。 符号常量 用const关键字来声明常量。 语法: const 常量名=表达式; 如const pi=3.14; 说明:
4、(1) 常量在说明时就被赋予了一个值,在程序执行过程中是不 可改变。 (2) 等号的右边只能出现一般常量、已声明的常量或者常量 表达式。,第2章 面向对象的Pascal语言,2.1.4 常量和变量,2. 变量 变量是程序代码中代表一个内存地址的标识符,而此地址中的内容在程序代码执行时可以被改变。在使用变量前必须对它进行说明,并说明它的类型。 语法: var 变量名表:类型名; 说明: (1)类型名是Object Pascal中任何有效的数据类型。 (2)变量名表中的变量与变量之间用逗号分隔开,变量与类 型名之间用冒号分隔。例如: var I,J:Integer; / 定义两个整型变量I和J (
5、3)当有几个连续的变量声明语句时,可以不必在每个声明语 句前都用保留字var,只需在最开始处使用var,例如: var x,y: real; / 定义两个实型变量x和y k,j: integer; / 定义两个整型变量k和j flag: Boolean; / 定义一个逻辑型变量,第2章 面向对象的Pascal语言,2.2 数据类型,Object Pascal是一种强类型语言,其变量在使用之前都要声明其数据类型。数据类型决定了它能够存储数据的形式、数据的范围以及它能够进行的运算。 Object Pascal的数据类型分为简单数据类型、字符串类型、构造类型、指针类型、过程类型和可变数据类型等。,第
6、2章 面向对象的Pascal语言,2.2.1 简单数据类型,有序数据类型(ordinal) 1)整数类型 整数类型是由正号或负号、数字组成的数据,数据中不包含小数。,整数类型表,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,2)字符类型 字符类型只存储一个字符,利用关键字Char来表示。除了Char数据类型外,Dephi 7还提供了Char的扩展类型,它们是AnsiChar和WideChar两种类型。,字符数据类型表,第2章 面向对象的Pascal语言,2.2.1 简单数据类型, 有序数据类型(ordinal) 3)布尔类型 布尔类型(Boolean)是只能表示真或假的一种数据
7、类型,包括以下四种类别:Boolean、ByteBool、WordBool和LongBool。 布尔类型的值是两个预定义的常量标识符:False和True,分别代表真和假。 4)枚举类型 枚举类型(enumerated)是用户自定义的一种简单数据类型,是由一组有序的标识符组成的,最多可有255个枚举项。 枚举类型定义中的每个值都对应一个整数值的序号 ,第一个为0从左向右依次增1。,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,枚举类型定义和枚举类型变量声明的语法结构: type 枚举类型标识符 = (枚举常量标识符列表); var 枚举类型变量表:枚举类型标识符; 例如: ty
8、pe day=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday); 以上是枚举类型定义 var today: day; / 枚举变量声明 上面例子中的枚举常量Sunday、Monday、Tuesday、Wednesday、 Thursday、Friday和Saturday对应的整数值分别为0、1、2、3、4、5和6。 有时也可以把类型定义和变量声明合二为一,例如: var color1,color2: (Red,Blue,Green,Black),第2章 面向对象的Pascal语言,2.2.1 简单数据类型,枚举类型的三点说明:
9、 枚举元素对应的值并不是一成不变的,若必要,可在定义类型时改变元素对应的值。例: type day = (Sunday=7,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday); 此时,Monday对应的值是1,Tuesday对应的值是2,Sunday对应的值是7。 同一个枚举项不能出现在多个枚举类型中。例: type Month1=(Jan,Feb,Mar,Api,May,Jun); Month2=(Jun,Jul,Feb); 这两个类型Month1,Month2中都包含Jun这个元素,这是不允许的。这两个类型Month1,Month2中都包含
10、Jun这个元素,这是不允许的。 枚举类型是有序数据类型,对其运算可以使用Ord、Pred、Succ及关系运算。,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,5)子界类型 子界类型(subrange)为某个有序类型的子集,其内部的元素 可以是整型、布尔型、字符型或者枚举型。它不像枚举类型 那样必须把每个元素都一一列举出来,而是只要确定所要列 举元素的一个上界和一个下界即可。因此,子界类型必须是 同一种有序类型,而不能是其它无序类型。 语法(子界类型定义): type 子界类型标识符=子界常量下限子界常量上限;例如:下面的声明语句定义了一个枚举类型day和两个子界类型day1、n
11、umber。 type day=(Sun,Mon,Tue,Wed,Thu,Fri,Sat); day1=SunWed number=0100;,第2章 面向对象的Pascal语言,2.2 数据类型,使用子界类型,需注意以下几点: (1) 子界类型的上界和下界必须是同一类型,并且是有序类型,如整型、 布尔型、字符型或枚举型等,不能是实数类型或其它无序类型。 (2) 子界类型的上界和下界不仅可以是常数,也可以是能够计算出具体值 的常数表达式。例如: const n=10; m=20; type number=3*n 5*(m+n) (3) 子界类型的下限的序数值不能超过其上限值。,第2章 面向对象
12、的Pascal语言,2.2.1 简单数据类型, 实数类型 实数类型是实数的子集,它是带有小数部分的数值,实数类型表,第2章 面向对象的Pascal语言,2.2.1 简单数据类型, 日期和时间 Delphi定义了一种特殊的TdateTime数据类型,它属于浮点类型。 TdateTime不是系统预先定义的类型,可在系统单元中定义后使 用,定义形式如下: type TDateTime=type Double;,第2章 面向对象的Pascal语言,2.2.2 字符串类型,字符串类型包括ShortString、AnsiString和WideString三种类型 说明一个字符串型的变量,应指明该字符串的大
13、小。例如: type String1: string20; var MyString: String1;,字符串类型,第2章 面向对象的Pascal语言,2.2.3 可变类型,数据类型在运行期间可以进行改变 比固定类型的数据占用更多的空间和更多的操作时间。 不能包含记录型、集合类型、静态数组、文件类型、类、指针类型以及长整型等数据类型。 语法(可变类型变量声明): var 变量名表:Variant;,第2章 面向对象的Pascal语言,2.2.4 类型相容和强制转换,类型相容 (1)两种类型的数据一致。 (2)两种类型的数据都是实型。 (3)两种类型的数据都是整型。 (4)一种数据的类型是另一
14、种数据类型的子界。 (5)两种数据类型都是另外一种宿主类型的子界。 (6)两种数据类型都是另外一种相容基类型的集合类型。 (7)两种数据类型都是紧凑字符串类型,并且具有相同的元素个数。 (8)一种数据类型是字符串类型,另一种数据类型是字符串类型、 紧凑字符串类型或字符类型,或者一种数据类型是Char类型, 另一种数据类型是形式为array0n of Char的字符数组。,第2章 面向对象的Pascal语言,2.2.4 类型相容和强制转换,(9) 一种类型是Pointer类型,另一种数据类型是指向任意一种 数据类型的指针类型,或者两种数据类型都是基类型相同 的指针类型。 (10)两种数据类型都是
15、类数据类型或者类引用类型,并且一种 数据类型继承了另外一种类型。 (11)两种数据类型都是结果类型相同、参数个数相同、参数类 型一致的过程类型。 (12)一种数据类型是可变数据类型,另外一种数据类型是整型、 实型、字符串类型或布尔类型。 2. 变量强制类型转换 强制类型转换就是将一种类型的变量当作另一种类型。 语法(强制类型转换): 类型标识符(变量名); 例如,有以下程序段: var str1:char; str2:byte; begin str1:=a; str2:=str1; /此语句可改为:str2:=byte(str1); end,第2章 面向对象的Pascal语言,2.3 运算符
16、2.3.1 赋值运算符,语法(赋值语句): 变量:= 表达式; 其中,“:=”称为赋值号。赋值语句的功能是先计算赋值运 算符右边表达式的值,然后再把结果赋给左边的变量。 例如: x:=10; y:=2*x+1; str1:=a;,第2章 面向对象的Pascal语言,2.3.1 赋值运算符,赋值相容原则: (1)T1和T2是相同的数据类型,且都不是文件类型或包含文件类型的 自定义类型。 (2)T1和T2是相容的有序类型,类型T2的值在T1的取值范围内。 (3)T1和T2都是实型,类型T2的值在T1的取值范围内。 (4)T1是实型,T2是整型。 (5)T1和T2都是字符串类型,或者T1是字符串类型
17、,T2是字符类型。 (6)T1和T2是相容的集合类型,并且T2是T1的子集。 (7)T1和T2是相容的指针类型。 (8)T1是类类型,T2是T1的继承类类型,或者T1是类引用类型,T2是 T1的继承类引用类型。 (9)T1是Char类型,T2是字符串常量或是形为array0n of char的 字符数组。 (10)T1和T2是相容的过程类型。 (11)T1是Variant类型,T2是Integer、Real、String或Boolean类型; 或者T1是Integer、Real、String或Boolean类型,T2是Variant类型。,第2章 面向对象的Pascal语言,2.3.2 算术运
18、算符,在进行“+”、“-”、“*”运算中,只有两个运算分量都为integer类型时,结果才为integer类型,否则为real 。,第2章 面向对象的Pascal语言,2.3.2 算术运算符,【例】已知圆半径r计算圆的周长和面积。使用公式:C=2r和 s=r2,式中C表示圆的周长,s表示圆的面积,r表示圆的半径。 功能要求:输入半径,单击命令按钮“计算”(butcal),计算圆的周长和面积。 界面设计:由四个组件组成,分别是两个label组件,一个Edit组件和一个Button组件。界面如图,程序界面(设计时),第2章 面向对象的Pascal语言,2.3.2 算术运算符,程序代码如下: pro
19、cedure TForm1.ButcalClick(Sender: Object); / 计算圆的周长和面积 var r,c,s:real; const pi=3.14159; / 常量定义,代表圆周率 begin r:=strtofloat(editradius.text); / 将文本框上的数字字符转换为数值 c:=2*pi*r; s:=pi*sqr(r); / sqr是求平方的函数 labresult.Caption :=该圆的周长是: +floattostr(c)+chr(13)+面积是 +floattostr(s); end;,运行结果,第2章 面向对象的Pascal语言,2.3.3
20、 关系运算符,关系运算符可以对两个普通数据类型、类、对象、接口类型或字符串类型的数据进行比较,结果数据类型为布尔类型。,关系运算符表,第2章 面向对象的Pascal语言,2.3.4 逻辑运算符,逻辑运算符对逻辑类型的操作数进行运算,数据结果为逻辑型。,逻辑运算符表,逻辑运算的真值表,第2章 面向对象的Pascal语言,2.3.5 集合运算符,集合运算符主要对两个集合进行操作,判断两个集合之间的关系。,集合运算规则表,第2章 面向对象的Pascal语言,2.3.6 位运算符,位运算符能操作一个变量的各二进制位。位运算符能把一个数左移或右移,或对两个数按位执行与、取反、或和异或等运算。,位运算符,
21、位运算示例,第2章 面向对象的Pascal语言,2.3.7 -8其他运算符、运算符的优先级,2.3.7 其他运算符 字符串连接运算符+(或&),作用是将两个字符串联接在一起,有效字符 为255 。 用于指针类型数据运算的运算符+、-、=和等。 2.3.8 运算符的优先级 表达式在求值时,遵循以下原则: l 两个操作符之间的操作数总是先参加高优先级的运算。 l 如优先级相等,操作数按从左到右的顺序参加运算。 l 在有括号的情况下应先计算括号内的运算。,Object Pascal各运算符的优先级,第2章 面向对象的Pascal语言,2.4.1 声明语句,1.标号声明 语法(标号声明): label
22、 label1,label2,label3,; 2.常量声明 语法(常量声明): const 常量名 = 表达式; =右边可以使用预定义函数 。 3.类型声明 语法(类型声明): type 类型名 = 类型定义; 4.变量声明 语法(变量声明): var 变量名表:类型;,声明语句应该按照标号、常量、类型、变量、过程和函数的顺序来声明。,第2章 面向对象的Pascal语言,2.4.2-3 简单语句、条件控制语句,2.4.2 简单语句 1. 赋值语句 2. goto 语句 语法:goto 标号; 2.4.3 条件控制语句 1. if 语句 (1)ifthenelse语句 语法: if (条件表达
23、式) then 语句1 else 语句2 ,第2章 面向对象的Pascal语言,2.4.3 条件控制语句,(2)if 语句的嵌套 if (条件表达式) then begin 语句1 if (条件表达式) then 语句2 else 语句3 end else 语句4,else总是和同一层中前面最靠近它的、还没有else语句与之匹配的then语句相匹配,即按就近匹配原则。,第2章 面向对象的Pascal语言,2.4.3 条件控制语句,(2)if 语句的嵌套 if (条件表达式1) then 语句1 else if (条件表达式2) then 语句2 . else 语句n,用于处理程序中两路以上分支
24、的情况。,第2章 面向对象的Pascal语言,2.4.3 条件控制语句,【例】计算下列函数: 函数分成三种情况,即x0时执行不 同的语句块。 方法1: 用if嵌套结构来设计,将x0的判断嵌套在x0的分支结构中: y:=-1; if x0 then begin if x0 then y:=1 ; end else y:=0;,第2章 面向对象的Pascal语言,2.4.3 条件控制语句,方法2: 用if 嵌套结构来设计,将x0和x=0的判断嵌套在x=0的分 支结构中: if x=0 then begin if x0 then y:=1 else y:=0; end else y:=-1 ;,方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 面向 对象 Pascal 语言
链接地址:https://www.31doc.com/p-3416801.html