当前位置:文档之家› 运算符、布尔运算、表达式、标准函数

运算符、布尔运算、表达式、标准函数

运算符、布尔运算、表达式、标准函数hb007 发表于 2006-3-22 19:24:26一、运算符1、算术运算符例如:4 +5 = 9 8 - 3 = 52 *3 = 6 12 * 24 = 4085 / 2 = 2.5 34 / 12 = 2.83 5 div 2 = 2 123 div 4 = 30 5 mod 2 = 1 12 mod 5 = 22、逻辑运算符它们的运算真值表如下:3、关系运算符例如:设a,b为标准数据类型的变量,则:a=b 如果a等于b结果为真,否则为假。

a<>b 如果a不等于b结果为真,否则为假。

a<b 如果a小于b结果为真,否则为假。

a>b 如果a大于b结果为真,否则为假。

a<=b 如果a小于等于b结果为真,否则为假。

a>=b 如果a在于等于b结果为真,否则为假。

例如:5=5 结果为真。

5=10 结果为假。

false<true 结果为真。

false>true 结果为假。

'A'<'C' 结果为真。

12.5>-8 结果为真。

24>=21 结果为真。

10.3<10 结果为假。

二、运算符的优先级三、布尔运算要判断“X>Y”是否成立,其结果不是一个算术量(即数值),而是“成立”或“不成立”,也可以用“真”表示“成立”,用“假”表示“不成立”,也就是说,它的结果是一个逻辑值(“真”或者“假”)。

逻辑运算又叫布尔运算。

布尔(Bool)是英国数学家的名字,他首先提出对二值变量进行逻辑运算的代数,称为布尔代数。

1、布尔常量Pascal语言中“真”用true表示,“假”用False表示。

所以布尔类型只有true与false两个常量。

2、布尔型符号常量(boolean)在程序的说明部分,可以定义布尔符号常量。

如:constt=true;f=false;执行部分就可以用t代表true,用f 代表false。

例如:write(t,f)将输出:TRUEFALSE3、布尔变量如果我们将某些变量说明成布尔型,那么这些变量就是布尔变量,它们只能用于存放布尔值(ture或false)。

例如,var a,b:boolean;begina:=true;b:=false;4、布尔类型是顺序类型由于这种类型只有两个常量,Pascal语言中规定ture的序号为1,fals e的序号为0。

若某种类型的常量是有限的,那么这种类型的常量通常都有一个序号,我们称这种类型为顺序类型。

如前面我们学过的整型(int eger),字符型(char)都是顺序类型。

四、表达式表达式是描述数值诸规则的算法结构,它是由操作数(变量名、常量名、函数名等)和运算符联结而成。

(一)算术表达式:算术表达式是由算术运算符连接常量、变量、函数的式子。

算术表达式中各个运算符的次序为:( )→函数→*,/,div,mod→+,-同一级别的运算符,按在表达式中的次序“先左后右”的原则。

例如:a=17,b=24,c=8,d=5,e=21b -c *d Div(e Mod a)↑↑↑↑④②③①最后的结果是14。

(二)逻辑(布尔)表达式1、简单布尔表达式(关系表达式)下例这些都是关系表达式:x>=0, b*b-4*a*c>0, x=y+z, a<>b, true>false, ‘a’>’b’所谓关系表达式是由一个关系运算符将两个数值量(或字符型数据或布尔型数据)联结起来的式子。

关系运算符的两侧可以是常量、变量或表达式(仅限数值型、字符型、布尔型)。

关系表达式的值是一个布尔常量(True或False),而不是一个数值。

Turbo Pascal中有六个关系运算符,它们的书写与含义如下所示:大于大于或等于小于小于或等于等于不等于> >= < <= = <>关系运算符两侧一般应使用同类型的数据。

例如,数值不能同字符相比较。

但整型量可以同实型量相比,在比较时,系统先将整型量转换成实型量,然后再进行比较。

例如,如果number为实型量,则number>12,实际上是按number>12.0进行比较的。

由于实数在内存中的存贮存在误差,因此,可能会出现这样的情况:在理论上应该相等的两个数,用计算机判断它们却为“不相等”。

例如,X =1,X/10却不等于0.1,关系表达“x/10=0.1”的值可能为“假”(Fals e)。

因此,应该避免对两个实数作是否“相等”的比较。

若想判断a是否等于b,应该写为:Abs(a-b)<1E-6(abs绝对值)或小于一个其他足够小的数,只要小于此数,就认为a和b足够地接近,近似地认为相等;如果a和b的值比较大(如≈1030),则a-b之差可能大于10-5,因此,可用相对误差,即:Abs((a-b)/x)<1E-5,当此关系式的值为True,a与b 相对误差小于百万分之一。

可以将一个布尔表达式的值赋给一个布尔变量。

例如,若已定义x为布尔变量,a和b为数值型变量,则x:=a>b是允许的。

布尔表达式的值可以输出。

若a的值为12.5,则write(a<10)将输出逻辑值False。

以后还要介绍一个关系运算符“in”,它的两侧是集合表达式。

