好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Fortran0801.ppt

56页
  • 卖家[上传人]:油条
  • 文档编号:26777097
  • 上传时间:2018-01-01
  • 文档格式:PPT
  • 文档大小:5.17MB
  • / 56 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Fortran 90 语言初步,数学学院 向兵2008-9-03,第一讲 课程概述,前言1.1 Fortran语言的发展历史1.1.1 FortranIV & Fortran 77 & Fortran901.1.2 是否有意义?1.2 程序简介1.3 基本语法,前 言,Fortran是目前国际上广泛流行的一种高级语言,适用于科学计算 Fortran是英文FORmula TRANslation的缩写,意为“公式翻译” 它是为科学、工程问题中的那些能够用数学公式表达的问题而设计的语言,主要用于数值计算前 言,Fortran语言是第一个真正推广的高级语言第一代Fortran语言是在1954年提出来的,称为FortranI (IBM 704)在此之前编写计算机程序是极为繁琐的,程序员需要详细了解为之编写代码的计算机的指令、寄存器和中央处理器(CPU)等方面的知识 源程序本身是用数学符号(八进制码)编写的,后来采用了助记符,即所谓机器码或汇编码,这些编码由汇编程序转换为指令字 Fortran语言作为第一种高级语言不仅是一次创新,也是一次革命前 言,最为流行的是1958年出现的FortranII FortranIII未在任何计算机上实现 1962年5月,当时的美国标准化协会 标准基本Fortran X3.10-1966 (相当于FortranII) 标准Fortran X3.9-1966(相当于FortranIV) 1972年国际标准化组织(ISO)  ISO Fortran标准 FortranIV(即Fortran66)流行了十几年 FortranIV不是结构化的语言,没有直接实现三种基本结构的语句,在程序中往往需要用一些以GOTO语句以实现特定的算法; 为了使非标准的Fortran源程序能够交换移植,产生了“预处理程序”,通过预处理程序读入非标准的Fortran源程序,生成标准的Fortran文本,从而实现了源程序的交换移植,但这种自动生成的Fortran程序通常让人难以理解。

      Fortran 77 & Fortran 90,美国标准化协会在1976年对ANSI X3.9-1966 Fortran进行了修订 1978年4月美国标准化协会正式公布将它作为美国国家标准,即ANSI X3.9-1978 Fortran,称作Fortran771980年,Fortran77被接受为国际标准,即《程序设计语言FortranISO 1539-1980》 我国制订的Fortran标准,基本采用了国际标准(即Fortran77),于1983年5月公布执行,标准号为GB3057-82Fortran 77 & Fortran 90,ANSI在80年代初期开始准备制定Fortran8x标准当初为了与前一标准相对应,设想是x=8由于要将Fortran77作为一个子集,同时又要确保程序的高效率,其标准化的工作花了十几年,最终在1991年通过了Fortran90新标准ANSI X3.198-1991,相应的国际化标准组织的编号为ISO/IEC1539:1991 整个Fortran77被作为Fortran90的一个严格子集,Fortran 77 & Fortran 90,是否有意义?,不再是惟一适用的程序设计语言 在数值计算、科学和工程技术领域,Fortran仍具有强大的优势。

      Fortran90吸取了一些其他语言的优点 高性能Fortran语言(HPF),它是Fortran90的一个扩展子集,主要用于分布式内存计算机上的编程,以减轻用户编写消息传递程序的负担Fortran77,成功必须站在巨人的肩膀上现有的成熟Fortran程序一大部分基于Fotran77 程序员的价值在于他精通哪些专业领域的算法和实现能力Fortran 90,淘汰GOTO, 增强结构化增加结构块,模块,过程明确定义全局数据增加数据种别说明  增加移植性数组功能的增强  并行化增加派生类型  文字处理&动态存储,Fortran 90,1.2.1 编程实例,输入两个数,求算数平均和几何平均值程序説明,PROGRAM语句:  宣布程序开始,其后跟程序名REAL语句:            定义a,b,...等变量为实数型数据如为整数型,则用INTEGER定义变量名:                  可用a,b等无具体意义的文字,或用average_value等英文缩写使用的字符和文字长度有具体规定输入输出语句:      可以用以下任一种默认格式,注意星号(*)和逗号(,)。

      星号意指默认的输入输出硬件(键盘和屏幕)及格式READ *,       变量名READ(*,*)    变量名PRINT *,      变量或常数,关系式WRITE(*,*)  变量或常数,关系式,程序説明,赋值语句: 将等式右边的变量取值赋予左边的变量变量 = 变量、常数、关系式例:sum = sum + x算术运算: 2项运算:加(+),减(-),乘(*),除(/),乘方(**)运算的优先顺序:加,减 < 乘,除 < 乘方,括号中优先( )单项运算:(例 -a)数据类型: 按定义有整数、实数、复数、双精度数等1.2.1 编程实例,[例1.2] 输入圆錐底面半径r和高h,求体积和表面积程序説明,输出字符 数据的输入:READ * 语句执行时进入等待数据输入的状态数个数据输入时以英文逗号、空格或换行符作区别,单个数据中间不能有空格字符的输出:在执行READ语句时,计算机已经进入等待数据输入的状态,但它不会给出任何提示除了程序员以外,谁也不会知道需要输入什么数据,即使是程序员自己可能也会忘记另外,PRINT语句打印的数据到到底是什么物理含义也需指明因此,需要输出文字内容PRINT *,   字符常量WRITE(*,*)   字符常量字符常量:    用' '或" "括起来的文字字符。

      Fortran程序的特点,一个Fortran程序由一个或若干个程序单位组成 主程序和辅程序分别是一个独立的程序单位主程序单元起整体控制作用,各辅程序单元完成总问题中的一个子问题 每一个程序单位都是以END语句结束的 END既是一个程序单位的结束标志,又是一个独立的语句(结束语句) 主程序中的END语句的作用是使程序“停止运行”辅程序中的END语句是“使流程返回调用程序”Fortran程序的特点,一个程序单位包括若干行 F77行分为下面两类 F77规定,一行只能写一个语句,一行中不能写几个语句如果一个语句太长,一行内写不下的话,可以写在继续行(要用“续行标志”) 语句行由一个Fortran语句组成, Fortran语句分为执行语句和非执行语句 非语句行,即注释行 它不是Fortran语句,它不被翻译成机器目标指令不产生任何机器操作它仅仅是为了人们阅读程序的方便而加到程序中的 F90行不分类Fortran程序的特点,执行语句使计算机在运行时产生某些操作,如赋值语句、打印语句等 非执行语句(包括说明语句,数据语句等)将有关信息通知编译系统,以便在编译时作出相应的处理,例如类型说明语句、函数子程序语句等。

      Fortran程序的基本成份是语句Fortran程序的特点,非语句行,即注释行它不是Fortran语句,它不被翻译成机器目标指令不产生任何机器操作它仅仅是为了人们阅读程序的方便而加到程序中的一个程序中注释行的数目不受限制,根据需要而定但一个程序单位不能只由注释行组成注释行的内容完全是根据程序设计人员需要而写的,一般是为程序(或程序中一部分)的作用作注释以易于理解程序Fortran程序的特点,F90行不分类注释可以写在任一行末尾,而且一行不限语句数,可以将几个F77行合并写入一行这样,极大地简化了程序写法,使得程序可以编写得更为清晰明了因此F90的格式较F77有柔软性Fortran程序的特点,Fortran程序中的语句可以有标号一个语句有否标号是根据需要而定,其作用是标志一个语句以便被其它语句引用在同一个程序单元中不能有两个相同标号的语句标号不影响语句的执行顺序但在F90中因为提倡结构化程序设计,一般不使用标号Fortran程序的特点,一个程序单位中各类语句的位置是有一定规定的例如PROGRAM语句应是主程序的第一个语句FUNCTION语句是函数子程序的第一个语句,END语句只能是程序单位中最后一行。

      程序中语句执行的顺序一般依照它们在程序中的先后位置而定Fortran程序的特点,F77源程序必须按固定格式书写,即源程序中哪些内容应写在一行中的哪一列(或哪几列上)有严格的规定而F90可采用自由格式Fortran程序的基本组成,1.3.1字符集 1.3.2源码格式 1.3.3程序组成,字符集,不是任何一种外文字母或数字符号都能被某一计算机语言接受每一种计算机的高级语言分别规定了它允许使用的字符 英文字母   :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中新增的字符)其中“$”和“?”号在程序中没有确切意义字符集,在F77语句中不区分大小写字母,例如写READ和read或Read是一样的,其它变量名和函数名中,大、小写字母也是等价的 早期的Fortran卡片不允许小写,故老的程序代码都是大写的,很多人也养成了大写的习惯 在每一种计算机系统所用的Fortran编译器中,可能对字符集或其功能作某些扩充。

      “$”号可用于从屏幕上连接输出输入字符于同一行 标准还允许F90扩充进各国文字,各种专业用符号,源码格式,固定格式  .for 或 .f Fortran作为历史上第一种高级语言,其程序编写的规则与当时使用的计算机系统有很大的关系 早期的计算机系统须用卡片将源程序输入,一张卡片相应于源程序的一行由于卡片物理宽度的限制,因此一行程序允许的字符数也是有限的由此决定了F77的格式,既为F90/95中的固定格式 自由格式  f90,Fortran卡片,卡片输入机&穿孔机,Fortran卡片,实际操作时利用卡片穿孔机,按下卡片穿孔机上某一个字符,则机器就会自动将卡片相应列中的相应位置穿上孔如果一个源程序有100行,则需要100张卡片在上机算题时,将穿好孔的卡片按顺序放入卡片输入机,启动机器,就将卡片上的信息输入计算机了固定格式,标号区:第l—5列 续行区:第6列 语句区:第7—72列  注释区:第73—80列,标号区,标号区:第l—5列 可以写l至5位整数也可以没有标号标号区中的空格不起作用如lOO与100  或1 0 0作用相同标号应是无符号整数(无正负号或小数点)标号大小顺序没有任何要求。

      假如第二行的标号为1000,第三行的标号可以是10,也可以是99999 标号区内不得出现标号以外的内容,但注释行例外注释行的内容可以写在标号区内,一行中第一列为C或*的,该行即被认为注释行,编译时对该行内容不作翻译,对程序运行不产生任何影响如果在第一列上出现的不是数字、空格或C和*的字符,编译时按出错处理续行区,续行区:第6列如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行注意在某些系统中,这个字符可以不限于上面所列的,如 @ } ] ~ 等字符均可使用F77允许一个语句有19个续行(即一个语句最多可以写成20行)有的程序中第6列上用“l”,“2”,…表示该行是第1个或第2个续行,但用数字字符容易与第7列的数字形成连续的数字串而引起错觉,故最好使用固定的特殊字符。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.