ImageVerifierCode 换一换
格式:DOCX , 页数:83 ,大小:313.58KB ,
资源ID:7405982      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7405982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Fortran语言基础.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Fortran语言基础.docx

1、Fortran语言基础Fortran语言基础 数值分析程序设计Part I Fortran语言基础COMPAQ VISUAL FORTRAN 6.51编译器的使用0.1 编译器简介高级语言以及汇编语言的程序代码在没有转换成机器代码前,计算机是无法执行的。编译器的功能是将高级语言的程序代码翻译成计算机可执行的机器码,也就是生成扩展名为EXE, COM的文件。0.2 Visual Fortran的使用Visual Fortran起源于Microsoft的Fortran PowerStation 4.0,这套工具后来卖给Digital公司继续开发,第二个版本称为Digital Visual Fort

2、ran 5.0,Digital被Compaq并购之后,接下来的版本6.0和6.5称为Compaq Visual Fortran。下面的介绍以Compaq Visual Fortran 6.5作范例。Visual Fortran被组合在一个叫做Microsoft Visual Studio的图形接口开发环境中。Visual Studio提供一个统一的使用接口,这个接口包括文字编辑功能、Project管理功能、调试工具等。而编译器则被组合到Visual Studio中,VF和VC+使用相同的使用接口。Visual Fortran 6.5除了完全支持Fortran 95的语法外,扩展功能方面提供了完

3、整的Windows程序开发工具,专业版还含有IMSL数值计算连接库。另外还可以和VC+直接互相连接使用,也就是把Fortran和C语言的程序代码混合编译成一个执行文件。安装好Compaq Visual Fortran后,运行Developer Studio就可以开始编译Fortran程序了。运行Developer Studio启动Visual Fortran,默认程序名称为Compaq Visual Fortran 6.5选择File菜单中的New选项在弹出的对话框中,选择Project标签。在Project中选择Fortran Console Application。在Project Nam

4、e的文本框中给定Project的名字,Location会显示出整个Project的工作目录。点击”OK”。选择An empty project选项,单击Finish按钮。这个画面只有在VF6.5中才会出现,他显示Project打开后自动生成的文件,直接单击OK按钮。这是刚设置完成的Project后的界面,目前还没有任何程序代码。以上是建立Project的方法。Visual Studio的环境是以Project作为编译单位,*.dsp或*.dsw是记录Project文件。打开Project后,还要把程序代码加入Project中才能编译。下面是添加程序代码文件的方法。再次选择File菜单中的New

5、选项。在对话框中,选择Files标签,选择Fortran Free Format Source File。并为文件命名。编写一个程序或打开一个已有的程序。选择Build菜单中的Execute选项,VF会编译并执行编译好的程序。程序执行的结果。最后再一次简单地说明编译程序的过程:(1)建立一个新的Project(File/New,选择Project选项卡,选择Fortran Console Program格式,给定Project名称)。Project会保存成*.dsw文件。(2)生成一个新的程序文件(File/New,选择Files选项卡,选择Fortran Free Format Source

6、 File,给定文件名),或是插入一个已有的程序文件(选项Project/Add to Project/Files)。程序代码会保存成*.f90或*.for文件。(3)用Build菜单中的Execute选项来编译并运行程序,或只是单击Build选项来只作编译,不运行程序。(4)要写新的程序可以另外建立一个新的Project,或是直接更换Project中的文件。千万不要把两个独立的程序文件放在同一个Project中,否则导致编译过程出现错误。(5)下次修改程序时,可以直接使用File/Open Workspace来打开*.dsw的Project工程文件。作业:1、熟悉Fortran编译器的使用方

7、法。2Fortran语言基本概念1.0 程序书写格式Fortran程序代码的编写格式有两种:Free Format(自由格式)和Fixed Format(固定格式)。固定格式属于旧式写法,他在编写版面上有很多限制。自由格式是Fortran90之后的新写法,取消了许多旧的限制。Fortran程序代码扩展名为*.F或*.FOR的文件是以Fixed Format编写的程序;以*.F90为扩展名的文件,是以Free Format编写的程序。今后我们编写的程序建议采用自由格式编写。1.1.1Fixed Format(固定格式)在固定格式中,规定了程序代码每一行中每个字段的意义。第772个字符是可以用来编

