第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,FILE
2、,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;说明:(1)常量在说明时就被赋予了一个值,在程序执行过
4、程中是不可改变。(2)等号的右边只能出现一般常量、已声明的常量或者常量表达式。,第2章 面向对象的Pascal语言,2.1.4 常量和变量,2.变量 变量是程序代码中代表一个内存地址的标识符,而此地址中的内容在程序代码执行时可以被改变。在使用变量前必须对它进行说明,并说明它的类型。语法:var 变量名表:类型名;说明:(1)类型名是Object Pascal中任何有效的数据类型。(2)变量名表中的变量与变量之间用逗号分隔开,变量与类 型名之间用冒号分隔。例如:var I,J:Integer;/定义两个整型变量I和J(3)当有几个连续的变量声明语句时,可以不必在每个声明语 句前都用保留字var,
5、只需在最开始处使用var,例如:var x,y:real;/定义两个实型变量x和y k,j:integer;/定义两个整型变量k和j flag:Boolean;/定义一个逻辑型变量,第2章 面向对象的Pascal语言,2.2 数据类型,Object Pascal是一种强类型语言,其变量在使用之前都要声明其数据类型。数据类型决定了它能够存储数据的形式、数据的范围以及它能够进行的运算。Object Pascal的数据类型分为简单数据类型、字符串类型、构造类型、指针类型、过程类型和可变数据类型等。,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,有序数据类型(ordinal)1)整数类
6、型 整数类型是由正号或负号、数字组成的数据,数据中不包含小数。,整数类型表,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,2)字符类型 字符类型只存储一个字符,利用关键字Char来表示。除了Char数据类型外,Dephi 7还提供了Char的扩展类型,它们是AnsiChar和WideChar两种类型。,字符数据类型表,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,有序数据类型(ordinal)3)布尔类型布尔类型(Boolean)是只能表示真或假的一种数据类型,包括以下四种类别:Boolean、ByteBool、WordBool和LongBool。布尔类型的值是
7、两个预定义的常量标识符:False和True,分别代表真和假。4)枚举类型枚举类型(enumerated)是用户自定义的一种简单数据类型,是由一组有序的标识符组成的,最多可有255个枚举项。枚举类型定义中的每个值都对应一个整数值的序号,第一个为0从左向右依次增1。,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,枚举类型定义和枚举类型变量声明的语法结构:type 枚举类型标识符=(枚举常量标识符列表);var 枚举类型变量表:枚举类型标识符;例如:type day=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday)
8、;以上是枚举类型定义 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 简单数据类型,枚举类型的三点说明:枚举元素对应的值并不是一成不变的,若必要,可在定义类型时改变元素对应的值。例:type day=(Sunday=7,Monday,Tuesday,W
9、ednesday,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中都包含Jun这个元素,这是不允许的。枚举类型是有序数据类型,对其运算可以使用Ord、Pred、Succ及关系运算。,第2章 面向对象的Pascal语言,2.2.1 简单数据
10、类型,5)子界类型 子界类型(subrange)为某个有序类型的子集,其内部的元素 可以是整型、布尔型、字符型或者枚举型。它不像枚举类型 那样必须把每个元素都一一列举出来,而是只要确定所要列 举元素的一个上界和一个下界即可。因此,子界类型必须是 同一种有序类型,而不能是其它无序类型。语法(子界类型定义):type 子界类型标识符=子界常量下限.子界常量上限;例如:下面的声明语句定义了一个枚举类型day和两个子界类型day1、number。type day=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);day1=Sun.Wednumber=0.100;,第2章 面向对象的Pasca
11、l语言,2.2 数据类型,使用子界类型,需注意以下几点:(1)子界类型的上界和下界必须是同一类型,并且是有序类型,如整型、布尔型、字符型或枚举型等,不能是实数类型或其它无序类型。(2)子界类型的上界和下界不仅可以是常数,也可以是能够计算出具体值的常数表达式。例如:const n=10;m=20;type number=3*n.5*(m+n)(3)子界类型的下限的序数值不能超过其上限值。,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,实数类型 实数类型是实数的子集,它是带有小数部分的数值,实数类型表,第2章 面向对象的Pascal语言,2.2.1 简单数据类型,日期和时间 Del
12、phi定义了一种特殊的TdateTime数据类型,它属于浮点类型。TdateTime不是系统预先定义的类型,可在系统单元中定义后使用,定义形式如下:type TDateTime=type Double;,第2章 面向对象的Pascal语言,2.2.2 字符串类型,字符串类型包括ShortString、AnsiString和WideString三种类型说明一个字符串型的变量,应指明该字符串的大小。例如:type String1:string20;var MyString:String1;,字符串类型,第2章 面向对象的Pascal语言,2.2.3 可变类型,数据类型在运行期间可以进行改变 比固定
13、类型的数据占用更多的空间和更多的操作时间。不能包含记录型、集合类型、静态数组、文件类型、类、指针类型以及长整型等数据类型。语法(可变类型变量声明):var 变量名表:Variant;,第2章 面向对象的Pascal语言,2.2.4 类型相容和强制转换,类型相容(1)两种类型的数据一致。(2)两种类型的数据都是实型。(3)两种类型的数据都是整型。(4)一种数据的类型是另一种数据类型的子界。(5)两种数据类型都是另外一种宿主类型的子界。(6)两种数据类型都是另外一种相容基类型的集合类型。(7)两种数据类型都是紧凑字符串类型,并且具有相同的元素个数。(8)一种数据类型是字符串类型,另一种数据类型是字
14、符串类型、紧凑字符串类型或字符类型,或者一种数据类型是Char类型,另一种数据类型是形式为array0.n of Char的字符数组。,第2章 面向对象的Pascal语言,2.2.4 类型相容和强制转换,(9)一种类型是Pointer类型,另一种数据类型是指向任意一种 数据类型的指针类型,或者两种数据类型都是基类型相同 的指针类型。(10)两种数据类型都是类数据类型或者类引用类型,并且一种 数据类型继承了另外一种类型。(11)两种数据类型都是结果类型相同、参数个数相同、参数类 型一致的过程类型。(12)一种数据类型是可变数据类型,另外一种数据类型是整型、实型、字符串类型或布尔类型。2.变量强制
15、类型转换 强制类型转换就是将一种类型的变量当作另一种类型。语法(强制类型转换):类型标识符(变量名);例如,有以下程序段:var str1:char;str2:byte;beginstr1:=a;str2:=str1;/此语句可改为:str2:=byte(str1);end,第2章 面向对象的Pascal语言,2.3 运算符 2.3.1 赋值运算符,语法(赋值语句):变量:=表达式;其中,“:=”称为赋值号。赋值语句的功能是先计算赋值运算符右边表达式的值,然后再把结果赋给左边的变量。例如:x:=10;y:=2*x+1;str1:=a;,第2章 面向对象的Pascal语言,2.3.1 赋值运算符
16、,赋值相容原则:(1)T1和T2是相同的数据类型,且都不是文件类型或包含文件类型的 自定义类型。(2)T1和T2是相容的有序类型,类型T2的值在T1的取值范围内。(3)T1和T2都是实型,类型T2的值在T1的取值范围内。(4)T1是实型,T2是整型。(5)T1和T2都是字符串类型,或者T1是字符串类型,T2是字符类型。(6)T1和T2是相容的集合类型,并且T2是T1的子集。(7)T1和T2是相容的指针类型。(8)T1是类类型,T2是T1的继承类类型,或者T1是类引用类型,T2是 T1的继承类引用类型。(9)T1是Char类型,T2是字符串常量或是形为array0.n of char的 字符数组
17、。(10)T1和T2是相容的过程类型。(11)T1是Variant类型,T2是Integer、Real、String或Boolean类型;或者T1是Integer、Real、String或Boolean类型,T2是Variant类型。,第2章 面向对象的Pascal语言,2.3.2 算术运算符,在进行“+”、“-”、“*”运算中,只有两个运算分量都为integer类型时,结果才为integer类型,否则为real。,第2章 面向对象的Pascal语言,2.3.2 算术运算符,【例】已知圆半径r计算圆的周长和面积。使用公式:C=2r和 s=r2,式中C表示圆的周长,s表示圆的面积,r表示圆的半径
18、。功能要求:输入半径,单击命令按钮“计算”(butcal),计算圆的周长和面积。界面设计:由四个组件组成,分别是两个label组件,一个Edit组件和一个Button组件。界面如图,程序界面(设计时),第2章 面向对象的Pascal语言,2.3.2 算术运算符,程序代码如下:procedure TForm1.ButcalClick(Sender:Object);/计算圆的周长和面积var r,c,s:real;const pi=3.14159;/常量定义,代表圆周率beginr:=strtofloat(editradius.text);/将文本框上的数字字符转换为数值 c:=2*pi*r;s:
19、=pi*sqr(r);/sqr是求平方的函数 labresult.Caption:=该圆的周长是:+floattostr(c)+chr(13)+面积是+floattostr(s);end;,运行结果,第2章 面向对象的Pascal语言,2.3.3 关系运算符,关系运算符可以对两个普通数据类型、类、对象、接口类型或字符串类型的数据进行比较,结果数据类型为布尔类型。,关系运算符表,第2章 面向对象的Pascal语言,2.3.4 逻辑运算符,逻辑运算符对逻辑类型的操作数进行运算,数据结果为逻辑型。,逻辑运算符表,逻辑运算的真值表,第2章 面向对象的Pascal语言,2.3.5 集合运算符,集合运算符
20、主要对两个集合进行操作,判断两个集合之间的关系。,集合运算规则表,第2章 面向对象的Pascal语言,2.3.6 位运算符,位运算符能操作一个变量的各二进制位。位运算符能把一个数左移或右移,或对两个数按位执行与、取反、或和异或等运算。,位运算符,位运算示例,第2章 面向对象的Pascal语言,2.3.7-8其他运算符、运算符的优先级,2.3.7 其他运算符字符串连接运算符+(或&),作用是将两个字符串联接在一起,有效字符 为255。用于指针类型数据运算的运算符+、-、=和等。2.3.8 运算符的优先级表达式在求值时,遵循以下原则:l 两个操作符之间的操作数总是先参加高优先级的运算。l 如优先级
21、相等,操作数按从左到右的顺序参加运算。l 在有括号的情况下应先计算括号内的运算。,Object Pascal各运算符的优先级,第2章 面向对象的Pascal语言,2.4.1 声明语句,1.标号声明 语法(标号声明):label label1,label2,label3,;2.常量声明 语法(常量声明):const 常量名=表达式;=右边可以使用预定义函数。3.类型声明语法(类型声明):type 类型名=类型定义;4.变量声明语法(变量声明):var 变量名表:类型;,声明语句应该按照标号、常量、类型、变量、过程和函数的顺序来声明。,第2章 面向对象的Pascal语言,2.4.2-3 简单语句、
22、条件控制语句,2.4.2 简单语句1.赋值语句 2.goto 语句 语法:goto 标号;2.4.3 条件控制语句1.if 语句(1)ifthenelse语句 语法:if(条件表达式)then语句1else语句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
23、)if 语句的嵌套 if(条件表达式1)then 语句1 else if(条件表达式2)then 语句2.else 语句n,用于处理程序中两路以上分支的情况。,第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的分 支结构中
24、:if x=0 then begin if x0 then y:=1 else y:=0;endelse y:=-1;,方法3:用ifthenelse语句 的复合语句来设计:if x0 theny:=1else if x=0 then y:=0else y:=-1;,第2章 面向对象的Pascal语言,2.4.3 条件控制语句,2.Case语句 case 语句对一个结果的多个分支进行判断,可以用来在多个可能的情况中选择一个条件。语法(case 语句):case 表达式 of 值表1:语句1;值表2:语句2;值表n:语句n;else 语句n+1;end;,case开始语句中的表达式的值必须是有序
25、类型,并且各值表中的数据类型必须与表达式值的类型一致,且每个值只能出现一次,不允许重复出现。若值表中有多个值,则各值之间逗号分隔开来。case I of 1.5:Caption:=Low;6.9:Caption:=High;0,10.99:Caption:=Out of range;else Caption:=;end;,第2章 面向对象的Pascal语言,2.4.3 条件控制语句,【例】编程为某运输公司计算运费。运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s250km 没有折扣 250s500 2%折扣 500s1000 5%折扣 1000s2000 8%折扣 2000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 面向 对象 Pascal 语言
链接地址:https://www.31ppt.com/p-5883678.html