delphi教学第02章面向对象的pascal(第二部分)

上传人:san****019 文档编号:70800989 上传时间:2019-01-18 格式:PPT 页数:52 大小:330.51KB
返回 下载 相关 举报
delphi教学第02章面向对象的pascal(第二部分)_第1页
第1页 / 共52页
delphi教学第02章面向对象的pascal(第二部分)_第2页
第2页 / 共52页
delphi教学第02章面向对象的pascal(第二部分)_第3页
第3页 / 共52页
delphi教学第02章面向对象的pascal(第二部分)_第4页
第4页 / 共52页
delphi教学第02章面向对象的pascal(第二部分)_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《delphi教学第02章面向对象的pascal(第二部分)》由会员分享,可在线阅读,更多相关《delphi教学第02章面向对象的pascal(第二部分)(52页珍藏版)》请在金锄头文库上搜索。

1、Delphi 7 程序设计,福州大学至诚学院,第二章 面向对象的Pascal,Delphi的编程语言即Object Pascal是在Pascal的基础上发展起来的,它继承了Pascal语言语法结构严谨和编译代码高效优化等优点。 2.1 基本概念 2.2 简单数据类型 2.3 常量、变量 2.4 运算符和表达式 2.5 语句 2.6 构造(结构)数据类型 2.7 函数和过程,2.6 集合类型,2.6.1 -1 集合类型的定义,集合是指具有相同性质且可以相互区分的对象的全体。例如,所有的英文字母可以组成一个集合,全体自然数组成一个集合,某个学校的全体学生组成一个集合,等等。为了表示集合,Objec

2、t Pascal 引入了集合类型。,使用集合类型和集合变量之前必须首先进行类型定义和变量声明。 1. 集合与集合类型 集合的特点是所包括的各个对象具有某种相同的性质,构成集合的各个对象称为集合的元素,集合的元素是某种简单数据类型的值,这种数据类型称为集合的“基类型”,基类型只能是顺序类型。对于集合有以下几个特点: (1)集合中的元素是互异的,即相同的元素视为同一个元素,集合1, 1,2,2与集合1,2是相同的; (2)集合中的元素是无序的,1,2与2,1是同一个集合;,2.6.1-1 集合类型的定义,2. 集合定义 集合的声明格式如下: Type =Set of ; 是用户定义的集合类型名称。

3、表示集合中各元素的类型,可以是字符型、布尔型、枚举型和子界型等顺序类型,但不能是整型、实型和其他的构造类型。,(3)集合中的元素按顺序出现时可以写为子界的形式,如6,7,8, 9,11,13可写为69,11,13; (4) 元素与集合的关系是“属于”或“不属于”关系。(in) (5) 集合类型属于构造类型,是由其他的数据类型按照一定的规则构造而成的。Object Pascal规定集合的基类型可能的值不能超过256个,且序号必须在0到255之间,这同时也表明,集合中元素的个数最多是256个。例如,以下定义会显示编译错误: type intset = set of 1300; /集合元素超过256

4、个,2.6.1-1 集合类型的定义,若基类型为枚举或子界类型,则必须先定义该类型,再定义集合类型。例如: type Colors=(Red,Blue,Yellow,White,Black); color=set of Colors; numbers=set of 110;,2.6.1-1 集合类型的定义,3. 集合变量 定义了一个集合则可以声明集合变量,集合变量声明的格式如下: var :; 集合变量的取值称为集合值,它是基类型元素的一个集合,取值范围是包括空集合在内的全体子集。集合值的一般表示格式为方括号括起来的元素序列,元素之间用逗号隔开。 , 如下定义了一个集合变量: Type Colo

5、rs=(Red, Yellow, Blue); BasicColor=set of Colors; var Color1:BasicColor; 则集合变量Color1的取值可以是下列所示的任何集合: ,Red, Yellow, Blue, Red, Yellow, Red, Blue, Yellow, Blue, Red, Yellow, Blue 若集合类型的基类型有n个元素,根据组合可知该类型变量的取值有2n 个,其中包括一个空集合 。,2.6.1-2 集合类型的运算,1. 集合的并、交、差运算 相同类型的集合可以进行并、交、差运算,其值仍是一个该类型的集合。 并运算:集合A、B类型相同

6、,则A和B的并运算记作A+B或B+A,计算结果是由A和B中所有不重复元素组成的集合。 交运算:集合A、B类型相同,则A和B的交运算记作AB或BA,计算结果是由A和B中所有公共元素组成的集合。 差运算:集合A、B类型相同,则A和B的差运算记作A-B,计算结果是由所有属于集合A而不属于集合B的元素组成的集合。利用差运算可以删除集合中的一些元素。 例如,A=1,2,3,B=2,3,4,则: A+B=1,2,3,4; A*B=2,3; A-B=1; B-A=4;,集合类型数据的运算包括两大类,一类是集合的并、交、差运算,其运算结果仍为集合类型值;一类是集合的关系运算,其运算结果是布尔类型值。,2.6.

7、 1-2 集合类型的运算,2. 集合的关系运算 集合的关系运算包括类型相同集合之间所进行的相等“=”、不等“”、包含“=”、被包含“B或BA的值为True,否则为Flase。 2,31,3,2的值为True。 集合的包含运算:如果集合B中的元素都是集合A中的元素,则运算 A=B(称为A包含B)的值为True,否则为Flase。 1,3,2=2,3 的值为True。 集合的被包含运算:如果集合B中的元素都是集合A中的元素,则运算B=A (称为B被包含在A中)的值为True,否则为Flase。 RED,BLUE=RED,GREEN,BLUE的值为True。 属于运算:如果数据X与集合A的基类型相同

