Delphi教学 第02章 面向对象的Pascal(第二部分)

合集下载

Delphi教学 第02章 面向对象的Pascal(第二部分)

Delphi教学 第02章 面向对象的Pascal(第二部分)

2.6. 1-2 集合类型的运算
2. 集合的关系运算
集合的关系运算包括类型相同集合之间所进行的相等“=”、不等
“<>”、包含“>=”、被包含“<=”等运算,以及数据是否属于集合的IN
运算。这些运算的结果均为布尔类型值。
集合相等运算:如果相同类型集合A和B的元素完全相同,则运算
A=B或B=A的值为True,否则为Flase。
3. 集合变量
定义了一个集合则可以声明集合变量,集合变量声明的格式如下: var <变量名>:<集合类型名称>;
集合变量的取值称为集合值,它是基类型元素的一个集合,取值范围是包 括空集合在内的全体子集。集合值的一般表示格式为方括号括起来的元素 序列,元素之间用逗号隔开。
[<元素1>,<元素2>,…,<元素n>,] 如下定义了一个集合变量:
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']

《Delphi程序设计基础教程》第2章面向对象的pascal语言精品PPT课件

《Delphi程序设计基础教程》第2章面向对象的pascal语言精品PPT课件

C++面向对象程序设计程序设
2020/10/11
2.1.4 常量和变量
常量 在Object ascal中用Const关键字来声明变 量,可以同时声明一个或几个常量,每定义 一个常量应以分号结束。说明常量时,不需 要指定其数据类型,只需给出具体的值。因 为编译器能根据常量的值自动判断常量的类 型并分配内存,对于整型常量,编译器在运 行时跟踪它的值,并不对它分配内存。如: Const a=10,编译器能自动判断a是整型, Const Pi=3.14判断Pi是实型,等等。
变量是程序代码中代表一个内存地址的标识符,而此地址中 的内容在程序代码执行时可以被改变。在使用变量前必须对 它进行说明,即对它进行命名,并说明它的类型。系统根据 变量的数据类型为每一个变量分配一定的内存空间。用户可 以通过变量名对内存单元进行读或写。
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO ,DOWNTO,ELSE,END,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等
(1)标识符由字母、数字或下划线组成; (2)标识符的第一个字符必须是字母或下划线; (3)标识符的长度不应超过255个字符,否则只有前255个
字符有效; (4)不能将保留字用作标识符; (5)标识符不区分大、小写。
C++面向对象程序设计程序设
2020/10/11
2.1.2 保留字
程序如同一篇文章,由字符组成单词,再由 单词和符号构成句子――语句。Object Pascal语言中具有特殊含义的单词称为保留 字。保留字系统已使用,用户不可以用来作 为标识符。以下是Object Pascal的保留字:

第2章 面向对象的pascal语言解析

第2章 面向对象的pascal语言解析
2018年10月6日星期六
DELPHI程序设计基础教程
2.1.1 标识符


标识符(Identifiers)是以字母或下划线开头,后 跟字母、数字或下划线所组成的串,其作用是标识常 量、变量、类型、属性、对象、过程、函数、程序、 单元、库和组件库等。 标识符由一个或多个ASCII码字符序列组成,其构词 规则如下:

程序如同一篇文章,由字符组成单词,再由 单词和符号构成句子――语句。Object Pascal语言中具有特殊含义的单词称为保留 字。保留字系统已使用,用户不可以用来作 为标识符。以下是Object Pascal的保留字: AND,ARRAY,BEGIN,CASE,CONST,DIV,DO ,DOWNTO,ELSE,END,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等
组成; (2)标识符的第一个字符必须是字母或下划线; (3)标识符的长度不应超过255个字符,否则只有前255个 字符有效; (4)不能将保留字用作标识符; (5)标识符不区分大、小写。
DELPHI程序设计基础教程
2018年10月6日星期六
2.1.2 保留字

DELPHI程序设计基础教程
2018年10月6日星期六
2.2 基本数据类型
2.2.1 2.2.2 2.2.3 2.2.4

简单数据类型 字符串类型 可变类型 类型转换
DELPHI程序设计基础教程
2018年10月6日星期六
2.2 基本数据类型

第二章 Delphi面向对象的编程方法(二)

第二章 Delphi面向对象的编程方法(二)

2.1.4 跳转语句Object Pascal的跳转语句有if和case两个。

2.1.4.1 if语句if语句会计算一个表达式,并根据计算结果决定程序流程。

在上文的例程中,根据ColorDialog.Execute的返回值,决定窗体的背景颜色。

if保留字后跟随一个生成Boolean值True或False的表达式。

一般用“=”作为关系运算符,比较产生一个布尔型值。

当表达式为True时,执行then后的语句。

否则执行else后的代码,if语句也可以不含else部分,表达式为False时自动跳到下一行程序。

if语句可以嵌套,当使用复合语句表达时,复合语句前后需加上begin…end。

else保留字前不能加“;”,而且,编译器会将else语句视为属于最靠近的if语句。

必要时,须使用begin…end保留字来强迫else部分属于某一级的if语句。

2.1.4.2 case语句case语句适用于被判断的变量或属性是整形、字符型、枚举型或子界型时(LongInt除外)。

用case语句进行逻辑跳转比编写复杂的if语句容易阅读,而且程序代码整形较快。

下面的例程显示一个使用case语句的窗体:建立如下的事件处理过程:procedure TForm1.Button1Click(Sender: TObject);varNumber : Integer;beginNumber := StrToInt(Edit1.Text);case Number of1,3,5,7,9: Label2.Caption := '奇数';0,2,4,6,8: Label2.Caption := '偶数';10..100:beginLabel2.Caption := '在10到100之间';Form1.Color := clBlue;end;elseLabel2.Caption := '大于100或为负数';end;end;执行程序,当Edit1部件接受到一个值,并按动“OK”按钮触发程序后,Number便被赋值为用户输入的数值。

第2章Delphi语法基础

第2章Delphi语法基础

第2章Object Pascal语言基础Delphi的编程语言是Object Pascal,即面向对象的Pascal语言。

自Delphi 7 开始,Object Pascal语言改称为Delphi 语言。

第1节保留字和标识符一、保留字保留字是由系统使用的具有特殊含义的单词(如And、If、For、Var等),详见教材16~17页表2.1。

二、指令符指令符也是由系统使用的具有特殊含义的单词(如Public、Private等),详见教材17页表2.2。

三、标识符标识符(Identifiers)用于表示常量、变量、域(字段)、类型、属性、过程、函数、程序、单元、库和包(packages)的名称。

Object Pascal标识符的声明和使用应遵循以下规定:∙长度任意,但仅前255个字符有效。

∙首字符必须是字母或下划线。

∙不能含有空格,中间的字符可以是字母、数字和下划线。

∙不能使用保留字(reserved words)作为标识符。

∙不区分大小写,例如sName与sname等价。

第2节注释三种注释形式:{注释内容}(*注释内容*)//注释内容注意:如果注释符{之后紧跟一个美元符号$(如{$R *.res}),表示该语句是一条编译指令,它与普通的注释不同,通常由Delphi自动生成,用于设置编译过程,不要修改或删除它。

第3节常量和变量一、常量1. 普通常量如:123,-100,3.14,'abc',True等。

2. 符号常量符号常量用保留字Const声明,格式如下:Const常量名 = 表达式;例如:ConstPI = 3.1415926535897932385;College = '山东教育学院';Numeric = ['0'..'9']; // 数字字符集合Alpha = ['A'..'Z', 'a'..'z']; // 英语字母集合AlphaNum = Alpha + Numeric; // 集合的并2. 变量变量声明的格式:var变量名表:类型;例如:varX, Y, Z: Double;I, J, K: Integer;S1, S2: String;Digit: 0..9; // 子界类型Flag: Boolean;单元级或全局变量可以在声明时初始化(每个声明语句仅限一个变量)。

Delphi数据库程序设计教程 第2章 Pascal语言基础

Delphi数据库程序设计教程 第2章  Pascal语言基础


Delphi能在var块中对全局变量赋初值,这里有一些例子演示:
var i:Integer=10; S:String='Hello World'; D:Double=3.141579;

