1、page 12024/4/20 周六Presentation主要内容:主要内容:4FORTRAN源程序的结构源程序的结构4FORTRAN源程序的书写格式源程序的书写格式4FORTRAN源程序的编辑与运行源程序的编辑与运行4数据类型、常数、变量数据类型、常数、变量4算数运算符和算术表达式算数运算符和算术表达式4FORTRAN内部函数内部函数page 22024/4/20 周六Presentation1.1 FORTRAN源程序的结源程序的结构构page 32024/4/20 周六PresentationFORTRAN程序的结构是块式结构主程序第一个辅程序第n个辅程序ENDENDENDpage 4
2、2024/4/20 周六Presentation(一)一个FORTRAN程序由一个主程序和若干个(可以是0个)辅程序构成。一个程序单位由一系列语句组成。一个程序单位可以看成一块,程序单位之间是相互独立的,编译程序一次可以编译一个完整的程序也可以单独编译一个程序单位,而由连接装配程序将若干个编译好的程序单位装配成一个可执行程序,交付执行。(二)主程序的第一个语句可以是PROGRAM语句,并且它只能作为主程序的第一个语句出现,而不能出现在任何其它地方。PROGRAM语句用于给程序命名。(三)任何一个程序单位,其最后一行必须是END语句,它标志着程序单位的结束。FORTRAN并没有规定程序单位之间的
3、位置关系,习惯上,总是把主程序放在前面。(四)FORTRAN的全部语句可分为两大类:可执行语句和非执行语句。一个程序单位的执行,是从它的第一个可执行语切开始,按照执行序列依次往下执行。控制语句可能改变语句的执行次序。然而,一旦控制转移到某个语句之后,则仍然从该语句开始,依次往下执行。page 52024/4/20 周六Presentation例:编写FORTRAN程序,求解一元二次方程的一组实根。求跟公式如下:page 62024/4/20 周六Presentation第一步:画流程图开始输入系数a、b、cd=0?计算重根输出重根计算两个实根输出两个实根结束0IMPLICIT语句I规则;(2)
4、类型说明语句位于所有可执行语句的前面,IMPLICIT语句位于最前面;(3)IMPLICIT NONE取消IMPLICT和IN规则;(4)只在本程序单位内有效。page 232024/4/20 周六Presentation1.5 算数运算符和算术表达式算数运算符和算术表达式 五种算术运算符:加减乘除乘方算术表达式:运算元素常数 变量 函数等运算符括号 ()page 242024/4/20 周六Presentation算术表达式的运算规则:1 若表达式中有一个以上的运算项,必须用算术运算符将它们隔开。例如ABC只代表一个运算项,而不能代表A乘B乘C的运算。当写成A*B*C时,才表示是A乘B乘C的
5、运算。所以乘号不能省略。2 两个运算符不能紧邻,如A (-B)不能写成A/-B,而应写成A/(-B)。3 运算的优先次序为:()函数*、/+、-,同一级中按自左往右顺序进行运算。4 “-”运算符与加减号具有相同的级别,它相当前面加一个零。5 多次乘方的运算,按由右向左组合。6 无大、中、小括号之分。一律用小括号因此应持别注憨括号的层次配对关系。page 252024/4/20 周六Presentation表达式运算中的类型问题1,运算量类型相同,结果仍为原类型6/4=1.5?6.0/4.0=1.5 I*J/K=I/K*J?I*J/KI/K*J2*(-1)=0.5?2*(-1)=02,运算类型不
6、同,先将低级运算量转化为高级类型,然后进行同级运算量的运算。2.5*4 44.0 2.5*4.0=10.0page 262024/4/20 周六Presentation 3.0*(1/2)/2.0=2*3/2*2=1.5*(4/3*2)+6=3.0*1/2/2.0=2*3/2.0*2=1.5*4/3*2+6=0190.751.510FORTRAN 77规定允许混合运算,但不同类型量之间的转换是要花费机器时间的。因此,最好使表达式中的运算量具有相同的类型,如:8*6.53*1.5T 最好写成:8.0*6.53.0*1.5T。整型量之间的运算速度比实型量快,整型乘方运算尤其快。例如:2*3比2*3
7、.0快,而且准确度高。如果指数是正整数,最好写成整型。如:x*2A*3等。和整型量的运算相比,实型量的运算较慢,而且它只能近似地代表一个值(有误差)。因此,应根据实际情况决定表达式的类型。注意:page 272024/4/20 周六Presentation运算中有效位数造成的误差和计算结果的溢出问题 0.001+1000002-10000011000002-1000001+0.001 1/3+1/3+1/31.0/3/0+1.0/3.0+1.0/3.010E30*10E20/10E1510E30/10E15*10E20写算术表达式时,应注意运算次序。例:例:page 282024/4/20 周
8、六Presentation1.6 FORTRAN内部函数内部函数 在计算机程序中经常需要使用数学中的一些函数,如:三角函数、指数函数、对数函数等。FORTRAN 77将一些经常使用的函数编成一系列独立的子程序,供用户程序调用。系统会按函数名从函数库中找出实现该函数的程序段,将它插入到用户目标程序中。FORTRAN 77提供的这种函数称标准函数(即库函数),又称内部函数。例如:内部函数的调用:函数名(自变量列表)page 292024/4/20 周六Presentation 1 自变量应该用括号括起来,如SINX是不正确的写法,而SIN(X)是正确的写法。2 三角函数的单位是弧度,而不是度。SIN(1)表示是一个弧度的正弦值而不是SIN1的值。3 自变量可以是表达式,如EXP(3.5*2)。自变量中可以引用函数,如:SIN(3.5*COS(2.0),甚至可以多次引用函数,如:SIN(1.5*SIN(2.3*SIN(2.0)。4 有些函数要求二个或二个以上的自变量,如求余函数MOD(15,2)表示15除以2的余数。MAX(1,J,K,L)表示取I、J、K、L之中值最大的一个。page 302024/4/20 周六Presentation