首页 Delphi教程—Delphi语法基础

Delphi教程—Delphi语法基础

举报
开通vip

Delphi教程—Delphi语法基础Delphi教程第2章Delphi语法基础2.1保留字与标识符2.1.1标识符  标识符是ObjectPascal语言中各种成分  的名称,这些成分包括变量(Var)、常量(Const)、类型(Type)、过程(Procedure)、函数(Function)、方法(Method)、单元(Unit)等。  标识符可以分为三类:标准标识符、自定义标识符和限定标识符。1.标准标识符(1)标准常量,如False、Maxint、True等;(2)标准类型,如Boolean、Char、Real等;(3)标准函数,如Sin、Co...

Delphi教程—Delphi语法基础
Delphi教程第2章Delphi语法基础2.1保留字与标识符2.1.1标识符  标识符是ObjectPascal语言中各种成分  的名称,这些成分包括变量(Var)、常量(Const)、类型(Type)、过程(Procedure)、函数(Function)、方法(Method)、单元(Unit)等。  标识符可以分为三类: 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 标识符、自定义标识符和限定标识符。1.标准标识符(1)标准常量,如False、Maxint、True等;(2)标准类型,如Boolean、Char、Real等;(3)标准函数,如Sin、Cos、Abs、Arctan  等;(4)标准过程,如Dispose、Get、New、Pack、Put等;(5)标准文件,如Input、Output等。2.自定义标识符  程序员根据程序设计的需要,自己定义的常量、变量、类型、函数、过程等所取的名字。自定义标识符可以由任意长的一个不带空格的字符串组成,包括字母A~Z、a~z、数字0~9和下划线“_”等。  定义标识符需要遵循以下规则:(1)标识符不区分大小写;(2)标识符只能以字母或下划线开头,不能以数字开头;(3)标识符可任意长度,但只有前225个字符有效;(4)标识符中间不允许有空格;(5)不允许使用ObjectPascal语言的保留字作为标识符。3.限定标识符  在Delphi程序中可引用多个单元,而各个单元中全局变量、函数、过程等可能会同名,在引用时需用限定标识符来区分它们:VarY:real;Y:=System.cos(pi);  其中System称为限定符,而System.cos称为限定标识符。2.1.2保留字   保留字由系统规定具有特定意义,不能被重新定义或作他用,定义了65个保留字。注意:1.单词at和on具有特殊含义,不要与它们同名。2.保留字和ObjectPascal一样不区分大小写。3.Delphi集成开发环境的代码编辑器中,黑体显示保留字和指令字,定义时不要与这些黑体字一样。ObjectPascal的保留字andarrayasasmbegincaseclassconstconstructordestructordispinterfacedivdodowntoelseendexceptexportsfilefinalizationfinallyforfunctiongotoifimplementationininheritedinitializationinlineinterfaceislabellibrarymodnilnotobjectoforoutpackedprocedureprogrampropertyraiserecordrepeatresourcestringsetshlshrstringthenthreadvartotrytypeunituntilusesvarwhilewithxor2.1.3指令符   指令字只在特殊的程序位置、或当上下文关联时有意义的程序区段有自己特殊的意义,而在其他场合,用户可对其重新定义,即可将其定义为标识符,ObjectPascal不会指示出错,当用户重新定义这些指令字后,在作用域内它们就失去了原来的意义了。  ObjectPascal中规定的指令符有39个说明:指令符private、protected、public、published和automated在定义对象类型时也作为保留字,而在其他场合则作为指令符。2.1.4注释  注释可增加程序的可读性和可维护性。  ObjectPascal语言中注释有三种形式:1.组合符号“{”与“}”的成对使用表示它们之间的内容为注释部分。2.组合符号“(*”与“*)”的成对使用表示它们之间的内容为注释部分。3.符号“//”的单个使用表示所在行的该符号之后的内容为注释。注意:1.注释符“{”与“}”、“(*”与“*)”在使用时不支持注释的嵌套,而且必须成对使用。2.对于单行和少量几行注释使用符号“//”,对于大块注释使用“{”和“}”或“(*”和“*)”。3.有时可利用注释在代码中形成一个醒目标志。4.在注释符“{”或“(*”后紧接着是一个美元符号“$”时,表示该句是一个编译器指令,它与普通的注释不同,通常用来对编译过程进行设置。2.2数据类型  描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合称为数据。  数据类型可以分为标准数据类型及高级数据类型等,还可以通过数据类型声明语句在预定义数据类型的基础上定义新数据类型。说明:1.标准数据类型属于ObjectPascal内部约定的数据类型,无需定义就可以直接使用。2.高级数据类型体现了特殊的数据结构,在使用之前必须由用户自己定义。3.数据类型中整型、字符型、布尔型、枚举型和子界型被称为顺序类型,其取值是一个有序集合,每一个可能取值都与顺序有关。2.2.1数值型数据  数值型数据可分为整数类型和实数类型。1.整数类型 整数类型是存储整数数据的类型,分为基本整形和一般整形。基本整形:短整型、小整型、长整型、64位整型、字节型、字型、长字型一般整形:整型、序数型注意:尽量使用一般整型Integer和Cardinal,可以最大限度发挥CPU和操作系统的性能。2.实数类型  实数类型是存储实数数据的类型,分为基本实型和一般实型。基本实型:单精度实型、扩展型、双精度实型、货币型一般实型:实型注意:Real类型与Double类型完全等价。 Currency类型至少有4位有效的小数位。2.2.2字符型数据  ObjectPascal中的字符型数据可以分为字符型和字符串型2类7种。1.字符类型 ObjectPascal包括3种形式的字符型数据类型名称字节数取值范围Ansi字符型AnsiChar1扩展ANSI字符集宽字符型WideChar2UniCode字符集字符型Char1(2)扩展ANSI字符集说明:(1)前2种为基本字符类型后一种为一般类型。(2)Char与AnsiChar完全等价,但Char常用。2.字符串类型 字符串类型是存储字符串数据的类型,ObjectPascal包括了4种形式的字符串型数据类型名称最大长度所需内存空间短字符串型ShortString255个字符2~256B长字符串型AnsiString231个字符4~2GB宽字符串型WideString230个字符4~2GB字符串型String231个字符4~2GB说明:(1)AnsiString类型的定义是动态分配的,内容由AnsiChar类型的字符组成,长度仅受可用内存空间的限制,以空字符Nul作为结尾。(2)String字符串类型,既可以是ShortString类型也可以是AnsiString类型,默认定义是AnsiString类型。2.2.3布尔型数据   布尔型数据用于关系运算和条件语句的逻辑运算,包括4种形式的布尔型数据。说明:(1)后3种类型是为了兼容其他语言而设置的,编程时应尽量使用Boolean类型。(2)Boolean取值为False和True两个符号常量。类型名称字节数取值布尔型Boolean1只能为0(False)或1(True)字节布尔型ByteBool10(False)或非0(True)宽布尔型WordBool20(False)或非0(True)长布尔型LongBool40(False)或非0(True)2.3常量与变量2.3.1常量  常量即在程序的执行过程中其值不能改变的量。  常量有两种,一种是常量值本身,也称为直接常量;另一种是要用声明定义的标识符表示的常量,也称为声明常量。声明常量又可以分为符号常量和类型常量。1.直接常量  直接常量是指在程序中直接引用的常数,如整型常数、实型常数、字符型常数、字符串型常数和布尔型常数。2.声明常量(1)符号常量在程序中,某一个常数反复多次出现,可以定义一个标识符来代表该常数,这个标识符就是符号常量,其值在定义后不会改变。也称纯常量。定义符号常量使用常量说明语句,其语法 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 为:Const<常量名1>=<常量值1>;…<常量名n>=<常量值n>;其中Const是保留字,表示常量定义段开始。注意:●保留字Const可单独一行也可与常量一行。●不能在程序中给常量另行赋值,否则将导致语法错误。●Delphi由常量值判断常量名属于哪种类型。(2)类型常量  类型常量用于保存数组、记录、过程以及指针等类型的值,不能出现在常量表达式中。在默认的编译器状态下,类型常量的值可改变,但当在程序中加入编译命令{$j-}时,则类型常量的值在运行期就无法改变。声明类型常量的语法规则为:Const<类型常量名>:<类型>=<常量值>; 其中类型是除文件型和可变型的所有类型,常量值可以是和类型相应的常量表达式。2.3.2变量1.变量的声明  变量在单元、函数或过程的声明部分进行声明,声明的位置决定了变量的作用域。声明包括两部分:变量名和它所属的类型,变量声明的语法格式为:Var<变量名1>:<类型名1>;…<变量名n>:<类型名n>;当多个变量具有相同数据类型时,格式如下:Var<变量名1>,<变量名2>,…<变量名n>:<类型名>;其中,Var是保留字,表示变量声明段的开始;同类型的<变量名>可超过一个,<变量名>间用“,”分隔;<类型名>可以是基本数据类型或是由用户定义的高级数据类型;2.变量的使用 一旦声明了一个变量应及时对它进行初始化,最简单方法就是给变量赋值,在表达式中使用变量。2.4运算符与表达式  按照操作数数目的多少来分,运算符分为下面两类:单目运算符和双目运算符。单目运算符一般放在操作对象的前面,双目运算符都放在两个操作数之间。  表达式是表示某个求值规则的运算公式,由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。2.4.1算术运算符与算术表达式1.算术运算符  算术运算符对浮点数和整数进行加、减、乘、除和取模运算,取正“+”和取负“-”是单目运算符,其他均为双目运算符。说明:(1)+、-、*运算中,参加运算的数可以是整型和实型,结果自动向精度高的类型转化。(2)参加除法运算“/”,结果都是实型的商。(3)参加整数除法“Div”和求余运算“Mod”的数必须是整型,结果也是整型数,符号与被除数的符号相同,小数部分被舍去。(4)在表达式a/b、aDivb和aModb中,如果b的值为0,将会触发一个错误。2.算术运算符的优先级  同级运算自左至右,如果含有括号,则先计算括号内表达式的值。3.算术表达式  将数学式改写为算术表达式,考虑三个问题:一是语法,二是优先级,三是类型。优先顺序运算符1+、-(取正、取负)2*、/(法、除法)3Div、Mod(整除、求余)4+、—(加法、减法)说明:(1)数学式中省略的运算符和表示函数参数的括号必须添加上去(2)必须注意优先级的处理,恰当利用标准函数,注意数据类型。2.4.2逻辑运算符与布尔表达式  逻辑运算符可分为布尔运算符、位运算符和关系运算符。1.布尔运算符  只能对两个布尔型操作数进行运算,结果仍为布尔型,True或False。  其中,NOT是求“非”,为一元运算符;AND是求“与”,OR是求“或”,XOR是求“异或”,均为二元运算符。2.位运算符运算符操作举例操作数类型结果类型功能说明NOTNOTxintegerinteger即按二进制形式将每位求反ANDaANDbintegerinteger将两者相对应的位进行AND运算ORaORbintegerinteger将两者相对应的位进行OR运算XORaXORbintegerinteger将两者相对应的位进行取XOR运算,两者不同时结果为1SHLaSHLbintegerinteger将a的二进制值向左移动b位,左移一位相当于乘2SHRaSHRbintegerinteger将a的二进制向右移动b位,右移一位相当于除2注意:右移操作时原值的低位丢失,高位补0;左移操作时原值的高位丢失,低位补0。3.关系运算符关系符操作操作数类型结果类型=等于简单类型,字符串或可变类型,类,类引用,指针,集合类型Boolean<>不等于简单类型,字符串或可变类型,类,类引用,指针,集合类型Boolean<小于简单类型,字符串或可变类型Boolean>大于简单类型,字符串或可变类型Boolean<=小于等于简单类型,字符串或可变类型Boolean>=大于等于简单类型,字符串或可变类型Boolean4.布尔表达式  布尔表达式由布尔运算符和布尔类型的操作数所组成,包括关系运算表达式和运算结果为布尔类型的函数,如Odd(x)、FileExists(x)、等。但位运算符的结果是整数类型,不能直接作为布尔操作数。2.4.3字符串运算符连接运算符“+”主要用于连接两个或更多的字符串。最简单的字符串表达式是字符常量、字符串常量、字符变量、字符串变量或字符函数的引用。字符串表达式格式为:<字符串表达式>+{<字符串>|<字符>}当两个字符串用连接运算符连接起来后,第二个字符串直接添加到第一个字符串的尾部,结果是包含两个源字符串全部内容的新字符串。如果要把多个字符串连接起来,每两个字符串之间都要用“+”号分隔。2.4.4运算符的优先级优先顺序运算符分类描述1@(取地址),NOT,-一元运算符2*,/,DIV,MOD,AND,SHL,SHR乘除及类型强制转换运算符3+,-,OR,XOR加减运算符4=,<>,<,>,<=,>=,in,is关系、集合成员及类型比较运算符2.5常用系统函数与过程2.5.1数值运算函数Delphi的数值运算函数包含了常用的数学函数(如三角函数、对数函数等)和适合计算机数据处理的其他函数(如求数组中的最大值、求三角形的斜边长等)。2.5.2字符处理函数对字符的处理主要包括:大小写转换、比较先后顺序、合并、查找、截取、插入、求长度以及类型转换等。2.5.3日期时间函数调用日期时间函数可对日期和时间进行处理2.5.4顺序类型函数1.顺序类型顺序类型指整型、字符型、布尔型、枚举型、子界型5种数据类型,如下所述:(1)整数的的序数是其自身;(2)字符的序数是其ASCII码;(3)布尔型数据:False序数为0,True为1;(4)枚举型第一个数据序数为0,其余类推;(5)子界型第一个数据序数为1,其余类推。除第一个序数,每一个都有一个前趋值;除最后一个序数,每一个都有一个后继值。2.顺序函数2.6语句2.6.1语句的基本概念按执行时间可分为:声明语句和可执行语句。顺序函数引用形式函数功能描述序数函数Ord(x);返回数据x的序数前趋函数Pred(x);返回数据x的前趋值。如果将Pred函数用于第一个数据,就可能产生一个编译时的错误后继函数Succ(x);返回数据x的后继值。如果将Succ函数用于最后一个数据,就可能产生一个编译时的错误首序数函数Low(x);返回顺序型数据x取值集合中的第一个值(序数最小)。它还可以返回数组的第一个元素末序数函数High(x);返回顺序型数据x取值集合中的最末一个值(序数最大),它还可以返回数组的最末一个元素  声明语句包括单元说明语句、类型说明语句、变量说明语句、过程说明语句、函数说明语句和程序区段标识语句等。  可执行语句包括赋值语句、运行控制语句和结构控制语句等。  按语句的描述形式,可分为简单语句、结构语句和复合语句等。   简单语句只含有一个语句定义符或特殊标志;结构语句往往含有多于一个的语句动词;复合语句则是由begin和end括起来的若干个简单语句、结构语句和复合语句,允许复合语句多层嵌套,或为空,也就是在begin和end之间没有其他语句。2.6.2常见声明语句1.标号声明语句标号声明语句即用一个整型数来表示程序的某个执行语句,一行标号声明语句可以同时声明几个标号,其用法如下所示:labelAa,Ab;varI:integer;begin…//语句if(I=0)thengotoAa;…//语句Aa:begin…//语句end;end;2.类型声明语句 在ObjectPascal中,所有的变量必须是某种特定的数据类型,类型决定了它所能包含的数值和可进行的操作,用类型声明语句可以定义新的数据类型。例如:TypeTmyDim:Array[1..10,1..5]ofDouble;3.过程声明语句 过程可以被看成一段小程序,用来实现某种特定的目标,在完整的程序中它被当作一个语句来执行。在建立过程之前应先声明。procedureNumString(N:Integr;VarS:string);4.函数声明语句 函数与过程相似,主要区别在于函数必须有返回值,函数的声明参见下面的语句,其中,最后的Real表示函数的返回数据类型。FunctionPower(X:Real;Y:Integer):Real;2.6.3赋值语句和程序的顺序结构1.赋值语句赋值语句的语法格式为:<变量名>:=<表达式>;2.类型兼容 类型兼容是指数据类型不完全相同的量之间能进行的运算和赋值操作。3.利用赋值语句给对象属性赋值  由于属性总是归属于对象才有实际意义,所以引用属性时用符号“.”来连接表示其隶属关系。如组件Editl的字体的颜色属性表示为:Editl.Font.Color。4.顺序结构  顺序结构是最简单、最常用的结构。在该结构中,各操作块按照出现的先后顺序依次执行,不产生程序流程的其他转移。它是任何程序的主体结构,即使在选择结构或循环结构中,也常以顺序结构作为其子结构。通常由若干个赋值语句或其他简单语句构成。2.6.4条件语句和程序的选择结构  实现选择结构的是IF语句和Case语句,这两种语句又称条件语句,条件语句的功能就是根据表达式的值有选择地执行一组语句。1.if语句  通过条件的布尔表达式值选择执行路径。 if<条件>then[<语句1>][else<语句2>]; if语句分为简单条件语句和复合条件语句。简单条件语句的<语句>中不包含其他的条件语句。如果在If语句格式中的<语句1>或<语句2>本身又是一个If语句,则称为If语句的嵌套,嵌套的If语句又被称为复合条件语句。2.Case语句  Case语句用来实现多分支选择结构。Case语句描述了多路择一的功能,它根据“选择器表达式”的值决定执行相应的语句。Case语句的语法格式为:case<选择器表达式>of<情况常量表1>:<语句1>;…<情况常量表n>:<语句n>;[else<其他语句列>;]end;说明:<选择器表达式>的值必须是顺序类型。2.6.5循环语句和程序的循环结构  从某处开始有规律地反复执行某一程序块的现象称为“循环”,完成这一功能的程序结构为“循环结构,”而其中重复执行的程序块称为“循环体”。循环结构语句有3种,它们分别是:While语句、Repeat语句以及For语句。1.While语句  While语句属于前测型循环结构。首先判断条件,根据条件决定是否执行循环,执行循环的最少次数为0。其语法格式为:while<条件>do[<循环体>];说明:可在(循环体)中任何位置Break语句来终止While循环,Break语句通常位于IF语句后。可在循环体中任何位置放置Continue语句,以便在整个循环体没有执行完就重新判断(条件),以决定是否开始新的循环。Continue语句通常位于IF语句之后。2.Repeat语句  Repeat语句属于后测型循环结构,首先执行循环体,然后判断条件,根据条件决定是否继续执行循环,执行循环的最少次数为1。repeat[<循环体>]until<条件>;3.For语句  若知道要执行多少次循环时,则使用For循环结构。For循环使用一个循环变量,每重复一次循环之后,循环变量的值就会自动增加或者减少。For语句的语法格式为:for<循环变量>=<初值>{to|downto}<终值>do[<循环体>];  说明:<循环变量>只能是顺序类型,TO表示计数器递增,DownTo表示计数器递减。4.循环的嵌套  循环语句的循环体中仅包含了简单语句,称为单重循环。  如果在循环体中又包含了另一个循环结构,则称为多重循环,又称为循环的嵌套。  在循环体中的嵌套称为内循环,外部的循环称为外循环。多重循环嵌套根据循环结构嵌套层数可以分为二重循环、三重循环等。5.循环的中断  特殊情况下,需要中断正在执行的循环,可以使用break语句或Continue语句。可以放在循环体的任意位置,通常放在If语句之后。  执行Break语句的结果是:跳出整个循环,执行<循环体>之后的语句。  执行Continue语句的结果是:跳出本轮循环,然后判断循环条件是否成立,再决定是否开始新一轮的循环。小结  本章主要介绍了ObjectPascal的最基本的语法,主要包括基本词法、基本数据类型、常量与变量、运算符与表达式、常用函数与过程、语句等。谢谢大家!
本文档为【Delphi教程—Delphi语法基础】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
都绘匠人
国家注册城乡规划师,资深工程师,具备城乡规划领域多年从业经历
格式:ppt
大小:884KB
软件:PowerPoint
页数:46
分类:理学
上传时间:2022-04-23
浏览量:2