您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 《Delphi程序设计及实验指导》电子教案--第2章
Delphi7程序设计与实验指导张景安赵慧勤张叶娥傅文博编著第二章面向对象的Pascal•Delphi的编程语言即ObjectPascal是在Pascal的基础上发展起来的,它继承了Pascal语言语法结构严谨和编译代码高效优化等优点。本章将介绍ObjectPascal的数据类型、常量、变量、运算符、语句、函数和过程等。2.1数据类型•2.1.1简单数据类型•简单类型包括有序类型和实型两种。•1.有序类型•有序类型包括整型、字符型、布尔型、枚举型和子界型。•有序类型是一种线性的数据结构,每个值都有唯一的前驱(除第一个)和唯一的后继(除最后一个)。•(1)整型•整型的表示范围及存储格式见表2-1。类型取值范围存储格式Integer-2147483648~2147483647有符号32位整数Cardinal0~4294967295无符号32位整数Shortint-128~127有符号8位整数Smallint-32768~32767有符号16位整数Longint-2147483648~2147483647有符号32位整数Int64-263~263-l有符号64位整数Byte0~255无符号8位整数Word0~65535无符号16位整数Longword0~4294967295无符号32位整数表2-1整型的取值范围和存储格式2.1数据类型2.1数据类型•(2)字符型•字符型的类型标识符是Char。字符型的数据只能是单个字符,不能是一串字符。例如'ABC','x=?'等都不是字符型的数据,而是字符串。(3)布尔型•通常用到的布尔类型是Boolean,一个Boolean类型的变量占一个字节,它只有两种取值:true和false。定义变量i,ch,t分别为整型、字符型、布尔型。•var•i:Interge;•ch:Char;•t:Boolean;2.1数据类型•(4)枚举类型•枚举类型是用一些标识符来表示一系列有序数,即由一些标识符组成的一个线性表。定义枚举类型的语法是:•type•typeName=(val1,...,valn)•(5)子界类型•子界类型指的是某个有序类型(称为基类)的一个子集。定义子界类型的语法是:•type•typeName=Low..High;2.1数据类型•2.实型•表2-2给出了实型的表示范围和存储格式。类型范围有效位所占位数Real±2.9*10-24~1.7*1030811~-28Real48±2.9*10-39~1.7*103811~-26Single±1.510-45~3.4*10387~84Double±5.0*10-324~1.7*1030815~168Extended±3.6*10-4951~1.1*10493219~2010Comp-263+l~263-l19~208Currency-922337203685477.5808~922337203685477.580719~208表2-2实型的表示范围和存储格式2.1数据类型•2.1.2字符串类型•字符串类型是用一对单引号括起来的一系列字符。字符串类型的表示范围和存储格式见表2-3。类型最多字符字节数字符集ShortString2552~256BANSI向后兼容AnsiString2314~2GBSBCS,MBCSLongString2314~2GBUnicodeWideString2304~2GB等价于AnsiChar表2-3字符串类型的表示范围和存储格式2.1数据类型•2.1.3结构类型•结构数据类型是一种复合数据类型,由多个数据组成。结构类型包括集合类型、数组类型、记录类型、文件类型等。•1.集合类型•集合类型是一组相同类型元素的组合。定义集合类型:•type•Name=setofBaseType•2.数组•数组是一些具有相同类型元素的有序组合。•(1)静态数组静态数组的声明格式为:•type•Name=array[indexType1,...,indexTypen]ofBaseType;2.1数据类型•(2)动态数组•动态数组没有固定的大小或长度。当赋值或使用某些函数(如SetLength)时,动态数组在内存中重新分配。•动态数组的声明格式为:•type•Name=arrayofBaseType;•定义动态数组不需声明元素的个数。例如:•type•Dynamicarray=arrayofReal;•var•a1,a2:Dynamicarry;•a1:=a2;//a1和a2指向相同的内存单元。2.1数据类型•3.记录类型•记录类型(有的语言中被称为结构)是一个不同种类元素的集合,每个元素称为字段(field)。在声明时,指定记录的名字和每个字段。声明格式为:•type•RecordTypeName=record•FieldList1:type1;•FieldList2:type2;•…•FieldListn:typen;•end;2.1数据类型•4.文件类型•文件类型是由相同类型的元素组成的有序集合。文件类型的声明格式为:•type•fileTypeName=fileoftype•例:声明一个文件类型RecordList,以上面已定义的TdateRec为数据类型。•type•RecordList=fileofTdateRec;•var•Myrecordlist:RecordList;2.1数据类型•2.1.4可变类型•有时要对一些数据类型变化的数据进行操作,并且在编译期间不能确定数据的类型,这时就可以使用可变类型的数据。•可变类型可以使用除记录、集合、静态数组、文件等结构类型、指针类型及长整型外的所有类型。可变类型有一个特殊的值Null,表示不明的或丢失的数据。•可变类型变量的声明格式为:•var•v1:Variant;2.2常量与变量•2.2.1标识符•标识符是描述ObjectPascal程序各个部分的名称,这些部分包括标记、对象、过程、类型、单元、变量及程序。标识符的大小写无关(即它不区分大小写),并且遵循以下规则:•可为任意长度,但只有前255个字符有效。•标识符的第1个字符必须是字母或下划线。•跟在第1个字符后面的字符必须是字母、数字或下划线。•标识符中不允许出现空格。•2.2.2常量•常量是一个在程序的运行过程中具有不变值的标识符,常量的声明格式如下:•Const常量名=表达式;变量不能在一个常量声明中使用,但算术和逻辑运算符可以,下面的函数可以在常量声明中使用。•AbsLowRoundChrOddSizeOfHiOrd•SuccHighPredSwapLengthPtrTruncLo2.2常量与变量2.2常量与变量•2.2.3变量•变量是程序代码中代表一个内存地址的标识符,而此地址中的内容在程序执行过程中可以改变。在变量使用之前必须先声明,变量声明格式如下:•var变量名表:类型名;例:•var•s:string;•i:integer;•flag:Boolean;2.3表达式与运算符•2.3.1表达式•表达式就是变量、常量、字符串、运算符及函数按照一定规则的组合。例:•'People’sRepublicOf'+'China'•Gross/12•Max(x,y)-Min(x,y)•2.3.2运算符•1.赋值运算符(:=)•赋值运算符“:=”是先计算赋值运算符右边表达式的值,再将结果赋给左边的变量。2.3表达式与运算符•2.算术运算符•表2-4算术运算符运算符作用操作数类型结果类型+表示正值Integer或RealInteger或Real算术加Integer或RealInteger或Real-表示负值Integer或RealInteger或Real算术减Integer或RealInteger或Real*算术的乘运算Integer或RealInteger或Real/浮点数的除运算Integer或RealRealDiv整型数的除运算IntegerIntegerMod模运算IntegerInteger2.3表达式与运算符•3.关系运算符•关系运算符是对两个类型相容且可以比较大小的数据进行比较,结果为布尔类型,见表2-5。•表2-5关系运算符运算符作用结果类型=等于Bealoon不等于Bealoon小于Bealoon大于Bealoon=小于或等于Bealoon=大于或等于BealoonIn属于Bealoon2.3表达式与运算符•4.逻辑运算符•逻辑运算符对逻辑类型的操作数进行运算,结果为布尔型,见表2-6。•表2-6逻辑运算符运算符作用操作数类型结果类型not逻辑非BealoonBealoonand逻辑与BealoonBealoonor逻辑或BealoonBealoonxor逻辑异或BealoonBealoon2.3表达式与运算符•5.集合运算符•表2-7集合运算符运算符作用操作数类型结果类型+集合的并集集合类型集合类型-集合的差集集合类型集合类型*集合的交集集合类型集合类型=A=B,A是否是B的子集集合类型Bealoon=A=B,B是否是A的子集集合类型Bealoon=两个集合是否相等集合类型Bealoon两个集合是否不相等集合类型BealooninsinA,s是否属于集合A有序类型,集合类型Bealoon2.3表达式与运算符•6.运算符的优先级运算符优先级not1(最高)*,/,div,mod,and2+,-,or,xor3关系运算符4(最低)表2-8ObjectPascal各运算符的优先级2.4语句•2.4.1注释•注释是添加在程序中用来说明代码功能的语句,它是非执行语句,对程序的执行部分不会产生任何影响,有助于提高程序的可读性。在ObjectPascal中,有三种注释标记:•花括号“{}”注释:位于“{}”中的内容为注释。•双斜杠“//”注释:“//”之后到本行结束的内容为注释。•圆括号及星号对“(*……*)”注释:(*……*)中的内容为注释。•例如以下语句都是注释:•{ThefirstkindOfcomment.}•//ThesecondkindOfcomment.•(*ThethirdkindOfcomment.*)2.4语句•2.4.2简单语句和复合语句•简单语句是ObjectPascal中最简单也最常用的语句,简单语句用分号分隔。赋值语句、函数、过程调用语句等是简单语句,例如下面的语句都是简单语句:•r:=m+n;//两个值相加并赋值•ShowMessage('I’mastudent.');•复合语句是多个简单语句的组合,复合语句以begin表示开始,以end表示结束。例如:•begin•i:=1;•j:=i+1;•s:='abc';•end;2.4语句•2.4.3条件语句•条件语句是ObjectPascal语言提供的选择结构语句,主要有如下两种:•1.if语句•if语句的表示形式:•if表达式then•执行语句•[else•执行语句]2.4语句•【例2-1】求两个数中的最大值。•ifabthen•max:=a//在变量a之后不能加“;”•Else•max:=b;•【例2-2】符号函数。•-1(x0)•y=0(x=0)•1(x0)用if语句的嵌套实现,如下:ifx0theny:=-1elseifx0theny:=1elsey:=0;2.4语句•2.case语句•case语句的表示形式:•case表达式of•选择值1:•执行语句1•…•选择值n:•执行语句n•[else•执行语句n+1]•end;2.4语句•【例2-3】编写一个程序,输入一个年份,判断是否是闰年。闰年的条件是满足下面条件之一:•(1)能被4整除,但不能被100整除的年份;•(2)能被100整除,也能被400整除的年份。•对这两个条件都不符合的年份不是闰年。•程序功能:输入一个年份,显示其是否为闰年的信息。•界面设计:四个组件:两个文本框Label1和Lable2,分别显示提示和结果信息;一个Edit组件Edit1,用来输入要进行判断的年份;一个Button组件Button1,用来
本文标题:《Delphi程序设计及实验指导》电子教案--第2章
链接地址:https://www.777doc.com/doc-2827836 .html