您的位置:首页 > 移动开发 > Objective-C

Delphi的编程语言Object Pascal(4)

2007-09-14 11:46 543 查看
1. 标准数据类型



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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: