FORTRAN语言程序设计ppt课件.ppt_第1页
FORTRAN语言程序设计ppt课件.ppt_第2页
FORTRAN语言程序设计ppt课件.ppt_第3页
FORTRAN语言程序设计ppt课件.ppt_第4页
FORTRAN语言程序设计ppt课件.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FORTRAN语言程序设计,1,第一章程序设计概述,2,1.1程序设计基本概念,1.程序:计算机操作命令的集合。例:求x、y、z的平均值aver的程序。2.程序设计:编制程序(操作命令)的过程。3.程序设计语言:书写程序所采用的某种专用语言。高级语言:数学语言或自然语言。如:FORTRAN语言等程序设计语言的类型:低级语言:机器语言和汇编语言。,3,1.2程序设计方法和步骤1.2.1程序设计方法1.结构化方法(1)采用“自顶向下,逐步求精”的程序设计方法.(2)采用“单入口单出口”的控制结构.(3)三种基本程序结构:顺序、选择和循环.结构化程序设计的特征:(a)模块化:把一个较大的程序划分为若干个子程序,每一个子程序独立成为一个模块;(b)层次化:先设计第一层(即顶层)。然后步步深入,逐层细分,逐步求精,直到整个问题可用程序设计语言明确地描述为止。(c)逐步求精:是对一个复杂问题,从抽象到具体,最终编制出一个可执行的程序。2.面向对象方法详见P5,4,1.2.2程序设计步骤1.分析问题2.建立数学模型3.选择算法4.编写程序5.调试运行6.分析结果7.写出程序的文档,5,第二章算法,6,2.1算法概述,1.算法:计算机解题的方法和步骤.2.算法特征:(1)有穷性一个算法必须总是在执行有限步骤之后结束。(2)确定性算法中的每一个步骤应当是确定的,无二义性;相同的输入只能得出相同的输出。(3)可行性算法中的每步骤都是有效地执行。(4)有零个或多个输入(5)有一个或多个输出3.算法的分类:(1)数字运算:用于求数值解,此类算法有现成的模型,运用较成熟.(2)非数字运算:用于非数据处理的一些事务性工作,此类算法面广量大,要求各异,有一定难度.,7,2.2算法特点计算机特别适合做大量的重复性操作,如连续加、连续乘或者其他连续判断或处理。计算机对于大量的重复性操作,并非一次性完成,而是每次按部就班,循环往复重复前一次的操作,即每次操作方法(即循环体)相同,但操作数据不同而已。例如,求1,2,10的累加和,其程序如下:doi=1,10!循环语句s=s+i!循环体enddo上述循环所要执行的重复操作是:s=s+i(即循环体),但每一次循环时,循环体的操作数据s,i的值是不同的。.,8,2.3算法的表示方法(1)传统流程图即用有向线段将描述算法步骤的各功能框连接起来.如下图所示:图(a)顺序结构图(b)选择结构,A,B,条件P,A,B,真,假,图(c)当型循环结构图(d)直到型循环结构,循环条件,循环体,循环体,循环条件,真,假,假,真,9,(2)N-S流程图它是一种去掉流程线的流程图,称为盒图.N-S流程图形式如下图所示:,A,B,图(a)顺序结构图(b)选择结构,图(c)当型循环结构图(d)直到型循环结构,当执行循环的条件成立,循环体,直到退出循环的条件成立,循环体,条件,真,假,A,B,10,第三章FORTRAN语言简介,11,3.1FORTRAN语言概述,1.何谓FORTRAN语言?FORTRAN是英文“FORmulaTRANslate”的缩写,即中文的“公式翻译器”之意。FORTRAN语言是一种用于科学计算的程序设计语言。2.何谓FORTRAN源程序?用FORTRAN语言编制的程序,称为FORTRAN源程序。举例:编制FORTRAN源程序ex02_01.f90,求x、y、z的平均值aver。PROGRAMex02_01READ*,x,y,zaver=(x+y+z)/3PRINT*,averEND,12,3.2FORTRAN程序的执行过程,13,3.3FORTRAN语言的发展历程,(1)1951年,JohnBackus在纽约首次提出FORTRAN语言,并于1954年对外发布,称FORTRAN。(2)1958年,扩充和完善FORTRAN,推出FORTRAN。(3)1960年,推出FORTRAN,但没有在计算机上实现。(4)1963年,推出了FORTRAN。没有充分考虑兼容性。(5)1966年,推出FORTRAN66美国标准,后被ISO采用。(6)1978年,推出FORTRAN77,兼容性好,结构化特征。(7)1991年,推出FORTRAN90现代语言,可视化编程。(8)1997年,公布FORTRAN95标准,并行运算的支持。(9)1997年,微软和数据设备公司合作推出DigitalVisualFORTRAN5.0。,14,第四章FORTRAN语言开发环境,详见教材:3.3FORTRAN语言开发环境,15,第五章FORTRAN语言基础知识,16,5.1字符集,FORTRAN语言允许使用的字符集为:,应当注意:在FORTRAN语言中,英文字母不区分大小写,在保留字、变量名和函数名中,大、小写字母都是等价的,如REAL何real或Real是一样的。,17,5.2名称及保留字,5.2.1名称作用:用来表示FORTRAN源程序中的变量、符号常量名、数组、函数、过程等实体的名称。名称的定义(即语法描述):由英文字母开头的31个以内的字母、数字、下划线(_)以及美元符字符序列组成。例:NUMBER、x1、root_2、y$_ab、5xy、x.y5.2.2保留字一个语句中的特定单词,如PROGRAM、END、IF、ENDIF、DO、ENDDO等,称为语句保留字。说明:FORTRAN90程序中允许用保留字作为其它实体的名称,但是一般不提倡。,18,5.3程序单元,一个完整的FORTRAN程序,应由以下程序单元构成:主程序单元外部子程序单元1PROGRAMMAINSUBROUTINESUB1()主程序体子程序体ENDPROGRAMEND其中主程序单元只能有1个,其它程序单元可以有0-n个。程序单元的描述详见第十章。,19,5.4语句的排列顺序,一个程序单元中语句的排列顺序如下:非执行语句程序单元可执行语句例:编制FORTRAN源程序eex5_1.f90,求x、y、z的平均值aver。PROGRAMeex5_1REALx,y,z,averREAD*,x,y,zaver=(x+y+z)/3PRINT*,averEND,20,5.5程序的书写格式,(1)固定格式:将一个语句行分为若干个区域,如下图所示:(2)自由格式:一个语句的书写不受区域的限制。FORTRAN90的源程序格式采用自由格式书写,源程序文件扩展名为.f90。例:详见eex5_1.f90的源程序格式及其扩展名。,21,5.6数据类型,5.6.1基本概念1.内部数据类型FORTRAN语言将内部数据划分为以下类型:整型实型算术型数据类型复型逻辑型字符型2.种别一个数据在内存中均占有一定字节个数的存储单元。上述每类数据都有其不同的种别(即Kind)特性,即上述每类数据根据其种别特性(即Kind值)的不同分别拥有不同字节个数的存储单元。3.数据对象1)常量:程序运行时,其值不能改变的量,称为常量。如:5,3等等。2)变量:程序运行时,其值可以改变的量,如:变量a,a是一个存储单元。,22,5.6.2常量,整型、实型、复型常量是一个代数值;逻辑型常量是一个逻辑值(.true.或.false.);字符型常量是一个字符串。以上常量均以书写方式确定其类型。5.6.2.1整型常量整型常量表示普通代数中的整数。十进制整型常量的一般形式:n_Kind值其中:是该整型常量的符号。n是一个十进制数字(09)序列。Kind值为:1、2、4、8之一。分别表示1、2、4、8个字节个数。FORTRAN90/95标准中整型常量的范围没有明确规定。例如:122、0、-36、559_2均为合法的整型常量100.0、100,000、1000、1002均为非法的整型常量5.6.2.2实型常量实型常量表示普通代数中的小数或指数。1.小数实型常量一般形式:n.m或n.或.m其中:n、m是十进制数字序列。n是整数值,m是小数值。例:12.0、0.12、12.、.12,23,2.指数实型常量一般形式:n.mEs或nEs其中:n、m是十进制数字序列。n是整数值,m是小数值。Es是指数部分,表示10的几次方。其中:E是指数符号,s是指数数值,是指数数符。例:指数实型常量:12E20.12E-22E51E-10相应代数值:12x1020.12x10-22x1051x10-10注意:单独的指数部分不能构成一个实型常量。例:E55.6.2.3复型常量表示普通代数中的复数。即:abi(其中a是实部,b是虚部)一般形式:(a,b)例:(-3,5)!表示复数:-3+5i(0,1)!表示复数:i(2.4,-2.5E2)!表示复数:2.4-2.5x102i,24,5.6.2.4字符型常量在程序中用以表示文字等非数值信息。一般形式:字符串或“字符串”其中:字符串可以是字母、数字、汉字、特殊符号。通常字符串中字符的个数称为字符长度。例:PRINT*,南京信息工程大学PRINT*,”a+b=”,ab说明:1)引号(或“”)是字符串的分隔符,并非字符常量的一部分。2)字符串中的空白符有意义,要计数的。例:“AB”,其字符长度是3。3)当字符长度为0时,即为空串。4)字符串内的字母区分大小写,a和A是不同的字符常量。5)如果字符串中含有单引号,则这个单引号要用两个连续的单引号表示,如:Imaboy.。或者单引号和双引号交替使用,如“Imaboy.”。,25,5.6.2.5逻辑型常量在程序中用以表示某个条件(关系表达式和逻辑表达式)的判别结果。一般形式:.TRUE.即为逻辑真(表示判别条件成立)。.FALSE.即为逻辑假(表示判别条件不成立)。例:条件53的判别结果是.TRUE.,表示判别条件53成立。条件35!3+45,结果为.TRUE.2)ab!ab,若ab结果为.TRUE.;否则为.FALSE.3)abc!abc,则无法比较!逻辑值代数值5.注意事项:两个实型量慎用关系相等”=”和关系不等”/=“的比较.例:判别实型量a,b是否相等,即a=b?用:abs(a-b)34!判别结果为.FALSE.(4+5*2).LE.10!判别结果为.FALSE.(4.2,7.3).NE.(7.3,4.2)!判别结果为.TRUE.,41,5.7.3逻辑表达式,1.作用:用作较复杂的逻辑比较。如表示多个条件同时成立,或表示多个条件中只有一个条件成立即可,这种条件的表示方法,必须要用逻辑表达式。例如:1)ab.and.xy!该逻辑表达式表示:ab同时xy2)x0.or.y0(I)2)xy=-1x0,y0(III)0 x*y0,x0,y=、=、/=或:.LT.、.LE.、.GT.、.GE.、.EQ.、.NE.4.结果:.TRUE.若关系表达式(即所表示的条件)成立,结果为.TRUE.逻辑值.FALSE.若关系表达式(即所表示的条件)不成立,结果为.FALSE.5.比较方法:依次比较两个字符串(即字符表达式)中相同位置字符的ASCII码值。例如:1)banana=apple!由于”b“的ASCII为98,而“a”的ASCII为97,故比较结果为.FALSE.2)Thisisapen.=Thisisapencil.!由于字符“.”的ASCII为46,而“c”的ASCII为99,故比较结果为.TRUE.,48,5.8赋值语句,作用:给变量赋一个确定的值。5.8.1赋值语句的类型算术赋值语句类型字符赋值语句逻辑赋值语句5.8.2赋值语句的一般形式其中:1)“”称为赋值号,意义为“左传送”。2)变量统称为左部变量。语意:将右端表达式的值赋给同类型(算术型、字符型、逻辑型)的左部变量。即:算术型变量算术表达式!算术赋值语句字符型变量字符表达式!字符赋值语句逻辑型变量逻辑表达式!逻辑赋值语句,49,5.8.3赋值语句举例1.算术赋值语句赋值时类型转换:当赋值号两端的类型及其kind值一致,无需类型转换,直接赋值;若赋值号两端的类型及其kind值不一致,系统自动把右端表达式之值的类型转换成左部变量的类型。转换规则如下:a)类型相同而kind值不同右端表达式值的kind值j左部变量的kind值i,仅转换i个低位字节值例:INTEGER(1):b=126INTEGER(2):a,c=56INTEGER(4):d=32771a=b!a=126,ji,类型转换后,赋值结果改变,即a值出错!,50,b)类型不同实型左部变量=整型右端表达式值,则将右端表达式值添加小数点后再赋值。整型左部变量=实型右端表达式值,仅取右端表达式值的整数部分数值赋值。例:INTEGER:a=23,cREAL:b=98.78,dd=a!d=23.0,将整型右端表达式值添加小数点后再赋值给d。c=b!c=98,仅取实型右端表达式值的整数部分数值赋值给c。,51,2.字符赋值语句当字符型左部变量与字符型右端表达式的长度不相等时,需进行长度转换。例:1)CHARACTER*7str1,str2str1=student!str1=studentstr2=Heisa/student!str2=Heisa2)CHARACTER*5str1,str2*3str1=is!str1=isstr2=china!str2=chi3.逻辑赋值语句例:LOGICALL,L1,L2,L3,L4REAL:A=3,B=5,C=2L=.TRUE.!L的结果是一个逻辑常量.TRUE.L1=A.GT.B!L1的结果是关系表达式的结果,即逻辑常量.FALSE.L2=B.GT.C!L2的结果是关系表达式的结果,即逻辑常量.TRUE.L3=L1.AND.L2!L3的结果是逻辑表达式的结果,即逻辑常量.FALSE.L4=L3!L4的结果是逻辑变量的值.FALSE.,52,1.作用:给变量或数组赋初值。2.一般形式:DATA变量名表1/初值表1/,变量名表2/初值表2,其中:变量名表中可以是变量名、数组名、数组元素,变量名表中的各变量间用逗号隔开,初值表中只允许出现常量,不允许出现表达式。例如:DATAa,b,i/3.0,-3.1,8/!给a,b分别赋初值3.0,-3.1;i赋初值83.说明:(1)初值表中如果有几个连续相同的常量可以简写为:n*常量例如:DATAa,b,c,i,k/3*1.0,2*3/!给a,b,c均赋初值1.0;i,k均赋初值3(2)变量名表中的变量与初值表中的常量个数应当相同,类型应当一致。例如:DATAa,b,c,d/3.0,2*2.0/,i/3.0/(3)若一个程序中有多个DATA语句给同一个变量赋初值,则以最后一个DATA语句所赋的初值为准。例如:DATAa,b,c,d/1.0,3.0,2*0.0/DATAx,y,c/4.0,2.0,7.5/其中变量c分别在两个DATA语句中出现,并且赋的值不同,结果c的值应为7.5,5.9DATA语句,53,5.10停与暂停语句,用以表示程序的停止运行(END或STOP)或暂时中断程序的运行(PAUSE)。1.END语句作用:1)表示一个程序段的结束,提示编译程序该程序段编译结束。2)主程序中的END语句,表示程序运行到此结束可以返回操作系统。一般形式:END说明:END语句一般出现在一个程序段的最后。2.STOP语句作用:表示随时执行STOP语句停止程序运行返回操作系统。一般形式:STOP字符串其中:字符串用以表示STOP语句停止运行时的标记。说明:STOP语句可以出现在一个程序段的任何可执行语句之处。3.PAUSE语句作用:表示暂停程序的执行,一般用于调试程序时给程序设置运行断点,当从键盘上键入任意键后,可使程序从刚暂停处(即中断点)继续运行。一般形式:PAUSE字符串说明:PAUSE语句可以出现在一个程序段的任何可执行语句之处。,54,5.11标准函数,对于一些常用的标准函数,编译系统已定义好且存入函数库,只要在程序中采用“函数名(参数)”的方式直接引用即可。1.函数分类:标准函数函数语句函数用户自定义函数外部函数2.标准函数的引用方式:()其中:1):一个或用逗号隔开的一系列参数名。2)函数名、参数表中参数的类型及个数详见附录D常用库函数.3.说明1)参数的个数必须与函数表中参数的个数一致。2)参数类型和函数值类型(即函数类型),详见附录。3)三角函数的参数均使用弧度:弧度角度*3.14159/1804)参数可以是常量、变量、表达式,且允许函数的嵌套。4.常用函数FORTRAN函数表详见附录D常用库函数。,55,(1)常用数值处理函数,56,例如:INT(5.85)=5MAX(-1,3,16,0)=16LOG(3.0)=1.098612SIN(1.0)=0.8414709SQRT(4.0)=2.0MOD(9,6)=3SIGN(3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论