能赋初值的变量仅是全局变量,不是那些在过程或函数中局部变量,而且 Delphi编译器自动对全局变量赋初值。当程序开始时,所有的整型数赋为0, 浮点数赋为0.0,指针为null,字符串为空等等,因此,在源代码中不必对全局 变量赋零初值。
type TWeekDay=Set of 1..7; var WeekDay:TWeekDay; begin WeekDay:=[1,3,5,6]; end;


注意Pascal编辑程序限制了集合数目,所以整型数据不能作为集合类型的基类 型。而只能是整型子界。基类型必须是有序类型,所以实型、数组类型不能 作为集合类型的基类型。
@、not、^、*、/、div、mod、and、shl、shr、as、+、-、or、xor、=、>、<、<>、 <=、>=、in和is等。




按照操作数数目的多少来分,运算符分为下面两类:单目运算符(Unary Operator)和双目运算符(Binary Operator)。上面的@、not和^为单目运算符, 其余的为双目运算符。其中+和-也可以作为单目运算符来使用。 单目运算符一般放在操作对象的前面,只有^可以放在操作对象的后面。双目 运算符都放在两个操作数之间。 有些运算符是根据给定的操作数的数据类型做相应处理的。例如,运算符not 对于整型的操作数说,做的是按位取反;对于逻辑类型的操作数来说,它完成 的则是逻辑取反。 除了运算符^、is和in外,其余操作符都可以对Variant类型的数据进行操作。

学好面向对象的Pascal第2章

学好面向对象的Pascal第2章

第2章学好面向对象的Pascal好的工具是好的开发的基石。

Object Pascal就是好的工具。

基于上一章或您已有的技巧,本章将示范每个程序都需要的面向对象技巧。

Delphi在开发工具中是个例外,它本身就是用Object Pascal创建的。

本章中包含了一些代码,它将成为每一个程序的基础。

2.1 Delphi的惯例大约25年前,C语言是当时的新事物。

那时的编译器,像C语言,是弱类型的。

变量可以被声明为指针,然后传给整型参数,反过来也可以。

例如,一个整型变量可以被赋值0,然后被粗心地赋值给char*(在C中,即指向字符的指针)变量。

原因是,编译器并不严格执行数据类型的用法,时至今日依然如此。

不管怎么说,数据只是一些数字嘛。

可问题在于,如果把整数当作指针使用,可能刚好存取到BIOS(基本输入输出)内存的起始地址,真是糟糕透顶。

另一个有害的问题是全局变量。

如果不作检查,大多数人都记不住在一个月之前声明的变量的数据类型;当变量在其他人的代码中,更是如此。

过了几年之后,数百万的美元被浪费在跟踪与全局变量和误用整数及指针相关的程序错误,这时,解决方案出现了。

20世纪80年代早期,微软公司从施乐公司帕洛阿尔托研究中心雇佣了一位匈牙利人Charles Simonyi,他以发明了匈牙利命名惯列并使之流行而著称。

匈牙利命名惯列建立了一组前缀,用以识别变量的数据类型。

这意味着程序员通过看前缀,可以避免整数与指针的误用。

例如,用于存储零结尾字符串的char*变量可能会有前缀sz。

即使是刚起步的程序员也只需记住sz的意思是零结尾字符串(或字符串以零结尾)。

如果全局变量是有前缀的,而您又能够记住lpsz的意思,那么要决定变量的类型可能并不需要找出其声明。

提示或隐含的指导是有益的,但扪心自问一下:有多少人无视停车标志,在州际高速公路上车距过小或吸烟。

取决于您对“California stop”、three-second规则、吸入致癌物质的态度,您可能会忽略其中几项隐含的警告。

Delphi讲义教程 第二章 Object pascal语言基础

Delphi讲义教程 第二章 Object pascal语言基础

