Fortran语言教程 (2).ppt
《Fortran语言教程 (2).ppt》由会员分享,可在线阅读,更多相关《Fortran语言教程 (2).ppt(387页珍藏版)》请在三一办公上搜索。
1、Fortran语言(Fortran77结构化程序设计),普通高校计算机基础教学课程,2023/11/7,2,说明第一章 算法(略)第二章 计算机和计算机程序(略),2023/11/7,3,第三章 Fortran语言程序设计初步,2023/11/7,4,3.1 Fortran语言的发展概况,FORmula TRANslator 公式翻译器 Fortran语言是一种适合于科学和工程计算问题的程序设计语言;也是计算机高级语言发展史上使用最早的一种程序设计语言。,2023/11/7,5,3.1 Fortran语言的发展概况,Fortran语言的发展过程:1951年由约翰贝克斯等人开始研究Fortran
2、语言;1957年第一个Fortran程序在IBM704机上运行;1958和1962年先后推出Fortran和Fortran;1966和1978年先后颁布Fortran66和Fortran77;1991年颁布了Fortran90。现在已经有了Fortran 95,Fortran 2003,2023/11/7,6,Fortran语言的特征,Fortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率。易学,语法严谨。可以直接对矩阵和复数进行运算。自诞生以来广泛地应用于数值计算领域,积累了大量高效而可靠的源程序。很多专用的大型数值运算计算机针对Fortran做了优化。广泛地应用
3、于并行计算和高性能计算领域。Fortran 90,Fortran 95,Fortran 2003的相继推出使Fortran语言具备了现代高级编程语言的一些特性。,2023/11/7,7,3.2 简单的Fortran程序分析,例1:求一元二次方程x2+3x-5.6=0的根,并打印结果。利用公式:(这里,a=1,b=3,c=-5.6),2023/11/7,8,3.2 简单的Fortran程序分析,编程如下:c the roots of the quadratic equation a=1.0 b=3.0 c=-5.6 x1=(-b+sqrt(b*b-4.0*a*c)/(2.0*a)x2=(-b-s
4、qrt(b*b-4.0*a*c)/(2.0*a)write(*,100)x1,x2100 format(1x,x1=,f6.2,x2=,f6.2)end,2023/11/7,9,3.2 简单的Fortran程序分析,执行结果:x1=1.30 x2=-4.30,例2:试求3!,6!,9!的值。编程如下:,2023/11/7,10,3.2 简单的Fortran程序分析,主程序:子程序:c main program c subprogram j=k(3)function k(n)l=k(6)k=1 m=k(9)i=2 write(*,*)j,l,m 5 if(i.le.n)then end k=k*
5、i i=i+1执行结果:goto 5 6 720 362880 endif return end,2023/11/7,11,3.2 简单的Fortran程序分析,Fortran程序的基本结构:一个Fortran源程序由一个或多个程序单位组成,每个程序单位以“end”语句结束。每个程序单位包括若干行语句行(执行语句和非执行语句行)非语句行(注释行)语句前可不设标号,也可根据需要设标号。各类语句在程序单位中的位置有一定规则。程序必须按规定格式书写。,2023/11/7,12,3.3 Fortran源程序的书写格式,Fortran77源程序必须按以下格式书写:每行只能在80列内书写,并把80列分为4
6、个区。15列:标号区(15 位无符号整数;第1列为“*”或“c”时,为注释行)第6列:续行标志区(非空格或非零字符;最多19个续行)772列:语句区(书写语句;一行只能写一条语句)7380列:语句注释区(一般作编号注释),2023/11/7,13,3.4 Fortran程序的编辑与运行,Fortran PowerStation 4.0集成开发环境 简 介,2023/11/7,14,3.4 Fortran程序的编辑与运行,一、Fortran PowerStation 4.0的启动 选“开始”“程序”“Fortran PowerStation 4.0”“Microsoft Developer St
7、udio”。二、创建项目工作间 选“File”“New”“Project Workspace”“Console Application”,并输入项目工作间名称(如:aaa)和存放项目工作间的位置或路径(如:c:for)Create。,2023/11/7,15,3.4 Fortran程序的编辑与运行,三、给项目工作间添加和编辑文件 打开指定的项目工作间选“Insert”“File into Project”输入要添加的文件名(如:st01.for)“Add”。然后按Fortran程序的书写规则编辑程序。四、编译项目工作间中的文件 打开指定的文件选“Build”“Compile st01.for”
8、。五、连编项目文件 选“Build”“Build aaa.exe”。六、运行项目文件 选“Build”“Execute aaa.exe”。(显示程序执行结果),2023/11/7,16,3.4 Fortran程序的编辑与运行,注:若Fortran程序是由一个主程序文件和若干个子程序文件组成,则应将各文件添加到同一项目工作间,分别进行编译,然后连编和运行项目文件。七、打开项目文件 选“File”“Open”在打开对话框文件类型下拉列表中选“Project Workspace(*.mdp)”然后选项目工作间文件夹中的项目文件。,2023/11/7,17,3.5 常 量,常量在程序执行期间其值固定不
9、变的量。Fortran处理六种类型的常量:整型常量(Integer)实型常量(Real)双精度常量(Double precision)复型常量(Complex)逻辑型常量(Logical)字符型常量(Character),2023/11/7,18,3.5 常 量,3.5.1 整型常量 包括正、负整数和零。例:5,-13,0,说明:在(16位)微机中,整数的取值范围为:-215215-1(-3276832767)在(32位)微机中,整数的取值范围为:-231231-1(-21474836482147483647),2023/11/7,19,3.5 常 量,3.5.2 实型常量(有二种表示形式)小
10、数形式例:15.8,-21.05,14.0,14.,.17,0.0,指数形式(通常表示较大或较小的数)例:1000000001.0E+8 0.00001251.25E-05 数字部分 指数部分,2023/11/7,20,3.5 常 量,说明:一个数值用指数形式表示时有两种表达方式:一个基本实数后面跟指数部分。例:0.8768.76E-1-2589.4-2.5894E+3一个整数后面跟指数部分。例:0.876876E-3-2589.4-25894E-1,2023/11/7,21,3.5 常 量,同一个数值可用不同的指数形式表示。例:0.8768.76E-187.6E-2876E-3计算机在输出时
11、,按标准化指数形式输出。例:0.282.800000E-01-59.58E+12-5.958000E+13 即数字部分大于1,且小数点前只有一位非零数字的指数输出形式。在微机中,一般用四个字节存放一个实数,其取值范围为:10-751075。超出此范围时为“溢出”错误。,2023/11/7,22,3.5 常 量,下列形式为不合法的指数形式:单独的小数点和单独的指数部分。例:.E5,E10 指数部分只能是整数,不能带小数点。例:8E0.5,12.3E1.5,2023/11/7,23,3.6 变 量,变量在程序执行期间其值可以改变的量。3.6.1 变量的概念 Fortran为每一个变量分配一个相应的
12、存储单元;每个变量在每个时刻只能有一个确定的值。例:x=4.5 x x=8.0 x注:在程序中用到的变量都必须要有确定的值。,4.5,8.0,2023/11/7,24,3.6 变 量,3.6.2 变量名变量名标识一个变量所用的名字。命名规则:变量名的第一个字符必须是字母;在第一个字符后可跟15个字母或数字。例:x,m1,total,k123,,2023/11/7,25,3.6 变 量,注意几点:变量名不区分大小写字母。例:TOTAL,Total,total 代表同一变量变量名中的空格不起作用。例:abc,a bc,ab c,a b c 代表同一变量变量名尽量做到“见名知义”AVER、SUM、I
13、max允许变量名与语言中具有特定含义的字(“保留字”)同名。例:sin,read,open,end,建议不要使用fortran中具有特定含义的字作变量名,2023/11/7,26,3.6 变 量,3.6.3 变量的类型 Fortran能处理各种类型的变量。不同类型的变量用来存放不同类型的数据。变量类型的说明(三种方式)隐含说明 即以I、j、k、l、m、n开头的变量为整型变量,以其它字母开头的变量为实型变量。(“IN规则”)例:imax,m5,number,为整型变量 v,h2,aver,为实型变量,2023/11/7,27,3.6 变 量,显式说明即用类型说明语句指定变量的类型。如:Integ
14、er说明变量为整型变量Real说明变量为实型变量Double precision说明变量为双精度变量Complex说明变量为复型变量Logical说明变量为逻辑型变量Character说明变量为字符型变量,2023/11/7,28,3.6 变 量,如:Integer abc,xyz real imax,k3 logical a1,kpz用implicit语句说明 即说明用某一字母开头的变量为指定的类型。例:implicit integer(a,b),real(k)implicit integer(x-z),2023/11/7,29,3.6 变 量,三种类型说明的优先级:高 类型说明语句(显式说
15、明)implicit语句说明低“IN规则”,2023/11/7,30,3.7 Fortran内部函数,在编制Fortran程序时,经常要用到一些基本的数学函数,如三角函数、指数函数、对数函数等。为方便用户,Fortran编译系统已提供了这些函数的计算程序,需要时即可调用。Fortran内部函数调用格式:函数名(自变量),2023/11/7,31,3.7 Fortran内部函数,如:sin(90*3.14159/180)1.0sqrt(9.0)3.0abs(-5.6)5.6int(6.75)6exp(3.0)20.085540Fortran77全部内部函数见附录,2023/11/7,32,3.7
16、 Fortran内部函数,注意几点:函数自变量(参数)必须用括号括起来。例:sinx+cosx sin(x)+cos(x)函数自变量可以是常量、变量或表达式。例:exp(3.0)sin(x+cos(x)有些函数的类型是由自变量的类型确定的。例:mod(8.0,3.0)2.0 mod(8,3)2三角函数的角度单位是“弧度”而不是“度”。函数名分为“通用名”和“专用名”内部函数名一般用“通用名”。,2023/11/7,33,3.8 Fortran算术表达式,Fortran77提供了四种表达式:算术表达式关系表达式逻辑表达式字符表达式 算术表达式将各运算元素(常量、变量、函数和数组等)用算术运算符连
17、接起来的一个有值的式子。,2023/11/7,34,3.8 Fortran算术表达式,一、算术运算符及其优先级算术运算符(五种)加(+)减(-)乘(*)除(/)乘方(*)算术运算符的优先级 括号函数乘方乘、除加、减注:同级运算“先左后右”,连续乘方时“先右后左”。,2023/11/7,35,3.8 Fortran算术表达式,例:3+5-6.0*8.5/4*2+sin(x)3+5-6.08.542sinx x*y*z、x*(y*z)xyz(x*y)*z(xy)z有了算术表达式概念之后,我们就可以将:数学运算式Fortran算术表达式,2023/11/7,36,3.8 Fortran算术表达式,二
18、、算术表达式书写规则表达式中的各运算元素之间必须用运算符分隔。例:xyzx*y*z 2(x+y)2*(x+y)作任何运算的表达式只能写在一行。例:(a+b)/(c+d)a+b/c+d,2023/11/7,37,3.8 Fortran算术表达式,两个运算符不能紧邻。例:a/(-b)-a/b a/-b表达式一律用小括号。例:ax+b(y+c)a*(x+b*(y+c),2023/11/7,38,3.8 Fortran算术表达式,三、表达式求值中的类型问题同类型量运算的结果,仍为原类型。例:4*5=20,4.0*5.0=20.0 6.0/4.0=1.5,6/4=1(1.5)不同类型量运算时,先将低级类
19、型(整型)转换为高级类型(实型),然后再按同类型量进行运算。例:2.5*4=10.0(10)2.0*3=2.0*2.0*2.0=8.0(属同类量运算),2023/11/7,39,3.8 Fortran算术表达式,四、运算中的误差问题整数量运算没有误差实型量由于有效位数的限制,运算时会出现误差 例1:(1.0/3.0)*3.0=0.9999999(1.0)1.0/3.0=0.3333333 例2:X=1E30 Y=-1E30 Z=1.0(X+Y)+Z=?X+(Y+Z)=?,2023/11/7,40,3.9 赋值语句,Fortran提供三类赋值语句:算术赋值语句 逻辑赋值语句 字符赋值语句一、算术
20、赋值语句一般格式 V=e 功能:把赋值号右边表达式的值,赋给赋值号左边的变量或数组元素。例:S=3.14159*r*2,2023/11/7,41,3.9 赋值语句,二、算术赋值语句中的类型转换问题 赋值号两边类型一致时,直接赋值。例:k=355 赋值号两边类型不一致时,先计算,再转换,最后赋值。例:y1=6*2(y1的值为12.0)Imax=3.6*2(imax的值为7(7.27),2023/11/7,42,3.9 赋值语句,注意几点:赋值号左边只能是变量或数组元素,不能为带运算符的表达式。例:3*a=6*x+sin(x)一个赋值语句只能给一个变量或数组元素赋值。例:a=b=c=d=3.5 一
21、个赋值语句执行后,赋值号左边变量的原值被右边表达式的值取代。例:x=1.0 x=x+1.0(x的值为2.0),2023/11/7,43,3.10 简单的输出语句,用户编制的程序必须要有输出语句,把结果显示或打印出来。Fortran提供了三种输出方式:表控格式输出(标准或固定格式输出)指定格式输出无格式输出(二进制形式,适应磁盘文件)一、表控格式输出 按Fortran编译系统隐含规定的格式输出。(即系统根据输出数据的不同类型,自动给出相应的输出格式。),2023/11/7,44,3.10 简单的输出语句,二、表控格式输出语句 一般格式:print,输出表列 write(,)输出表列 例1:pri
22、nt,56.8,125 或 write(,)56.8,125 例2:print,a,b,c 或 write(,)a,b,c,2023/11/7,45,3.10 简单的输出语句,例3:x=12.5 y=90.5 z=x+y print*,x,y print*,z=,z end 运行结果:12.500000 90.500000 Z=103.000000,2023/11/7,46,3.10 简单的输出语句,整数的表控格式输出 规定:每个整数占12列,数据打印在右端,左补空格。例:print*,123,-1128 输出结果:123-1128,2023/11/7,47,3.10 简单的输出语句,实数的表
23、控格式输出 规定:每个实数占16列,数据打印在右端,左补空格。例:print*,15.4,-321.45 输出结果:15.400000-321.450000,2023/11/7,48,3.10 简单的输出语句,当实数值的绝对值107或1时,按标准的指数形式输出。例:print*,-10000000.,0.98 输出结果:-1.000000E+079.800000E-01,2023/11/7,49,3.11 简单的输入语句,Fortran提供了三种输入方式:表控格式输入(自由格式输入)指定格式输入无格式输入一、表控格式输入 表控格式输入根据变量的数据类型输入相应的数据形式,数据间以逗号或空格分隔
24、的输入方式。,2023/11/7,50,3.11 简单的输入语句,二、表控格式输入语句 一般格式:read,输入表列 read(,)输入表列例1:read,a,b(若a=14.7,b=30.0)键盘输入:14.7,30.0,2023/11/7,51,3.11 简单的输入语句,例2:read,x,k(若x=4.5,k=200)键盘输入:4.5,200例3:read,x,y,z(若x=1.5,y=2.5,z=3.5)read,i,j(若i=5,j=10)键盘输入:1.5,2.5,3.5 5,10,2023/11/7,52,3.11 简单的输入语句,注意几点:输入数据的个数不得少于read语句中变量
25、的个数,但多余的数据也不起作用。例:read,x,y,z(若x=1.5,y=2.5,z=3.5)键盘输入:1.5,2.5,3.5 1.5,2.5,3.5,5.2,6.0(最后两个数被忽略)1.5,2.5(计算机将等待用户继续输入数据),2023/11/7,53,3.11 简单的输入语句,注意几点:一个read语句可以分多行输入,但每一个read语句必须从新的一行输入。例:read,x,y,z(若x=1.5,y=2.5,z=3.5)read,i,j(若i=5,j=10)键盘输入:1.5 2.5 3.5 5,10 若键盘输入:1.5,2.5,3.5,5,10(错),2023/11/7,54,3.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Fortran语言教程 2 Fortran 语言 教程
链接地址:https://www.31ppt.com/p-6505896.html