delphi 数据类型

1.1 实型

实型是存储实数的总称, 也统称为浮点类型,值域几乎是无限的,精度较高。

类型

名称

范围

有效数字

字节数

实型

Real

±5.0*10-324 ~1.7*10308

15~16

8

双精度

Double

±5.0*10-324 ~1.7*10308

15~16

8

48位实型

Real48

±2.9*10-39~1.7*1038

11~12

6

单精度

Single

±1.5*10-45~7.4*1038

7~8

4

扩展型

Extended

±7.4*10-4932~1.1*104932

19~20

10

计算型

Comp

-263+1~263-1

19~20

8

货币型

Currency

-922337203685477.5808 ~922337203685477.5807

19~20

8

l          一般定义方法:

   Var

       VirableName:TypeName;

    VirableName是实型变量名,TypeName是实型变量类型。

实数表示方法有两种:

l          小数表示法:

    Eg:1.25,-132.67,0.0025,0.0,100.0

l          指数表示法(科学表示法:尾数,指数)

   Eg:1.25E0,1.3267E+2,-2.3E-2

l          使用小数表示法,必须要有小数点,且小数点前后的数字(0~9)不能省略。

l          使用科学表示法,尾数和指数都不能省略,指数必须为整数。

 

1.1.1实型操作函数- 绝对值函数

绝对值函数:Function Abs(X)

     返回参数X的绝对值,参数X可以是整型或实型,返回值为非负的整数或实数。

1.1.2 平方/平方根

l          平方函数:

   Function Sqr(X:Extended):Extended;

   返回参数X的平方:X*X,返回值也是实型数据。

l          平方根函数:

   Function Sqrt(X:Extended):Extended;

   返回参数X的算术平方根,返回值也是实型数据。

1.1.3 三角函数

三角函数:Delphi提供了三个三角函数

   Function Sin(X:Extended):Extended;

   Function Cos(X:Extended):Extended;

   Function ArcTan(X:Extended):Extended;

   (1)参数X为数值表达式。在Sin和Cos函数中X是以弧度为单位的角度,分别返回该角度所对应的正弦和余弦值。ArcTan函数返回的是正切值为X的弧度值。

   (2)弧度和角度的换算关系为:π=180º

   (3)由这三个基本的三角函数可以导出:

       Tan(X)=Sin(X)/Cos(x)

       ArcSin(X)=ArcTan(X/Sqrt(1-Sqr(X)))

       ArcCos(X)=ArcTan(Sqrt(1-Sqr(X))/X)

1.1.4 整数与小数函数

l          取整数函数:

   Function Int(X:Extended):Extended;

   参数X为实型表达式,返回X的整数部分,它仍然是实型,小数部分设置为0。

l          取小数函数

   Function Frac(X:Extended):Extended;

   参数X为实型表达式,返回X的小数部分,Frac(X)=X-Int(X)

1.1.5 取整函数

l          取整函数:

   Function Trunc(X:Extended):Int64;

   参数X为实型表达式,返回不大于X的整数。

l          舍入函数:

   Function Round(X:Extended):Int64;

   参数X为实型表达式,返回对X四舍五入后的整数部分。

1.1.6 指数对数函数

l          指数函数:

   Function Exp(X:Real):Real;

   返回ex,返回值也是实型数据。

l          对数函数:

   Function Ln(X:Real):Real;

   (1)参数X为正的实型表达式,返回X的自然对数,返回值也是实型数据。

   (2)根据公式:Xn=enln(X),导出Xn=Exp(n*Ln(X))。

   (3)常对数                公式,可以求出常对数。

1.1.7 随机函数

   Function Random[(Range:Ingeger)];

   返回一个大于或等于0且小于参数Range的随机参数,如果缺省参数Range,返回一个大于或等于0且小于1的随机实数。

   为了能产生不同的随机数,应在程序启动时调用一次Randomize过程,以初始化内部随机数产生器。Procedure Randomize;