⑤取高、低字节函数Hi(x)和Lo(x),分别返回整型数x 的高字节和低字节,结果是Byte类型。 例如:Hi($1234)的值为$12,Lo($1234)的值为$34。 ⑥交换函数Swap(x),将整型数x的高字节和低字节进 行交换,交换后的两个字节重新组成一个整数作为 函数返回值。 例如,Swap($1234)的值为$3412。 ⑦ 其他操作函数或过程:ord、prec、succ、high、 low、inc、dec 。 例:有序数操作函数
三、变量
变量说明的一般形式为: var <变量标识符列表>:<类型标识符>; 其中,变量标识符列表中可以包含一个或多个变量标 识符,若有多个变量标识符时,相邻的两个变量标识 符之间应使用逗号“,”隔开;类型标识符用以指定这些 变量的数据类型。 变量说明以保留字var开头。一个变量说明部分可包含 多个变量的说明,每个变量说明末尾均有分号。
用字符序号的大小关系来定义相应字符的大小关 系,因此,所有的字符都可以进行比较(即关系运 算)。 'A'<'B' 'b'<'a' '1'<'2' // 结果为True // 结果为False // 结果为True
(3)标准函数 例:有序数操作函数 (同上例)
3. 布尔型 布尔类型的标准类型标识符为Boolean。 (1)取值范围 布尔型变量的取值范围仅有False和True两个值。布 尔类型是有序类型。规定: False的序数为0,True 的序数为1。 (2)运算符 ①六种关系运算操作同样适用于布尔型数据,运算结果 仍是布尔类型值例如: False=True True>False // 结果为False // 结果为True

第二章Delphi语法基础

第二章Delphi语法基础
下一页 上一页
返回
Delphi面向对象程序设计
第二章 Object Pascal语法基础
2.1 保留字、指令符和标识符
注意: 标识符 (1)Object Pascal中,标识符不区分大小写。 (2)在Delphi的库文件中还预先定义了一些标识符, 如标准数学函数Sqrt,Sin,标准数据类型如 Boolean、Char等,应尽量避免使用这些标识符作 为自定义的标识符,以免引起混淆。 (3)使用标识符时,必须先声明再使用,否则编译 时,系统会显示错误信息,提示该标识符没有定义。
Delphi面向对象 程序设计
主编 李俊平
第二章 Object Pascal语法基础
• 本章内容
保留字、指令字和标识符 注释 常量和变量 常用数据类型 运算符与表达式 语句 过程和函数
Delphi面向对象程序设计
基本概念
第二章 Object Pascal语法基础
编程风格 ○编程风格:指程序员编写代码的风格。如 同作家的写作风格、画家的画画风格等。 ○有必要规定一种常规、普遍的编程风格来避 免时间上的浪费,这种风格被称为编程约定。 提高可读性,减少调试和维护阶段的工作量。 ○对于大型软件尤其要遵循标准设计规则,以 提高阅读代码及模块之间联系的功效。
下一页 上一页
返回
Delphi面向对象程序设计
第二章 Object Pascal语法基础
2.3 常量与变量
常量在程序运行过程中其值不会改变,可以分为直 接常量和符号常量两种。 注意:字符常量和字符串常量均以单引号括起来, 如:’a‟,’Hello‟ 声明符号常量的语法如下: Const <符号常量名1>=<常量值1>; …… <符号常量名n>=<常量值n>;

Delphi编程_Object_Pascal语言

Delphi编程_Object_Pascal语言
第二章 Object Pascal语言
2.1 Object Pascal与Delphi的关系
Delphi使用Object Pascal作为开发语言
• Pascal语言由瑞士计算机科学家Nicklas Wirth教授于上世 纪60年代设计出来的。命名为Pascal主要是纪念计算机 科学先驱Blaise Pascal。
函数 Ord Pred Suce High Low Inc Dec 参数 序数类型表达式 序数类型表达式 序数类型表达式 序数类型标识符或变量 序数类型标识符或变量 序数类型变量 序数类型变量 返回值 表达式值的序数 表达式的前驱序数 表达式的后继序数 该类型的最大值 该类型的最小值 变量值加1 变量值减1
• 函数Ord返回某字符的ASCII码
Ord(‘A’):返回值65
2.5.1.5 布尔类型
类型符号:Boolean Boolean值
• True • False
Boolean类型可进行逻辑运算
2.5.1.6 枚举类型
语法格式
Type 枚举类型标识符名=(枚举值1,…,枚举值n);
示例
Type Tsex=(male,female); Tday=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);
2.5.2 字符串类型
类型符号
• String
字符串使用
• 不定长度声明
Var s:string;
• 定长声明
Var s:string[10];
• 可把字符串看成是字符数组
S:=‘Hello’;则S[1]表示H
• 在字符串中用两个相邻的单引号来引用单引号
‘It’’s nice’表示It’s nice
• 指非字母数字字符或这些字符的组合

Delphi基础 第二部分 Pascal语法

Delphi基础 第二部分 Pascal语法

Pascal语法一.项目结构项目文件: .dpr:单元文件1:.Pas ……单元文件n:.Pas┆窗体文件1:dfm ……┆窗体文件n:.dfm┆……┆→可执行文件:.exe目标文件1:.dcu ……目标文件n:.dcu1>..dpr文件.dpr文件结构:program Project1; //项目文件.dpr文件usesForms,Unit1 in 'Unit1.pas' {Form1},Unit2 in 'Unit1.pas' {Form2}, //三个窗体的主程序Unit3 in 'Unit3.pas' {Form3};{$R *.res}beginApplication.Initialize; //初始化Application.CreateForm(TForm1, Form1); //创建窗体Application.CreateForm(TForm2, Form1);Application.CreateForm(TForm3, Form1);Application.Run;end.2>.单元文件.pasDelphi应用程序是以窗体为中心的,而有关窗体的信息是以两种文件形式存储.dfm文件(数据文件):有关窗体及组件的外观、尺寸和位置等信息。

.pas 文件(源程序文件):包含了有关窗体及组件的程序代码。

.pas文件结构:unit Unit1;interface //说明部分类型说明变量说明程序接口说明Implementation //实现部分程序块1程序块2程序块3end.二.语法概述1>.常用的数据类型String:字符串型Integer:整型Real:实型Boolean:布尔型char:字符型2>.常用的表达式中的运算符A.算术运算符:+、-、*、/、div(整除)、mod(求余)B.集合运算符:+(并)、-(差)、*(交)、in(属于)C.关系运算符:=、<>(不等于)、>、<、<=、>=3>.系统的过程与函数A.Showmessage(‘显示信息’);B.StrToInt //类型转换(整数——字符串)C.Date //取当前日期D.round //取整,四舍五入 rounfd(2.7632)=34>.控制语句-分支语句A.if 条件 then语句1;else语句2;B. if 条件 then语句1;else if 条件 then语句2;else语句3;5>.循环语句A.while循环while 条件 dobegin……end;B.for循环for i:=1 to n dobegin……end;6>.局部变量跟全局变量Unit1……ImplementationVar全局变量Procedure ……Var局部变量Begin……End;7>.复合数据类型——记录TypeTEmpRec = record //定义一个职工记录类型ename : string[10]; //定义字符串age : integer;sal : real;end;varemp:TEmpRec;……emp.age := 23;edit1.text := emp.ename;8>.文件操作A.定义文件varEmpFile :file of TEmpRec;●为文件变量指定具体文件AssignFile(EmpFile,’d:\emp.$$$’); B.打开文件reset(EmpFile); //打开老文件rewrite(EmpFile);//创建新文件C.关闭文件Closefile(EmpFile);D.读文件Read(EmpFile,emp); //读一个记录E.写文件Write(EmpFile,emp); //写一个记录。

第2章-Object-Pascal语言ppt课件(全)

第2章-Object-Pascal语言ppt课件(全)
• 注意:两个单引号不表示空字符。
• 除了char外,还有一种字符型widechar,表 示一个16位的Unicode字符。
• 2.字符串类型
• 由多个字符组件的字符序列就是字符串。 例如'abc'就是一个字符串。Object Pascal 包含4种类型的字符串。如表2-5所示。
• 2.2.3 布尔型数据
• 【例2-2】请看下面的变量定义。
• type
• month=1..12;
//定义类型
• var
• x,y,z:real; 开
//3个变量之间用逗号隔
• i,j,k:integer;
//定义整型
• ch:char;
//字符型变量
• m1,m2:month;
//month类型已经定义
• days:array[1..12]of integer;
• 下面都是合法的实数:
• 1.0 123.0 0.0 -0.0 0.8
• 1E-3 1.6E-7 3.5E4
• 下面的实数表示方法有误:
• 12. .234 E6 2E0.6 12 • 说明: • (1)实数的小数点表示方法规定,小数点
两边都有数字。
• (2)科学计数表示方法规定,E的前后都 必须有数字,之后的数为整数。
• 说明:
• (1)程序首部以关键字program开始,其 后是程序名称,程序名称是Pascal标识符。
• (2)说明部分说明了本程序使用到哪些基 本的单元,还包括常量的说明、类型的定 义、变量的定义,函数与过程的定义等等。
• (3)程序体是以begin开始的end结束的语 句序列,每个语句最后都有一个分号,end 之前的分号可以省略,程序最后以点号为 结束标志。

Delphi程序设计教程_第2章_Object_Pascal语言基础

Delphi程序设计教程_第2章_Object_Pascal语言基础

