资源描述
Delphi7.0的常用函数与过程
2.1.4 Delphi 7中的运算符与表达式
Delphi 7 有 8 类运算符,本章主要学习算术运算符、字符串运算符和位运算符。其他运
算符将在以后的章节中学习。
1.算术运算符
算术运算符是用户最熟悉的,类似算术中的加减乘除等。Delphi 7中有8个算术运算符,
具体含义如下。
(1)取正运算符“+” :单目运算符,表示对一个数值型数据取正,例如+5的值为5。另
外,取正运算符可以省略。
(2)取负运算符“-” :也是单目运算符。例如对5取负,其值为-5。
(3)加法运算符“+” :与数学上的加法相同。加法运算符与取正运算符符号相同,但含
义不同。例如3+5的值为8。
(4)减法运算符“-” :与数学上的减法含义相同。也请注意减法运算符与取负运算符的
异同。
(5)乘法运算符“*” :表示对两个数值型数据相乘,与数学中的乘法相同。例如:3*5
的值为15。
(6)除法运算符“/” :与数学上的除法含义相同。例如 3/5 的值为“0.6” 。另外,除法
运算的结果总是实型数据。
(7)整除运算符“div” :只能对两个整数进行除法运算,结果为整型数据。例如5 div 3
的值为1,而“5 div 2.0”是不合法的。
(8)取余运算符“mod” :对两个整数相除,结果为余数。例如5 mod 3的值为2。
1,数学类函数包括绝对值函数,取整数函数,取小数函数,平方函数,平方根函数,三角函数,指数函数,对数函数和随机函数等。
(1)绝对值函数:Abs(x) 返回x的绝对值,x是整型或实型数据
例:x := Abs(-1); //这是一个赋值语句,先计算赋值号右边函数的值(为1)再赋给x.
(2)取整数函数
例:
Trunc(x):Int64;
Round(x):Int64;
Int(x):Extended;
x1 := Trunc(-2.5); //赋值语句,函数值-2
x2 := Round(-2.51); //x2的值为-3
x3 := Int(-2.5); //x3的值为-2,与Trunc基本相同,但是返回值类型不同
(3)取小数函数
Frac(x):Extended;
返回x的小数部分,x为实型数据
例:
x := Frac(-2.5); //x的值为-0.5
(4)平方函数
Sqr(x):Extended;
返回实型数据x的平方值,x为实型数据
x := Sqr(-2.5); //x的值为6.25
(5)平方根函数
Sqrt(x):Extended;
返回非负实数x的算术平方根,x为非负实数,返回值也为非负实数
例:
x := Sqrt(4); //x的值为2.0
(6)三角函数
Sin(x):Extended;
返回以弧度为单位的x的正弦函数值,x的单位为弧度
Cos(x):Extended;
返回以弧度为单位的x的余弦函数值,x的单位为弧度
ArcTan(x):Extended;
返回x的反正切函数值,x的单位为弧度
例:
x1 := Sin(1/2); // x1的值为0.4794
x2 := Cos(1/4); //x2的值为0.9689
x3 := ArcTan(1); //x3的值为0.7854
(7)指数函数
Exp(x):Real;
返回值为ex,参数x为实型数据
例:
x := Exp(-1); //x的值为0.3679
(8)自然对数函数
Ln(x) := Real;
返回x的自然对数值,参数x为正实数,其它对数函数可以由换底公式导出。
例:
x := Ln(5); //x的值为1.6094
(9)随机数函数
Random(x);
返回一个大于等于0小于整数x的随机整数,x为整数,若x缺省,返回值为大于等于0小于1的实数。
2,字符串处理函数与过程
(1)大小写转换函数
LowerCase(const s:String):String;
把字符串s中的字符全部转换为小写字母,并作为函数值返回。
UpperCase(const s:String):String
把字符串s中的字符全部转换为大写字母,并作为函数值返回。
例:
x1 := LowerCase(‘aBc’); //将函数值“abc”赋值给字符串变量x1
x2 := UpperCase(‘aBc’); //将函数值“ABC’赋值给字符串变量x2
(2)比较字符串大小函数
CompareStr(const s1,s2:String):Integer
比较两个字符串s1 和s2的大小,大小比较依据的是ASCII码值。从两字符串的第一个
字符开始比较,若前者大于后者,比较终止,返回值大于0;若小于后者,比较也终止,返回
值小于0;若等于后者,将接着继续比较后面的字符。直到遇到不相等的字符或s1或s2的所
有字符均比较完毕。若所有位置上的字符都相等,则返回值等于0。 注意: 本函数区分大小写。
CompareText(const s1,s2:String):Integer;
比较字符串大小,比较方法同上,区别是本函数不区分大小写。
例:
x1 := CompareStr(‘Abc’,’abc’); //x1的值为-32
x2 := CompareText(‘Abc’,’abc’); //x2的值为0
(3)求字符串长度函数
Length(s):Integer;
返回字符串的长度,参数s的类型为字符串型。
例:
x := Length(‘abcd’); //x的值为4
(4)查找位置函数
Pos(s1,s2 :String):Integer
返回子字符串s1在字符串s2中首次出现的位置,若s2中不存在s1,则返回0.若s1在s2中,则必须满足s1的所有字符都在s2中,即s1是s2的子串。
例:
x1 := Pos(‘bc’,’abcd’); //x1的值为2
x2 := Pos(‘bd’,’abcd’); //x2的值为0
(5)合并字符串过程
AppendStr(var s1:String;Const s2:String);
相当于执行语句“s1 := s1 + s2”。本过程比语句“s1 := s1 + s2”执行效率高。
(6)截取子字符串函数
Copy(s:String;m,n:Integer):String;
在字符串s中截取从第m个字符开始长度为n的子字符串,并作为函数的返回值。若m大于s的长度,则返回一个空串;若从第m个字符到s的结尾不足n个字符,则返回其间的所有字符。
例:
s1 := Copy(‘abcdef’,2,2); //s1的值为‘bc’
s2 := Copy(‘abcdef’,4,5); //s2的值为‘def’
注意:Copy(‘abc’,0,1)和Copy(‘abc’,1,1)的函数值相等,都是’a’.
(7)删除子字符串过程
Delete(var s :String;m,n:Integer);
如果 m大于s 的长度,则不删除任何字符;如果从第m 个字符开始到s 的末尾
不足n个字符,则删除其间的所有字符;如果n小于等于0,则不删除任何字符。
例:
var
s:String; //字符串变量声明
begin
s:='abcd'; //给变量赋值
Delete('abcd',3,3); {删除从第3个字符开始长度为3的子字符串(本例只能删除 'cd')}
Edit1.Text:=s; //s 的值为子串'ab',故Edi t1上显示的文本为'ab'
end;
(8)插入子字符串过程
Insert(S1:String;var s :String;k:Integer);
将字符串S1插入到字符串s中的第k个字符处。
(9)数值和字符串相互转换函数
IntToStr(m:Integer):String;
将整型数据m转换成字符串并作为函数的返回值
StrToInt(s:String):Integer;
将字符串数据s转换成整型数据并作为函数的函数值。s为数字型字符串。
FloatToStr(f:Extended):String;
将实型数据f转换成字符串,并为函数的返回值。
StrToFloat(s:String):Extended;
将字符串型数据s转换成实型数据,并作为函数的返回值。s为数字型字符串。
2.2 典型实例
【实例题目】:求整数各位数字
利用算术运算符和算术表达式编写一个程序,实现下面的功能:输入一个任意4位整数,
计算千位、百位、十位和个位上的数字。程序设计界面如图 2-1 所示,程序运行界面如图 2-2
所示。程序运行时,输入任意整数,单击【个位数字】按钮,将显示个位数字,单击【十位
数字】按钮,将显示十位数字,依此类推。
主要代码:
var
Form1: TForm1;
TextContent : String;
TextLength : Integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
TextContent := Edit1.Text;
TextLength := Length(TextContent);
Label2.Caption := Copy(TextContent,TextLength,1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TextContent := Edit1.Text;
TextLength := Length(TextContent);
Label3.Caption := Copy(TextContent,TextLength-1,1);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
TextContent := Edit1.Text;
TextLength := Length(TextContent);
Label4.Caption := Copy(TextContent,TextLength-2,1);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
TextContent := Edit1.Text;
TextLength := Length(TextContent);
Label5.Caption := Copy(TextContent,TextLength-3,1);
end;
end.
展开阅读全文