1.1.8 π函数

Function Pi:Extended;

   该函数无参数,Delphi提供了一个返回圆周率的函数Pi。

 

1.2 时间日期型

l          时间日期型是浮点型的一种映射。TDateTime,TDate,TTime;

l          定义的一般格式:

   Var

       VariableName:TypeName;

   VirableName是时间日期类型变量TypeName是TDateTime,TDate,Ttime;

1.2.1 日期时间函数

   Function Now:TDateTime;

   返回的TDateTime类型其实质是一个Double类型,整数部分表示从1899年12月30日以来所经过的天数,小数部分则表示经过的时间与24小时之比。

    Eg:0表示:12/30/1899 12:00AM

    Eg:-1.25表示:12/29/1899 6:00Am

1.2.2 日期函数

   Function Date:TDateTime;

   返回系统系统当前日期

   若要计算两日期之差,只需作简单的减法。

1.2.3 时间函数

   Function Time:TDateTime;

   用来返回系统当前的时间。

   若要计算两时间之差,只需作简单的减法。

1.2.4 转换函数

l          日期时间转换字符串函数

   Function DateToStr(Date:TDateTime):String;

   Function TimeTostr(Time:TDateTime):String;

   Function DateTimeToStr(DateTime:     TDateTime):String;

    把日期或时间转换成字符串。

1.2.5 转换函数

l          日期型转换整型函数

   Function EncodeDate(Year,Month,Day: Word):TDateTime;

   返回Year,Month,Day所对应的日期。

   Procedure DecodeDate(Date,var Year,Month,Day:Word);

    返回Year,Month,Day。

l          时间型转换整型函数

   Function EncodeTime(Hour,Min,Sec,MSec: Word);TDateTime;

   返回Hour,Min,Sec,MSec所对应的时间。

   Procedure DecodeTime(Time:TDate,Var Hour,Min,Sec,MSec:Word);

   返回Hour,Min,Sec,MSec。

1.2.6 星期函数

l          星期函数

   Function DayOfWeek(Date: TDateTime):Integer;

   返回整数1~7,1表示星期日,7表示星期六。

1.2.7 日期与时间格式化函数

l          日期与时间格式函数

   Function FormatDateTime(Const Format:String; DateTime:TDateTime):String;

   将参数DateTime所给的日期时间值按参数Format指定的格式输出。参数Format又称格式化字符串

1.2.8 日期与时间格式化字符串取值和意义

取值

意义

c

使用全局变量ShortDateFormat定义的格式显示日期,使用全局变量LongTimeFormat定义的格式显示时间。时间在日期之后,若时间部分为0,则不显示时间。

d

将日期显示为1~31的格式,没有前导0

dd

将日期显示为1~31的格式,有前导0

ddd

用全局变量ShortDayNames定义的名称显示日期(ShortDayNames,缺省值为:array[星期日..星期六])

dddd

用全局变量LongDayNames定义的名称显示日期(LongDayNames,缺省值为:array[星期日..星期六])

ddddd

用全局变量ShortDateNames定义的名称显示日期

dddddd

用全局变量LongDateNames定义的名称显示日期

m

将月份显示为1~12的格式,没有前导0

mm

将月份显示为1~12的格式,有前导0

mmm

用全局变量ShortMonthNames定义的名称显示月份(ShortMonthNames缺省值为:array[一月..十二月])

mmmm

用全局变量LongMonthNames定义的名称显示月份(LongMonthNames缺省值为:array[一月..十二月])

yy

将年份显示为00~99的格式

yyyy

将年份显示为0000~9999的格式

h

将小时显示为0~23的格式,没有前导0

hh

将小时显示为0~23的格式,有前导0

n

将分钟显示为0~59的格式,没有前导0

nn

将分钟显示为0~59的格式,有前导0

s

将秒钟显示为0~59的格式,没有前导0

ss

将秒钟显示为0~59的格式,有前导0

t

用全局变量ShortTimeFormat定义的格式显示时间

tt

用全局变量LongTimeFormat定义的格式显示时间

AM/PM

使用12h制显示时间(h和hh),上午显示AM下午显示PM

A/P

使用12h制显示时间(h和hh),上午显示A下午显示P

Ampm

使用12h制显示时间(h和hh),上午显示全局变量TimeAMString的内容,下午显示全局变量TimePMString的内容。

/

显示全局变量DateSeparator指定的日期分隔符

显示全局变量TimeSeparator指定的日期分隔符

‘xx’/”xx”

单引号或双引号中的字符串将原样输出

当Format参数为空时,相当于取值为“C”。

FormatDatetime(‘“今天是:”dddddd,ddd’,date)

 

1.3 字符串型

l          有限长字符序列的集合称为字符串类型。默认情况下,字符串类型变量最多可以包含255个字符,也可以在定义字符串变量时指明其所包含字符的最大个数。

l          定义的一般格式:

    Var

       VariableName:TypeName [number] ;

    VariableName是字符串变量名,TypeName是字符串类型。

1.3.1 字符串类型

类型

名称

最大长度

所需内存

用途

是否以Null结尾

字符串型

String

255个字符或约231个字符

2~256bytes

通用字符串型

短字符串型

ShortString

255个字符

2~256bytes

兼容以前版本的字符串类型

Ansi字符串型(长字符)

AnsiString

约231个字符

4bytes~2G

8字节的ANSi字符

宽字符串型

WideString

约230个字符

4bytes~2G

Unicode字符

1.3.2 大小写转换函数

   Function LowerCase(Const S:String):String;

   返回小写字符串。

   Function UpperCase(Const S:String):String;

   返回大写字符串。

1.3.3 比较先后函数

Function CompareStr(Const S1,S2:String): Integer;

   Function CompareText(Const S1,S2:String): Integer;

   (1)S1>S2返回函数值大于0,S1<S2返回函数值小于0,S1=S2返回函数值等于0

   (2)CompareStr()区分大小写,CompareText()不区分大小写

1.3.4 合并字符串函数

Procedure AppendStr(Var Dest :string:const S:String);

   相当于执行Dest:=Dest+S;

   Function Concat(S1[,S2,S3,…]:String);

   用来合并多个字符串

1.3.5 查找字符串函数

Function Pos(Substr:String;S:String):Integer;

   Pos(S0,S)返回字符串S0在字符串S中的位置(整数值),若S0不在S中,则返回0。

1.3.6 求字符串长度函数

Function Length(S:String):Integer;

   返回字符串S的长度值(整数值)。

1.3.7 截取字符串函数

Function Copy(S:String,Index,Count:Integer):String;

   如果Index大于字符串的长度,则返回一个空串,如果从Index开始到S的结尾不足Count个字符,则返回从Index开始到S结尾的所有字符。

1.3.8 删除字符串函数

   Procedure Delete(Var S:String;Index,Count: Integer);

   如果Index大于字符串的长度则不删除任何字符,如果从Index开始到S的结尾不足Count个字符,则返回从Index开始到S结尾的所有字符。

1.3.9 插入字符串函数

   Procedure Insert(Source:String ; Var S:String ; Integer:Integer);

   Insert(S0,S,n)将字符串S0插入到字符串S中的第n个字符处。

1.3.10 设置字符串值函数

   Procedure SetLength(Var S; NewLength:Integer);

   S ,NewLength是一个整形变量,用来确定长度,

   SetLength(S0,3);表示从字符串S0中取出前三个字符再存入变量S0中。

1.3.11 截取字符串空格函数

Function Trim(Const S:String);String;

   Function TrimLeft(Const S:String):String;

   Function TrimRight(Const S:String):String;

   Trim用来清除字符串两端的空格。

   TrimLeft用来清除字符串左边的空格。

   TrimRight用来清除字符串右边的空格。

1.3.12 数值与字符串转换函数

l          数值型转换成字符串型

Procedure Str(Const X[:Width [:Decimals]],Var S:String);

   参数Width与Decimals分别为指定的宽度与小数位数。如果X为整型,则S为整型格式,如果X为实型,则S为科学计数格式。

l          字符串型转换成数值型

   Procedure Val(S:String,Var V,Var Code:Integer);

   参数S为字符串。V可以是整型,也可以是实型,Code为整型。如果不为0,则表示转换过程出现错误。

l          整型数据转换成字符串型

   Function InttoStr(Value:Integer):String;

   函数返回整型数据Value的10进制格式的字符串。

l          实型数据转换成字符串型

   Function FloattoStr(Value:Extended):String;

   函数返回实型数据Value的普通数字格式的字符串。转换的有效精度为15位。

l          数字字符串转换成整型数值

   Function StrToInt(Const S:String):Integer;

   函数的参数可以是10进制或16进制格式的字符串,若为非法的数字字符串,系统将引发EconvertError错误。

l          数字字符串转换成实型数值

   Function StrToFloat(Const S:String):Extended;

   函数的参数是定点或浮点格式的字符串,若为非法的数字字符串,系统将引发EconvertError错误。

l          10进制转换为16进制格式函数

   Function IntToHex(Value:Integer,Digits: Integer):String;

   函数返回一个字符串,Digits为字符串的最小位数。在位数不足时以0在左边填充。

1.3.13 数值与字符串格式化函数

l          字符串格式化函数

   Function Format(Const Format:String;Const Args:Array of Const):String;

   Format是“格式字符串”,可以包括字符信息,也可以包含参数组Args中参数的类型和格式信息。

l          类型和格式信息由字符“%”开头,格式入下:

   %[<参数位置:>:][-][<所占宽度>][.<小数位数>]<类型>

   若缺省[<参数位置:>:],则从左到右依次分配各参数。“-”表示左对齐,若缺省则右对齐。<类型>为参数的类型,其可能的取值和意义如下表:

取值

意义

d

10进制整数,在<小数位数>中可以指定转换后数的最小位数,若小于该位数则在其左边填0

u

无符号10进制整数,与d相似

e

浮点类型

f

定点类型

g

实数,结果为最短字符串型式,可以是浮点形式或定点形式

n

数值格式实数:与f相似,但整数部分加上千位分隔符“,”

m

货币形式

p

指针形式

s

字符串形式

x

16进制整数,与d相似

l          Eg:

   Format(‘%s申办%d奥运会成功’,[‘北京’,2008])

 

 

附练习题:

1、创建一个delphi应用程序项目。在窗体中加入一个button1 和三个edit。第一个edit输入圆的半径,在edit2和edit3中分别输出圆的周长和面积。

var r : Integer;

procedure TForm1.Button1Click(Sender: TObject);

begin

r := StrToInt(self.Edit1.Text);

self.Edit2.Text := floattostr(r * Pi);

self.Edit3.Text := floattostr(r*r*Pi);

end;

 

2、创建一个delphi应用程序项目。并使用随机数,产生10题0-100的加法运算。

并能判断结果的正误和统计成绩。

 

不太了解这个题目的意思,反正我是这么写

procedure TForm1.Button1Click(Sender: TObject);

var Num,i,iCount,iRight,iR1,iR2 : integer;

begin

Num :=strtoint(self.Edit1.Text);

iCount := 0;

for i:=1 to 10 do

begin

iCount :=iCount + 1;

iR1 := Random(50);

iR2 := Random(50);

if(Num = (iR1 + iR2)) then

begin

  iRight := iRight + 1;

end;

 

end;

showmessage('进行了:' + intTostr(iCount) + '次随机运算' +#13 + '正确的次数为' + intTostr(iRight));

end;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值