您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 第2章-Delphi的编程语言
第2章Delphi的编程语言保留字和标识符2.1数据类型2.2常量和变量的定义2.3过程与函数2.6语句2.5运算符和表达式2.4Delphi开发应用程序时的实质性工作是编写功能代码,而编写功能代码的基础是ObjectPascal(对象Pascal)语言。对象Pascal程序设计语言是在Pascal语言的基础上发展起来的,它继承了Pascal语言语法严谨、数据结构丰富等优点,同时融入了面向对象的语法要素,成为了一种完善的面向对象编程语言。Delphi并不是一种计算机语言,而是一个基于对象Pascal语言的Windows应用程序开发工具系统。因此,要能够使用Delphi开发出一个完整的应用程序,就必须熟悉和掌握对象Pascal语言的语法和使用方法。2.1保留字和标识符2.1.1保留字和标准指令符对象Pascal语言中规定了一批英文单词,赋予了它们特定的含义,在进行程序设计时不能被重新定义或进行它用,这些单词称为保留字。此外,对象Pascal语言中还定义了39个指令字(Directives),它们也具有特殊的含义;如果由用户重新定义了这些指令字,在作用域内它们就失去了原来的意义。2.1.2标识符标识符是用来标识程序、过程、函数、类型、符号常量、变量、对象等的名字的符号。对象Pascal语言中规定,标识符由字母A~Z、a~z、下划线和数字0~9组成,标识符的命名有以下3条限制:(1)首字符必须是字母或下划线,不能是数字;(2)标识符不能和保留字相同;(3)在默认状态下,Delphi只认为标识的前255个组成字符是有意义的。在对象Pascal语言中,标识符不区分大小写,所以标识符Myname,MyName,myname,myName和MYNAME被认为是同一个标识符。2.1.3注释为了使程序易读,通常要为程序添加注释,即对程序模块、语句或命令做文字解释。运行时,这些文字不会作为命令的一部分而被执行,因而不会影响原来的程序。对象Pascal语言中的注释有下面3种形式:组合符号“{”与“}”的成对使用表示它们之间的内容为注释部分;组合符号“(*”与“*)”的成对使用表示它们之间的内容为注释部分;符号“//”的单个使用表示所在行的该符号之后的内容为注释。2.1.4控制台程序中的屏幕输入和输出在介绍可视化编程方法前,我们采用read、write来进行屏幕输入、输出。1.输入语句格式read(变量表);或readln(变量表);变量表里面变量与变量之间用逗号隔开;readln表示下一个语句将从下一行开始操作;输入时,整型或实型用空格或回车隔开,字符型之间无需分隔,一个接一个输入。2.输出语句格式write(变量表);或writeln(变量表);变量表里面变量与变量之间用逗号隔开;writeln表示从下一行开始显示;变量表中可对数值类型的数据限定显示宽度,例如write('a=',a:2:0)指定a显示宽度为2位,小数为0位。2.2数据类型对象Pascal语言的数据类型整数类型字符类型布尔类型枚举类型子界类型有序数据类型实数数据类型集合类型数组类型记录类型文件类型类类型类引用类型接口类型简单数据类型字符串类型结构类型指针类型过程与函数类型可变类型数据类型2.2.1简单数据类型简单数据类型(Simple)包括:有序数据类型(ordinal);实数数据类型(real)。有序数据类型:1.整数类型整数类型(Integer)的各种常用类型:Integer或Longint,Int642.字符类型基本的字符类型(Character)包括AnsiChar和WideChar两种。通用的字符类型为Char,与AnsiChar类型相同。一般来说,对字母、数字或符号,用代表它们的符号来表示较好;而涉及特殊字符时用数字符号表示较好。下面列出了常用的特殊字符。#9或chr(9):跳格(Tab键)。#10或chr(10):换行。#13或chr(13):回车(Enter键)。3.布尔类型布尔类型(Boolean)包括以下4种:Boolean,ByteBool,WordBool和LongBool。对象Pascal语言预定义了两个常量标识符False和True,可以为Boolean类型的数据赋值为False或True,对应的序数值为0和1。4.枚举类型枚举类型(Enumerated)是一种用户自定义类型,它的定义由一组有序的标识符组成。枚举类型定义形式如下:type类型名称=(值1,值2,…,值n);例如:typeWeekdays=(Sunday,Monday,Tuesday,Wednsday,Thursday,Friday,Saturday);Colors=(mcRed,mcGreen,mcBlue);Shapes=(Square,Rectangle,Circle,Ellipse);//类型定义当在程序中定义了枚举类型时,可按如下形式声明变量:varMycolor:Colors;//变量声明5.子界类型子界类型(Subrange)为某个有序类型的子集。子界类型也是一种用户自定义类型,它规定了值域的上界和下界及取值的类型。子界类型的定义格式如下:type类型名称=值域下界..值域上界;例如:typeSomeNum=1..255;Caps='A'..'Z';//类型定义如果定义了变量Num为Somenum类型:varNum:SomeNum;则变量Num的值只能为1~255;若在程序中Num的值小于1或大于255均为非法情况。6.实数类型实数类型定义了一个能用浮点数表示的数字集合。对象Pascal语言中常用的实数类型:Real,Real48,Double2.2.2字符串类型字符串类型(String)主要包括3种类型:ShortString,AnsiString,WideStringWideString与AnsiString类似,只不过是基于WideChar字符类型(Unicode字符集),用来存储Unicode字符。对象Pascal语言引入这种类型,主要是为了支持OLE编程。一般情况下,当声明一个变量为字符串类型时使用String保留字。默认时,String类型就是AnsiString类型。Delphi中封装了众多的String类型字符串的操作过程和函数。因此应尽量使用String类型。2.2.3结构类型结构类型(Struct)包括集合类型(Set)、数组类型(Array)、记录类型(Record)、文件类型(File)、类类型(Class)、类引用类型(ClassReference)、接口类型(Interface)等。1.集合类型一个集合由集合成员组成,集合的成员元素是无序的。集合类型(Set)的类型定义方法:type类型名称=setof元素类型;例如:typeTSomeInts=1..250;//基本类型为子界类型TIntSet=setofTSomeInts;//定义集合类型TACopyOfByte=setofByte;TSuit=setof(Club,Diamond,Heart,Spade);TACopyOfChar=setofChar;集合类型表示一组值,该组值由集合所依据的有序类型定义。2.数组类型数组类型(Array)的数据为某一类相同类型的元素按一定的顺序组成的序列,包括静态数组和动态数组两种。(1)静态数组。静态数组就是传统Pascal语言中的数组类型。静态数组的定义方式:type数组类型名=array[下标类型]of基类型//一维数组或数组类型名=array[下标类型1,…,下标类型n]of基类型//多维数组例如:typeMyArray=array[1..100]ofChar;//一维数组Tmatrix1=array[1..10]ofarray[1..50]ofReal;//二维数组Tmatrix2=array[1..10,1..50]ofReal;//与上面的二维数组相同数组类型定义了一组指定类型的元素序列,在方括号中填入下标值就可访问数组中的元素。定义数组时,方括号也用来指定可能的下标值。使用前必须声明该类型的变量,来真正申请一段内存空间:varMyStr:MyArray;MyEx:Tmatrix1;使用数组时,经常需要编写的程序代码就是访问数组中的元素。静态数组中元素的访问是通过数组的下标进行的。访问数组中元素的一般形式为:数组变量名[下标表达式]//一维数组数组变量名[下标表达式1,…,下标表达式n]//多维数组例如:vara:array[1..8]ofreal;i:integer;beginfori:=1to8doa[i]:=i/2;fori:=7downto1doa[i+1]:=a[i];end;(2)动态数组。它不需要在声明时指定大小,因此为在程序中动态地开辟存储空间提供了方便的途径。动态数组的定义方式如下:type数组类型名=arrayof基类型;//一维数组数组类型名=arrayofarrayof…arrayof基类型//多维数组例如:typeMyFlexibleArray=arrayofReal;//定义动态数组3.记录类型记录类型(Record)可以由不同类型的元素组成,这些元素称为域。在记录类型中为每个域指定了一个名称和数据类型。数据类型可以是对象Pascal语言中预定义的类型,也可以是程序员自定义的类型。记录类型的定义方式如下:type记录类型名=record域名1:类型1;域名2:类型2;…域名n:类型n;end;记录类型定义中列出了所有域,每个域对应一个域名,通过域名可以访问它。4.文件类型文件类型代表物理磁盘文件,是一个线性序列的数据集。除了文件类型本身,其他任何类型都可以是它的元素类型。文件类型定义形式如下:type文件类型名=fileof元素类型;TextFile是预定义的类型,表示一个文本文件。2.2.4指针类型指针类型(Pointer)的变量指向的是内存空间的地址。指针类型的定义形式如下:type指针类型名=^类型;一旦定义了指针变量,就可以用@符号把另一个相同类型变量的地址赋给它。2.2.6可变类型有时要对一些数据类型变化的数据进行操作,并且要到运行时才能根据实际情况确定数据的类型,这时就可以使用可变类型(Variant)的数据。var变量名:Variant;例如:varv1,v2,v3,v4:Variant;Beginv1:=1;//整型值v2:=1234.56;//实型值v3:='Hello';//字符串值v4:=v1+v2+100;//实型值1335.56…end;2.3常量和变量的定义2.3.1常量常量是打算在程序中多次引用的固定量的名字。它是不变的数,它的值在程序执行期间也不能变。常量定义形式如下:const常量名=常量值;例如:ConstPi=3.1415926535897932385;Thousand=1000;AuthorName='MarcoCantù';在声明常量的时候,等号右边可以使用一些预定义的函数。2.3.2变量变量是一个特定数据实体,它有预定义的数据类型,并且可在内存中某个唯一的地址存放指定类型的值。变量在使用前必须声明,声明变量时必须指定一种数据类型。变量的定义形式如下:var变量名:类型名;一旦变量的类型被指定,就只能对变量执行该变量类型支持的操作。2.3.3类型常量类型常量不是一个常量,它是一个全局变量,只不过在编译时用指定的值预初始化,使其在程序开始运行时具有指定的初值,在运行中仍可以修改。类型常量的定义方法如下:const名字:类型=值;例如:constLeft:Integer=40;ReadOnly:Boolean=False;2.4运算符和表达式2.4.1运算符对象Pascal语言中的运算符有@、not、^、*、/、div、mod、and、shl、shr、as、+、−、or、xor、=、、、、=、=、in、is等。运算符分为两类:单目运算符和双目运算符。运算符的优先级如下:第一级(最高):@、not。第二级:*、/、div
本文标题:第2章-Delphi的编程语言
链接地址:https://www.777doc.com/doc-4013288 .html