Fortran语言使用的特殊字母表被称为Fortran字符集。目前Fortran字符集由97个字符组成:
符号个数类型取值26大写字母A~Z26小写字母a~z10数字0-91下划线_5算数符号+ - * / **28其他各种符号().+.'$: ! " % & ;<>?和空格 ~\[ ] ` #@和空格Fortran对字母大小写不敏感。A和a是两个相同的字母。
1.2 Fortran语句结构语句分类:可执行部分+不可执行部分。
&符号:进行标记并在下一行继续这一行书写,直到结束。
!符号:注释说明符号。
语句标号:第四行,以数字开始,语句标号可以是1~99999中任何一个数字,是Fortran语句中的“亚马逊海淘网名字”,使用它可以在程序的其他地方引用这条语句。标号数字在程序单元中必须是唯一的。
output = input1+input2 !求和输入值output = input1 &+input2 !求和输入值999 output = input1 & !求和输入值&+input21.3 Fortran程序结构PROGRAM my_first_program!目的:! 本程序主要说明Fortran语言的基本特点!! 声明程序中用到的变量INTEGER::i,j,k !所有变量均为整型! 获取存入变量i和j的值WRITE(*,*)'Enter the numbers to multiply'READ(*,*)i,j!求两个数的相乘k = i * j!输出计算结果WRITE(*,*)'Result = ',k!完成STOPEND PROGRAM my_first_programFortran程序主要分为三个部分:
声明部分:一组不可执行语句组成,位于程序开头(PROGRAM),定义程序名(第一个字符必须是字母)和程序引用的数据及其变量的类型。如果存在PROGRAM语句,必须是程序的第一个语句行。执行部分:多条语句构成,描述程序完成的操作。终止部分:一条语句或终止程序执行的语句组成,告诉编译器程序结束。1.3.1 声明部分声明部分由不可执行语句组成,位于程序的开头,定义程序名和程序引用的数据以及变量的类型。
这一部分的第一条语句是PROGRAM语句。它对Fortran编译器指定程序的名字。Fortran的程序名可长达63个字符,还可以是字母、数字和下划线任意组合而成的字符串。但是,程序名的第一个字符必须是字母。如果存在PROGRAM语句,它必须是程序的第一个语句行。在这个例子中,程序被命名为my_first_program。
程序中的下面几行是注释,描述程序的作用。再下面跟随INTEGER类型声明语句,这条不可执行语句在本章后面有介绍。这里,它声明程序要用的整型变量I、J和K。
1.3.2 执行部分执行部分由一或多条执行语句组成,描述程序将完成的操作。这个程序的第一条可执行语句是WRITE语句,它输出信息,提示用户键入两个待相乘的数据。下一条执行语旬READ语句,读入两个用户提供的整型数。第三条执行语句指示计 算机乘以两数1和j,结果存储在变量k。最后一条WRITE语句打印用户看到的结果。注释被嵌入在整个执行部iphone已停用怎么办分的任意位置。
1.3.3 终止部分终止部分由STOP和END PROGRAM语句组成。STOP语句告诉计算机停止运行。END PROGRAM语句告诉编译器程序中不再有语句需要编译。
STOP语句格式有如下形式:
STOPSTOP 3STOP 'Error stop'如果只使用STOP语句,则执行将停止。如果STOP语句与数字一起使用,则程序停止时将打印出该数字,通常将作为错误代码返回给操作系统。如果STOP语句与字符串一起使用,则程序停止时将打印出该字符串。
当STOP语句紧挨着出现在END PROGRAM语句之前,它是可选的;当到达END PROGRAM语句时,编译器将自动地产生一条STOP语句。
有一个替代版本的STOP语句叫做ERROR STOP。该版本停止程序,但它也通知操作系统程序无法正常执行。
ERROR STOP 'Cannot access database'此版本的STOP语句已在Fortran 2008中添加,如果需要通知操作系统,脚本程序异常失败,可能会很有用。
1.3.4 程序书写格式一般Fonran编程原则:
保留字都大写,如PROGRAM、READ和WRITE程序的变量用小写字母表示。名字中的下划线出现在两个字之间。大写字母作为常量名。由于大写和小写字母在Fortran中作用相当,所以程序按任何一种方式来书写都可以。
1.4 常数与变量1.4.1 Fortran中的常数与变量Fortran常数是数据对象,它定义在程序执行之前,且在程序执行期间取值不可改变。当Fortran编译器遇到常数时,它将常数放置在一个位置已知的内存单元,无论何时程序使用常数,就引用该存储位置。
变量是一个数据对象,它的值在程序执行期间可以改变(Fortran变量的取值可以在程序执行前初始化,不初始化也行)。当Fortran编译器遇到变量时,它给变量预留已知的内存单元,无论何时程序使用变量,就引用该存储位置。
程序单元中的每个Fortran变量有唯一的名字,变量名是内存中特定位置的标号,该标号方便人类记忆和使用。Fortran中的变量名可以长达63个字符,由字母、数字和下划线字符的任意组合构成,但adidas官网是名字的第一个字符总必须是字母。
在编写的膝盖痛是什么原因程序的开头包含数据字典非常重要,数据字典列出了程污水处理上市公司序中每个变量的定义,定义含有两项内容:数据项内容和数据项埃及米黄占用几个存储单元的描述。写程序的时候,看上去数据字典可以是不必要的,但是当后期自己或其他人不得不修改程序时,它就价值无限。
Fortran有5个自带或“内置”的常数和变量数据类型:
数字类:INTEGER资治通鉴读后感,REAL,COMPLEX逻辑类:LOGICAL字符类:CHARACTER1.4.2 定义变量类型默认方式任何以字母i,j,k,l,m,n开头的变量名假定为INETEGER,其他字母开头的企划变量名则假定为REAL。默认情况下没有变量的类型为字符型。显式定义格式INTEGER:: var1[,var2, var3,... ]REAL:: var1[,var2,var3,... ]这里 [ ] 中的内容是可选的。在这种情况下,括号内的内容说明可以在一行中同时定义两个或多个变量,变量之间用逗号隔开。这些不可执行的语句称为类型声明语句。放在PROGRAM语句之后,第一条可执行语句之前。
所有字符变量必须显式地用CHARACTER声明语句声明,格式:
CHARACTER(LEN=<len>):: var1[,var2,var3,... ]<len>是变量中的字符数目,是可选的(默认为1)。假如圆括号中有数字,那么这个数字是语句声明的字符变量的长度。
15 赋值语句与算数运算1.5.1 操作顺序为了能明确地计算表达式,Fortran已经建立一系列规则来管理表达式中操作符的级别或计算顺序。
通常,Fortran遵循代数中的一般规则,这其中的运算操作计算顺序是:
首先做圆括推广平台号内的计算,且内层括号比外层括号优先。再从右到左笔记本怎么重装系统做指数运算。从左到右做乘法和除法运算。从左到右做加法和减法运算。1.5.2 混合运算含有实数和整数的表达式被称为混合模式的表达式shell语言,涉及实数和整数操作的运算称为混合模式运算。在进行实数与 整数操作的情况下,计算机将整数转换为实数,然后进行实数运算,结果是实数类型。
当运算操作是在两个实型数据上完成,则结果的类型为REAL。操作是在两个整型数上执行,则结果是INTEGER。在进行实数与整数操作的情况下,结果是实数类型。表达式结果1+1/411.+1/411+1./41.25尽量避免混合模式表达。
1.5.3 Fortran五曼哈顿距离种转换函数函数名和参数参数类型结果类型返回值说明INT(X)REALINTEGERX的整型部分(X被截尾)NINT(X)REALINTEGER接百度云企业版近X的整数(X被四舍五入)CEILING(X)REALINTEGER大于或等于X最小的整数值FLOOR(X)REALINTEGER小于或等于X最大的整数值REAL(I)INTEGERREAL整数转换为实数1.6 内置函数Fortran的部分常用内置函数:
函数名和参数参数类型结果类型说明SQRT(X)REALREAL大于0的平方根ABS(X)REAL/INTEGER*求X绝对值ACHAR(I)INTEGERCHAR(I)返回在ASCII表上I位置上的字符SIN(X)REALREALX的正弦(X必须是弧度值)SIND(X)REALREALX的正弦(X必x须是角度值)COS(X)REALREALX的让她说爱你余弦(X必须是弧度值)COSD(X)REALREALX的余弦(X必x须是角度值)TAN(X)REALREALX的正切(X必须是弧度值)TAND(X)REALREALX的正切(X必须是角度值)EXP(X)REALREALe的X次幂LOG(X)REALREALX的自然对数,其中X>0LOGIO(X)REALREAL基数10的对数,其中X>OIACHAR(C)CHAR(I)INTEGER返回字符C在ASCll表上对照顺序的位置值MOD(A,B)REAL/INTEGER*模函数的余数MAX(A,B)REAL/INTEGER*A和B中的更大值MIN(A,B)REAL/INTEGER*A和B中的更小值ASIN(X)REALREALX的反正弦,-1<=x<=1 (结果是弧度值)ASIND(X)REALREALX的反正弦,-1<=x<=1 (结果是角度值)ACOS(X)REALREALX的反余弦,-1x\le1 (结果是弧度值)ACOSD(X)REALREALx的反正切,-\pi/2<=x<=\pi/2(结果是弧度值)ATAN(X)REALREALx的反正切,-90<=x<=90(结果是角度值)ATAND(X)REALREAL苹果香港x的反正切,-\pi/2<= x<=\pi/2(结果是弧度值)ATAN2(Y/X)REALREALx四象限的反切函数-\pi<= x<=\pi(结果是弧度值)ATAN2D(Y,X)REALREALx四象限的反切函数-180<= x<=180(结果是弧度值)1.7 表控输入和输出语句1.7.1 输入语句(READ)READ(*.*)input_listinput_list:读入的值放置在里面的变量列表。如果列表中有多个变量,它们用逗号分隔。
(*,*):含有读入操作的控制信息。
圆括号的第一数据域:指明从哪个输入/输出单元(或io单元)读入数据(输入/输出单元)。这个域中的星号意味着数据是从计算机的标准输入设备上读入,通常在交毒瘾互模式下是键盘。
圆括号的第二个数据域:指明读入数据的格式。这个域的星号意味着使用表控输入(有时被称为自由格式输入)。
list-directed input(表控输入):意味着变量列表中的变量类型决定输入数据需要的格式。对于表控输入,输入数据值的类型和顺序必须与提供的输入数据的类型和顺序匹配。
1.7.2 输出语句(WRITE)WRITE(*.*)output_listoutput_list:输出的数据项列表(变量、常数或表达式)。如果在列表中有多个数据项,那么数据项应该用逗号隔开。
(*,*):含有输出的控制信息。与输入语句类似。
1.8 变量初始化在Fortran程序中有三种有效技术初始化变量:赋值语句、READ语句和类型声明语句中的初始化。
1.8.1 赋值语句初始化格式:
PROGRAM init_1INTEGER:: ii = 1WRITE(*,*)iEND PROGRAM init_11.8.2 READ语句初始化格式:
PROGRAM init_2INTEGER:: iREAD(*,*)iWRITE(*,*)iEND PROGRAM init_21.8.3 类型声明语句初始化格式:
PROGRAM init_3INTEGER::i=1WRITE(*,*)iEND PROGRAM init_31.9 IMPLICIT NONE 语句1.4中介绍到,Fortran的默认变量声明格式为:
任何以字母i,j,k,l,m,n开头的变量名假定为INETEGER,其他字母开头的变量名则假定为REAL。默认情况下没有变量的类型为字符型。
IMPLICIT NONE语句使Fortran中默认提供输入值的功能丧失。当程序含有IMPLICIT NONE语句,没有出现在显式类型声明语句中的变量被认为是错的。IMPLICIT NONE语句出现在PROGRAM语句之后和类型声明语句之前。
当程序含有IMPLICIT NONE语句,程序员必须显式声明程序中每个变量的类型。
在程序中始终显式地定义每个变量,用IMPLICIT NONE语句帮助在执行程序前查找秦岭神树和改正印刷错。
1.10 调试Fortran程序为减少调试错,保证设计程序时:
使用IMPLICIT NONE语句。返回所有输入值。初始化所有变量。用圆括号使赋值语句的功能更清晰。1.11 小结1.11.1 遵循原则尽可能给变量取有意义的名字。以便一瞥就可以理解变量的作用。在程序中始终用IMPLICIT NONE语句,以便编译时,编译器捕获打字错。在编写的程序中创建数据字典。数据字典应该明确地声明和定义程序的每个变量。如果是应用题,还要记得保证每个物理量要有相应的计量单位。常数的取值要始终一致。保证给所有常数指定所用机器支持的相应精度。真实世界连续变化的量不该用整型数据来计算,如距离、时间等。仅对固定值使用整型数,如计数器。除指数运算外,尽量不要使用混合模式运算。必要的时候用更多的圆括号来改进表达式的可读性。总是返回用键盘为程序提供的输入数据,以保证它们被正确地键入和处理。在使用之前,初始化程序中的所有变量。可以用赋值语句、READ语句和声明语句中的直接赋值来初始化变量。总是打印输出数据值相应的计量单位,计量单位对于理解程序的结果很有用。1.11.2 语法小结PROGRAM语句!格式PROGRAM program_name!例子PROGRAM my_ programPROGRAM语句指定Fortran程序的名字,它必须是程序的第一条语句,名字必须是唯一的,不能与程序中的变量名相同。程序名由1~31个字母、数字和下划线字符组成,但是程序名的第一个字符必须是字母。
END PROGRAM语句END PROGRAM [name]END PR监听耳机OGRAM语句必须是Fortran程序段的最后一条语句。它告诉编译器不再有语句需要处理。当遇到END PROGRAM语句,程序执行停止。END PROGRAM中的程序名是可选项。
赋值语句!格式variable=expression!例子pi = 3.141593distance = 0.5 * acceleration * time ** 2side = hypot * cos(theta)赋值语句的左边必须是变量名。右边可以是常数、变量、函数或表达式。等号右边的数量值存储到等号左边的变量名中。
STOP语句STOPSTOP nSTOP 'message'STOP语句停止Fortran程序的执行。一个Fortran程序可以有多条STOP语句,每条STOP语句紧接在END PROGRAM语句之前就可以省略,因为当执行到END PROGRAM语句时程序也停止。
ERROR STOP语句ERROR STOPERROR STOP nERROR STOP 'message'ERROR STOP语句停止Fortran程序的执行,告知操作系统发生了一个执行错。
IMPLICIT NONE语句IMPLICIT NONEIMPLICIT NONE语句关闭Fortran的默认类型定义。当在程序中使用这条语句,程序中的每个变量都必须在类型声明语句中显式声明。
INTEGER语句!格式INTEGER::variable—name1 [, variable_name2,...]!例子INTEGER::i,j,countINTEGER: : day=4INTEGER语句是类型声明语句,它声明整型数据类型的变量。这条语句重载Fortran中指定的默认类型。
REAL语句!格式REAL: :variable_name1[ ,variable_name2,...]REAL::variable name=value!例子REAL::distance,timeREAL::distance,timeREAL语句是类型声明语句,它声明实型数据类型的变量。这条语句重载Fortran中指定的默认类型。
CHARACTER语句!格式CHARACTER(len=<len>):: variable_name1 [,variable_name2,... ]CHARACTER(<len>) :愿你慢慢长大 : variable_name1 [,variable_name2,... ]CHARACTER:: variable—name1 [,variable_name2,... ]!例子CHARACTER(len=10)::first,last,middleCHARACTER(10)::first = 'My Name'CHARACTER::middle_initialCHARACTER语句是类型声明语句,它声明字符数据类型的变量。每个变量的字符长度用(len=<len>)或<len>指定。如果缺省长度声明,那么变量的默认长度是1。CHA肚CTER变量的取值可以在声明的时候用字符串初始化。
READ语句(表控READ)!格式READ(*.*) variable_name1 [, variable_name2,... ]!例子READ(*.*)stressREAD(*.*)distance,time表控READ语句从标准输入设备读入一个或多个数据,并把它们加载到列表的变量名中,数据值是按列出的变量名顺序存入到变量。数据值必须由空格或逗号隔开。按多行读入数据也可以,但是每条READ语句从一个新行开始读取数据。
WRITE语句(手提电脑键盘表控WRITE)!格式WRITE(*.*)expressionl [,expression2,... ]!例子WRITE(*.*)stressWRITE(*.*)distance,timeWRITE(*.*)'SIN(theta)=',SIN(theta)表控WRITE语句把一个或多个表达式的计算值输出到标准输出设备。输出的数据值按列表中的表达顺序排列。
学习书籍:Stephen J.Chapman Fortran程序设计(第四版)本文发布于:2023-05-27 13:04:05,感谢您对本站的认可!
本文链接:http://www.ranqi119.com/ge/85/136290.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |