《符号常量及其定义方法.ppt》由会员分享,可在线阅读,更多相关《符号常量及其定义方法.ppt(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2 23 3 符号常量及其定义方法符号常量及其定义方法 FORTRAN77允允许许用用一一个个名名字字来来代代表表一一个个常常量量,例例如如,可可以以指指定定用用PI来来代代表表31415926,在在本本程程序序单单位位用用到到PI时时,它它就就代代表表31415926,这这个个PI就就称称为为“符符号号常常量量”(或或“符符号号常常数数”),即即用用一一个个符符号号来来代代表表一一个个常常量量。FORTRAN规规定定用用PARAMETER语语句句来定义符号常量来定义符号常量。例如:。例如:PARAMETER(PI=31415926)PARAMETER语语句句也也称称参参数数语语句句,它它与与
2、赋赋值值语语句句不不同同,它它是是非非执执行行语语句句,并并且且在在程程序序中中定定义义一一个个符符号号常常量量后后,不不能能再再以以任任何何形形式式改改变变它它的的值值。这这是是符符号号常量与变量的最大区别。常量与变量的最大区别。PARAMETER语句应写在所有执行语句之前。语句应写在所有执行语句之前。符符号号常常量量的的定定名名规规则则与与定定变变量量名名规规则则相相同同。名名字本身隐含类型,也遵循字本身隐含类型,也遵循I-N规则。规则。可以用类型说明语句定义符号常量的类型。可以用类型说明语句定义符号常量的类型。在一个参数语句中可以定义多个符号常量。在一个参数语句中可以定义多个符号常量。例
3、如:例如:PARAMETER(A=05,N50,J30)用符号常量的好处是:用符号常量的好处是:如果需要改变某一常数时,如果需要改变某一常数时,不需一一改变这个常数,只不需一一改变这个常数,只需改变参数语句中符号常量需改变参数语句中符号常量的值即可。的值即可。注意:注意:类型语句和参数语句的先后顺序,必须类型类型语句和参数语句的先后顺序,必须类型语句在前,参数语句在后。语句在前,参数语句在后。符符号号常常量量不不能能作作为为语语句句标标号号,也也不不能能出出现现在在FORMAT语语句句中中代代替替常常数数。除除此此以以外外,凡凡出出现现常常数数处均可用符号常量代替。处均可用符号常量代替。24F
4、ORTRAN内部函数内部函数 表表1下面举例说明函数的求值:下面举例说明函数的求值:SIN(10)=sin(5729578o)=08414709TAN(10)=tan(5729578o)=1557408ATAN(10)=arctan(1.0)=07853981(弧度弧度)LOG(3.0)=ln3=1098612 INT(86)=8INT(-86)=-8 MOD(8,3)=2SIGN(40,-05)=-40SIGN(-40,05)=40REAL(8)=80 MAX(8,6,7,15,-1)=15MIN(8,6,7,15,-1)=-1 说明:说明:(1)FORTRAN 77提提 供供 的的 系系
5、统统 函函 数数 称称 为为“内内 部部 函函 数数”。FORTRAN将将这这些些函函数数分分别别编编成成一一个个个个子子程程序序,组组成成函函数数库库,存存在在于于外外部部介介质质(如如磁磁盘盘)上上。在在完完成成源源程程序序的的编编译译之之后后,用用连连接接命命令令实实现现连连接接,即即将将已已翻翻译译成成二二进进制制指指令令的的目目标标程程序序与与函函数数库库连连接接。也也就就是是将将程程序序中中出出现现函函数数名名的的地地方方用用函函数数库库中中相相应应的的一一组组指指令令代代入入之之,组组成成一一个个统统一一的的“可可执执行行目目标标块块”。例例如如,程程序序中中出出现现一一个个SI
6、N函函数数,在在连连接接时时就就将将一一组组二二进进制制指指令令直直接接插插入入到到程程序序中中出出现现SIN的的地地方方。由由于于是是插插入入到到程程序序内内部部的,所以称为的,所以称为“内部函数内部函数”。(2)一一个个内内部部函函数数要要求求一一个个或或多多个个自自变变量量。从从附附录录中中可可以以查查出出自自变变量量(参参数数)的的个个数数。例例如如,SQRT函函数数只只能能有有一一个个自自变变量量(如如SQRT(46),MOD函函数数要要求求两两个个自自变变量量(如如MOD(8,3),MAX和和MIN函函数数要要求求两两个个以以上上自自变变量量(如如MAX(6,8,10),MIN(-
7、6,8,0)等等)。请请注注意意,当当自自变变量量个个数数规规定定为为2个个时时,自自变变量量的的顺顺序序不不应应任任意意颠颠倒倒,如如MOD(8,3)表表示示8被被3除除的的余余数数,其其值值为为2,而而MOD(3,8)则则表表示示3被被8除除的的余余数数,其其值值为为3。当当自自变变量量个个数数为为2时时,自自变变量量的的顺顺序序无无关关,如如MAX(6,8,10)和和MAX(8,10,6)结果是一样的。结果是一样的。(3)函函数数的的自自变变量量是是有有类类型型的的,函函数数值值也也是是有有类类型型的的,例例如如MOD(8,3)中中自自变变量量8和和3是是整整型型,函函数数MOD(8,3
8、)的的值值“2”也也是是整整型型,如如果果写写成成MOD(80,30),自自变变量量是是实实型型的的,函函数数值值也也是是实实型型的的,其其值值为为20。要要特特别别注注意意,当当自自变变量量的的个个数数为为两两个个或或两两个个以以上上时时,它它们们的的类类型型必必须须一一致致,否否则则出错。出错。(4)三角函数中角度的单位是三角函数中角度的单位是“弧度弧度”而不是而不是“度度”。SIN(10)=sin(5729578o)=08414709ATAN(10)=07853981(弧度弧度)例如,例如,SIN(10)表示的不是表示的不是sinlo,而是,而是sin5729578 o 1弧度弧度=57
9、29578osin30o应写成应写成SIN(30*3.14159/180)(5)自变量可以是常量,变量或表达式。自变量可以是常量,变量或表达式。例如例如SQRT(40),SQRT(A)和和SORT(20+20)均为合法。均为合法。自自变变量量的的值值必必须须落落在在取取值值范范围围之之内内,例例如如,SQRT的的自自变变量量不不得得为为负负数数,LOG、LOG10的的自自变变量量必须大于必须大于0,MOD的第二个自变量不能为的第二个自变量不能为0等。等。自自变变量量的的类类型型应应符符合合要要求求。例例如如SQRT(1)就就不不合合法法,因因为为1为为整整型型变变量量,而而SQRT函函数数的的
10、自自变变量量不不能能是是整型量。整型量。(6)INT函数的作用是简单地截去小数部分函数的作用是简单地截去小数部分,如,如INT(86)=8,INT(-8.5)=-8。(7)SIGN函数的作用是函数的作用是“符号传送符号传送”。SIGN(A,B)的作用是将的作用是将B的符号传送给的符号传送给A,例如,例如,SIGN(65,-83)的值为的值为-65,它将第二项的,它将第二项的符号符号(负号负号)传送给第一项。传送给第一项。SIGN(-65,83)的值为的值为65,因为第二个自,因为第二个自变量为正数。也就是说,函数值的符号与第二个变量为正数。也就是说,函数值的符号与第二个自变量的符号相同。自变量
11、的符号相同。利利用用这这个个函函数数可可以以检检查查A和和B是是否否同同符符号号。如如果果SIGN(A,B)=A(即即SIGN(A,B)与与A同同符符号号),则则说说明明A与与B同同符符号号,而而如如果果SIGN(A,B)与与A不不相相等等(它它们们符符号号不不同同),则则说说明明A与与B不不同同符符号号。当当B的的值值为为0时时,按按正正数数处处理理。例例如如:SIGN(1,0),SIGN(-1,0)的的值值都都为为1。25FORTRAN表达式和它的求值规则表达式和它的求值规则表达式是指一个或多个运算的组合。表达式是指一个或多个运算的组合。FORTRAN表达式是由运算符和圆括号将各类操作数表
12、达式是由运算符和圆括号将各类操作数(如常数、变如常数、变量、函数等量、函数等)按照一定规则连接起来的有意义的式子。按照一定规则连接起来的有意义的式子。FORTRAN有四种表达式有四种表达式:算术表达式算术表达式关系表达式关系表达式逻辑表达式逻辑表达式字符表达式字符表达式它们各有自己的运算符和运算规则。它们各有自己的运算符和运算规则。251算术表达式算术表达式(1)算术运算符算术运算符FORTRAN规定可以使用五种算术运算符。它们是:规定可以使用五种算术运算符。它们是:+表示表示“加加”(或正号或正号)表示表示“减减”(或负号或负号)*表示表示“乘乘”/表示表示“除除”*表示表示“乘方乘方”注意
13、:注意:(3)两个运算符不能紧邻,如)两个运算符不能紧邻,如A*B是不合法的,应是不合法的,应该写为该写为A*(B)。只有两个)。只有两个“*”可以连写可以连写代表乘方,如代表乘方,如A*2表示表示A2。(2)除号不能用)除号不能用“”。(1)乘号用)乘号用“*”表示,不能写成表示,不能写成“”,也不能,也不能用用“”代替乘号。代替乘号。(2)算术运算符优先级算术运算符优先级算术运算符的优先级按以下顺序排列算术运算符的优先级按以下顺序排列:*最高最高*,/次之次之+,最低最低同一优先级的两个运算,按同一优先级的两个运算,按“先左后右先左后右”原则。例如:原则。例如:3+56.0*8.0/4*2
14、 (3)算术表达式的含义和表示方法算术表达式的含义和表示方法FORTRAN算术表达式是用算术运算符和圆括算术表达式是用算术运算符和圆括号,将算术量按照一定的规则连接起来的式子。号,将算术量按照一定的规则连接起来的式子。算算术术表表达达式式中中各各运运算算元元素素都都是是算算术术量量(即即数数值值),使使用用的的运运算算符符只只能能是是算算术术运运算算符符和和圆圆括括号号,表表达达式式的的值也是一个算术量。值也是一个算术量。例如,下面就是一个例如,下面就是一个FORTRAN算术表达式:算术表达式:(AB)/C*2+SIN(X+Y)注意:注意:1 由由于于用用“/”号号作作为为除除号号,因因此此在
15、在写写除除法法时时应应加上必要的括号,例如:加上必要的括号,例如:。如果写成如果写成 就相当于就相当于 ,应该写,应该写成成 ,分子、分母都必须加括号。,分子、分母都必须加括号。2乘号不能省略,例如,乘号不能省略,例如,asinx,必须写成,必须写成A*SIN(X),而不能写成,而不能写成ASIN(X)。3FORTRAN中无大、中、小括号之分,一律用小括号。中无大、中、小括号之分,一律用小括号。例如,例如,相应的相应的FORTRAN表达式应该为:表达式应该为:(a+b)*2+(ab)*2)*3+c)+6 当括号层次比较多时往往容易弄错或漏写一侧当括号层次比较多时往往容易弄错或漏写一侧括号,要十
16、分小心。括号,要十分小心。4如果连续使用乘方符号,如如果连续使用乘方符号,如4*3*2,FORTRAN77规定,对规定,对多次乘方按多次乘方按“先右后左先右后左”原则处理,原则处理,即先计算即先计算3*2得得9,再进行,再进行49的运算。为避免出错,的运算。为避免出错,建议自己加上括号,如建议自己加上括号,如4*(3*2),如果想计算,如果想计算(43)2,则应写成,则应写成(4*3)*2。5对单边对单边(单目单目)运算符运算符(例如,例如,3,+4,A中的中的符号称为单边运算符符号称为单边运算符)相当于在它前面有一个运相当于在它前面有一个运算量算量“0”,例如,例如,A相当于相当于0A;A*
17、2相相当于当于0A*2即即(A*2),而不是相当于,而不是相当于(A)*2。6FORTRAN算术表达式的求值运算的优先次序为:算术表达式的求值运算的优先次序为:括号括号 函数函数 *,/+,高高 低低例如例如SQRT(3.5*2)*2的求值过程为:的求值过程为:1先算括号内的先算括号内的3.5*2;2再进行平方根的计算;再进行平方根的计算;3最后进行乘方运算。最后进行乘方运算。表表 2(4)算术表达式运算中的类型问题算术表达式运算中的类型问题FORTRAN77允许不同类型的算术量允许不同类型的算术量(包括整型、包括整型、实型、双精度、复型实型、双精度、复型)之间的算术运算,但不允许在之间的算术
18、运算,但不允许在算术量和非算术量算术量和非算术量(如逻辑型、字符型如逻辑型、字符型)之间进行算术之间进行算术运算。例如,运算。例如,2*35是允许的。是允许的。FORTRAN77作如下规定:作如下规定:1同同类类型型的的算算术术量量之之间间运运算算的的结结果果仍仍保保持持原原类类型型。例例如如,2*3的的值值为为整整数数6,25*20的的值值为为实实数数50。2*3的值为整数的值为整数8,而,而20*30的值为实数的值为实数80。特别应当注意的是:特别应当注意的是:FORTRAN规定两个整数相除规定两个整数相除的商也是整数的商也是整数。例如,例如,5/2的值是的值是2,而不是,而不是25。5/
19、2的值为的值为2。尤其需要注意的是。尤其需要注意的是1/2的值为的值为0。因此,如果要计算因此,如果要计算05sinx,不能写成,不能写成1/2*SIN(X),因为它的值是零,应写成,因为它的值是零,应写成0.5*SIN(X)或或10/20*SIN(X)。40.5不能写成不能写成4*(1/2),而应写成,而应写成4*05或或4*(10/20)。4*(1)得零。得零。同理,同理,16*(4)的值也为零。的值也为零。如如果果表表达达式式中中包包括括整整数数的的除除法法,应应注注意意运运算算的的顺顺序序,如如数数学学上上的的值值为为64,写写成成FORTRAN表表达达式式4*8/5得得到到结结果果为
20、为6,而而若若写写成成4/5*8得得到到结结果果零零。如如果果改改用用实实数数相相除除就就不不会会有有这这种种情情况况:40*80/50和和40/50*80的值都是的值都是64。2如果参加运算的两个算术量为不同类型,则编译如果参加运算的两个算术量为不同类型,则编译 系统会自动将它们转换成同一类型然后进行运算。系统会自动将它们转换成同一类型然后进行运算。转换的规律是:将低级类型转换成高级类型。转换的规律是:将低级类型转换成高级类型。类型的等级次序为:类型的等级次序为:(高)复型(高)复型 双精度型双精度型 实型实型 整型(低)整型(低)我们以实型和整型的运算量之间的运算为例。我们以实型和整型的运
21、算量之间的运算为例。类型的级别实型高于整型。类型的级别实型高于整型。如如果果有有5*65,则则系系统统先先将将5转转换换为为50,然然后后乘乘以以65得得325,为为实实型型数数。5*60的的值值为为300。整型和实型的算术量四则运算的规律见表整型和实型的算术量四则运算的规律见表3 3。表表 3乘方运算的规律见表乘方运算的规律见表4 4。表表 4 类型的转换是从左向右进行的,在遇到不同类类型的转换是从左向右进行的,在遇到不同类型的算术量时才进行转换。例如:型的算术量时才进行转换。例如:1/4*20.0。并并不不是是一一开开始始就就同同时时将将1和和4转转换换成成实实数数10和和40然然后后进进
22、行行实实数数运运算算(得得50),而而是是先先进进行行整整数数运运算算1/4得得0,然然后后再再乘乘以以20.0,使使结结果果转转化为实型,最后结果为化为实型,最后结果为0.00000。(5)算术表达式运算的误差问题算术表达式运算的误差问题整整型型量量的的运运算算是是准准确确的的,只只要要在在整整数数范范围围内内,没没有有任任何何误误差差。而而实实型型量量的的运运算算会会出出现现一一些些误误差差,例例如如:11111.1*1111.11本本应应得得12345654.321,但但由由于于受受有有效效位位数数的的限限制制,只只能能得得到到1.234565*107(假假定定所所用的用的FORTRAN
23、允许有效位数为允许有效位数为7位)。位)。又如:又如:0.001+1246825.0-1246820.0本应得到本应得到5.001。但由于有效位数的限制,在进行前两项相加时不可能但由于有效位数的限制,在进行前两项相加时不可能得到得到1246825.001(因为它需要(因为它需要10个有效位数),而个有效位数),而只能得到只能得到1246825.0,再进行减法得到,再进行减法得到5.0,显然有误,显然有误差。这个误差也来源于有效位数,也就是说由于实数差。这个误差也来源于有效位数,也就是说由于实数在内部的存储方式引起的。在内部的存储方式引起的。如如果果把把表表达达式式改改写写一一下下,将将运运算算
24、次次序序换换一一下下,就就不不会出现这个问题:会出现这个问题:1246825.0-1246820.0+0.001结果为结果为5.001。这是因为每次运算所得结果的数字位数都不这是因为每次运算所得结果的数字位数都不超过有效位数。因此,在写表达式时应尽量使每超过有效位数。因此,在写表达式时应尽量使每一次运算结果都在有效位数范围之内,否则就会一次运算结果都在有效位数范围之内,否则就会出现误差。在运算中尽量不要使两个相差很大的出现误差。在运算中尽量不要使两个相差很大的数值直接相加或相减。数值直接相加或相减。因此,有两个理论上本应相等的实数因此,有两个理论上本应相等的实数A和和B,如,如果判断果判断“A
25、B”,可能得到的结果不等于,可能得到的结果不等于0,即,即A不不等于等于B。所以在判断两个实数相等或不相等时,要。所以在判断两个实数相等或不相等时,要慎重。慎重。总之,在实数运算中应充分考虑到其可能出现总之,在实数运算中应充分考虑到其可能出现的误差,而且在运算中误差会不断积累而增大,有的误差,而且在运算中误差会不断积累而增大,有时可能达到一个可观的程度。时可能达到一个可观的程度。整型量的运算速度比实数快而且不出现误差,整型量的运算速度比实数快而且不出现误差,但整数的范围有限,用实数运算速度慢而且有误差。但整数的范围有限,用实数运算速度慢而且有误差。如果想保持大的表数范围又有较高的准确度,应增如
26、果想保持大的表数范围又有较高的准确度,应增加有效位数,可采用双精度型数,有效位数可以达加有效位数,可采用双精度型数,有效位数可以达到到1517位以上。位以上。252关系表达式关系表达式(1)关系运算符及其优先级关系运算符及其优先级FORTRAN有六个关系运算符,如表有六个关系运算符,如表5所示。所示。注意:关系运算符两侧的两个点号不能漏写。注意:关系运算符两侧的两个点号不能漏写。(2)关系运算符优先级关系运算符优先级所有关系运算符是同一优先级。所有关系运算符是同一优先级。(3)关系表达式关系表达式 用用关关系系运运算算符符将将两两个个算算术术表表达达式式或或两两个个字字符符表表达达式式连连接接
27、起起来来的的式式子子,称称为为关关系系表表达达式式。关关系系表表达达式式是是最简单的一种逻辑表达式。其一般形式为:最简单的一种逻辑表达式。其一般形式为:算算术术量量可可以以是是一一个个数数值值常常数数、数数值值型型变变量量、数数值值函数,也可以是一个算术表达式。函数,也可以是一个算术表达式。关系表达式的结果是逻辑型的值,关系表达式的结果是逻辑型的值,“真真”或或“假假”。以下是一些关系表达式的例子:以下是一些关系表达式的例子:关系表达式关系表达式相当的数学式相当的数学式AGT35a35A+BLE00a+b0SIN(X)GE05sinx05ABNEC+Dabc+dX+Y+ZEQ00 x+y+z0
28、ILTJ/2I0时,此关系表达式的值为时,此关系表达式的值为“真真”;如果;如果X0,则此表达式的值为,则此表达式的值为“假假”。(5)由于实数的存储与运算存在着一些微小的误由于实数的存储与运算存在着一些微小的误差,因此用差,因此用EQ(等于)和(等于)和NE(不等(不等于)运算符时要特别注意,可能有两个在理于)运算符时要特别注意,可能有两个在理论上相等的量用关系运算符进行比较,结果论上相等的量用关系运算符进行比较,结果却是不相等。却是不相等。因此,在用因此,在用EQ和和NE运算符对两个实型运算符对两个实型量进行关系运算(即进行比较)时,要考虑到可能量进行关系运算(即进行比较)时,要考虑到可能
29、出现的误差,并设法弥补它。出现的误差,并设法弥补它。例如:例如:对对AEQB可改用:可改用:ABS(AB)LT1E6即当即当A与与B之差的绝对值小于某一个很小的数时之差的绝对值小于某一个很小的数时(例如(例如10-5或或10-6等),则认为等),则认为A与与B相等。相等。对下面的关系表达式:对下面的关系表达式:CNED可改用:可改用:ABS(CD)GT1E6即当即当C与与D之差的绝对值大于某一个小的数时,才之差的绝对值大于某一个小的数时,才认为它们不相等,只要不大于此小的数就认为是相等认为它们不相等,只要不大于此小的数就认为是相等的。的。(6)以上介绍的是算术关系表达式,即将两个算术以上介绍的
30、是算术关系表达式,即将两个算术量进行比较。(或者说,对两个算术量进行关量进行比较。(或者说,对两个算术量进行关系运算)除此以外,还有字符关系表达式,即系运算)除此以外,还有字符关系表达式,即将两个字符量进行比较。将两个字符量进行比较。253逻辑表达式逻辑表达式(1)逻辑运算符逻辑运算符FORTRAN77提供五个逻辑运算符,见表提供五个逻辑运算符,见表6。注意:逻辑运算符两侧的两个点号不能漏写。注意:逻辑运算符两侧的两个点号不能漏写。表表7为为逻逻辑辑运运算算“真真值值表表”,用用它它表表示示当当A和和B的的值值为为不不同同组组合合时时,各各种种逻逻辑辑运运算算所所得得到到的的值值“真真”或或“
31、假假”。表表 7(2)逻辑运算优先级逻辑运算优先级逻辑运算符的优先级按以下顺序逻辑运算符的优先级按以下顺序(由高到低由高到低)排列:排列:.NOTNOT.ANDAND.OROR.EQVEQV.和和.NEQVNEQV.其中其中EQVEQV和和NEQVNEQV两个运算符按两个运算符按“先左后先左后右右”的原则进行运算。的原则进行运算。(3)各类运算符的优先级次序各类运算符的优先级次序用表用表8表示各类运算符的优先级别表示各类运算符的优先级别。表表 8 对下面列出的逻辑表达式,其运算次序如下所对下面列出的逻辑表达式,其运算次序如下所示示(设设I3,K5,L3,N=1)I.GE.0 .AND.I+L
32、.GT.K+N .OR.NOT.TRUE.I.GE.0 .AND.I+L .GT.K+N .OR.NOT.TRUE.6 6T F FF F先算出先算出I+L6,K+N6。求出求出“I.GE.0”的值为的值为“真真”(以以“T”表示表示),“I+L.GT.K+N”的值为的值为“假假”(以以“F”表示表示)。进行进行NOTNOT运算。运算。.NOTNOT.TRUETRUE的值为的值为“假假”。最后进行最后进行OROR运算。逻辑表达式最后的值为运算。逻辑表达式最后的值为 “假假”(FALSEFALSE)。(4)(4)逻辑表达式逻辑表达式 用用逻逻辑辑运运算算符符将将逻逻辑辑量量连连接接起起来来的的式
33、式子子称称为为逻逻辑表达式辑表达式。逻辑表达式的基本形式可表示为:逻辑表达式的基本形式可表示为:进行进行ANDAND运算。运算。“TRUETRUEANDANDFALSEFALSE”的值为的值为“假假”。FORTRAN77的逻辑量有三种:的逻辑量有三种:逻辑型常量逻辑型常量逻辑型变量逻辑型变量 关系表达式关系表达式 逻辑表达式的运算结果也是一个逻辑值,逻辑表达式的运算结果也是一个逻辑值,“真真”或或“假假”。应用逻辑表达式时的几点说明:应用逻辑表达式时的几点说明:1 1 算算术术运运算算符符的的运运算算对对象象是是数数值值量量,运运算算结结果果为为数数值值。关关系系运运算算符符的的运运算算对对象
34、象是是数数值值量量,运运算算结结果果是是逻逻辑辑值值。逻逻辑辑运运算算符符的的运运算算对对象象是是逻逻辑辑量量,运运算算结果为逻辑值。结果为逻辑值。2 2 逻辑运算可以写成以下形式逻辑运算可以写成以下形式(设为逻辑变量设为逻辑变量):L1L1ANDANDL2L2ANDANDL3L3ANDANDL4L4 算术表达式可以写成以下形式:算术表达式可以写成以下形式:A+B+C+D A+B+C+D即可以连续用运算符连接运算量。即可以连续用运算符连接运算量。但如果想表示但如果想表示ABCDABCD,关系表达式不能写成,关系表达式不能写成以下形式:以下形式:A ALTLTB BLTLTC CLTLTD D应
35、写成:应写成:(A(A.LTLTB)B).ANDAND(B(B.LTLTC)C).ANDAND(C(C.LTLTD)D)即即一一个个运运算算量量只只能能与与一一个个关关系系运运算算符符相相邻邻,不不能在其两侧都出现关系运算符。能在其两侧都出现关系运算符。3 3 请不要将请不要将ANDAND和和EQVEQV混淆。混淆。A A.ANDANDB B是测试是测试A A和和B B是否均为是否均为“真真”,只有,只有A A、B B均为均为“真真”,A A.ANDANDB B的值才为的值才为“真真”。A AEQVEQVB B是测试是测试A A和和B B的逻辑值是否相等,只的逻辑值是否相等,只要要A A和和B
36、 B都为都为“真真”或都为或都为“假假”,A AEQVEQVB B的值的值就为就为“真真”。EQV EQV的含义是的含义是“等值等值”(Equal Value)(Equal Value),.NEQVNEQV的含义是的含义是“不等值不等值”(Not Equal Value),(Not Equal Value),当然此处说的当然此处说的“值值”是是“逻辑值逻辑值”。(5)(5)逻辑表达式的运算规则逻辑表达式的运算规则 一个逻辑表达式中可以包括多个逻辑运算符,一个逻辑表达式中可以包括多个逻辑运算符,也可以包括多个关系运算符和算术运算符。这些逻也可以包括多个关系运算符和算术运算符。这些逻辑量经过逻辑运算后可以得到一个逻辑值。辑量经过逻辑运算后可以得到一个逻辑值。254字符表达式字符表达式(1)字符运算符字符运算符FORTRAN77只提供一种字符运算符,就是字符只提供一种字符运算符,就是字符连接符连接符“/”,它将两侧的字符型数据连接起来。,它将两侧的字符型数据连接起来。(2)字符表达式字符表达式用字符运算符和括号将字符量连接起来的式子用字符运算符和括号将字符量连接起来的式子称称为为字字符符表表达达式式。例例如如:A/B,得得到到AB。A/B就就是是一一个个字字符符表表达达式式,可可以以看看出出,字字符符型表型表达式的值是字符型常量。达式的值是字符型常量。