《运算符、布尔运算、表达式、标准函数》由会员分享,可在线阅读,更多相关《运算符、布尔运算、表达式、标准函数(9页珍藏版)》请在金锄头文库上搜索。
1、运算符、布尔运算、表达式、标准函数hb007 发表于 2006-3-22 19:24:26一、运算符1、算术运算符运算符 运算 运算对象 结果类型+ 加 整型、实型- 减 整型、实型* 乘 整型、实型/ 除 整型、实型只要有一个运算对象是实型,结果就是实型,如果全部的运算对象都是整型并且运算不是除法,则结果为整型,若运算是除法,则结果是实型div 整除 整型 整型mod 取余 整型 整型例如:4 + 5 = 9 8 - 3 = 52 * 3 = 6 12 * 24 = 4085 / 2 = 2.5 34 / 12 = 2.835 div 2 = 2 123 div 4 = 305 mod 2
2、= 1 12 mod 5 = 22、逻辑运算符运算符 运算 运算对象 结果类型not 逻辑非 布尔型 布尔型and 逻辑与 布尔型 布尔型or 逻辑或 布尔型 布尔型它们的运算真值表如下:a b not b a and b a or bfalse false true false falsefalse true true false truetrue false false false truetrue true false true true3、关系运算符运算符 运算 运算对象 结果类型= 等于 简单类型 布尔型 大于 简单类型 布尔型= 大于等于 简单类型 布尔型例如:设 a,b 为标准数
3、据类型的变量,则:a=b 如果 a 等于 b 结果为真,否则为假。ab 如果 a 大于 b 结果为真,否则为假。a=b 如果 a 在于等于 b 结果为真,否则为假。例如:5=5 结果为真。5=10 结果为假。falsetrue 结果为假。A-8 结果为真。24=21 结果为真。10.3,=, 4(低)三、布尔运算要判断“XY”是否成立,其结果不是一个算术量(即数值),而是“成立”或“不成立”,也可以用“真”表示“成立”,用“假”表示“不成立”,也就是说,它的结果是一个逻辑值(“真”或者“假”)。逻辑运算又叫布尔运算。布尔(Bool)是英国数学家的名字,他首先提出对二值变量进行逻辑运算的代数,称
4、为布尔代数。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、布尔
5、类型是顺序类型由于这种类型只有两个常量,Pascal 语言中规定 ture 的序号为 1,false 的序号为 0。若某种类型的常量是有限的,那么这种类型的常量通常都有一个序号,我们称这种类型为顺序类型。如前面我们学过的整型(integer),字符型(char)都是顺序类型。四、表达式表达式是描述数值诸规则的算法结构,它是由操作数(变量名、常量名、函数名等)和运算符联结而成。(一)算术表达式:算术表达式是由算术运算符连接常量、变量、函数的式子。算术表达式中各个运算符的次序为: ( )函数*,/,div,mod+,-同一级别的运算符,按在表达式中的次序“先左后右”的原则。例如:a=17,b=24
6、,c=8,d=5,e=21b - c * d Div(e Mod a) 最后的结果是 14。(二)逻辑(布尔)表达式1、简单布尔表达式(关系表达式)下例这些都是关系表达式:x=0, b*b-4*a*c0, x=y+z, afalse, ab所谓关系表达式是由一个关系运算符将两个数值量(或字符型数据或布尔型数据)联结起来的式子。关系运算符的两侧可以是常量、变量或表达式(仅限数值型、字符型、布尔型)。关系表达式的值是一个布尔常量(True 或 False),而不是一个数值。Turbo Pascal 中有六个关系运算符,它们的书写与含义如下所示:大于 大于或等于 小于 小于或等于 等于 不等于 =
7、关系运算符两侧一般应使用同类型的数据。例如,数值不能同字符相比较。但整型量可以同实型量相比,在比较时,系统先将整型量转换成实型量,然后再进行比较。例如,如果 number 为实型量,则 number12,实际上是按 number120 进行比较的。由于实数在内存中的存贮存在误差,因此,可能会出现这样的情况:在理论上应该相等的两个数,用计算机判断它们却为“不相等”。例如,X=1,X/10 却不等于 0.1,关系表达“x/10=0.1”的值可能为“假”(False)。因此,应该避免对两个实数作是否“相等”的比较。若想判断 a是否等于 b,应该写为:Abs(a-b)b 是允许的。布尔表达式的值可以输
8、出。若 a 的值为 12.5,则 write(aand/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)等都是布尔表达式。a b Not a a and b a or b a xor bfalse false true false false false
9、false true true false true truetrue false false false true truetrue true false true true falseTurbo Pascal 提供给布尔表达式以下基本操作:逻辑运算和关系运算。 如果在一个布尔表达式中既包括布尔运算符,又包括关系运算符和算术运算符,则它们的运算顺序为:括号函数not*,/,Div,Mod,and+,-,or,xor,=,in例如:若 a=true,b=false,x=7,y=12,m=7,n=35,求下列布尔表达式的值。a and not(m n) and (x 7,正确的是:Ord (7)
10、=Ord(0)+7=48+7=55若 ch 是数字字符,则 Ord (ch)-Ord (0)是该数字字符的数值。例如:Ord (7)-Ord(0)=7前面介绍的字符函数 Chr (i)是 Ord (ch)的逆函数。例如:Chr (55)= 7 Chr (Ord(A)=A(四)布尔类型函数Turbo Pascal 语言提供布尔型函数主要是几个字符型函数。Ord (B):例如:Ord (false)=0 Ord (true)=1Pred (B):例如:Pred(true)=false Pred(false)无意义Succ (B):例如:Succ(false)= true Succ(true)无意义
11、除了上面的三个标准函数外,还有两个标准函数的值是布尔型:Eof(f)和 Eoln(f)。其中 f 是文件变量。若输入文件是标准文件 input,可写成 Eof 或 Eoln。这两个函数的值在开始读文件时为 False,当读到一个行结束符时(回车符 Chr(13)),Eoln 为 True;当读到文件结束符(Chr(26))或(Ctrl+Z)时,Eof 为 True。杂类函数函数标识符 自变量类型 意义 结果类型random 无自变量 0,1之间的随机实数 realrandom word 0,自变量之间的随机整数 wordrandomize 无自变量 用一随机值初始化内部随机数产生器 longi
12、ntupcase 字符型 使小写英文字母变为大写 字符型练习:1、布尔类型量可以做哪些运算?运算规则是什么?2、表达式 sqrt(abs(-100)*sqr(round(5.8)的值是( )。3、把整数 5 变为字符5的表达式为( )。4、下列式子中,正确关系表达式为( )。A aB) D 52)and(81)3)(8x)and(65)and not(52)or(21)11、将下列代数式写成 Pascal 表达式1)(a+b)(a-b) 2)sin(x)/(x-1) 3)(a+b+c)/24)ln(x+y) 5)xy 3 6)s(s-a)(s-b)(s-c)1、布尔类型的量可以用 not、an
13、d、or 运算。规则如下:not 运算是对原值否定。如 x 为真,则 not x 的值为假。and 运算是对两个布尔量进行“与”运算。只要有一个假,运算结果就为假。表示为 x and y。or运算是对两个布尔量进行“或”运算。只要有一个为真,运算结果就为真。表示为 x or y。2、60.03、chr(5+ord(0)4、B5、a*x*x+b*x+c6、(-b+sqrt(b*b-4*a*c)/(2*a)和(-b-sqrt(b*b-4*a*c)/(2*a)7、false true false8、chr(ord(r)-ord(a)+ord(A)9、chr(ord(A)+ord(Z)-ord(x)10、1)6+4*3*(5div2)-5=254 2 3 1 52)(32)and(81)1 3 2 6 5 43)(8x)and(65)and not(52)or(21)1 3 2 8 4 7 6 5 10 911、1)(a+b)*(a-b) 2)sin(x)/(x-1) 3)(a+b+c)/24)ln(x+y) 5)x*exp(3*ln(y) 6)sprt(s*(s-a)*(s-b)*(s-c)