8、写程序的字段。每一行的前5个字符只能是空格或者是数字,数字用来作为“行代码”。每一行的第6个字符只能是空格或者“0”以外的字符。第1个字符:如果是字母C,c或者星号*,这一行文本会被当作说明批注,不会被编译。第15个字符:如果是数字,就是用来给这一行程序代码取个代号。不然只能是空格。第6个字符:如果是“0”以外的任何字符,表示这一行程序会接续上一行;第772个字符:Fortran程序代码的编写区域。第73个字符之后:不使用,超过的部分会被忽略,有的编译器会发出错误信息。C FIXED FORMAT DEMO program main write(*,*) 15000.78910 write(*

9、,*) 1Hello100 write(*,*) Hello10 stop end注意:程序中的空格,没有任何意义。固定格式是配合早期使用穿孔卡片输入程序所发明的格式。熟悉固定格式,有助于阅读早期的Fortran程序代码。1.1.2Free Format(自由格式)自由格式基本上允许非常自由地编写格式,他没有规定每一行的第几个字符有什么作用。需要注意的事项只有以下几点:(1)叹号“!”后面的文本都是注释;(2)每一行可以编写132个字符;(3)行号放在每行程序的最前面;(4)一行程序代码的最后如果是符号“&”,代表下一行程序会和这一行连接。如果一行程序代码的开头是符号&,代表它会和上一行程序连

10、接。看一个自由格式编写的程序:! Free Formatprogram mainwrite(*,*) Hello ! 这也是注解write(*,*) &Hellowr&ite(*,*) Helloend1.1 字符集字符集是指编写Fortran程序时,所能使用的所有字符及符号。Fortran所能使用的字符集有:英文字母:AZ及az(英文字母不区分大小写);数字:09;22个特殊符号: := + - * / . ! “ % & ; ? $ _(还有一个显示不出来的空格符)注意:Fortran是不区分大小写的语言。所以,INTEGER, Integer, inteGER是相同的命令。1.2 数据类

11、型整数(INTEGER):整数又可以分为长整型与短整型。在个人计算机中长整型占用32 bits(4 bytes)的空间,长整型可以保存的数值范围在-2147483648+2147483647(也就是-231+1231)之间;短整型占用16 bits (2 bytes)的空间,保存数值的范围在-32768+32767之间。浮点数(REAL):浮点数有两种类型:单精度和双精度。单精度浮点数占用32 bits的空间,有效位数为67位。可记录的最大数值为,最小数值为。双精度浮点数占用64 bits,有效位数为1516位。可记录的最大数值为,最小数值为。复数(COMPLEX):单精度和双精度。以表示的复

12、数,其中a,b是由两个浮点数来记录的。字符型(CHARACTER):计算机除了记录数之外,可以记录一段文本或称作字符串。记录一个字符需要一个字节。逻辑型(LOGICAL):只有两种结果:真(TRUE)和假(FALSE)。在二进制中,通常以1代表真,0代表假。使用Fortran编写程序,必须事先声明数据类型。不同数据类型必须经过转换才能互通。1.3 数学表达式Fortran使用的数学运算符号,根据运算优先级顺序排列如下:+ 加法 - 减法* 乘法 / 除法* 乘幂(乘方)( ) 括号越是下面的运算符号,运算的优先级越高。Fortran的数学表达式和手写的差别主要有三点:(1)乘幂要连用两个星号*

