第二章 Fortran程序设计基础 本章主要包括以下内容: 1程序书写 2.字符集及标识符 3.数据类型 4.声明的有关事项 5.算数表达式 6.表控输入/输出语句
第二章 Fortran程序设计基础 本章主要包括以下内容: 1. 程序书写 2. 字符集及标识符 3. 数据类型 4. 声明的有关事项 5. 算数表达式 6. 表控输入/输出语句
第一节程序书写 程序构造形式 水* PROGRAM关键字 例21简单 Fortran程序的构造形式 标识 Fortran主程 ● PROGRAM MONEY 序,后接程序名, 这一行是可选的; Calculates balance after interest compounded REAL BALANCE、 INTEREST、RATE *!第二行是注释, 不参加编译; 水水REAL是声明语句, BALANCE= 1000 将后边的变量声明 RATE=0.09 为实型数 INTEREST= RATE BALANCE **空行不参与编译,只 BALANCE= BALANCE INTEREST 是增加程序的可读性; PRINT New balance:, BALANCE 这四行是非执行部分; END PROGRAM MONEY 之后的部分到END语句 之前为执行部分
第一节 程序书写 一. 程序构造形式 例2-1 简单Fortran程序的构造形式 • PROGRAM MONEY • !Calculates balance after interest compounded • REAL BALANCE, INTEREST, RATE • • BALANCE = 1000 • RATE = 0.09 • INTEREST = RATE﹡BALANCE • BALANCE = BALANCE + INTEREST • PRINT﹡ , ‘New balance:’ , BALANCE • END PROGRAM MONEY ** PROGRAM 关键字 标识 Fortran 主程 序,后接程序名, 这一行是可选的; **!第二行是注释, 不参加编译; ** REAL 是声明语句, 将后边的变量声明 为实型数; ** 空行不参与编译,只 是增加程序的可读性; 这四行是非执行部分; 之后的部分到END语句 之前为执行部分
根据上述的程序书写,给出简单 Fortran90程序 的构造形式: PROGRAM程序名 声明语句 「执行语句] END[ PROGRAM程序名 方括号内的部分是可选的,END语句是唯 必须的,表示程序编译到此结束。 END语句中的程序名可以省略,但若出现 程序名,必须同时出现 PROGRAM关键字 对于可选部分,如果缺省,则按照约定(隐 含)规则进行
根据上述的程序书写,给出简单 Fortran 90 程序 的构造形式: • [PROGRAM 程序名] • [声明语句] • [执行语句] • END[PROGRAM 程序名] 方括号内的部分是可选的,END 语句是唯 一必须的,表示程序编译到此结束。 END 语句中的程序名可以省略,但若出现 程序名,必须同时出现 PROGRAM 关键字。 对于可选部分,如果缺省,则按照约定(隐 含)规则进行
句 语句是 Fortran程序的基本单位,一条语句可包含0-132个字符。 Fortran77规定,一条语句的不同部分应从特定的列开始,这样 的书写格式称为固定格式,相应的程序文件扩展名为f或for; Fortran90无此限制,自由格式,相应的文件扩展名为0 除赋值语句外,所有的语句都从一个关键字开始。例如: 例21中出现的关键字: PROGRAM、REAL、 PRINT和END。 般情况下,每行一条语句。 若一行有多条语句,它们之间以分号间隔。 可以将几条简单的赋值语句写在一行上,例如: A=1;B=1;C=1 也可以只保证一行一条语句,例如: A=1 B=1 这完全根据个人的书写习惯决定
二. 语句 语句是Fortran 程序的基本单位,一条语句可包含0-132个字符。 Fortran77规定,一条语句的不同部分应从特定的列开始,这样 的书写格式称为固定格式,相应的程序文件扩展名为.f 或.for; Fortran 90 无此限制,自由格式,相应的文件扩展名为.f90。 除赋值语句外,所有的语句都从一个关键字开始。例如: 例2-1 中出现的关键字:PROGRAM、REAL、PRINT和END。 一般情况下,每行一条语句。 若一行有多条语句,它们之间以分号间隔。 可以将几条简单的赋值语句写在一行上,例如: A =1;B =1;C =1 也可以只保证一行一条语句,例如: A =1 B =1 C =1 这完全根据个人的书写习惯决定
假如一条语句一行写不完,允许出现续行,但 要求被续行最后的非空白字符为&。例如: A=174.6米8 (T-19812)米*3 续行从下一行的第一个非空白字符开始; 若下一行的非空白字符为&,则续行从该字符 后的第一个字符开始。 A=1746米 &(I19812)*3 Fortran90允许出现多达39个续行
假如一条语句一行写不完,允许出现续行,但 要求被续行最后的非空白字符为&。例如: • A=174.6*& • (T-1981.2) **3 续行从下一行的第一个非空白字符开始; 若下一行的非空白字符为&,则续行从该字符 后的第一个字符开始。 • A=174.6* • & (T-1981.2) **3 Fortran 90 允许出现多达39个续行
空白的作用 墙加有的读在级请程浮类增棵定间,可 Do1I=110 DO2J=1,20 CONTINUE 1 CONTINUE 在代表有意义字符序列的记号(oken)内,比如:标号、关键字、变 量名、操作符等不允许出现空白。例如: INTE GER、 BALANCE 都是非法的。 一般情况下,记号之间需留有空白。例如 30 CONTINUE是非法的,因为标号30和关键字 CONTINUE是两个独立的记号 有的记号间的空白是可选的,例如: END PROGRAM和 ENDPROGRAM是合法的
三.空白的作用 ^ 空白没有意义,不参加编译。适当地运用空白空间,可 以增加程序的可读性,例如程序块中的代码缩进。 DO 1 I=1,10 DO 2 J=1,20 …… 2 CONTINUE 1 CONTINUE 在代表有意义字符序列的记号(token)内,比如:标号、关键字、变 量名、操作符等不允许出现空白。例如:INTE GER、BAL ANCE、 < =都是非法的。 ^ 一般情况下,记号之间需留有空白。例如: 30CONTINUE 是非法的,因为标号30 和关键字 CONTINUE 是两个独立的记号。 ^ 有的记号间的空白是可选的,例如:END PROGRAM 和 ENDPROGRAM是合法的
四.注释 Fortran90只提供了一种注释方式:以感叹号开始的语句 作为注释。 注意: 字符串内的感叹号除外;如 I this is a! subroutine 注释可以是一整行,也可以是空白行; 注释在编译时被忽略
四. 注释 • Fortran 90 只提供了一种注释方式:以感叹号开始的语句 作为注释。 注意: 字符串内的感叹号除外;如this is a ! subroutine 注释可以是一整行,也可以是空白行; 注释在编译时被忽略
五.固定格式 例22 C FIXED FORMAT DEMO PROGRAM Fixed PRINTHello S World! PRINT 10 10 FORMAT(Ix, This program is written in fixed format. END 固定格式说明: 行共80列,4个区 第1-5列,标号区,可以空白,也可以出现符号 第6列,续行标志区,可以空白(无续行),非0字符(续行); 第7-72列,语句区,语句区的书写可以从任意一列开始,空白编译时被 忽略,一行只能书写一个语句 第73-80列,注释区,信息提示,不参与编译
五. 固定格式 例2-2 • C FIXED FORMAT DEMO • PROGRAM Fixed • PRINT*,’Hello • $World!’ • PRINT 10 • 10 FORMAT(1x,’This program is written in fixed format.’) • END 固定格式说明: 一行共80列,4个区 第1-5列,标号区,可以空白,也可以出现符号; 第6列,续行标志区,可以空白(无续行),非0字符(续行); 第7-72列,语句区,语句区的书写可以从任意一列开始,空白编译时被 忽略,一行只能书写一个语句; 第73-80列,注释区,信息提示,不参与编译
固定格式是为配合早期使用穿孔卡片输入程序所发明的 格式,这里介绍固定格式,只是让大家对 Fortran77程 序有所了解,建议大家在编写程序时采用前述地自由格 固定格式尽管有其过多的限制,但由于具有一定的规范 性,方便程序的编写和检查
* 固定格式是为配合早期使用穿孔卡片输入程序所发明的 格式, 这里介绍固定格式,只是让大家对Fortran 77 程 序有所了解,建议大家在编写程序时采用前述地自由格 式。 * 固定格式尽管有其过多的限制,但由于具有一定的规范 性,方便程序的编写和检查
第二节字符集和标识符 字符集 Fortran90字符集由下列字符组成: (1)26个英文字母(AZ和a~2) (2)数字0~9 (3)下划线 (4)特殊字符 空格,=,十,一,*,, 等等,详见表2-1所示
一. 字符集 Fortran 90 字符集由下列字符组成: (1) 26个英文字母(A~Z 和 a~z); (2) 数字0~9; (3) 下划线 _ ; (4) 特殊字符 空格,=,+,-,* ,/, (,),:,!,%,* , 等等,详见表 2-1 所示 第二节 字符集和标识符