欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Fortran程序设计基础.ppt

    • 资源ID:70270962       资源大小:232.49KB        全文页数:40页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Fortran程序设计基础.ppt

    第二章第二章 Fortran程序设计基础程序设计基础本章主要包括以下内容:1.程序书写 2.字符集及标识符 3.数据类型 4.声明的有关事项 5.算术表达式 6.表控输入/输出语句第一节第一节 程序书写程序书写一一.程序构造形式程序构造形式例例2-1 2-1 简单简单FortranFortran程序的构造形式程序的构造形式 PROGRAM MONEYPROGRAM MONEY!Calculates balance after interest compoundedCalculates balance after interest compounded REAL BALANCE,INTEREST,RATE REAL BALANCE,INTEREST,RATE BALANCE=1000 BALANCE=1000 RATE=0.09 RATE=0.09 INTEREST=RATEINTEREST=RATE BALANCEBALANCE BALANCE=BALANCE+INTEREST BALANCE=BALANCE+INTEREST PRINT PRINT ,New balance:New balance:,BALANCEBALANCE END PROGRAM MONEYEND PROGRAM MONEY*PROGRAM*PROGRAM 关键字关键字标识标识 Fortran Fortran 主程序主程序,后接程序名,这,后接程序名,这一行是可选的;一行是可选的;*!第二行是注释,!第二行是注释,不参加编译;不参加编译;*REAL*REAL 是声明语句,是声明语句,将后边的变量声明将后边的变量声明为实型数;为实型数;*空行不参与编译,只空行不参与编译,只是增加程序的可读性;是增加程序的可读性;这四行是非执行部分;这四行是非执行部分;之后的部分到之后的部分到ENDEND语句语句之前为执行部分之前为执行部分 根据上述的程序书写,给出简单根据上述的程序书写,给出简单 Fortran 90 Fortran 90 程序的程序的构造形式:构造形式:PROGRAM PROGRAM 程序名程序名 声明语句声明语句 执行语句执行语句 ENDPROGRAM ENDPROGRAM 程序名程序名 方括号内的部分是可选的,方括号内的部分是可选的,END END 语句是唯一语句是唯一必须的,表示程序编译到此结束。必须的,表示程序编译到此结束。END END 语句中的程序名可以省略,但若出现程语句中的程序名可以省略,但若出现程序名,必须同时出现序名,必须同时出现 PROGRAM PROGRAM 关键字。关键字。对于可选部分,如果缺省,则按照约定(隐对于可选部分,如果缺省,则按照约定(隐含)规则进行含)规则进行二二.语句语句语句是语句是 Fortran Fortran 程序的基本单位,一条语句可包含程序的基本单位,一条语句可包含0 0132132个字符。个字符。Fortran77 Fortran77规定,一条语句的不同部分应从特定的列开始,这样的规定,一条语句的不同部分应从特定的列开始,这样的书写格式称为固定格式,相应的程序文件扩展名为书写格式称为固定格式,相应的程序文件扩展名为.f.f 或或.for.for;Fortran 90 Fortran 90 无此限制,自由格式,相应的文件扩展名为无此限制,自由格式,相应的文件扩展名为.f90.f90。除赋值语句外,所有的语句都从一个关键字开始。例如:除赋值语句外,所有的语句都从一个关键字开始。例如:例例2-1 2-1 中出现的关键字:中出现的关键字:PROGRAMPROGRAM、REALREAL、PRINTPRINT和和ENDEND。一般情况下,每行一条语句。一般情况下,每行一条语句。若一行有多条语句,它们之间以分号间隔。若一行有多条语句,它们之间以分号间隔。可以将几条简单的赋值语句写在一行上,例如:可以将几条简单的赋值语句写在一行上,例如:A=1 A=1;B=1B=1;C=1C=1 也可以只保证一行一条语句,例如:也可以只保证一行一条语句,例如:A=1 A=1 B=1 B=1 C=1 C=1 这完全根据个人的书写习惯决定。这完全根据个人的书写习惯决定。假如一条语句一行写不完,允许出现续行,但假如一条语句一行写不完,允许出现续行,但要求被续行最后的非空白字符为要求被续行最后的非空白字符为&。例如:。例如:A A174.6174.6*&(T-1981.2)(T-1981.2)*3*3 续行从下一行的第一个非空白字符开始;续行从下一行的第一个非空白字符开始;若下一行的非空白字符为若下一行的非空白字符为&,则续行从该字符,则续行从该字符后的第一个字符开始。后的第一个字符开始。A A174.6 174.6*&(T-1981.2)&(T-1981.2)*3*3 Fortran 90 Fortran 90 允许出现多达允许出现多达3939个续行。个续行。三三.空白的作用空白的作用 空白没有意义,不参加编译。适当地运用空白空间,可空白没有意义,不参加编译。适当地运用空白空间,可以增加以增加程序的可读性,例如程序块中的代码缩进。程序的可读性,例如程序块中的代码缩进。DO 1 I=1,10 DO 1 I=1,10 DO 2 J=1,20 DO 2 J=1,20 2 CONTINUE 2 CONTINUE 1 CONTINUE1 CONTINUE 在代表有意义字符序列的记号在代表有意义字符序列的记号(token)(token)内,比如:标号、关键字、变内,比如:标号、关键字、变量名、操作符等不允许出现空白。例如:量名、操作符等不允许出现空白。例如:INTE GERINTE GER、BAL ANCEBAL ANCE、=都是非法的。都是非法的。一般情况下,记号之间需留有空白。例如:一般情况下,记号之间需留有空白。例如:30CONTINUE 30CONTINUE 是非法的,因为标号是非法的,因为标号30 30 和关键字和关键字 CONTINUE CONTINUE 是两个独立的记号。是两个独立的记号。有的记号间的空白是可选的,例如:有的记号间的空白是可选的,例如:END PROGRAM END PROGRAM 和和 ENDPROGRAMENDPROGRAM是合法的。是合法的。四四.注释注释 Fortran 90 Fortran 90 只提供了一种注释方式:以感叹号开始的语句只提供了一种注释方式:以感叹号开始的语句作为注释。作为注释。注意:注意:字符串内的感叹号除外;字符串内的感叹号除外;如如 this is a!subroutine this is a!subroutine 注释可以是一整行,也可以是空白行;注释可以是一整行,也可以是空白行;注释在编译时被忽略。注释在编译时被忽略。五五.固定格式固定格式例例2-22-2 C FIXED FORMAT DEMOC FIXED FORMAT DEMO PROGRAM Fixed PROGRAM Fixed PRINT*,Hello PRINT*,Hello$World!$World!PRINT 10 PRINT 10 10 FORMAT(1x,This program is written in fixed format.)10 FORMAT(1x,This program is written in fixed format.)END END固定格式说明固定格式说明:一行共一行共8080列,列,4 4个区个区第第1-51-5列,标号区,可以空白,也可以出现符号;列,标号区,可以空白,也可以出现符号;第第6 6列,续行标志区,可以空白(无续行),非列,续行标志区,可以空白(无续行),非0 0字符(续行);字符(续行);第第7-727-72列,语句区,语句区的书写可以从任意一列开始,空白编译时被列,语句区,语句区的书写可以从任意一列开始,空白编译时被忽略,一行只能书写一个语句;忽略,一行只能书写一个语句;第第73-8073-80列,注释区,信息提示,不参与编译列,注释区,信息提示,不参与编译*固定格式是为配合早期使用穿孔卡片输入程序所发明的格式,这里介绍固定格式,只是让大家对 Fortran 77 程序有所了解,建议大家在编写程序时采用前述地自由格式。*固定格式尽管有其过多的限制,但由于具有一定的规范性,方便程序的编写和检查。一.字符集 Fortran 90 字符集由下列字符组成:(1)26个英文字母(AZ 和 az);(2)数字09;(3)下划线 _ ;(4)特殊字符 空格,*,/,(,),:,!,等等,详见表 2-1 所示第二节第二节 字符集和标识符字符集和标识符二二.标识符标识符 标识符命名标识符命名(变量、常量、例程等变量、常量、例程等)时,须以字母时,须以字母(AZ(AZ,az)az)开头,后可接多达开头,后可接多达 30 30 个字母个字母(AZ(AZ 或或 az)az)、数字、数字(09)(09)或下划线或下划线(_)(_)。例如:。例如:MASS MASS,raterate,NptsNpts,I9J7I9J7,Time_RateTime_Rate,有下列几点值得注意:有下列几点值得注意:(1)(1)只能以字母开头只能以字母开头(3M(3M,_Right _Right 为无效标识符为无效标识符);(2)(2)不能含有空格字符不能含有空格字符(Time Rate(Time Rate为无效标识符为无效标识符);(3)(3)不区分字母大、小写不区分字母大、小写(Vel(Vel,VELVEL,vel vel 为同一标识符为同一标识符);(4)(4)长度限定为长度限定为31 31 个字符个字符(Fortran 77(Fortran 77 为为6 6个字符个字符);(5)(5)避免与关键字、标准例程重名。避免与关键字、标准例程重名。数据类型的两层含义:1 1 数据可以取哪些值?数据可以取哪些值?2 2 数据可以进行哪些运算?数据可以进行哪些运算?例如:整数取例如:整数取0 0、11、22等,可以进行算术运算。等,可以进行算术运算。数据类型的两大类型:1 1 数值型,包括整型、实型和复数型;数值型,包括整型、实型和复数型;2 2 非数值型,包括字符型和逻辑型非数值型,包括字符型和逻辑型(或布尔型或布尔型)共计共计5 5个固有个固有(内建内建)数据类型,除了固有类型之外,用户数据类型,除了固有类型之外,用户可以定义自己的数据类型:自定义数据类型或派生类型可以定义自己的数据类型:自定义数据类型或派生类型第三节第三节 数据类型数据类型一.整数类型 1 1 整型变量整型变量 声明整型变量的一般形式为:声明整型变量的一般形式为:INTEGER I INTEGER I INTEGER(KIND=n)I INTEGER(KIND=n)I n n 是种类参数,取值是种类参数,取值1 1、2 2、4 4、8 8。种类参数种类参数(KIND)(KIND)是是 Fortran 90 Fortran 90 新添加的特性,新添加的特性,通过规定通过规定存储数据所用的内存字节数来控制数据的取值范围,存储数据所用的内存字节数来控制数据的取值范围,1 1、2 2、4 4、8 8为整数在内存中的存储字节数。为整数在内存中的存储字节数。如果种类参数没有特别规定,则取缺省值,缺省值受编如果种类参数没有特别规定,则取缺省值,缺省值受编译器选项影响,若没有编译器选项规定,译器选项影响,若没有编译器选项规定,32 32 位系统下缺省位系统下缺省值为值为4 4。不同种类参数的整数取值范围详见表不同种类参数的整数取值范围详见表 2-2 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的取值范围为:-92233720368547758089223372036854775807根据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_KIND(10)!8Result=SELECTED_INT_KIND(19)!-1 返回-1表示没有可用的种类参数例如:要在不同的平台下表示例如:要在不同的平台下表示10101010内的整数内的整数 I I,可以采取如下的声明方式:可以采取如下的声明方式:INTEGERINTEGER,PARAMETER:K10=SELECTED_INT_KIND(10)PARAMETER:K10=SELECTED_INT_KIND(10)INTEGER(K10)I INTEGER(K10)I先声明依赖于特定平台的种类常数,先声明依赖于特定平台的种类常数,再以该常数为种类参数声明变量。再以该常数为种类参数声明变量。:表示在变量声明数据类型的同时,给变量赋初值表示在变量声明数据类型的同时,给变量赋初值2 整型常量整型常量的一般形式为:整型常量的一般形式为:sn_k其中:其中:s s代表正负号;代表正负号;n n为为 0 09 9 的十进制的十进制(前导前导0 0被省略被省略);k k 指种类参数;指种类参数;n n 和和 k k之间为一下划线。之间为一下划线。文字整型变量,其种类参数取缺省值;文字整型变量,其种类参数取缺省值;也可显式声明种类参数,例如:也可显式声明种类参数,例如:-7_2-7_2二.实数类型1 实型变量 声明实型变量的一般形式为:REAL A REAL(KIND=n)A DOUBLE PRECISION A实型变量的规定:种类参数种类参数n n 为为4 4、8 8,缺省值为,缺省值为4 4。双精度实型数相当于双精度实型数相当于REAL(8)REAL(8),不需要再为其规定种类参数。,不需要再为其规定种类参数。实数取值范围分别为:实数取值范围分别为:REAL(4)REAL(4),取值范围为,取值范围为1.1754944E-381.1754944E-38 3.4028235E+38 3.4028235E+38 REAL(8)REAL(8),取值范围为,取值范围为2.225073858507201E-3082.225073858507201E-3081.797693134862316E+3081.797693134862316E+308 跟整数类型提供的跟整数类型提供的 KINDKIND、HUGEHUGE函数相对应,函数相对应,Fortran90Fortran90为为实数类型变量提供了获得实数的取值范围下限函数实数类型变量提供了获得实数的取值范围下限函数 TINYTINY、精度函数精度函数 PRECISIONPRECISION、指数范围函数、指数范围函数 RANGERANGE,以及获取特,以及获取特定平台下种类参数的函数定平台下种类参数的函数SELECTED_REAL_KINDSELECTED_REAL_KIND,其形式,其形式为:为:result result SELECTED_REAL_KIND(p SELECTED_REAL_KIND(p,r)r)函数返回有效位数为函数返回有效位数为 p(p(精度精度)、指数范围为、指数范围为1010-r-r1010+r+r 的实的实数种类参数。例如:数种类参数。例如:在特定平台下规定有效位数(精度)为在特定平台下规定有效位数(精度)为1515、指数为、指数为307307,其种类参数为,其种类参数为 SELECTED_REAL_KIND(15 SELECTED_REAL_KIND(15,307)307),若没有可用的种类参数,函数分别返回若没有可用的种类参数,函数分别返回-1-1、-2-2和和-3-3:(1)(1)返回返回-1-1表示无法满足规定的有效位数;表示无法满足规定的有效位数;(2)(2)返回返回-2-2表示无法满足规定的指数范围;表示无法满足规定的指数范围;(3)(3)返回返回-3-3表示有效位数和指数范围都无法满足。表示有效位数和指数范围都无法满足。2 2 实型常量实型常量文字实型常量是数学上实数的近似表达,分为带指数型和不带指数型文字实型常量是数学上实数的近似表达,分为带指数型和不带指数型.不带指数的实型常量一般形式为:不带指数的实型常量一般形式为:sn_ksn_k带指数实型常量一般形式为:带指数实型常量一般形式为:sn Esm_k sn Esm_k 或或 sn Dsm sn Dsm 其中:其中:s s 代表正、负号;代表正、负号;n n、mm代表代表0 09 9 的十进制数,的十进制数,n n 通常带有小数点,通常带有小数点,m m 为指数;为指数;k k 为种类参数为种类参数(一般取一般取4 4、8)8),若没有规定种类参数,种类参数取缺省值。,若没有规定种类参数,种类参数取缺省值。例如:例如:1.0E6 1.0E6,1.0D6 1.0D6 表示表示 1.010 1.0106 6 单精度单精度REAL(4)REAL(4)双精度双精度REAL(8)REAL(8)*以以E E和以和以DD表示的实数的区别表示的实数的区别三.复数类型1 复数型变量 声明复数类型变量的一般形式为:声明复数类型变量的一般形式为:COMPLEX X COMPLEX X COMPLEX(KIND=n)X COMPLEX(KIND=n)X 复数类型变量的种类参数为复数类型变量的种类参数为4 4、8 8,种类参数缺省值为,种类参数缺省值为8;8;Fortran 90 Fortran 90 支持复数类型及其算术运算。支持复数类型及其算术运算。2 复数型常量 复数类型常量呈现下列形式:(r,m)其中,其中,r r 代表复数常量的实部;代表复数常量的实部;m m 代表复数常量的虚部。代表复数常量的虚部。四.逻辑类型1 1 逻辑型变量逻辑型变量 声明逻辑型声明逻辑型(或布尔型或布尔型)变量变量 L L 的一般形式为:的一般形式为:LOGICAL L LOGICAL L LOGICAL(KIND=n)L LOGICAL(KIND=n)L 种类参数种类参数 n n 为为1 1、2 2、4 4、8 8,种类参数缺省值为,种类参数缺省值为4 4。2 2 逻辑型常量逻辑型常量 逻辑型常量为逻辑型常量为.TRUE.(.TRUE.(逻辑真逻辑真)和和.FALSE.(.FALSE.(逻辑假逻辑假),其种,其种类参数取缺省值。类参数取缺省值。显式规定逻辑型常量的种类参数,例如:显式规定逻辑型常量的种类参数,例如:.TRUE._2.TRUE._2,种类,种类参数规定为参数规定为2 2。五.字符类型1 1 字符型变量字符型变量 声明字符型变量声明字符型变量 C C 的一般形式为:的一般形式为:CHARACTER C CHARACTER C CHARACTER(LEN=len)C CHARACTER(LEN=len)C,CHARACTER*len CCHARACTER*len C CHARACTER(LEN=len CHARACTER(LEN=len,KIND=n)CKIND=n)C CHARACTER(KIND=n CHARACTER(KIND=n,LEN=len)CLEN=len)C字符型变量的规定:字符型变量的规定:字符型有两个可选参数:长度参数字符型有两个可选参数:长度参数LEN=LEN=和种类参数和种类参数KIND=KIND=。不管。不管是否显式规定,字符型种类参数总是是否显式规定,字符型种类参数总是1 1,即一个字符占一个存储字节。,即一个字符占一个存储字节。假如两个可选参数都没有给出,长度和种类参数均取缺省值假如两个可选参数都没有给出,长度和种类参数均取缺省值 1 1;若只给出一个参数,代表长度;若只给出一个参数,代表长度;若给出两个参数,依次为长度和种类参数若给出两个参数,依次为长度和种类参数(种类参数只能取种类参数只能取1)1);若采取关键字若采取关键字(KIND=(KIND=,LEN=)LEN=)声明形式,参数顺序可以任意。例如:声明形式,参数顺序可以任意。例如:CHARACTER(KIND=1 CHARACTER(KIND=1,LEN=10)StrLEN=10)Str CHARACTER(LEN=10 CHARACTER(LEN=10,KIND=1)StrKIND=1)Str2 2 字符型常量字符型常量 Fortran Fortran 中的字符串统一以单引号或双引号作为界定符:中的字符串统一以单引号或双引号作为界定符:k_ch k_ch k_“ch”k_“ch”其中:其中:k k为可选的种类参数,为可选的种类参数,ch ch 为字符为字符(串串)。示例:示例:“WHAT KIND TYPE?”“WHAT KIND TYPE?”TODAY”S DATE IS TODAY”S DATE IS “The average is “The average is:”约定:约定:*若要表示和界定符相同的字符,须用两个联系的界定字若要表示和界定符相同的字符,须用两个联系的界定字符来表示,例如:字符型常量符来表示,例如:字符型常量“Fortrans 90”“Fortrans 90”,表示字,表示字符串符串 Fortrans 90 Fortrans 90,字符串长度为,字符串长度为1212。*界定符必须统一:要么都用单引号,要么都用双引号。界定符必须统一:要么都用单引号,要么都用双引号。一.强制类型声明 I I N N 规则:除非特别声明,在程序中的变量名规则:除非特别声明,在程序中的变量名凡以凡以 I I、J J、K K、L L、MM、N N 这六个字母开头的都被这六个字母开头的都被认为是整型变量,以其他字母开头的表示实型变认为是整型变量,以其他字母开头的表示实型变量。量。推荐使用:推荐使用:兼容兼容Fortran 90Fortran 90前版本的程序代码。前版本的程序代码。不推荐使用:不推荐使用:这种隐含约定往往会带来严重的程序错误。这种隐含约定往往会带来严重的程序错误。第四节第四节 声明的有关事项声明的有关事项例 2-3 PROGRAM Main Interest=0.08 Count=0.08 PRINT*,Interest=,Interest !0 PRINT*,Count=,Cont !0.0 END PROGRAM Main IMPLICIT NONE REAL Interest,Count Interest=0.08 Count=0.08 PRINT*,Interest=,Interest !0.08 PRINT*,Count=,Count !0.08 END通过类型声明,消除隐含约定带来的错误。二二.变量声明及初始化变量声明及初始化 Fortran Fortran 语言属于编译型语言,程序编译过程中编译器为引语言属于编译型语言,程序编译过程中编译器为引用变量开辟了内存空间,程序执行过程中不再申请内存,用变量开辟了内存空间,程序执行过程中不再申请内存,动态分配除外。动态分配除外。变量声明一般形式为:变量声明一般形式为:数据类型数据类型 ,属性,属性:变量列表变量列表约定:约定:*属性包括属性包括 DIMENSION DIMENSION、PARAMETER PARAMETER、TARGET TARGET、POINTER POINTER、ALLOCATABLEALLOCATABLE、INTENT INTENT 等;等;*并列冒号并列冒号“:”“:”是可选的;是可选的;*在声明的同时给变量赋初值,符号在声明的同时给变量赋初值,符号“:”“:”不能省略;不能省略;*声明部分必须出现在执行部分之前,不能出现在执行部声明部分必须出现在执行部分之前,不能出现在执行部分;分;*DATA *DATA 也是声明的一部分,可以用来给变量赋初值,通也是声明的一部分,可以用来给变量赋初值,通常跟在赋值的变量声明之后、执行语句之前;常跟在赋值的变量声明之后、执行语句之前;*值得注意的是:一般的赋值语句是执行语句值得注意的是:一般的赋值语句是执行语句例2-4 变量声明及初始化PROGRAM Main IMPLICIT NONE INTEGER a REAL(8):b=2.0 COMPLEX(8):c=(1.0,2.0)CHARACTER(20):str=“Fortran 90”a=6 PRINT*,a=,a,b=,b,c=,c,str=,strEND程序执行结果:a=6,b=2.0,c=(1.0,2.0),str=Fortran 90在声明的同时给变量赋初值,符号“:”不能省略,省略时可采用如下形式:INTRGER a a=6例例2-5 DATA 2-5 DATA 语句的使用语句的使用PROGRAM MainPROGRAM Main IMPLICIT NONE IMPLICIT NONE INTEGER a INTEGER a REAL(8)b REAL(8)b COMPLEX(8)c COMPLEX(8)c CHARACTER(20)str CHARACTER(20)str DATA a,b,c,str/1,2.0,(1.0,2.0),FORTRAN 77/DATA a,b,c,str/1,2.0,(1.0,2.0),FORTRAN 77/PRINT*,a=,a,b=,b,c=,c,str=,str PRINT*,a=,a,b=,b,c=,c,str=,strENDEND *Fortran 77Fortran 77使用使用 DATA DATA 语句来设置初值;语句来设置初值;*DATA *DATA 语句的格式是在语句的格式是在 DATA DATA 关键字后接上要设置初值关键字后接上要设置初值的变量,然后再用两个斜杠包住要设置的变量值。的变量,然后再用两个斜杠包住要设置的变量值。三.常量声明(PARAMETER)在程序中固定不变的常数,如圆周率、重力加速度等,可以声明成变量。符号常量只能在声明时通过 PARAMETER 属性设置其值,而且只能设置一次。在程序中不能改变。例 2-6 常量声明 PROGRAM Main IMPLICIT NONE REAL,PARAMETER:PI=3.14159 PRINT 10,PI/6.010 FORMAT(PI/6.0=,F4.2)END计算结果:3.14159/6.0=0.523598在格式要求中F4.2,即带小数点后两位共四位的实数,按照四舍五入的原则,得到结果:0.52 算术表达式由运算符、常量和变量组成,算术表达式获得的结果是标量,只是涉及到数值的大小。1.运算符及其优先级 Fortran 有5 种算术运算符,分别是加、减、乘、除和乘幂,按优先级由低到高排列如下:+加,减,*乘,/除,*乘幂(两个星号之间不能有空格),()括号其顺序是:乘除运算级高于加减运算,乘幂运算高于乘除运算,括号总是具有最其顺序是:乘除运算级高于加减运算,乘幂运算高于乘除运算,括号总是具有最 高优先级;高优先级;在运算级相同的情况下,按照在运算级相同的情况下,按照“从左到右从左到右”的法则;的法则;在连续的乘幂运算中,按照在连续的乘幂运算中,按照“从右至左从右至左”的法则,例如:的法则,例如:2*3*2 2*3*2,先计算,先计算3*23*2,再计算左边的乘幂,结果是,再计算左边的乘幂,结果是 512 512,而不是,而不是 64 64第五节第五节 算术表达式算术表达式2.2.整数除法整数除法 编程实现除法运算时,如果是整数除法,那么结果也是整数。编程实现除法运算时,如果是整数除法,那么结果也是整数。值得注意的是:如果不能整除,那么结果只取商的整数部分,小数部值得注意的是:如果不能整除,那么结果只取商的整数部分,小数部分被去掉,例如:分被去掉,例如:INTEGER A INTEGER A,B B,C C A=1 A=1 B=2 B=2 C=A/B C=A/B 那么编程计算结果为那么编程计算结果为C=0C=0,而不是,而不是0.50.5因此对于变量因此对于变量C,C,可以直接采用可以直接采用1.0/2.01.0/2.0或者或者0.5,0.5,而不能直接采用而不能直接采用1/2.1/2.对于整除情况对于整除情况,不会存在以上的问题不会存在以上的问题,例如例如:INTEGER A INTEGER A,B B,C C A=6 A=6 B=2 B=2 C=A/B C=A/B 那么编程计算结果为那么编程计算结果为C=3C=33.3.算术表达式中的类型转换算术表达式中的类型转换FortranFortran语言是非强类型语言,具有以下特点和规定语言是非强类型语言,具有以下特点和规定:*允许允许不同类型的数值型数据之间进行算术运算;不同类型的数值型数据之间进行算术运算;*不允许不允许数值型数据与非数据型数据之间进行算术运算;数值型数据与非数据型数据之间进行算术运算;*不同类型之间的算术运算式不同类型之间的算术运算式 一是显式地进行类型转换一是显式地进行类型转换,例如例如 A A、B B 分别为整型和实分别为整型和实型,型,REAL(A)REAL(A)就将整型就将整型 A A 转换为实型,转换为实型,INT(B)INT(B)则将实型则将实型 B B 转换为整型。转换为整型。一是系统自动转换规则,将低精度类型转换为高精度类一是系统自动转换规则,将低精度类型转换为高精度类型,例如在整型和实型之间进行算术运算时,整型将转换型,例如在整型和实型之间进行算术运算时,整型将转换为实型。为实型。例如例如3+4.03+4.0,程序执行时先将,程序执行时先将3 3转换成转换成3.03.0,然后执行,然后执行3.0+4.03.0+4.0,得到实型,得到实型结果结果7.07.0。*数据类型转换是从左至右,当遇到不同类型时才开始转换。数据类型转换是从左至右,当遇到不同类型时才开始转换。例如:例如:9/4/3.09/4/3.0 程序执行时,先进行程序执行时,先进行9/4 9/4 整数除法运算,得整型数整数除法运算,得整型数2 2,然后整型数,然后整型数2 2 被转换被转换成实型数成实型数2.02.0,再除以实型数,再除以实型数3.03.0,最后结果时,最后结果时0.66666670.6666667,而不是数学上的结果,而不是数学上的结果0.750.75。如果数值运算为如果数值运算为9/4.0/3.09/4.0/3.0,最后结果是,最后结果是0.666666,0.666666,根据数据格式写出结果。根据数据格式写出结果。因此:要注意计算机程序执行结果与数学习惯的区别。因此:要注意计算机程序执行结果与数学习惯的区别。4.4.赋值语句中的类型转换赋值语句中的类型转换例例2-72-7,赋值语句中的类型转换,赋值语句中的类型转换PROGRAM MainPROGRAM Main IMPLICIT NONE IMPLICIT NONE INTEGER:a=3/2 INTEGER:a=3/2 INTEGER:b=3.0/2 INTEGER:b=3.0/2 REAL :c=3/2 REAL :c=3/2 REAL :d=3.0/2 REAL :d=3.0/2 PRINT*,a=,a,b=,b,c=,c,d=,d PRINT*,a=,a,b=,b,c=,c,d=,dENDEND程序运算结果:程序运算结果:a=1,b=1,c=1.0000000,d=1.500000a=1,b=1,c=1.0000000,d=1.500000程序说明:程序说明::不能缺少;不能缺少;变量与表达式的结果类型相同,直接进行赋值;变量与表达式的结果类型相同,直接进行赋值;变量与表达式的结果类型不同,先进行表达式的类型转换,再进行赋值。变量与表达式的结果类型不同,先进行表达式的类型转换,再进行赋值。进行变量赋值时最好使用相同类型。进行变量赋值时最好使用相同类型。表控输入/输出语句,READ*和 PRINT*语句。READ和PRINT表示输入/输出,“*”表示表控输入或输出,要求从系统隐含指定的输入/输出设备上输入或输出数据。1.表控输入语句 表控输入:自由格式输入。READ*语句的一般形式为:READ*,变量列表约定:表控输入,不必指定输入数据的格式,只需将数据依次输入;变量列表的变量用逗号分开,例如:A1,A2,A3当程序执行到 READ*语句时,向设备发出输入数据的指令,通过键盘输入数据。第六节第六节 表控输入表控输入/输出语句输出语句数据输入形式:数据输入形式:一个数据,可直接输入;一个数据,可直接输入;多个数据,数据之间要分隔,解决的办法有两个:多个数据,数据之间要分隔,解决的办法有两个:(1)(1)使用多行输入数据,每个数据单独放一行。使用多行输入数据,每个数据单独放一行。(2)(2)在一行输入多个数据,各个数据之间用分隔符分隔开。在一行输入多个数据,各个数据之间用分隔符分隔开。允许使用的分隔符有空格、逗号和斜杠允许使用的分隔符有空格、逗号和斜杠(/(/的作用是终止输入的作用是终止输入)。例例 2-8 2-8 表控输入表控输入 PROGRAM MainPROGRAM Main IMPLICIT NONE IMPLICIT NONE INTEGER a INTEGER a REAL b REAL b CHARACTER(5)c CHARACTER(5)c LOGICAL d LOGICAL d COMPLEX e COMPLEX e PRINT*,“Input a,b,c,d,e”PRINT*,“Input a,b,c,d,e”READ*,a,b,c,d,e READ*,a,b,c,d,e PRINT*PRINT*,a=,a,b=,b,c=,c,d=,d,e=,e a=,a,b=,b,c=,c,d=,d,e=,e END END程序运行结果:程序运行结果:显示:显示:“Input a,b,c,d,e”“Input a,b,c,d,e”读入:读入:1,2,abc,.true.,(1,-1)-这里用的分隔符是,结果:a=1,b=2.0000000,c=abc,d=T,e=(1.0000000,-1.0000000)数据输入约定:数据输入约定:(1 1)如果输入数据个数多余变量个数,多余的数据不起作用(被忽略);)如果输入数据个数多余变量个数,多余的数据不起作用(被忽略);如果输入数据个数少于变量个数,例如使用斜杠提前结束输入,如果输入数据个数少于变量个数,例如使用斜杠提前结束输入,FortranFortran不认为有错,而是把没有输入数据的数值型变量值设为不认为有错,而是把没有输入数据的数值型变量值设为0 0或者或者0.00.0(按照缺省值给定),字符型变量值的设定依赖于特定系统的字(按照缺省值给定),字符型变量值的设定依赖于特定系统的字符串。符串。(2 2)输入数据的类型要与对应的变量类型一致。)输入数据的类型要与对应的变量类型一致。*Fortran *Fortran允许将一个整数输入给一个实数,也允许将一个实数输入允许将一个整数输入给一个实数,也允许将一个实数输入给一个整数;给一个整数;*一个整数或实数可以输出给一个字符型变量,一个含有前导字符一个整数或实数可以输出给一个字符型变量,一个含有前导字符是字母的字符串不能输给

    注意事项

    本文(Fortran程序设计基础.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开