计算物理课件 第二章Fortran程序设计初步.ppt
《计算物理课件 第二章Fortran程序设计初步.ppt》由会员分享,可在线阅读,更多相关《计算物理课件 第二章Fortran程序设计初步.ppt(36页珍藏版)》请在三一办公上搜索。
1、洛阳师范学院物理系,第二章 Fortran程序设计初步,1.Fortran程序简例 1.1 编程实例 1.2 Fortran程序的特点 2.Fortran程序的基本组成 2.1 字符集 2.2 程序组成 3.数学运算 3.1 常量和变量类型 3.2 内在函数 3.3 算术表达式,计算物理导论课多媒体课件,洛阳师范学院物理系,2.1 Fortran程序简例,程序实例基本语句程序特点,例1.1 输入两个数,求算数平均和几何平均值。Fortran 77/90 程序,第一章 Fortran程序设计初步,程序示例比较,洛阳师范学院物理系,C-求两种平均値-PROGRAM Example_1_1 REAL
2、 a,b,av1,av2 READ(*,*)a,b av1=(a+b)/2 av2=sqrt(a*b)WRITE(*,*)av1,av2 END,PROGRAM Example_1_1!求平均REAL:a,b,av1,av2READ*,a,b av1=(a+b)/2;av2=(a*b)*0.5PRINT*,av1,av2 END,第一章 Fortran程序设计初步,程序説明:程序中第1行是注释行,对程序起说明作用。F77注释行是以“C”或“!”作为该行第一个字符的,F90可在任意一行末以“!”开始作为注释符。第2行是主程序名,第3行是变量类型定义,第4行是输入语句,第56行是赋值部分,第7行是
3、打印输出语句,最后是程序结束。注意F77的固定书写格式和F90的自由格式。F90中用“;”将两行并为一行。,洛阳师范学院物理系,第一章 Fortran程序设计初步,固定格式示例,洛阳师范学院物理系,第一章 Fortran程序设计初步,标号区:第l5列 可以写l至5位整数。也可以没有标号。标号区中的空格不起作用。如lOO与100 或1 0 0作用相同。标号应是无符号整数(无正负号或小数点)。标号大小顺序没有任何要求。假如第二行的标号为1000,第三行的标号可以是10,也可以是99999。标号区内不得出现标号以外的内容,但注释行例外。注释行的内容可以写在标号区内,一行中第一列为C或*的,该行即被认
4、为注释行,编译时对该行内容不作翻译,对程序运行不产生任何影响。如果在第一列上出现的不是数字、空格或C和*的字符,编译时按出错处理。续行区:第6列 如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。注意在某些系统中,这个字符可以不限于上面所列的,如 等字符均可使用。F77允许一个语句有19个续行(即一个语句最多可以写成20行)。有的程序中第6列上用“l”,“2”,表示该行是第1个或第2个续行,但用数字字符容易与第7列的数字形成连续的数字串而引起错觉,故最好使用固定的特殊字符。,洛阳师范学院物理系,第一章 Fortran程序设计初步,语句区:第772列 不要求一定从第7列开始
5、写语句,可以从第7列以后(72列以前)的任何一列开始写,但一行只能写一个语句。如果写满了72列,一旦在终端上修改程序时在该行又插入了一些字符,就会使本行最后几个字符超出语句区而引起意料不到的错误。特别注意到语句最后的空格将可能溢出72列,在某些计算机系统上将导致难以查出的错误。应注意,引号内的字符串中所包括的空格是有效的,不能忽略。注释区:第7380列 在卡片输入法时代,程序员一般利用此8列为程序行编序号以便查找。注释区只对程序员提供辨别信息,不是语句的一部分,在编译时不对7280列作处理。,洛阳师范学院物理系,第一章 Fortran程序设计初步,自由格式示例,洛阳师范学院物理系,第一章 Fo
6、rtran程序设计初步,行:一行为132列。可以有复数条程序语句,语句间用分号“;”分开。语句没有位置规定。注释行:起始用注释符“!”号,此行其后的所有字符均作为注释(字符串中的!号除外,如 print*,help!)。续行:当一个语句非常长以至于132列都书写不下时,允许有39个续行。在语句行最后加上续行符“”。一个语句最长不能超过2640个字符。,洛阳师范学院物理系,程序实例 基本语句程序特点,第一章 Fortran程序设计初步,PROGRAM语句:宣布程序开始,其后跟程序名。可省略。REAL语句:定义a,b,.等变量为实数型数据。如为整数型,则用INTEGER定义。变量名:可用a,b等无
7、具体意义的文字,或用average_value等英文缩写。使用的字 符和文字长度有具体规定。输入输出语句:可以用以下任一种默认格式,注意星号(*)和逗号(,)。星号意指默认的输入输出硬件(键盘和屏幕)及格式。READ*,变量名 READ(*,*)变量名 PRINT*,变量或常数,关系式 WRITE(*,*)变量或常数,关系式赋值语句:将等式右边的变量取值赋予左边的变量。变量=变量、常数、关系式例:sum=sum+x算术运算:项运算:加(+),减(-),乘(*),除(/),乘方(*)。运算的优先顺序:加,减 乘,除 乘方,括号中优先()。单项运算:(例-a)数据类型:按定义有整数、实数、复数、双
8、精度数等。,C-求两种平均値-PROGRAM Example_1_1 REAL a,b,av1,av2 READ(*,*)a,b av1=(a+b)/2 av2=sqrt(a*b)WRITE(*,*)av1,av2 END,2.1 Fortran程序简例,洛阳师范学院物理系,程序实例 基本语句程序特点,第一章 Fortran程序设计初步,2.1 Fortran程序简例,一个Fortran程序由一个或若干个程序单位组成。主程序和辅程序分别是一个独立的程序单位。主程序单元起整体控制作用,各辅程序单元完成总问题中的一个子问题。每一个程序单位都是以END语句结束的。END既是一个程序单位的结束标志,又
9、是一个独立的语句(结束语句)。主程序中的END语句的作用是使程序“停止运行”。辅程序中的END语句是“使流程返回调用程序”。Fortran程序中的语句可以有标号。一个语句有否标号是根据需要而定,其作用是标志一个语句以便被其它语句引用。在同一个程序单元中不能有两个相同标号的语句。标号不影响语句的执行顺序。但在F90中因为提倡结构化程序设计,一般不使用标号。F77源程序必须按固定格式书写,即源程序中哪些内容应写在一行中的哪一列(或哪几列上)有严格的规定。而F90可采用自由格式一个程序单位中各类语句的位置是有一定规定的。例如PROGRAM语句应是主程序的第一个语句。FUNCTION语句是函数子程序的
10、第一个语句,END语句只能是程序单位中最后一行。程序中语句执行的顺序一般依照它们在程序中的先后位置而定。,洛阳师范学院物理系,程序实例基本语句程序特点,第一章 Fortran程序设计初步,2.1 Fortran程序简例,一个程序单位包括若干行。F77行分为下面两类。F77规定,一行只能写一个语句,一行中不能写几个语句。如果一个语句太长,一行内写不下的话,可以写在继续行(要用“续行标志”)语句行。由一个Fortran语句组成,Fortran语句分为执行语句和非执行语句。执行语句使计算机在运行时产生某些操作,如赋值语句、打印语句等。非执行语句(包括说明语句,数据语句等)将有关信息通知编译系统,以便
11、在编译时作出相应的处理,例如类型说明语句、函数子程序语句等。Fortran程序的基本成份是语句。非语句行,即注释行。它不是Fortran语句,它不被翻译成机器目标指令。不产生任何机器操作。它仅仅是为了人们阅读程序的方便而加到程序中的。一个程序中注释行的数目不受限制,根据需要而定。但一个程序单位不能只由注释行组成。注释行的内容完全是根据程序设计人员需要而写的,一般是为程序(或程序中一部分)的作用作注释以易于理解程序。,F90行不分类。注释可以写在任一行末尾,而且一行不限语句 数,可以将几个F77行合并写入一行。这样,极大地简化了程序写法,使得程序可以编写得更为清晰明了。因此F90的格式较F77有
12、柔软性。,洛阳师范学院物理系,字符集 程序组成,第一章 Fortran程序设计初步,2.1 Fortran程序的基本组成,FORTRAN 90源程序是一个符合FORTRAN 77/90词法、语法和语义规定的特殊文本,它由FORTRAN 77/90字符集规定的字符按照词法、语法和语义规定进行描述。,概述:,Fortran允许使用的字符如下:英文字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 阿拉伯数字:0 1 2 3 4 5 6 7 8 9特殊符号:空格=+-*/(),.:!%$?_(F90中新增的字符),其中“$”和“?”号在程序中
13、没有确切意义。应当注意,在F77语句中不区分大小写字母,例如写READ和read或Read是一样的,其它变量名和函数名中,大、小写字母也是等价的。但早期的Fortran卡片不允许小写,故老的程序代码都是大写的,很多人也养成了大写的习惯。,洛阳师范学院物理系,字符集 程序组成 总体构造 程序单位 语句顺序 英文名 标号标签,第一章 Fortran程序设计初步,2.1 Fortran程序的基本组成,程序总体构造:,Fortran90程序是一种分块形式的程序,整个程序由若干个程序模块组成。各模块都有相似的语句组织形式,其中主程序起整体控制作用,各辅程序模块各自完成问题中的一个算法。在解决一个比较复杂
14、的问题时,先把求解的问题分解为若干相对独立的子算法,每一个子算法编为一个辅程序,然后按搭积木一样将各有关程序模块组成一个程序。主程序依次调用各辅程序模块,控制各子算法的实施,通过主程序对子程序的调用,形成程序的整体运行,完成问题的解。若某一子程序算法仍复杂,可再把它分解为若干更小的算法,分别编写为更低一层次的辅程序,由其他辅程序分别去调用。这种情况可以类推到其它子程序或更低一层次。所以,Fortran程序n个程序单位1主程序单位(0n-1)个子程序单位。在最简情况下,Fortran程序只由一个主程序构成而没有辅程序,所有算法都由主程序自身完成。按现代要求,即使功能比较简单的问题,也最好写成主程
15、序调用辅程序的形式,以便于维护。,洛阳师范学院物理系,字符集 程序组成 总体构造 程序单位 语句顺序 英文名 标号标签,第一章 Fortran程序设计初步,2.1 Fortran程序的基本组成,程序单位:,主程序 PROGRAM 程序名 语句可省略.END PROGRAM 程序名 END必须有辅程序(过程)SUBROUTINE 子程序 FUNCTION 函数 BLOCK DATA 块数据 MODULE 模块(F90)内部过程 CONTAINS(F90)程序单位是Fortran中的基本成分,包括主程序、辅程序、块数据单元和内部过程。辅程序可以是函数辅程序或子程序辅程序。模块中包含可由其他程序单位
16、访问的各种实体。块数据单元用来对有名公用块的数据对象规定初始值。一个执行程序总是由一个主程序单位和任意个(可以为零)其他类型的程序单位组成,任何程序单位都不能调用主程序。MODULE过程在主程序中通过USE语句与之相联系。模块用于组装若干功能(如过程、类型定义、语义扩展等)为一集团,是F90中极具柔软性的程序单位,它取代了F77中的某些不安全的特性。BLOCK DATA辅程序的用处是定义全局常数或全局初始化,在F90中是不推荐使用的,其功能已被MODULE和USE取代。,洛阳师范学院物理系,字符集 程序组成 总体构造 程序单位 语句顺序 英文名 标号标签,第一章 Fortran程序设计初步,2
17、.1 Fortran程序的基本组成,程序体和语句顺序:,Fortran要求严格的语句顺序。在每个程序单位中,根据语句种类按如下的次序排列。F77中的顺序可简单归纳为:PROGRAM,FUNCTION,SUBROUTINE,BLOCK DATA等程序单位开始语句 变量类型和语句函数等定义语句(说明部分)执行语句,DATA语句,FORMAT语句(执行部分)END语句 在F90中将新增加的语句功能综合后,其顺序为:,洛阳师范学院物理系,字符集 程序组成 总体构造 程序单位 语句顺序 英文名 标号标签,第一章 Fortran程序设计初步,2.1 Fortran程序的基本组成,英文名:,变量名和程序名等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算物理课件 第二章 Fortran程序设计初步 计算 物理 课件 第二 Fortran 程序设计 初步

链接地址:https://www.31ppt.com/p-6343068.html