单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2019/11/19,#,2024/11/17,1,一、,Fortran,常量,(,1,)什么是常量,在程序运行的过程中,其,值不改变的量,。比如,,12.0,、,-2,、,FORTRAN,等都是常量。在,Fortran,中,常量分为,直接常量,和,符号常量,两大类:,(,2,)直接常量,指数据本身就是一个常量,,,Fortran,处理整型(,Integer,)、实型(,Real,)、双精度型(,Double Precision,)、复型(,Complex,)、逻辑型(,Logical,)、字符型(,Character,)等,六种直接常量,,每种数据常量有各自的表示方法。,1 Fortran,程序中最基本的数据,2024/11/17,2,1,、,整型常量,:就是整型常数(,整数),,包括正数、负数和零。但要注意的是,-,数字间不能加平常表示千分位的,“,”,号以及加空格,也不能带小数点。比如,,3,567,212,、,8 99,、,6.1,都是错误的整型常量。,2,、,实型常量,:就是实型常数(,实数,),有两种表示形式,-,小数点形式,:根据小数点前后是否有数字,有,3,种形式,m.n,、,m.,、,.n,,数字前面可以加上符号,比如,,-6.8,、,9.,(,=9.0,)、,.89,(,=0.89,)等。,指数形式,:一般用来表示绝对值很大或很小的数,表示方式是用,E,表示以,10,为底指数,且,E,的左边为数字部分、右边是指数部分,比如,,1.32E6,(,=1.3210,6,)、,2.68E-8,(,=2.6810,-8,)。用指数形式表示实数时要,注意,:,、,数字部分,可以是整型的也可以是实型的,,如,1E2=1.0E2=100.0100,2024/11/17,3,、,E,的左右两边的数字部分和指数部分必须同时出现、缺一不可,比如,,E-9,(缺数字部分)和,.,E2,(单独的小数点)都是不合法的。,、,指数部分,只能是整数,、不可写成实数,如,8E2.3,是错误的指数表示;,(,3,)符号常量,所谓的符号常量,是用一个,标识符,来代表一个常量。使用时,需要对符号常量进行说明,方法是,用,Parameter,语句来说明(定义),,比如:,Parameter,(,Pi=3.14159,M=80,),这个语句定义了两个符号常量,Pi,和,M,,在程序单元中,Pi,就代表了,3.14159,、,M,代表了,80,。其中,Parameter,就是定义符号常量使用的特定标识符,,被定义的量要放在括号内、而且有多个符号常量时之间要用,“,”,分隔,。,2024/11/17,4,二、,Fortran,变量,(,1,)什么是变量,变量与常量相对应,是指在程序运行的过程中,其,值可以改变的量,。变量,实质是代表一个数据存储单元,,因此,在,Fortran,中经常用到下面(,貌似错误,)的语句:,N=N+1,其表示,存储单元,N,中的数据,在原来的基础上增加,1,。,此外,要注意,parameter,语句是非执行语句,在程序编译时符号常量名均被替换相应的常量,而后面要讲的变量则是一个数据存储单元(,其中的值是变化的,),因此,符号常量不能当变量使用,!,(,2,)变量的取名,变量需要一个名字来识别,-,变量名,,其用,标识符,来命名,在,Fortran,语言中变量名的标识符只能由字母、数字和下划线组成、,且开头只能是字母,,比如,x,、,total2,、,k123,等。,2024/11/17,5,5,、变量名不区分字母,大小写,,比如:,grade,、,Grade,、,GRADE,代表同一变量名;,6,、标识符的长度因,Fortran,版本不同而有差异,,Fortran90,中标识符长度范围,1,31,,超过的字符无效;(,F77,是,1,6,个),7,、,Fortran,没有规定,“,保留字,”,,即可以使用,Fortran,的语句名、函数名等作为变量名,但为了避免误解、混淆,实际中最好不用它们作变量名,比如:,不要用,print,、,read,、,open,、,write,、,sin,、,Fortran,等作变量名;,2,、在同一程序单元中不能用相同的变量名代表不同的变量;,1,、变量名必须以字母开头,比如;,Sy12,、,mx,等是合法的,而,3bh,、,_xu8,等是不合法的变量名。,3,、变量名中的空格不起作用,比如:,abc,,,a bc,,,ab c,,,a b c,代表同一变量,4,、变量名尽量做到,“,见名知义,”,AVER,、,SUM,、,mymax,;,2024/11/17,6,(,3,)变量的类型,变量是数据存储单元,其表示的数据类型要进行说明,有,3,种方法说明:,1,、强制说明,或,显式说明,直接指出,变量的,数据类型,,用,类型说明语句,(,格式,),说明:,数据类型,说明符,变量名,1,,,变量名,2,,,根据数据的类型,其中的,说明符包括,:,Integer,说明变量为整型变量,Real,说明变量为实型变量,Double precision,说明变量为双精度变量,Complex,说明变量为复型变量,Logical,说明变量为逻辑型变量,Character,说明变量为字符型变量,2024/11/17,7,比如:,Integer x,y -,定义,2,个整型变量,x,和,y,Real area,average,student1 -,则定义,3,个实型变量,说明多个变量时,变量间用,“,”,分开,但末尾不能用,“,.,”,,比如,,double precision a,b,c,.,是错误的。,这种说明语句的特点是,不仅进行了变量数据类型的说明,而且还可以给被说明的变量,赋予初值,或变量,初始化,(具有双重功能),。比如:,Real:total=73.2 -,定义了实型变量,total,,同时给它赋初值为,73.2,。,此外,在,Fortran90,中,还可以用下面的语句来说明变量类型:,类型说明符,:,变量,1,,变量,2,,,比如:,Real:score,height -,该语句定义,2,个实型变量,2024/11/17,8,2,、隐含说明语句,implicit,这种说明语句把以,某个字母或某些字母开头的变量,规定为所需的类型,格式为:,Implicit,类型说明符,(字母表),比如:,Implicit integer(a,c,r-v)-,表示以字母,a,、以字母,c,、及以字母,r,、,s,、,t,、,u,、,v,开头的变量均为整型变量。,注意,:字母表之间用,“,”,、字母范围用,“,-,”,、末尾不用,“,.,”,。,3,、,隐含约定,Fortran,语言规定,以,i,j,k,l,m,n,开头的变量被当作整型变量,常又称为,I,N,规则,。,例如:在没有前面,2,种说明的情况下,,i1,、,mCA,、,N3s,等均为整型变量。,2024/11/17,9,关于变量的类型说明,还需要注意:,1,、,IN,规则在,Fortran77,中经常使用,但是其有一定的副作用,比如,隐含说明与强制说明一同使用时,变量类型不清楚,因此,在,Fortran90,中,不主张使用,,这,需要在程序变量说明之前加入:,implicit none,语句,来,取消,IN,规则,。,2,、,3,种变量类型说明方式中,,强制说明优先级别最高,、,隐含说明,Implicit,次之,、,IN,规则级别最低,,就是说,当变量被强制定义为某种类型之后,,Implicit,语句和,IN,规则对它就不起作用了。,3,、,Implicit,语句和强制,说明语句,,均为非可执行语句,,Fortran,规定:在编程序时,要把它们,放在所有可执行语句的前面,。,2024/11/17,10,三、,Fortran,的,内部函数,(,1,)什么是内部函数,在编程序时,经常需要直接使用数学函数,为方便,Fortran,语言自带有丰富的数学函数,称为,内部函数,,它是指能完成一定功能的程序单位,内部函数可以,直接调用,,但需,遵守其使用规则,。,(,2,)常见的一些内部函数,作为例子,下面给出一些,Fortran,的内部函数:,1,、,abs(x)-,求变量,x,的绝对值;,2,、,sqrt(x)-,求变量,x,的平方根;,3,、,int(x)-,取,x,的整数部分;,4,、,mod(x,y)-,求,x,除以,y,的余数;,5,、,sign(x,y)-,求,x,和,y,的符号;,6,、,max(x,y,z,)-,求最大值;,7,、,min(x,y,z,)-,求最小值。,2024/11/17,11,8,、,exp(x)-,求自然指数运算;,9,、,log(x)-,求,以,e,为底,的对数(即自然对数);,10,、,log10(x)-,求,以,10,为底,的对数(即常用对数)。,11,、,sin(x)-,求正弦;,12,、,tan(x)-,求正切;,13,、,asin(x)-,求反正弦;,14,、,atan(x)-,求反正切。,(,3,)内部函数的使用,在使用,Fortran,内部函数时,一定要遵守其规则,否则程序将出错甚至不能运行:,1,、,Fortran,内部函数调用格式:,函数名,(,自变量,),例如:,sin(90*3.14159/180),1.0,;,sqrt(9.0),3.0,;,abs(-5.6),5.6,;,int(6.75),6,;,exp(3.0),20.085540,其中自变量(常数)必须用括号括起来,比如:,sinx+cosx sin(x)+cos(x),2024/11/17,12,2,、内部函数含有多个自变量(参数)时,它们之间,用,“,”,分隔,,但,末尾不能使用,“,.,”,。比如,,sin(x),、,mod(m,n),等。,3,、函数的自变量(参数)和函数值都是有相应的,数据类型,的,比如,,mod(m,n),中的自变量及函数值都是,整型,变量,而,sin(x),中的自变量和函数值则均为,实型,变量。,4,、所有函数都必须遵循其原有的,数学规则,,比如负数不能开平方根,实数不能求余,负数不能求对数等。,5,、要注意与数学中函数之间的某些,差异,,比如,,log(x),表示求自然对数(即,lnx,)而非数学上的求常用对数,(logx),。,6,、注意函数自变量的单位,比如,sind(x),中,x,取弧度。,(,4,)、函数运用的例子,比如,求,3,个数,x,y,z,的最大值可以表示为:,Max(x,y,z),又如,判断一个自然数,M,是否为另一个自然数,N,的因数,通过,Mod,(,M,N,)是否为零可以判断:如果为则是的因数,否则说明不能被整除,即,Mod(m,n)0,。,2024/11/17,13,四、,Fortran,的,算术表达式,(,1,)什么表达式,将各常量、变量、函数用,运算符,连接起来的式子称为,表达式,。,根据运算符的不同,表达式分为以下,种,:,、,算术表达式,、字符表达式,、,关系表达式,、逻辑表达式,此处先介绍,算术表达式,-,将各种运算元素(常量、变量、函数)用,算术运算符,连接起来的一个,有值式子,。,(),算术运算符及其优先级,、有,6,种,算术运算符,加(,+,)减(,-,)乘(,*,)除(,/,)乘方(,*,),括号,(),、算术运算符的优先级,括号函数乘方乘、除加、减,注:,同级,运算,“,先左后右,”,,,连续乘方,时,“,先右后左,”,。,比如:,3+5-6.0*8.5/4*2+sin(x),3+5-6.08.54,2,+sinx,x*y*z,、,x*(y*z),x,yz,(x*y)*z,(x,y,),z,利用算术表达式概念,就可以将:,数学运算式,Fortran,算术表达式,2024/11/17,14,(,3,),Fortran,算术表达式书写注意,、表达式中的各运算元素之间必须用运算符分隔。,