8、,且被包含在A中,则运算X INA(称为X属于A)的值为True,否则为Flase。RED IN RED,BLUE 的值为True。,2.6. 1-2 集合类型的运算,3. 集合运算符的优先级 集合运算符的优先级决定运算时的顺序,运算符的优先顺序如表所示。,集合运算符的优先级,当一个表达式中含有多个集合运算符时,将按优先级由高到低的顺序求值。,2.6. 1-3 集合类型的使用,【例】用集合数据类型求1100之间的所有素数。 分析:素数是大于1且除了1 和它本身外,不能被其他任何整数所整除的整数。对于求解1100之间的素数可以从1到100一一判断是否是素数,然后输出素数。也可以采用筛选法,将21

9、00之间的数看成一个集合,从中选出最小数,从中筛选去掉其所有倍数,再找出第二个数将其所有倍数从集合中筛选出去,一直增加到该数为集合中最大数的一半为止,则将集合中所有是其他数的倍数的数全部选出,剩下的即为素数。, 启动Delphi 7.0,新建一个工程,在窗体中添加一个标签。 添加Form1的FormCreate事件代码如下: procedure TForm1.FormCreate(Sender: TObject); type int100=2100; all=set of int100;,2.6. 1-3 集合类型的使用,Var part:all; i,j:integer; str:strin

10、g; begin part:=2100;/集合赋初值 for i:=2 to 50 do /双重循环进行筛选 for j:=i+1 to 100 do if (j mod i=0) then part:=part-j; str:=;j:=0; for i:=2 to 100 do /输出经筛选后剩下的素数 if i in part then begin j:=j+1; str:=str+inttostr(i)+,; if j mod 5=0 then str:=str+chr(13); end; label1.Caption :=str; end;,运行结果如图所示。 其中运用集合的差运算将不

11、是素数的整数从集合中筛选出去。,列举1100之间的所有素数,练习,1 集合表达式1, 2, 3 + 4, 5, 6, 1, 2的值为: (A) 1, 2, 3, 4, 5, 6, 1, 2 (B) 1, 2, 3 (C) 4, 5, 6, 1, 2 (D) 1, 2, 3, 4, 5 2 集合表达式m, n, b * a, b, c + m, n, b的值为: (A) m, n, b (B) b (C) a, b, c (D) a, c 3 下列集合表达式中哪一个的值为空集: (A) a z - a, c, B (B) a z + a, c, B (C) a z * a, c, B (D) z

12、 * a, c, B 4 下列表达式中哪一个的值为True: (A) a in a, b, c, d (B) 1 12 = 1 5, 6 12 (C) 1, 2 + 3, 4 * 3, 5 = 2, 3, 4, 5, 7 (D) 12 in 1 10,参考答案:1、A 2、A 3、D 4、B,数组的概念 数组是一些具有相同类型的元素按一定顺序组成的序列。其中每个元素由其对应的位置来指定,这个位置就是数组的索引号(又称下标),数组元素与索引号是一一对应的,用户可以通过这个索引号来存取数组的每个元素。数组中的各元素是顺序地安排在内存中一段连续的存储空间中。按照数组在定义时是否确定了元素个数可以将数

13、组分为静态数组和动态数组。,2.6.2 数组,2.6.2-1 静态数组,数组是相同类型的元素按一定顺序组成的序列。数组中的每一个元素都可以通过数组名和惟一一个索引号来存取。在Object Pascal中可以定义数组元素个数一定的数组,即静态数组。根据静态数组的维数可以把数组分为一维静态数组、二维静态数组和多维静态数组。,静态数组在程序初始化时必须分配内存单元,明确其固定的大小和元素的数据类型。,2.6.2-1(1) 定义,1. 一维静态数组 一维静态数组类型声明格式为: Type =arrayof ; 如定义一个数组类型: Type MyArray=array1100of Real; 表示定义

14、了一个有100个元素的数组类型,元素下标从1到100,每个数组元素都是Real类型,数组类型标识符为MyArray。,2.6.2-1(1) 静态数组定义,数组类型标识符可以是任何合法的标识符。Object Pascal 允许下标的类型为整数类型、字符类型、布尔类型、子界类型、枚举类型等。而元素类型可以为任意的数据类型,但在同一数组中,所有元素的数据类型必须相同。对于用户定义的数据类型作为下标类型,在使用之前必须声明。例如可以进行如下定义: Type Color=(red,green,blue); Number=0100; MyArray=ArrayColor of Integer; Color

15、Array=ArrayNumber of Color; 以上就定义了一个以MyArray为标识的数组类型,其元素下标分别为 red、green和blue,每个数组元素都是Integer类型。,2.6.2-1(1)静态数组定义,经过数组类型声明之后才可以定义数组变量。就像定义整型或实型变量一样,通过变量说明语句定义变量,例如: var A1,A2:MyArray; /A1red;A1green; A1blue 上面定义了两个数组变量A1和A2,它们的数据类型是MyArray;也可以把数组类型的定义和数组变量的定义组合起来,以便简化代码,例如: var A1,A2:Array1100 of real; 数组元素的访问: 要访问数组中的元素,可以用数组名加方括号,方括号内是元素的下标值,如A13 、A220等。方括号内的下标值必须符合数组类型的定义,其类型必须与下标类型一致,其值在下标取值范围。另外,下标可以是表达式。 Eg: x=4;y=16; A2x+y,2.6.2-1(1)静态数组定义,3. 二维及多维静态数组 二维数组是指一个一维数组中的元素类型本身又是一个一维数组,声明二维数组的一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号