顺序结构的Fortran程序设计.ppt_第1页
顺序结构的Fortran程序设计.ppt_第2页
顺序结构的Fortran程序设计.ppt_第3页
顺序结构的Fortran程序设计.ppt_第4页
顺序结构的Fortran程序设计.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

2019/5/19,1,第二讲 顺序结构程序设计,从设计上看,任何程序均可用顺序结构、选择结构、循环结构实现。其中,顺序结构就是按照处理顺序,依次写出相应的语句,因此,顺序结构最为简单、也是最基本的Fortran编程,本讲先学习顺序结构的Fortran程序设计。,从内容上看,程序就是数据和语句,其中数据是程序加工处理对象、语句描述了对数据的具体操作。在Fortran中,数据的表现形式有常量、变量、表达式和函数,而数据的类型分为整型、实型、复型、字符型和逻辑型,以及数组等。,因此,本讲先介绍最简单的数据类型(整型和实型)与数据形式(常量、变量、函数、算术表达式),以及最简单的Fortran语句,分2节讲授。通过本讲的学习之后,就能设计最简单的Fortran程序了!,2019/5/19,2,一、Fortran常量,(1)什么是常量 在程序运行的过程中,其值不改变的量。比如,12.0、-2、FORTRAN等都是常量。在Fortran中,常量分为直接常量和符号常量两大类:,(2)直接常量 指数据本身就是一个常量,Fortran处理整型(Integer)、实型(Real)、双精度型(Double Precision)、复型(Complex)、逻辑型(Logical)、字符型(Character)等六种直接常量,每种数据常量有各自的表示方法。,1 Fortran程序中最基本的数据,2019/5/19,3,1、整型常量:就是整型常数(整数),包括正数、负数和零。但要注意的是-数字间不能加平常表示千分位的“,”号以及加空格,也不能带小数点。比如,3,567,212、8 99、6.1都是错误的整型常量。,2、实型常量:就是实型常数(实数),有两种表示形式- 小数点形式:根据小数点前后是否有数字,有3种形式 m.n、m.、.n,数字前面可以加上符号,比如,-6.8、9.(=9.0)、.89(=0.89)等。,指数形式:一般用来表示绝对值很大或很小的数,表示方式是用E表示以10为底指数,且E的左边为数字部分、右边是指数部分,比如,1.32E6(=1.32106)、2.68E-8(=2.6810-8)。用指数形式表示实数时要注意:,、数字部分可以是整型的也可以是实型的,如1E2 = 1.0E2 = 100.0100,2019/5/19,4,、E的左右两边的数字部分和指数部分必须同时出现、缺一不可,比如,E-9(缺数字部分)和.E2(单独的小数点)都是不合法的。,、指数部分只能是整数、不可写成实数,如8E2.3是错误的指数表示;,(3)符号常量 所谓的符号常量,是用一个标识符来代表一个常量。使用时,需要对符号常量进行说明,方法是用Parameter语句来说明(定义),比如:,Parameter(Pi=3.14159,M=80) 这个语句定义了两个符号常量Pi和M,在程序单元中Pi就代表了3.14159、M代表了80。其中Parameter就是定义符号常量使用的特定标识符,被定义的量要放在括号内、而且有多个符号常量时之间要用“,”分隔。,2019/5/19,5,二、Fortran变量,(1)什么是变量 变量与常量相对应,是指在程序运行的过程中,其值可以改变的量。变量实质是代表一个数据存储单元,因此,在Fortran中经常用到下面(貌似错误)的语句:,N=N+1 其表示存储单元N中的数据在原来的基础上增加1。,此外,要注意parameter语句是非执行语句,在程序编译时符号常量名均被替换相应的常量,而后面要讲的变量则是一个数据存储单元(其中的值是变化的),因此符号常量不能当变量使用!,(2)变量的取名 变量需要一个名字来识别-变量名,其用标识符来命名,在Fortran语言中变量名的标识符只能由字母、数字和下划线组成、且开头只能是字母,比如x、total2、k123等。,2019/5/19,6,2019/5/19,7,根据数据的类型,其中的说明符包括: Integer说明变量为整型变量 Real说明变量为实型变量 Double precision说明变量为双精度变量 Complex说明变量为复型变量 Logical说明变量为逻辑型变量 Character说明变量为字符型变量,2019/5/19,8,比如:Integer x,y -定义2个整型变量x和y Real area,average,student1 -则定义3个实型变量,说明多个变量时,变量间用“,”分开,但末尾不能用“.”,比如,double precision a,b,c.是错误的。,这种说明语句的特点是,不仅进行了变量数据类型的说明,而且还可以给被说明的变量赋予初值或变量初始化(具有双重功能)。比如:Real: total=73.2 -定义了实型变量total,同时给它赋初值为73.2。,2019/5/19,9,例如:在没有前面2种说明的情况下,i1、mCA、N3s等均为整型变量。,2019/5/19,10,关于变量的类型说明,还需要注意: 1、IN规则在Fortran77中经常使用,但是其有一定的副作用,比如,隐含说明与强制说明一同使用时,变量类型不清楚,因此,在Fortran90中不主张使用,这需要在程序变量说明之前加入:implicit none语句来取消IN规则。,2、3种变量类型说明方式中,强制说明优先级别最高、隐含说明Implicit次之、IN规则级别最低,就是说,当变量被强制定义为某种类型之后,Implicit 语句和IN规则对它就不起作用了。,3、Implicit语句和强制说明语句,均为非可执行语句,Fortran 规定:在编程序时,要把它们放在所有可执行语句的前面。,2019/5/19,11,三、Fortran的内部函数,(1)什么是内部函数 在编程序时,经常需要直接使用数学函数,为方便Fortran语言自带有丰富的数学函数,称为内部函数,它是指能完成一定功能的程序单位,内部函数可以直接调用,但需遵守其使用规则。,1、abs(x)-求变量x的绝对值; 2、sqrt(x)-求变量x的平方根; 3、int(x)-取x的整数部分; 4、mod(x,y)-求x除以y的余数; 5、sign(x,y)-求x和y的符号; 6、max(x,y,z,)-求最大值; 7、min(x,y,z,)-求最小值。,2019/5/19,12,8、exp(x)-求自然指数运算; 9、log(x)-求以e为底的对数(即自然对数); 10、log10(x)-求以10为底的对数(即常用对数)。,11、sin(x)-求正弦; 12、tan(x)-求正切; 13、asin(x)-求反正弦; 14、atan(x)-求反正切。,(3)内部函数的使用 在使用Fortran内部函数时,一定要遵守其规则,否则程序将出错甚至不能运行:,1、 Fortran内部函数调用格式: 函数名(自变量) 例如:sin(90*3.14159/180) 1.0;sqrt(9.0) 3.0; abs(-5.6) 5.6;int(6.75) 6;exp(3.0) 20.085540 其中自变量(常数)必须用括号括起来,比如: sinx+cosx sin(x)+cos(x),2019/5/19,13,2、内部函数含有多个自变量(参数)时,它们之间用“,”分隔,但末尾不能使用“.”。比如,sin(x)、mod(m,n)等。,3、函数的自变量(参数)和函数值都是有相应的数据类型的,比如,mod(m,n)中的自变量及函数值都是整型变量,而sin(x)中的自变量和函数值则均为实型变量。,4、所有函数都必须遵循其原有的数学规则,比如负数不能开平方根,实数不能求余,负数不能求对数等。,5、要注意与数学中函数之间的某些差异,比如,log(x)表示求自然对数(即lnx)而非数学上的求常用对数(logx)。,6、注意函数自变量的单位,比如sind(x)中x取弧度。,(4)、函数运用的例子,比如,求3个数x,y,z的最大值可以表示为:Max(x,y,z),又如,判断一个自然数M是否为另一个自然数N的因数,通过Mod (M,N)是否为零可以判断:如果为则是的因数,否则说明不能被整除,即Mod(m,n)0。,2019/5/19,14,四、Fortran的算术表达式,(1)什么表达式 将各常量、变量、函数用运算符连接起来的式子称为表达式。,根据运算符的不同,表达式分为以下种: 、算术表达式 、字符表达式 、关系表达式 、逻辑表达式 此处先介绍算术表达式-将各种运算元素(常量、变量、函数)用算术运算符连接起来的一个有值式子。,()算术运算符及其优先级 、有6种算术运算符 加(+) 减(-) 乘(*) 除(/) 乘方(*) 括号(),、算术运算符的优先级 括号函数乘方乘、除加、减 注:同级运算“先左后右”,连续乘方时“先右后左”。,比如:3+5-6.0*8.5/4*2+sin(x) 3+5-6.08.542+sinx x*y*z、x*(y*z) xyz (x*y)*z (xy)z 利用算术表达式概念,就可以将:数学运算式Fortran算术表达式,2019/5/19,15,(3)Fortran 算术表达式书写注意 、表达式中的各运算元素之间必须用运算符分隔。 例:xyzx*y*z 2(x+y) 2*(x+y) 、作任何运算的表达式只能写在一起。 例: (a+b)/(c+d) a+b/c+d 3、表达式一律用小括号: ax+b(y+c) a*(x+b*(y+c) 4、算术表达式中的乘号不可省略,如3*x不能写成3x。,()算术表达式求值时的数据类型的处理,1、同类型量运算的结果,仍为原类型。 例:4*5=20,4.0*5.0=20.0,6.0/4.0=1.5,6/4=1(1.5),2、不同类型量运算时,先将低级类型(整型)转换为高级类型(实型),然后再按同类型量进行运算。 例:2.5*4=10.0( 10) 2.0*3=2.0*2.0*2.0=8.0(属同类型量运算),2019/5/19,16,2019/5/19,17,2 Fortran程序中的基本语句,在Fortran程序中,最为基本的语句包括(给变量)赋值语句、(数据)输入语句、(数据)输出语句、以及一些(程序执行的)控制语句等。,功能:把赋值号右边表达式的值,赋给赋值号左边的变量,即将表达式的值存放到变量所对应的存储单元。 例:pi=3.14156 S=3.14159*r*2 N=N+1,2019/5/19,18,(2)赋值时数据类型的转换,执行赋值语句就是把赋值号“右边”给左边的“变量”,因此:,1、当右边数据类型与变量的数据类型相同时:表达式运算完毕、直接赋值,比如: integer N real x,y N=N+1 y=2.5*x*2,2、当左右两边数据类型不同时:右边的先按原规则计算、再转换为左边变量相同的类型,然后将值赋给左边的变量。 例如, integer N N=3.33*3 !(最后N为9),看一段程序: Integer m,n x=5/2 Real x,y y=5.0/2 M=5/2 结果:M=2, N=2 N=5.0/2 x=2.0,y=2.5,(1)表控输入(自由格式),输入数据又叫读入数据”,因此,在Fortran中用read语句实现数据输入。而表控输入方式就是从键盘自由地将数据敲入计算机内存(即变量)中。(输入实质给变量一个值),2019/5/19,19,二、简单的输入、输出语句,2019/5/19,20,例如:表控输入语句read*,x,y,z或者read(*,*)x,y,z就是要从键盘上把3个实数(比如1.2,3.6、5.8)给变量x、y、z。,此外,还需注意: 1、通常数据与变量是一一对应的,但是,如果数据多变量少,则多余的数据不起作用;而数据少变量多,则多出的变量将等待输入。,在键盘上操作时,要分隔多个数据,有3种方法: 1、敲入1个数据,键入1个回车; 2、敲入1个数据,键入1个“,”,敲完数据最后来个回车; 3、敲入1个数据,键入1个空格,敲完数据最后来个回车。,2019/5/19,21,2、当多个输入语句并列使用时,一个read语句对应一行。如: read*,m,n read*,x,y 2,3 1.5,3.9 ,3、在输入数据时若出现“/”,则终止对此read语句的输入,后面的变量将不再赋值。 例: read*,x,y,z 键盘输入: 1.5,2.5/3.9 (变量z将得不到赋值),4、数据与变量的类型要尽量保持一致,但也允许高级变量接受低级数据,比如,整型变量不能接受实型数据,但实型变量可以接受整型数据(最后变量取实数)。,2019/5/19,22,(2)表控输出,注意: 1、其中输出内容可以是常量、变量、表达式、字符串等,它们之间使用“,”分隔。如果输出的是“字符串”,则要用英文的单引或双引号引起。比如,,Print*,x Print*,x=,x,”y=”,y Print*,”最大的数是:”,max,”最小的数是:”,min,2、如果输出的是表达式,则其还具有计算功能,可显示出表达式的结果。,3、每条输出语句在单独的一行显示,因此,单独使用一个print*语句,表示换行(即显示一空行)。,Implicit none Integer m,n Read*,m,n,n,m m=m+n n=m+n Print*,m,n End 键盘输入:7,8,9,10 输出结果: m=19 n=28,Read*,a,b,c maxnum=max(a,b,c) minnum=min(a,b,c) Print*,”最大的数是”,maxnum Print* Write(*,*)”最小的数是”,minnum End 键盘输入:7.2,8.0,9.1 输出结果: 最大的数是9 最小的数是7,2019/5/19,23,三、控制语句pause语句,Pause语句是暂停语句,使程序“暂时停止运行”,这时不是“结束运行”,而只是把系统程序暂时挂起来,按回车键可以恢复运行。其使用格式为: Pause N 比如: parameter (r=0.5,pi=3.14159) s=pi*r*2 h=2.0*pi*r pause 打印面积和周长 print*,s,h end,程序中可以允许使用多个pause语句,有意识的使用pause语句相当于在程序中设置断点,把程序分成几段,便于程序一段一段的调试检查,使用完毕再把pause语句删除。,2019/5/19,24,2019/5/19,25,1、自由落体公式 ,其中v0是初速、g是重力加速度、t为经历的时间。编写程序求t=0.5秒时的位移s。设v0=4.8m.s-1,g=9.81m.s-2,要求把g定义为符号常量,而v0和t的值从键盘输入。,2、编写一个程序,其功能是:从键盘输入一个四位数,计算并输出该数各位数字之和。,

温馨提示

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

评论

0/150

提交评论