第4章Delphi程序设计基本方法课件

上传人:沈*** 文档编号:241612803 上传时间:2024-07-09 格式:PPT 页数:51 大小:331.50KB
返回 下载 相关 举报
第4章Delphi程序设计基本方法课件_第1页
第1页 / 共51页
第4章Delphi程序设计基本方法课件_第2页
第2页 / 共51页
第4章Delphi程序设计基本方法课件_第3页
第3页 / 共51页
点击查看更多>>
资源描述
Delphi数据库基础数据库基础清华大学出版社第4章 Object Pascal程序设计基本方法 教学要求:我们将介绍面向对象Object Pascal语言,以及如何在Delphi中书写Pascal代码。本书假设你已经具有基本的编程经验,并对程序设计方法有所了解。4.1 基本字符和符号 4.2 变量与常量4.3 数据类型4.4 Object Pascal基本运算符4.5 Object Pascal程序设计语句4.6 过程(Procedure)与函数(function)Delphi数据库基础数据库基础清华大学出版社一二请在这里输入您的主要叙述内容整体概述三请在这里输入您的主要叙述内容请在这里输入您的主要叙述内容 Delphi数据库基础数据库基础清华大学出版社 Object Pascal使用ASCII字符集,包括:英文字母:“A”到“Z”,“a”到“z”阿拉伯数字:“0”到“9”其它标准字符,包括:“#”、“$”、“&”、“”、“(”、“)”、“*”、“+”、“,”、“?”、“.”、“/”、“:”、“;”、“”、“”、“”、“”、“”、“”、“”,以及下列字符的组合:“(*”、“(.”、“*)”、“.)”、“.”、“/”、“:=”、“=”、“”。注意:“!”、“”、“%”、“?”、“”、“_”、“|”、“”不是特殊字符。注意:“!”、“”、“%”、“?”、“”、“_”、“|”、“”不是特殊字符。Object Pascal的字符集 4.1 基本字符和符号 Delphi数据库基础数据库基础清华大学出版社特殊字符 特殊字符既不是字母,也不是阿拉伯数字,它是一些有固定意义的字符的组合。包括:“#”、“$”、“&”、“”、“(”、“)”、“*”、“+”、“,”、“?”、“.”、“/”、“:”、“;”、“”、“”、“”、“”、“”、“”、“”以及下列字符的组合:“(*”、“(.”、“*)”、“.)”、“.”、“/”、“:=”、“=”、“”。注意:“!”、“”、“%”、“?”、“”、“_”、“|”、“”不是特殊字符。Delphi数据库基础数据库基础清华大学出版社标识符 标识符是用来表示常量、变量、域、类型、特性、过程、函数、程序单元、库以及包等语法成分的名称。标识符可以是任何长度,但只有最前面的255个字符有效。标识符只能以字母或下划线(“_”)开始,第一个字符之后可以是数字、字母或下划线,但不能包含空格。保留字不能用作标识符。下面的标识符具有相同的含意:CalculateValue;calculateValue;calculatevalue;CALCULATEVALUE Delphi数据库基础数据库基础清华大学出版社 保留字是Object Pascal预定义的具有特殊意义和用途的字符串。不能被用户再定义或用作其它标识符 在对象类型定义时,private,protected,public,published以及automated也作为保留字,但在其它情况下可以看作为指令字 保留字 Delphi数据库基础数据库基础清华大学出版社 指令字在Object Pascal具有特殊意义,但是,与保留字不同的是,指令字只在特殊的上下文中才有意义,在其它场合,用户可以再定义或用作其它标识符。指令字 数字 标号 标号是不大于4位数的数字序列,即0到9999之间的数值,前导0无效。标识符也可以作为标号。例如,33,0033,P12等都是合法的标号。标号主要用于Goto语句中。Delphi数据库基础数据库基础清华大学出版社字符串 字符串又称为串常量,通常包含一个引用串,一个控制串或一个引用或控制串的组合。分隔符只能出现在引用串中。标号是不大于4位数的数字序列,即0到9999之间的数值,前导0无效。标识符也可以作为标号。例如,33、0033、P12等都是合法的标号。例如:BORLAND 表示字符串“BORLAND”Youll see表示字符串“Youll see”表示字符串“”空串 表示一个空格 Delphi数据库基础数据库基础清华大学出版社4.2变量与常量 变量是用来存储数据的命令区域,是在运行时可以改变其值的标识符。一般来说,常量是在运行时不改变值的标识符,也不需要专门的存储数据区域。这里介绍一下变量及常量的概念及定义。由于变量及常量与数据类型密切相关,因此具体的使用在后面还要介绍。Delphi数据库基础数据库基础清华大学出版社声明变量 变量必须有类型,类型确定了变量的值。因此,变量在使用前必须先声明,变量声明包括两部分:名字及类型。在变量声明部分,是一个或多个标识符,后跟一个冒号,再跟该变量的类型。例如:Var ABC:String;/定义了String类型变量 ABC。Begin end;Delphi数据库基础数据库基础清华大学出版社 在Object Pascal中,常量有许多种:有数字常量,例如“17”;有字符串常量,例如“Hello world!”;还有预先定义的常量,如True、False和nil。也有常量像变量那样,需要在定义部分单独创建。声明常量有两种,一种是纯常量(true constant),一种是类型常量。虽然两者表面上是一样的,但它们有不同的使用规则和目的。声明常量 纯常量类型常量 Delphi数据库基础数据库基础清华大学出版社4.3 数据类型 类型是某类数据的名称,用于确定能存储信息,及能存储多少信息等。ObjectPascal是一种强类型的语言,其数据类型的定义、声明以及数据的赋值和传递都必须遵循严格的语法规则。因此,学习和掌握数据类型是设计好程序的关键。简单类型字符串类型结构类型指针类型过程类型变体类型 Delphi数据库基础数据库基础清华大学出版社简单类型 包括有序类型和实数型。其中有序类型是指整数类型、字符类型、布尔类型、枚举类型以及子界类型。结构类型 包括集合类型、数组类型、记录类型、文件类型、类类型、类引用类型、接口类型等。Delphi数据库基础数据库基础清华大学出版社数组的定义 要声明一个数组变量,要求你提供一个标识符,使用array保留词,在方括号中指定数组的界限,并指定编译器数组将用于存储什么类型,例如:Var Check:array1.100 of Integer;多维数组 如果你想编写一个数组来容纳一张电子表格中的值,那么就可以使用2维数组。下面的例子说明如何使用2维数组定义一个有20行和20列的表格:Type Ttable=array1.20,1.20 of Double;Var BigTable:Ttable;Delphi数据库基础数据库基础清华大学出版社字符数组 字符串类型本质上等同于下列类型:type StringType:array0.255 of char;下面是几个字符串类型定义:type MyString:string15;BigString:string;LittleString:string1上面语句定义MyString类型包含15个字符,LittleString包含1个字符,BigString没有说明大小,就取字符串包含字符的最大个数255。Delphi数据库基础数据库基础清华大学出版社数组类型常量 一个数组类型常量由括号括起来的类型常量组成,不同类型常量用逗号隔开。像简单类型常量一样,数组类型常量用来定义一个数组常量,下面是一个例子。Type TStatus=(Active,Passive,Waiting);TStatusMap=arrayTStatus of string;const StatStr:TStatusMap=(Active,Passive,Waiting);Delphi数据库基础数据库基础清华大学出版社开放式数组 所谓开放式数组,是指数组作为形参传递给过程或函数时其长度是可变的,这样在调用过程或函数时,可以传递不同长度的数组作为实际参数。开放式数组在过程或函数中作为形参可以定义为:array of T 这里T是数组的元素类型标识符,实际参数必须是T类型的变量或元素类型为T的数组变量。在过程或函数内形参的作用可看作为下面的数组:array0.N-1 of T Delphi数据库基础数据库基础清华大学出版社集合类型 集合类型是Integer,Boolean,Char,枚举型,子界型等类型数据的一个子集。在应用程序中,当要检测一个数是否属于一个特定的集合时,就可以使用集合类型。下面是一些集合类型的例子:type VoterDataSet=Set Of(Democrat,Republican,Male,Female,LowOpinion,HighOption,Confused);Chars=Set of Char;Letters=Set of A.Z VIBGYOR=(Violet,Indigo,Blue,Green,Yellow,Orange,Red);这是枚举型 ColorSet=set of VOBGYOR;上面枚举型的集合类型 Delphi数据库基础数据库基础清华大学出版社集合类型常量 像简单类型常量一样,集合类型常量用来定义一组常量的集合。例如:type TDigits=set of 0.9;TLetters=set of A.Z;const EvenDigits:TDigits=0,2,4,6,8;Vowels:TLetters=A,E,I,O,U,Y;Delphi数据库基础数据库基础清华大学出版社记录类型 记录是一系列相关的变量,这些变量被称为域,它们放在一起,作为一个整体使用。例如,一个雇员可能包含姓名、雇用时间、薪金等数据,这时你可以像下面那样定义一个雇员记录类型:type TEmployee=record LastName:String20;FirstName:String15;YearHired:1990.2000;Salary:Double;Position:string20;end;Pascal的记录类型跟数据库中的记录很相似,记录类型中的元素可以理解为数据库中的字段。Delphi数据库基础数据库基础清华大学出版社文件类型 文件是指相同类型元素的有序集合。Delphi处理文件有三种方式,一种是使用Object Pascal标准的文件处理技术;一种是使用Windows的文件处理函数;还有一种是使用文件流对象。Object Pascal标准的文件处理技术,有专门的数据类型和文件处理例程,并且与Windows的标准API不兼容,但对于熟悉Pascal的用户来说,仍然是操作文件的好选择。下面我们就对此进行介绍。声明一个文件类型的语法如下:type fileTypeName=file of type Delphi数据库基础数据库基础清华大学出版社指针类型 指针类型对程序员来说可能是最复杂和最灵活的数据类型。当你在Delphi中创建一个数据结构时,首先要分配内存空间。分配的内存空间用于存储数据结构中的数据。而指针就是指向分配空间的内存地址。使用指针,可以使程序不必每次需要时都去分配,只要申请一次即可,其它过程或函数使用同一块内存空间时,只要使用该内存空间的地址。Delphi数据库基础数据库基础清华大学出版社下面是带有指针类型声明的例子:type WordPtr=Word;RealPtr=Real;PersonType=Record LAstNAme:String;FirstNAme:String;Age:Integer;end;PersonPointer=PersonType;上例中,声明了三个指针类型,一个是WordPtr,指向Word,一个是RealPtr,指向Real,还有一个是PersonPointer,指向一个标识符,而该标识符标识一个记录类型。声明了指针类型之后,就可以声明指针类型变量 Delphi数据库基础数据库基础清华大学出版社 指针的使用Delphi提供专门的过程和函数操作指针,这些过程和函数是:New过程,操作符,PTR函数,GetMem过程。New过程New过程是 Pascal中的标准例程(在System单元声明),用于在应用程序堆栈中为动态变量申请一块区域,并把该区域的地址赋予指针变量。New过程的语法为:procedure New(var P:Pointer);操作符操作符是个一元操作符,用于获得操作数的地址 Delphi数据库基础数据库基础清华大学出版社PTR函数Ptr函数是 Pascal中的标准例程(在System单元声明),用于把一个指定的地址转换为指针。Ptr函数的语法为:function Ptr(Address:Integer):Pointer;其中Address是一个整数,用于表示一个32位地址,函数执行的结果是把32位地址转化为指针。GetMem过程GetMem过程也是Pascal中的标准例程(在System单元声明),类似于New,用于在应用程序堆栈中为动态变量申请一块指定大小的区域,并把该区域的地址赋予指针变量。GetMem函数的语法为:procedure GetMem(var P:Pointer;Size:Integer);其中P是一个指针变量,Size指定区域的字节数。Delphi数据库基础数据库基础清华大学出版社无类型指针无类型的指针是指指针变量在声明时没有指明基类型。无类型指针在声明中只使用Pointer。例如:var pAnyPoint:Pointer;指针pAnyPoint可以指向任何变量类型。字符指针类型字符指针类型即PChar数据类型,是一个指向以NULL(不是零)字符结尾的字符(Char)串的指针。这种类型主要用于与外部函数如在Windows API中所用的函数兼容。与Pascal字符串不同,Windows和C字符串没有一个长度字节。Delphi数据库基础数据库基础清华大学出版社过程类型 Object Pascal允许把过程和函数作为一个整体赋给变量和作为参数传递。实现这一功能的途径是使用Object Pascal的过程类型。声明一个过程类型的语法与声明过程或函数的首部的语法相似,不同的是声明一个过程类型时不需要过程或函数保留字后面的标识符。声明过程类型时可以指定一种调用约定方式,缺省的调用方式是Register。下面是声明过程类型的举例:typeTProcedure=procedure;TStrProc=procedure(const S:string);TMathFunc=function(X:Double):Double;Delphi数据库基础数据库基础清华大学出版社Variant数据类型 Variant主要用于表达需要动态改变类型的数据。例如,当一个数据的实际类型在编译时不知道或运行时需要改变类型时,就可以使用Variant类型 Variant变量的定义:var V1,V2,V3,V4,V5:Variant;Delphi数据库基础数据库基础清华大学出版社4.4 Object Pascal基本运算符 在学习了各种数据类型之后,下面就需要知道如何比较、计算这些类型变量的值,因此需要各种各样的运算符。Object Pascal支持下列运算符:算术运算符逻辑运算符关系运算符 下面分别介绍这些运算符及它们之间的操作顺序。Delphi数据库基础数据库基础清华大学出版社算术运算符 算术运算符用于完成二元或一元算术运算。二元运算符需要两个操作数,其代数表达式为A+B的形式。一元运算符只需要一个操作数。大多数Object Pascal运算符是二元的,只有部分运算符是一元的。Delphi数据库基础数据库基础清华大学出版社逻辑运算符 逻辑运算符实际上可分为两类:逻辑运算符和布尔运算符。逻辑运算符在按位对操作数移位、比较、操作等,而布尔运算符在TRUE、FALSE级对两个布尔操作数进行比较、操作等。Delphi数据库基础数据库基础清华大学出版社关系运算符 关系运算符用于比较两个变量的值。运算符的优先级 ,not(最高)一元运算符*,/,div,mod,and,shl,shr,as 2乘法运算符+,-,or,xor3加法运算符=,=,in,is4(最低)关系运算符递减 Delphi数据库基础数据库基础清华大学出版社4.5 Object Pascal程序设计语句顺序语句 赋值语句 Value:=12;块语句 ASM/END块语句;BEGIN/END块语句;Delphi数据库基础数据库基础清华大学出版社条件语句 条件语句用于判断某个条件是否满足,根据满足与否来控制程序的执行流程。If/then语句的语法如下:If 表达式 then Begin 语句 end;If/then/else语句的语法如下:If 表达式 then Begin 语句 end else 语句 end;Delphi数据库基础数据库基础清华大学出版社 if/then/else 与if/then的语句流程图 Delphi数据库基础数据库基础清华大学出版社多重if/then/else 语句 实际应用中常常面对更多的选择,这时,将if/else扩展一下,就得到多重if/then/else 语句结构。多重if/then/else 语句 Delphi数据库基础数据库基础清华大学出版社Case 语句 CASE语句类似于C语言中的SWITCH语句,也是根据一个条件语句来决定程序的运行。CASE语句包含一个被称为选择支的表达式和若干语句,每个语句都以一个或多个常量(CASE常量)开头。选择支必须是有序类型,如CHAR,BYTE型数据或介于0到255之间的整数。所有CASE常量必须是唯一的,并且是与选择支类型兼容的有序类型。Delphi数据库基础数据库基础清华大学出版社Case语句的流程图表示 Delphi数据库基础数据库基础清华大学出版社CASE语句的例子:CASE Choice of 1:EvaluateChoice;2:InitializeFunction;A,B,C:DoThis;END;Delphi数据库基础数据库基础清华大学出版社循环语句 REPEAT/UNTIL语句 REPEAT/UNTIL构成一个循环语句,该循环语句总是先执行一次,然后判断UNTIL中的条件语句。如果条件成立(值为TRUE),则终止循环语句的执行,转而执行REPEAT/UNTIL后面的语句;如果条件不成立(值为False),则继续执行循环语句。下面是Repeat语句的语法规则:Delphi数据库基础数据库基础清华大学出版社WHILE/DO语句 WHILE/DO构成一个循环语句,该循环语句执行前总是先判断WHILE中的条件,如果条件成立(值为TRUE),则执行循环语句,然后再判断条件语句是否成立;如果条件不成立(值为False),则终止执行循环语句。下面是WHILE/DO语句的语法规则:Delphi数据库基础数据库基础清华大学出版社FOR/DO语句 FOR/DO是最简单的循环语句之一。该循环语句的执行次数必须预先给定。控制循环次数的变量必须是有序数数据类型。Delphi数据库基础数据库基础清华大学出版社Break语句和Continue语句 在前面的FOR/DO语句介绍中,我们知道,如果要退出循环,跳到FOR/DO语句下面的语句执行,可以使用break语句;如果不想执行循环下面的语句,而要求直接进入下一个循环,可以使Continue语句。其实,Break和Continue可以应用于for,while或repeat循环语句中。Break语句引起控制流退出一个for,while或repeat循环语句,Continue语句引起控制流直接进入下一次for,while,repeat循环语句。Delphi数据库基础数据库基础清华大学出版社其它语句 GOTO语句GOTO语句强行将程序转向一个指定的点执行。该指定点用一个标号标识。下面是一个GOTO语句的例子:JUMP1:Writeln(This is a jump point for a GOTO);For Count:=1 to 15 DO BEGIN arrayCount:=GetChar;if arrayCount=$D Then GOTO JUMP1;如果输入回车符,则转到JUMP1执行 writeln(I Have collected,Count,Of 15 Characters.);END;Delphi数据库基础数据库基础清华大学出版社Exit语句 EXIT语句的功能是退出当前的代码块。如果代码块是主程序,EXIT语句导致程序的终止;如果当前块是嵌套的,EXIT语句跳到外一层嵌套继续执行。如果当前块是过程或函数,EXIT语句导致过程或函数执行终止,跳到调用过程或函数的语句的下一条语句执行。Delphi数据库基础数据库基础清华大学出版社HALT语句 HALT语句导致程序的非正常结束,并返回到操作系统。通常是在程序遇到致命错误时才使用HALT语句。HALT语句后可跟一个整数代码,以指定错误的原因。Delphi数据库基础数据库基础清华大学出版社4.6 过程(Procedure)与函数(function)过程与函数的定义 过程与函数的定义包括过程原型或函数原型、过程体或函数体的定义。过程定义的形式如下:procedure procedureName(parameterList);directives;localDeclarations;beginstatements;end;Delphi数据库基础数据库基础清华大学出版社参数 一般将函数定义时参数列表中的参数称为形参,将函数调用时参数列表中的参数称为实参。在函数原型中,多个参数之间用分号隔开,同一类型的参数可以放在一起,以逗号隔开。在函数调用的时候,在函数原型中,多个参数之间用逗号隔开。例如:function ShowNum(Num:Double;Precision:Integer=4):Boolean;Delphi数据库基础数据库基础清华大学出版社提问与解答环节Questionsandanswers Delphi数据库基础数据库基础清华大学出版社添加标题添加标题添加标题添加标题此处结束语点击此处添加段落文本.您的内容打在这里,或通过复制您的文本后在此框中选择粘贴并选择只保留文字 Delphi数据库基础数据库基础清华大学出版社谢谢您的观看与聆听Thankyouforwatchingandlistening
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!