8. 数组类型 数组是具有一组固定类型的元素的集合,数组中 的每个元素都可以通过数组名和下标来存取。现在 Delphi支持动态数组,也就是说数组可以动态分配存 储空间。 ⑴ 静态数组 所谓静态数组就是定义后,其大小不再改变的数 组,定义的语法形式为: <数组标识符>=ARRAY [下标类型] OF <元素类型>
第2章 Object Pascal语言基础
在Delphi中采用的是Object PASCAL语言,这是一
种结构化编程语言。
退出
2.1 字符集和符号 2.2 常量和变量
2.3 表达式
2.4 语句
2.5 作用域
2.6 过程与函数
2.7 类
2.8 输入与输出
2.9 异常事件的处理
2.10 程序单元
2.1 字符集和符号
· 空白(Blanks):空格字符(ASCII码值为32)和所 有不可见的ASCII控制字符(ASCII码值为0~31),其中 回车符的ASCII码为13 · 特殊字符(Special):+、-、*、/、^、:、;、'、 #、$和@
· 关系运算符:=、<>、>、<、>=和<= · 赋值运算符::= · 子界运算符:..
6. 实数类型 实数(Real)类型表示不同格式的浮要占用大量的CPU资源,运算速度也 低于整型等有序类型。
Delphi中支持六种类型的实数。
适用于实数类型的运算符有: 算术运算:+、-、*、/ 关系运算:=、<>、<、>、<=、>=
2.1.2 标识符 标识符用来表示常数、常量、字段、类型、属性、
过程、函数、程序、单元、库、包和记录中的域等。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标准类型 简单类型 自定义类型 数据类型 构造类型 集合类型 数组类型 记录类型 文件类型
字符串类型 实型 整型 字符型 布尔型 枚举类型 子界类型
序数类型
可变类型
2.6 集合类型
集合是指具有相同性质且可以相互区分的对象的全体。例如, 集合是指具有相同性质且可以相互区分的对象的全体。例如,所 有的英文字母可以组成一个集合,全体自然数组成一个集合, 有的英文字母可以组成一个集合 , 全体自然数组成一个集合 , 某个 学 校 的 全 体 学 生 组 成 一 个 集 合 , 等 等 。 为 了 表 示 集 合 , Object Pascal 引入了集合类型。 引入了集合类型。
2.6. 1-2 集合类型的运算
2. 集合的关系运算 集合的关系运算包括类型相同集合之间所进行的相等“ 、 集合的关系运算包括类型相同集合之间所进行的相等“=”、不等 等运算, “<>”、包含“>=”、被包含“<=”等运算,以及数据是否属于集合的 、包含“ 、被包含“ 等运算 以及数据是否属于集合的IN 运算。这些运算的结果均为布尔类型值。 运算。这些运算的结果均为布尔类型值。 集合相等运算:如果相同类型集合A和 的元素完全相同 的元素完全相同, 集合相等运算:如果相同类型集合 和B的元素完全相同,则运算 A=B或B=A的值为 的值为True,否则为 或 的值为 ,否则为Flase。 。 [2,3]=[3,2]的值为 的值为True。 的值为 。 集合的不等运算:如果相同类型集合A和 的元素不完全相同 的元素不完全相同, 集合的不等运算:如果相同类型集合 和B的元素不完全相同,则 运算A<>B或B<>A的值为 的值为True,否则为 运算 或 的值为 ,否则为Flase。 。 [2,3]<>[1,3,2]的值为 的值为True。 的值为 。 集合的包含运算:如果集合B中的元素都是集合 中的元素, 中的元素都是集合A中的元素 集合的包含运算:如果集合 中的元素都是集合 中的元素,则运 A>=B(称为 包含 )的值为 包含B)的值为True,否则为 算 (称为A包含 ,否则为Flase。 。 [1,3,2]>=[2,3] 的值为 的值为True。 。 集合的被包含运算:如果集合B中的元素都是集合 中的元素, 中的元素都是集合A中的元素 集合的被包含运算:如果集合 中的元素都是集合 中的元素,则 运算B<=A (称为 被包含在 中)的值为 称为B被包含在 被包含在A中 的值为True,否则为 运算 ,否则为Flase。 。 [RED,BLUE]<=[RED,GREEN,BLUE]的值为 的值为True。 的值为 。 属于运算:如果数据X与集合 的基类型相同,且被包含在A中 则运算X 与集合A的基类型相同 属于运算:如果数据 与集合 的基类型相同,且被包含在 中,则运算
2.6.1 -1 集合类型的定义
使用集合类型和集合变量之前必须首先进行类型定义和变量声明。 使用集合类型和集合变量之前必须首先进行类型定义和变量声明。 1. 集合与集合类型 集合的特点是所包括的各个对象具有某种相同的性质, 集合的特点是所包括的各个对象具有某种相同的性质,构成集合的 各个对象称为集合的元素,集合的元素是某种简单数据类型的值, 各个对象称为集合的元素,集合的元素是某种简单数据类型的值,这种 数据类型称为集合的“基类型” 基类型只能是顺序类型。 数据类型称为集合的“基类型”,基类型只能是顺序类型。对于集合有 以下几个特点: 以下几个特点: (1)集合中的元素是互异的,即相同的元素视为同一个元素,集合 , )集合中的元素是互异的,即相同的元素视为同一个元素,集合{1, {1,2,2}与集合 ,2}是相同的; 与集合{1, 是相同的 是相同的; , , 与集合 是同一个集合; (2)集合中的元素是无序的,{1,2}与{2,1}是同一个集合; )集合中的元素是无序的, , 与 , 是同一个集合
2.6.1-2 集合类型的运算
集合类型数据的运算包括两大类,一类是集合的并、 差运算, 集合类型数据的运算包括两大类,一类是集合的并、交、差运算, 其运算结果仍为集合类型值;一类是集合的关系运算, 其运算结果仍为集合类型值;一类是集合的关系运算,其运算结果是布 尔类型值。 尔类型值。 1. 集合的并、交、差运算 集合的并、 相同类型的集合可以进行并、 差运算, 相同类型的集合可以进行并、交、差运算,其值仍是一个该类型的集 合。 并运算:集合A、 类型相同 类型相同, 的并运算记作A+B或B+A,计 并运算:集合 、B类型相同,则A和B的并运算记作 和 的并运算记作 或 , 算结果是由A和 中所有不重复元素组成的集合 中所有不重复元素组成的集合。 算结果是由 和B中所有不重复元素组成的集合。 交运算:集合A、 类型相同 类型相同, 的交运算记作A* 或 * , 交运算:集合 、B类型相同,则A和B的交运算记作 *B或B*A, 和 的交运算记作 计算结果是由A和 中所有公共元素组成的集合 中所有公共元素组成的集合。 计算结果是由 和B中所有公共元素组成的集合。 差运算:集合A、 类型相同 类型相同, 的差运算记作A-B,计算结果 差运算:集合 、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]; ;
Delphi 7 程序设计
福州大学至诚学院
面向对象的Pascal 第二章 面向对象的
Delphi的编程语言即 的编程语言即Object Pascal是在 是在Pascal的基 的编程语言即 是在 的基 础上发展起来的,它继承了Pascal语言语法结构严谨 础上发展起来的,它继承了 语言语法结构严谨 和编译代码高效优化等优点。 和编译代码高效优化等优点。 2.1 基本概念 2.2 简单数据类型 2.3 常量、变量 常量、 2.4 运算符和表达式 2.5 语句 2.6 构造 结构)数据类型 构造(结构 结构) 2.7 函数和过程
2. 集合定义 集合的声明格式如下: 集合的声明格式如下: Type <集合类型名称 集合类型名称>=Set of <基类型 ; 基类型>; 集合类型名称 基类型 <集合类型名称 是用户定义的集合类型名称。<基类型 集合类型名称>是用户定义的集合类型名称 集合类型名称 是用户定义的集合类型名称。 基类型 >表示集合中各元素的类型,可以是字符型、布尔型、 表示集合中各元素的类型, 表示集合中各元素的类型 可以是字符型、布尔型、 枚举型和子界型等顺序类型,但不能是整型、 枚举型和子界型等顺序类型,但不能是整型、实型和 其他的构造类型。 其他的构造类型。
Hale Waihona Puke 2.6.1-1 集合类型的定义 若基类型为枚举或子界类型,则必须先定义该类型, 若基类型为枚举或子界类型,则必须先定义该类型, 再定义集合类型。例如: 再定义集合类型。例如: type Colors=(Red,Blue,Yellow,White,Black); color=set of Colors; numbers=set of 1..10;
2.6.1-1 集合类型的定义
(3)集合中的元素按顺序出现时可以写为子界的形式,如[6,7,8, )集合中的元素按顺序出现时可以写为子界的形式, , , , 9,11,13]可写为 可写为[6…9,11,13]; , , 可写为 , , ; 不属于”关系。( 。(in) (4) 元素与集合的关系是“属于”或“不属于”关系。( ) ) 元素与集合的关系是“属于” (5) 集合类型属于构造类型,是由其他的数据类型按照一定的规则构 ) 集合类型属于构造类型, 造而成的。 规定集合的基类型可能的值不能超过256个, 造而成的。Object Pascal规定集合的基类型可能的值不能超过 规定集合的基类型可能的值不能超过 个 且序号必须在0到 之间, 且序号必须在 到255之间,这同时也表明,集合中元素的个数最多是 之间 这同时也表明, 256个。例如,以下定义会显示编译错误: 个 例如,以下定义会显示编译错误: type intset = set of 1..300; //集合元素超过 集合元素超过256个 集合元素超过 个
当一个表达式中含有多个集合运算符时,将按优先级由高到低的顺序求值。 当一个表达式中含有多个集合运算符时,将按优先级由高到低的顺序求值。
2.6. 1-3 集合类型的使用
之间的所有素数。 【例】用集合数据类型求1~100之间的所有素数。 用集合数据类型求 ~ 之间的所有素数 分析:素数是大于1且除了 和它本身外, 且除了1 分析:素数是大于 且除了 和它本身外,不能被其他任何整数所整 除的整数。对于求解1~ 之间的素数可以从1到 除的整数。对于求解 ~100之间的素数可以从 到100一一判断是否是 之间的素数可以从 一一判断是否是 素数,然后输出素数。也可以采用筛选法, 素数,然后输出素数。也可以采用筛选法,将2~100之间的数看成一个 ~ 之间的数看成一个 集合,从中选出最小数,从中筛选去掉其所有倍数, 集合,从中选出最小数,从中筛选去掉其所有倍数,再找出第二个数将 其所有倍数从集合中筛选出去, 其所有倍数从集合中筛选出去,……,一直增加到该数为集合中最大数 , 的一半为止,则将集合中所有是其他数的倍数的数全部选出, 的一半为止,则将集合中所有是其他数的倍数的数全部选出,剩下的即 为素数。 为素数。 启动Delphi 7.0,新建一个工程,在窗体中添加一个标签。 启动 ,新建一个工程,在窗体中添加一个标签。 添加Form1的FormCreate事件代码如下: 事件代码如下: 添加 的 事件代码如下 procedure TForm1.FormCreate(Sender: TObject); type int100=2..100; all=set of int100;
相关文档
最新文档