13、, 例如必须写成4*3;(2)乘号不能省略,2a应当写作2*a;(3)除法算式应当写作(a+b)*(c+d)/(2*(e+f);1.4 变量命名在Fortran中,变量命名要注意一些原则:(1)变量的名称以使用英文字母为主,可以含有下划线或数字,但前缀必须是英文字母;(2)变量名的长度最多31个字符;(3)变量名不要与Fortran的命令名相同,也不要与程序名相同;(4)程序中变量名不区分大小写。1.5 Fortran程序结构程序开始 PROGRAM MAIN 主程序代码 WRITE(*,*) “Hello” 程序结束 STOP主程序代码结束 END 例如:program mainwrite(

14、*,*) Hellostopend 作业:1、变量命名有哪些要求?2、变量的类型有哪些?3 输入输出及声明 WRITE命令语法:WRITE(UNIT, FMT) 注释:屏幕输出。UNIT输出位置 FMT输出格式。默认格式WRITE(*,*)。默认输出格式unit=6,也就是屏幕输出。program mainwrite(*,*) Hellostopend program main 其他的输出格式参考Fortran的帮助。 PRINT命令program mainprint *,Hellostopend program main Print的用法和write大致相同,只是print后面不适用括号,而

15、且只有一个星号。这个星号的意义是不限定输出格式。 声明所谓声明是指:在程序代码中,程序员向编译器要求预留一些存放数据的内存空间。看一个例子:program ex0404 integer aa=3 write(*,*) a=,astopendinteger a声明变量为整型。编写程序时,应当根据变量的类型选择适当的数据类型,数据类型选用不当,可能造成错误。这种错误有时是编译器无法察觉的。2.3.1 整数类型(INTEGER) 语法:integer(kind=n) a注释:kind的值决定整型数据类型。kind=2短整型,kind=4长整型。默认为长整型。Integer aA=1.5 最终的结果为

16、a=1,这是因为a为整型,会把小数部分无条件舍去。2.3.2 浮点数(REAL) 语法:real(kind=n) a注释:kind的值决定浮点数的精度类型。kind=4单精度浮点数(有效数字位数67位),kind=8双精度浮点数(有效数字位数15位)。默认为单精度浮点数。超大数值的设置:单精度浮点数:1.23E20双精度浮点数:1.232365D10计算机在进行浮点数计算时,需要对位,由于有效数位的限制,可能造成大数吃小数的情况。2.3.3 复数(COMPLEX)语法:complex(kind=n) aa=(x,y)注释:kind的值决定浮点数的精度类型。kind=4单精度浮点数(有效数字位数

17、67位),kind=8双精度浮点数(有效数字位数15位)。默认为单精度浮点数。2.3.4 字符及字符串(CHARACTER)语法:character(len=n) a注释:len决定字符串的长度。字符串赋值由双引号定义a=”I am a student!”program ex0413 character(len=20) string string = Good morning. write(*,*) string string(6:) = evening. ! 重设设定从第6个字符之后的字符串 write(*,*) stringend执行结果:Good morning.Good evening

18、.注意:Fortran的命令不区分大小写,但是在字符串中是区分大小写的。关于字符串的有关函数,请查阅相关的帮助。2.2.5 逻辑变量(LOGICAL)语法:logical a注释:逻辑变量的值为“true”和“false”。逻辑变量输出值为”T”和”F” a=.true. a=.false.逻辑变量用于程序的逻辑判断语句,一般并不输出。 READ命令语法:read(*,*) aprogram ex0417 integer a read(*,*) a ! 由键盘读入一个整数 write(*,*) a ! 写出读进变量a的内容end Read命令用于实时接受用户从键盘输入数据。Read命令配合输入

19、格式可以方便读取文件中的数据。有关格式命令参考帮助文件。 格式化输入(FORMAT)命令2.5.1 格式化输出概论 Format命令用来设置输出格式,看一个例子:program ex0420 integer a a=100 write(*,100) a ! 使用行代码100地方设定的格式来输出变数a 100 format(I4) ! 最前面的100是行代码, 把这一行程序代码给一个编号end程序的执行结果使用4个字符宽输出整数,前面没有多余的空格。Format命令中可以使用很多的格式控制描述。下面列出所有格式命令的功能(中的选项可以省略):Aw以w个字符宽来输出字符串;BN定义文本框中的空位为

20、没有东西,在输入时才需要使用;BZ定义文本框中的空位为0,在输入时才需要使用;Dw.d以w个字符宽输出指数类型的浮点数,小数部分占用d个字符宽;EW.dEe以w个字符宽输出指数类型的浮点数,小数部分占用d个字符宽,指数部分占用e个字符;Enw.dEe以指数类型输出浮点数;Esw.dEe以指数类型输出浮点数;Fw.d以w个字符宽输出浮点数,小数部分占用d个字符宽;Gw.dEe以w个字符宽输出任何种类的数据;Iw.m以w个字符宽输出整数,最少输出m个数字;Lw以w个字符宽输出T或F的真假值;nX把输出的位置向右跳过n个位置;/代表换行;:在没有更多数据时结束输出;下面看一个例子:program e

21、x0421 integer a real b complex c logical d character(len=20) e a=10 b=12.34 c=(1,2) d=.true. e=FORTRAN write(*,(1X,I5) a ! 用I来格式化整数 write(*,(1X,F5.2) ) b ! 用F来格式化浮点数 write(*,(1X,F4.1,F4.1) ) c ! complex也是浮点数 write(*,(1X,L3) d ! 用L来输出logical write(*,(1X,A10) e ! 用A来输出字符串end上例将输出格式写在Write命令内,下面的例子采用Fo

22、rmat命令规定输出格式: PROGRAM ex0422 INTEGER A REAL BCOMPLEX C LOGICAL D CHARACTER*(20) E A=10 B=12.34 C=(1,2) D=.true. E=FORTRAN WRITE(*,100) A ! 用I来格式化整数 WRITE(*,200) B ! 用F来格式化浮点数 WRITE(*,300) C ! complex也是浮点数 WRITE(*,400) D ! 用L来输出logical WRITE(*,500) E ! 用A来输出字符串100 FORMAT(1X,I5)200 FORMAT(1X,F5.2)300

23、FORMAT(1X,F4.1,F4.1)400 FORMAT(1X,L3)500 FORMAT(1X,A10) END详细的输出格式使用方法,参考相关帮助。2.5.2 详论格式化输出格式化输出的控制字符非常丰富,但是常用的并不多,所以不需要记住每一个控制字符。一般来说,“I、F、E、A、X”是最常用的几个格式,最好能记住他们的用法。【Iw.m】以w个字符的宽度输出整数至少输出m个数字write(*,”(I5)”) 100100 !采用5个字符宽输出,100前补两个空白write(*,”(I3)”) 10000 * !设置的输出文本框不足,输出3个*以示警告write(*,”(I5.3)”) 1

24、0010 !强迫输出 声明的其他命令2.6.1 IMPLICT命令Fortran编译器会根据变量名的首字母自动决定变量类型,以I、J、K、L、M、N开头的变量被视为整型变量。implicit none关闭默认类型功能,所有变量都要事先声明;implicit real(M-P)implicit integer(A,B,C)2.6.2 常数的声明方法(PARAMETER) 程序中的一些不变量,可以声明为常数,其在程序中是不变的。看一个例子:program ex0429implicit none real pi parameter(pi=3.14159) write(*,(F4.2) sin(pi/

25、6)end2.6.3 设置变量初值 程序中的变量可以在声明变量类型时同时赋值。program ex0430 integer : a = 1 real : b = 2 complex : c = (1,2) character(len=20) : str = FORTRAN 90 write(*,*) a,b,c,strend在Fortran77中,需要使用Data命令设值初值。2.6.4 等价声明(EQUIVALENCE)把两个以上的变量,声明他们使用同一个内存地址,就是等价声明。使用等价声明可以节省内存、精简程序代码。integer a, bequivalence(a,b) !声明a,b这两

26、个变量使用同一块内存空间注意:所有的声明都应当放在程序代码的可执行描述之前。 混合运算混合运算是指:在算式中所进行计算的数字类型不同。进行混合运算时,要先经过数据类型的转换,以免出现错误。program ex0432implicit none integer : a=1 integer : b=2 real : c c=real(a)/real(b) ! 经由库函数real把整数转换成浮点数 write(*,(F5.2) c end程序的执行结果:0.5 如果不做类型转换,c=a/b=0,出现错误的结果。 自定义数据类型利用自定义数据类型可以定义数据结构体,管理不同类型的数据,这对于数据库建立

27、是非常有用的。program ex0434implicit none! 开始建立person这个类型type : person character(len=30) : name ! 人名 integer : age ! 年龄integer : height ! 身高integer : weight ! 体重 character(len=80) : address ! 地址end type persontype(person) : a ! 声明一个person类型的变量write(*,*) NAME:read(*,*) a%name write(*,*) AGE:read(*,*) a%agew

28、rite(*,*) HEIGHT:read(*,*) a%heightwrite(*,*) WEIGHT:read(*,*) a%weightwrite(*,*) ADDRESS:read(*,(A80) a%addresswrite(*,100) a%name,a%age,a%height,a%weight100 format(Name:,A10/,Age:,I3/,Height:,I3/,Weight:,I3,& &Addres:,A50)stopend每个类型为person的变量中,都有name, age, height, weight, address这几个元素可以使用,使用时要加上一

29、个百分号%来取用他们。Person%age, person%weight。Fortran90 中的type功能与C语言中的struct类似。4流程控制与逻辑运算3.1 IF语句IF语句基本用法IF语句基本流程:IF (逻辑表达式) THEN程序代码END IFprogram ex0501implicit none real(kind=4) : speed write(*,*) speed: read(*,*) speed if ( speed 100.0 ) then ! speed 100 时才会执行下面这一行程序 write(*,*) Slow down. end if stopend IF命令可以与ELSE搭配,逻辑流程为:IF (逻辑表达式) THEN程序代码ELSE程序代码END IFprogram ex0502implicit none real(kind=4) : height ! 记录身高 real(kind=4) : weight ! 记录体重 write(*,*) height: read(*,*) height ! 读入身高 write(*,*) weight: read(*,*) weight ! 读入体重 if ( weight height-100 ) then ! 如果体重大于身高减去100, 会执行下

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1