第二章 Fortran程序设计基础.ppt
《第二章 Fortran程序设计基础.ppt》由会员分享,可在线阅读,更多相关《第二章 Fortran程序设计基础.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章 Fortran程序设计基础,本章主要包括以下内容: 1. 程序书写 2. 字符集及标识符 3. 数据类型 4. 声明的有关事项 5. 算数表达式 6. 表控输入/输出语句,第一节 程序书写,一. 程序构造形式例2-1 简单Fortran程序的构造形式PROGRAM MONEY!Calculates balance after interest compounded REAL BALANCE, INTEREST, RATE BALANCE = 1000 RATE = 0.09 INTEREST = RATEBALANCE BALANCE = BALANCE + INTEREST PRIN
2、T ,New balance:,BALANCEEND PROGRAM MONEY,* PROGRAM 关键字标识 Fortran 主程序,后接程序名,这一行是可选的;*!第二行是注释,不参加编译;* REAL 是声明语句,将后边的变量声明为实型数;* 空行不参与编译,只是增加程序的可读性;这四行是非执行部分;之后的部分到END语句之前为执行部分,根据上述的程序书写,给出简单 Fortran 90 程序的构造形式: PROGRAM 程序名 声明语句 执行语句 ENDPROGRAM 程序名 方括号内的部分是可选的,END 语句是唯一必须的,表示程序编译到此结束。 END 语句中的程序名可以省略,但
3、若出现程序名,必须同时出现 PROGRAM 关键字。 对于可选部分,如果缺省,则按照约定(隐含)规则进行,二. 语句语句是 Fortran 程序的基本单位,一条语句可包含0132个字符。 Fortran77规定,一条语句的不同部分应从特定的列开始,这样的书写格式称为固定格式,相应的程序文件扩展名为.f 或.for; Fortran 90 无此限制,自由格式,相应的文件扩展名为.f90。 除赋值语句外,所有的语句都从一个关键字开始。例如: 例2-1 中出现的关键字:PROGRAM、REAL、PRINT和END。 一般情况下,每行一条语句。 若一行有多条语句,它们之间以分号间隔。 可以将几条简单的
4、赋值语句写在一行上,例如: A =1;B =1;C =1 也可以只保证一行一条语句,例如: A =1 B =1 C =1 这完全根据个人的书写习惯决定。,假如一条语句一行写不完,允许出现续行,但要求被续行最后的非空白字符为&。例如: A174.6*& (T-1981.2) *3 续行从下一行的第一个非空白字符开始; 若下一行的非空白字符为&,则续行从该字符后的第一个字符开始。 A174.6* & (T-1981.2) *3 Fortran 90 允许出现多达39个续行。,三.空白的作用 空白没有意义,不参加编译。适当地运用空白空间,可以增加程序的可读性,例如程序块中的代码缩进。 DO 1 I=
5、1,10 DO 2 J=1,20 2 CONTINUE 1 CONTINUE 在代表有意义字符序列的记号(token)内,比如:标号、关键字、变量名、操作符等不允许出现空白。例如:INTE GER、BAL ANCE、 =都是非法的。 一般情况下,记号之间需留有空白。例如:30CONTINUE 是非法的,因为标号30 和关键字 CONTINUE 是两个独立的记号。 有的记号间的空白是可选的,例如:END PROGRAM 和 ENDPROGRAM是合法的。,四. 注释Fortran 90 只提供了一种注释方式:以感叹号开始的语句作为注释。注意: 字符串内的感叹号除外;如 this is a ! s
6、ubroutine 注释可以是一整行,也可以是空白行; 注释在编译时被忽略。,五. 固定格式例2-2C FIXED FORMAT DEMO PROGRAM Fixed PRINT*,Hello $World! PRINT 1010 FORMAT(1x,This program is written in fixed format.) END固定格式说明:一行共80列,4个区第1-5列,标号区,可以空白,也可以出现符号;第6列,续行标志区,可以空白(无续行),非0字符(续行);第7-72列,语句区,语句区的书写可以从任意一列开始,空白编译时被忽略,一行只能书写一个语句;第73-80列,注释区,信
7、息提示,不参与编译,* 固定格式是为配合早期使用穿孔卡片输入程序所发明的格式, 这里介绍固定格式,只是让大家对 Fortran 77 程序有所了解,建议大家在编写程序时采用前述地自由格式。* 固定格式尽管有其过多的限制,但由于具有一定的规范性,方便程序的编写和检查。,一. 字符集 Fortran 90 字符集由下列字符组成: (1) 26个英文字母(AZ 和 az); (2) 数字09; (3) 下划线 _ ; (4) 特殊字符 空格,*,/, (,),:,!,*, 等等,详见表 2-1 所示,第二节 字符集和标识符,二. 标识符 标识符命名(变量、常量、例程等)时,须以字母(AZ,az)开头
8、,后可接多达 30 个字母(AZ 或 az)、数字(09)或下划线(_)。例如: MASS,rate,Npts,I9J7,Time_Rate, 有下列几点值得注意: (1)只能以字母开头(3M,_Right 为无效标识符); (2)不能含有空格字符(Time Rate为无效标识符); (3)不区分字母大、小写(Vel,VEL,vel 为同一标识符); (4)长度限定为31 个字符(Fortran 77 为6个字符); (5)避免与关键字、标准例程重名。,数据类型的两层含义:1 数据可以取哪些值?2 数据可以进行哪些运算? 例如:整数取0、1、2等,可以进行算术运算。数据类型的两大类型:1 数值
9、型,包括整型、实型和复数型;2 非数值型,包括字符型和逻辑型(或布尔型) 共计5个固有(内建)数据类型,除了固有类型之外,用户可以定义自己的数据类型:自定义数据类型或派生类型,第三节 数据类型,一. 整数类型 1 整型变量 声明整型变量的一般形式为: INTEGER I INTEGER(KIND=n) I n 是种类参数,取值1、2、4、8。 种类参数(KIND)是 Fortran 90 新添加的特性,通过规定存储数据所用的内存字节数来控制数据的取值范围,1、2、4、8为整数在内存中的存储字节数。 如果种类参数没有特别规定,则取缺省值,缺省值受编译器选项影响,若没有编译器选项规定,32 位系统
10、下缺省值为4。 不同种类参数的整数取值范围详见表 2-2。,KIND 函数的功能:在 Fortran 90中 KIND 函数用来获取缺省种类参数的值;HUGE 函数的功能:在 Fortran 90中 HUGE 函数用来获得取值范围的上限,上限加1 为取值范围的下限。程序代码段如下: INTEGER(8) I, Big, Small Big=HUGE(I) Small=Big+1 PRINT*, Largest: , Big PRINT*, Smallest: , Small根据表2-2,INTEGER(8)表示整数I的取值范围为: -922337203685477580892233720368
11、54775807根据HUGE函数的定义,则BIG=9223372036854775807SMALL=-9223372036854775808,平台(处理器和编译器)不同,相同的种类参数可能有不同的取值范围。缺点:影响程序代码的可移植性。Fortran 90 提供SELECTED_INT_KIND 函数,即: result = SELECTED_INT_KIND(r)result 代表整数 n 在范围-10rn10r内的种类参数例如:Result=SELECTED_INT_KIND(3) !2Result=SELECTED_INT_KIND(8) !4Result=SELECTED_INT_KI
12、ND(10) !8Result=SELECTED_INT_KIND(19) !-1 返回-1表示没有可用的种类参数,例如:要在不同的平台下表示1010内的整数 I,可以采取如下的声明方式: INTEGER,PARAMETER : K10 = SELECTED_INT_KIND(10) INTEGER(K10)I先声明依赖于特定平台的种类常数,再以该常数为种类参数声明变量。:表示在变量声明数据类型的同时,给变量赋初值,2 整型常量整型常量的一般形式为: sn_k其中:s代表正负号;n为 09 的十进制(前导0被省略); k 指种类参数; n 和 k之间为一下划线。文字整型变量,其种类参数取缺省值
13、;也可显式声明种类参数,例如:-7_2,二. 实数类型1 实型变量 声明实型变量的一般形式为: REAL A REAL(KIND=n) A DOUBLE PRECISION A实型变量的规定:种类参数n 为4、8,缺省值为4。双精度实型数相当于REAL (8),不需要再为其规定种类参数。实数取值范围分别为: REAL(4),取值范围为1.1754944E-38 3.4028235E+38 REAL(8),取值范围为2.225073858507201E-3081.797693134862316E+308,跟整数类型提供的 KIND、HUGE函数相对应,Fortran90为实数类型变量提供了获得实
14、数的取值范围下限函数 TINY、精度函数 PRECISION、指数范围函数 RANGE,以及获取特定平台下种类参数的函数SELECTED_REAL_KIND,其形式为: result SELECTED_REAL_KIND(p,r) 函数返回有效位数为 p(精度)、指数范围为10-r10+r 的实数种类参数。例如: 在特定平台下规定有效位数(精度)为15、指数为307,其种类参数为 SELECTED_REAL_KIND(15,307),若没有可用的种类参数,函数分别返回-1、-2和-3: (1) 返回-1表示无法满足规定的有效位数; (2) 返回-2表示无法满足规定的指数范围; (3) 返回-3
15、表示有效位数和指数范围都无法满足。,2 实型常量文字实型常量是数学上实数的近似表达,分为带指数型和不带指数型.不带指数的实型常量一般形式为: sn_k带指数实型常量一般形式为: sn Esm_k 或 sn Dsm其中:s 代表正、负号;n、m代表09 的十进制数,n 通常带有小数点,m 为指数;k 为种类参数(一般取4、8),若没有规定种类参数,种类参数取缺省值。例如: 1.0E6, 1.0D6 表示 1.0106 单精度REAL(4) 双精度REAL(8)* 以E和以D表示的实数的区别,三. 复数类型1 复数型变量 声明复数类型变量的一般形式为: COMPLEX X COMPLEX(KIND
16、=n) X复数类型变量的种类参数为4、8,种类参数缺省值为8;Fortran 90 支持复数类型及其算术运算。2 复数型常量 复数类型常量呈现下列形式: (r,m)其中,r 代表复数常量的实部;m 代表复数常量的虚部。,四. 逻辑类型1 逻辑型变量 声明逻辑型(或布尔型)变量 L 的一般形式为: LOGICAL L LOGICAL(KIND=n)L 种类参数 n 为1、2、4、8,种类参数缺省值为4。2 逻辑型常量 逻辑型常量为.TRUE.(逻辑真)和.FALSE.(逻辑假),其种类参数取缺省值。 显式规定逻辑型常量的种类参数,例如:.TRUE._2,种类参数规定为2。,五.字符类型1 字符型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 fortran 程序设计 基础
限制150内