2、布尔运算符和布尔表达式布尔运算符:not(逻辑非),and(逻辑与),or(逻辑或),xor(逻辑异或) 它们的运算次序是:not→and→or、xor 即not最优先,and又优先于or和xor。

布尔表达式的形式为:<布尔量>and/or/xor<布尔量> 或 not<布尔量>由此可见,not是一个“单目运算符”,它的前面没有参加运算的布尔量,它的作用是改变它后面的布尔逻辑值;and、or和xor是“双目运算符”,它们的前后都有布尔型数据。

若a、b与c是布尔型数据,则:a and b,a or b,a xor b,not a,(a and b)or(b xor c)and(not a),not c and (a xor b)等都是布尔表达式。

Turbo Pascal提供给布尔表达式以下基本操作:逻辑运算和关系运算。

如果在一个布尔表达式中既包括布尔运算符,又包括关系运算符和算术运算符,则它们的运算顺序为:括号→函数→not→*,/,Div,Mod,and→+,-,or,xor→>,<,>=,<=,=,<>,i n例如:若a=true,b=false,x=7,y=12,m=7,n=35,求下列布尔表达式的值。

a and not(m > n) and (x < y - m) or (a xor b)↑↑↑↑↑↑↑↑⑥⑤①⑦③②⑧④先标出它们运算的先后顺序如上:则有①为False,②为5,③为False,④为True,⑤为True,⑥为Tru e,⑦为False,⑧为True,因此最后得到布尔表达式的值为True。

对混合运算应该特别注意的是:关系表达式要加括号,先进行关系运算,得到一个布尔量,再进行布尔运算。

例如:表示算术表达式:3<=x<=7正确的表达式: 3<=x and x <=7错误的表达式: 3<=x<=7 或 3<=x or x<=7例如,命题:“m,n都是偶数或都是奇数”可表示为:(m mod 2=0)and(n mod 2=0) or (m mod 2=1)and(n mod 2=1)五、标准函数标准函数是Turbo Pascal语言预先定义的,它们实际上是能完成特定功能的称为子程序的程序段。

每个标准函数都用一个标识符来标识,每个标准函数都能完成一个特定的功能,在程序中可以直接调用它们。

Turbo Pascal语言中某些标准函数与数学中的函数有相似之处。

(一)整数类型函数Turbo Pascal语言提供了自变量为整型量的标准函数有顺序函数、算术函数和转换函数等。

整型是顺序类型,即所有的整型数都是按一定的顺序排列的。

如3的后序数是4,350的后序数是351。

以后介绍的布尔型、字符型、枚举类型和子界类型等都是顺序类型。

顺序函数可以对顺序类型数据进行操作,但要注意它们自变量的取值范围。

①前趋函数:Pred(x)函数值为x-1,例如:Pred (6)=5 Pred (-21)=-22Pred(-Maxlongint-1)无意义②后继函数:Succ (x)函数值为x+1,例如:Succ (l5)=16 Succ (-114)= -113Succ (Maxlongint)无意义③绝对值函数:Abs (x)函数值为︱x︱,例如:Abs (-119)=119 Abs (101)=101④平方函数:Sqr (x)函数值为X2,例如:Sqr (-5)=25 Sqr (l0)= 100以上四个函数的结果仍是整型数。

⑤奇函数:Odd (x),函数的结果为布尔型。

当X为奇数时,函数值为t rue;当X为偶数时,函数值为false。

例如:Odd (13)= True Odd (16)= False⑥字符函数:Chr (X),函数值是序号的ASCII字符,属字符型。

例如:Chr (65)=’A’Chr (32)=’’(二)实数类型函数Turbo Pascal语言提供了自变量为实型的标准函数,有如下几种:1、算术函数在下列算术函数中,X可以是实型或整型数的表达式。

对于函数Abs和S qr,其结果类型和变量X的类型相同,其他算术函数的结果类型都是实型。

⑴绝对值函数Abs(x):函数值为x的绝对值⑵平方函数Sqr (x):函数值为x的平方⑶小数函数Frac (x):函数值为x的小数部分⑷整数函数Int (x):函数值为x的整数部分⑸正弦函数Sin (x):函数值为x的正弦,其中x的单位为弧度⑹余弦函数Cos (x):函数值为x的余弦,其中x的单位为弧度⑺指数函数Exp (x):函数值为了e x⑻对数函数Ln (X):函数值为x的自然对数⑼平方根函数Sqrt (x):函数值为x的平方根⑽反正切函数Arctan(x):函数值为x的反正切,单位为弧度⑾随机函数Random:无自变量时,函数值取(0,1)间的随机小数;有自变量且为Word类型时,函数值取(0,自变量)间的随机整数。

例如:rando m(256)=0至256(但不包括256)之间的一个随机整数;random=0至1之间的一个随机小数。

⑿圆周率函数Pi:无自变量,函数值为π值。

函数Frac与Int有如下的关系:Frac(x)=x-Int(x)Turbo Pascal语言没有乘幂运算符和函数。

相关主题