单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.5 简单数据类型,一、整数类型,1.用integer标明整数类型(有符号数),取值范围-maxint-1nmaxint,不同字长的计算机其maxint值也不同,TURBO PASCAL中整数取值范围为:-3276832767。,另外还有4种有符号数的类型标识符:,shortint(8位)、smallint(16)、longint(32位)、int64(64位);,4种无符号整数类型标识符:,cardinal(32位)、byte(8位)、word(16位)、longword(32位),2.两个整数允许使用运算符有:,算术运算符:,、*、div(整除)、mod(求余),关系运算符:,、,,关系运算的结果只有两种情况:,成立或不成立,用两个特殊常量真(true)或假(false)表示。rrue和false是布尔类型的值,。,3.标准函数,自变量是整型量的标准函数有:,顺序函数、算术函数和转换函数。,标准函数,是PASCAL语言预先定义的,它能够完成特定功能的子程序。每个标准函数都用一个标识符来标识,在程序中直接调用。,顺序函数,:前趋(pred(x)、后继(succ()x)、绝对值(abs(x)、平方(sqr(x),其结果为整型。,奇函数(odd(x)结果为布尔型;,字符函数,(chr(X),结果是字符例chr(66)=B,例如:VAR I,K,N:INTEGER,;,二、实数类型,1.用real标明实数类型,实型数据可以是正实数、负实数和零实数,一般用小数和指数(科学表示法)表示。例12.8,3.5E+3,其他类型标识符:double(8),single(4),real48等共7种。,2.实型数可使用的运算符有:,算术运算符和关系运算符。,、*、;、,3.以自变量为实型的标准函数,算术函数:绝对值、平方、正弦sin(x)、余弦cos(x)、指数exp(X)、对数LN(X):函数值为X的自然对数、平方根sqrt(x)、反正切arctan(x)、int(x)。,转换函数:截尾trunc(x):舍去实数X的小数部分;,舍入round(x):对实数X作四舍五入运算。结果为整型。,例如:VAR X1,X2:REAL;A,B:double,;,三、字符类型,1.用标准标识符char表明字符类型。字符类型可以是字母、符号、数字(09)等ASCII所有字符。,在程序中,用单引号括起来的字符,表示字符类型数据。例c,3。,字符类型标识符,:ansichar(8位):根据扩展的ANSI字符表排列;,widechar(16位),:根据unicode码排列(相当与char)。,2.字符类型数据可以进行的操作:,可以使用,6个关系运算符,进行运算,结果为布尔型。,3.自变量是字符型的标准函数有:,succ(x);pred(x);序数函数ord(x):给出X在ASCII字符集中的序号,结果为整型;chr(x:byte):chr,返回ASCII中所代表的字符等同于#数字;upcase(ch:char):将小写字母转换为大写。,例如:var,ch1,ch2:char;,四、布尔类型,1.用标准表示符boolean表明布尔类型。此类型数据的值只有两个:逻辑真(true)和逻辑假(false)。,布尔类型是顺序类型,,规定falsetrue,false的序号是,true是。,.布尔类型的数据可以进行的操作有:,允许两个布尔类型的数据使用逻辑运算符:not逻辑非、and逻辑与、or逻辑或。逻辑运算符运算对象、结果都是布尔型。,布尔型数据可以使用个关系运算符进行运算,结果仍是布尔型值。,3.对布尔型值,可以使用顺序标准函数,其中为布尔型数值:,ord(B),pred(B),succ(B),除了上面个标准函数外,还有个标准函数值是布尔型:eof(f)和eoln(f)。其中f是文件变量,若输入文件是标准文件input,可写成eof或eoln.这两个函数的值在开始读文件时为false。当读到一个结束符时(回车符chr(13),eoln为true.当读到文件结束符时(chr(26)或ctrl-z)时eof为true。,例如:var,L1,L2:Boolean;,五、子域类型的定义和运算规则,1.子域类型的定义,定义一个类型是任何其他已经定义的顺序类型的子域,这种类型称为子域类型。其一般形式为:,=.;,其中,常量1是子域类型的下界,常量2是上界。常量1和常量2必须属于同一顺序类型,并且下界不能大于上界。子域类型也是顺序类型。,例如:,type,age=10.25;,word1=a.z;,word2=A.Z;,var,studentage:age;ch1,ch2:word1;ch3:word2;,也可将类型定义和变量说明合并为:,var,studentage:10.25;,ch1,ch2:a.z;ch3:A.Z;,2.子域类型的运算,对于子域类型的宿主类型的任何运算,同样也适用于其子域类型。只是子域类型的数据取值范围受到约束,它只包括上、下界自身在内的一段数据范围。,六、枚举类型,1.枚举类型是由一组有序的标识符组成的,它列出了所有这种类型可以包括的值。类型声明如下:,type,类型名称=(标识符1,标识符2.);,此类型变量声明为:,var,变量名1,变量2.:类型名称,;,例:,type,orentation=(north,south,east,west);,var,pos1:orentation,;,2.注意:枚举的元素只能是标识符,同一枚举元素不能同时出现在多个枚举中。,枚举类型可以将类型声明和变量声明合二为一,例:,var,days:(Sunday,Monday,wednsday,Thursday,Friday,Saturday,Saturday);,1.8时间日期类型,1.在Delphi中,还有一类比较特殊的类型时间日期类型,标识符为TDatetime。此外Delphi中还有两种相似的类型:Tdate和TTime。日期时间类型实际上并不是一种独立的,只是浮点类型的一种映射而已。它的定义为:,TDatetime=type double;,它利用浮点类型,在变量里存储年、月、日小时和分、秒,甚至毫秒。整数部分存储年月日,小数部分存储小时、分秒等。,时间日期型变量的说明为:,VAR,d1,d2:Tdatetime;,2.与Tdatetime相关的主要函数有:,*NOW():取当前日期和时间;*DATE():取当前日期,*TIME():取当前时间;,*DATETOSTR():将Tdatetime类型的日期部分转换为字符串,*STRTODATE():将含有日期信息的字符串转换为Tdatetime类型,若格式有错,将产生异常。,*datetimetostr():将Tdatetime类型转换为字符串类型。,*datetimetostring():过程,使用默认格式,将日期与时间复制到某字符串。调用格式:datetimetostring(s,2000-01-01,t1);,*decodedate:从一个日期值中分离出年、月、日,并以引用的方式传递给变量。调用:decodedate(t1,y,m,n);,y、m、d为word类型(基本整型的16位无符号数)。,*encodedate:将年、月、日组合为Tdatetime值。,1.9字符串类型(string),object,pascal,的字符串类型分为短字符串和长字符串,两种。,短字符串:长度不超过255个字符的字符序列(默认)。声明方式为:var,str1:shortstring;,str2:string10;,表示字符串的最大长度是10,超过部分被截掉。,短字符串中的每一个字符可单独访问,str12。str10为字符串的实际长度。,长字符串:长度几乎无限制,理论上可达到2GB,声明为:,var str3:ansistring;,常用函数:length(),注意:字符串必须用单引号括起来,qwee,如果字符串中包含单引号,要用两个单引号表示如:im a teacher。,一般使用:var s:string;,运算符:+连接符,2.常用字符串函数,(1),pos(,子串,母串):integer:返回子串在母串中的起始位置。值为0时母串不包含子串。,(2),copy,(母串,位置,返回长度):string:返回原串中的一部分子串,位置指子串在母串中的起始位置。一般情况下于pos搭配使用。,(3),trim,(字符串):string:清楚字符串左边、右边的空格。类似函数有,trimleft,trimright,函数。,3.字符串转换函数,strtoint()inttostr,(),:,整型数据转换为字符串类型。,floattostr(),:,实型转换为字符串类型。,strtofloat(),。,