知识资料信号信息与计算机基础(十一)(新版)_第1页
知识资料信号信息与计算机基础(十一)(新版)_第2页
知识资料信号信息与计算机基础(十一)(新版)_第3页
知识资料信号信息与计算机基础(十一)(新版)_第4页
知识资料信号信息与计算机基础(十一)(新版)_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

朽木易折,金石可镂。千里之行,始于足下。PAGE第页/共页7六、控制语句普通情况下,FORTRAN程序是按语句顺序执行的,但需要时,可以改变这种顺序。这种改变可以通过各种控制转移语句、逻辑条件语句等来实现。(一)转移语句1.无条件转移语句无条件转移语句的普通形式为:GOTOn当程序流程到达GOTO语句时,随后就转向语句标号为n的语句。标号为n的语句必须是可执行语句,但它在程序中的罗列位置,可以在引导到它的GOTO语句之后,也可以在该GOTO语句之前。无条件转移语句常和其他控制语句结合起来使用。2.算术条件转移语句算术条件转移语句的普通形式为:IF(e)nl,n2,n3其中,e必须是算术表达式,当表达式运算结果e<0时,程序转向标号为n1的语句;当e=0时,转向标号为n2的语句;当e>0时,转向标号为n3的语句。例如,计算边长为B的正方形中挖去半径为R的圆后的面积,若B<2R,则给出相关信息。该问题的FORTRAN程序可用别辽条件转移语句编写如下。CComputationofarea.READ*B.RIF(B-2*R)5,15,155WRITE(*,10)10FORMAT('Errormessage:Blessthan2*R‘)GOTO2015AREA=B*B-3.14159*R*RWRITE*AREA20CONTINUEEND本例中,在算术条件转移语句的第1个分支后,使用了GOTO语句;倘没有此语句,则程序按顺序仍会执行标号为15的语句,从而得出不准确的结果。3.计算转移语句计算转移语句的普通形式为:GOTO(n1,n2,……,nm),e其中,ni(i=1,2,……,m)是被转向的语句标号,共m个;e是一个整型算术表达式,其值不得小于1且不得大于m。当e的值等于1时,程序转向标号nl的语句,当e的值等于2时转向标号n2的话句,当e的值为m时转向标号为nm的语句。整型算术表达式e前的逗号可以省略。计算转移语句通常也和GOTO语句结合起来使用。例如,有如下一个程序:READ*,MGOTO(20,30,40,50)M20N=MGOTO6030N=M*2GOTO6040N=M*3GOTO6050N=M*460WRITE*,NEND程序运行时,若输入1,则转向标号为20的语句,x的值为1;若输入2,则转向标号为30的语句,x的值为4;输入3,转向标号为40的语句,x的值为9,输入4,转向标号为50的语句,x的值为16(二)逻辑条件语句1.逻辑IF语句逻辑IF语句用来实现挑选结构。它的普通形式为:IF(逻辑表达式)内嵌语句其中内嵌语句是单独的一个可执行语句。逻辑IF语句执行时,首先计算逻辑表达式的值,倘若逻辑表达式的值为"真",则执行内嵌语句,若内嵌语句非转移语句,则执行该语句后继续按顺序往下执行,若内嵌语句是转移语句,则转向指定的语句;倘若逻辑表达式的值为"假",则不执行内嵌语句,而直接执行该语句后面的语句。例如,从键盘读入一个代表百分制成绩的数据,倘若数据在90-100之间就输出‘Excellent',在80-89之间输出‘Good',在60-79之间输出‘Pass',在60以下则输出‘Notpass'。其程序可以如下编写:READ(*.*)IPOINTIF(IPOINT.GT.100.OR.IPOINT.LT.0)WRITE(*,*)'DATAERROR'IF(IPOINT.GE.90.AND.IPOINT.LE.100)WRITE(*.*)'Excellent'IF(IPOINT.GE.80.AND.IPOINT.LE89)WRITE(*.*'Good'IF(IPOINT.GE.60.AND.IPOINT.LE.79)WRITE(*.*)'Pass'IF(IPOINT.GE.0.AND.IPOINT.LE.59)WRITE(*.*)'NotEND2.块IF结构的各种形式(1)块IF和ENDIF形式IF(逻辑表达式)THEN语句块ENDIF当逻辑表达式的值为"真"时,执行语句块,否则按顺序执行ENDIF后的语句。例如,如下程序段:READ*,RN,ANIF(RN.GE.0.0.AND.AN.GT.0.0)THENSTRESS=RN/ANWRITE*RN,AN,STRESSENDIFEND当RN大于等于零且AN大于零时,执行赋值语句和输出语句。(2)使用ELSE的形式IF(逻辑表达式)THEN语句块1ELSE语句块2ENDIF当逻辑表达式的值为"真"时,执行语句块1,当逻辑表达式的值为"假"时,执行语句块2。由此可见,使用ELSE的形式,可以举行两个分支的挑选。(3)使用ELSEIF的形式IF(逻辑表达式1)THEN语句块1ELSEIF(逻辑表达式2)THEN语句块2ELSE语句块3ENDIF这种形式,允许在三个分支中作出挑选。当逻辑表达式1的值为"真"时,执行语句块1表示的分支;当逻辑表达式1的值为"假"而逻辑表达式2的值为"真"时,执行语句块2表示的分支;当逻辑表达式1的值和逻辑表达式2的值均为"假"时,执行语句块3表示的分支。3.块IF结构的嵌套在一个块IF结构的语句块中,可以残破地包含另一个或多个块IF结构,称为块IF的嵌套。块的嵌套可以多层。七、函数与子程序(过程)(一)内部函数内部函数是预先编制的一些常用函数或算法的过程,由FORTRAN语言提供,可以,直接调用。内部函数调用时的普通形式是:内部函数名(实元表)实元表中元素的数据类型、个数是预先规定的。常用内部函数及其功能可查阅FORTRAN教材或用户手册。(二)语句函数1.语句函数的定义定义语句函数的语句称为语句函数语句。其普通形式为:函数名(形参表)=表达式。其中,函数名的命名规矩与普通变量名相同,所以它也可以用类型说明语句等来说明。形参又称哑元,是一些变量名,普通应浮上在表达式中。语句函数在程序单位中的位置,应在所有可执行语句之前。2.语句函数的调用调用语句函数的结果是得到一个函数值,因此,调用语句函数时代之以实际变量(又称实元)。(三)函数子程序一个函数子程序是一个自立的FORTRAN程序单位。它的第一个语句必须是FUNCTION语句,最后一个语句必须是END语句。即函数子程序的普通结构为:[类型说明]FUNCTION函数名(形参表)语句块[RETURN]END也可以写为:FUNCTION函数名(形参表)[类型说明函数名]语句块[RETURN]END其中函数名的命名规矩与变量相间,而函数名的类型决定了函数值的类型。在函数子程序中,形参可以是变量名、数组名、外部过程名,而形参的命名与类型说明也与变量相同,形参数组也必须在函数子程序中予以定义。函数子程序的函数值由函数名带回到调用该函数子程序的程序,因此,在函数子程序中必须对函数名赋值。在函数子程序中,函数名应该像普通变量那样来使用。在函数子程序中,所有的名字、语句标号都可以和其他程序单位中的相同而彼此没有任何关系。在函数子程序中,END语句的功能有两个:一是表示该程序单位的结束,二是具有返回语句RETURN的功能。函数子程序中必须有并且惟独一个END语句,而且只能是子程序的最后一个语句。当在子程序的其他位置须要返回时,可以使用RETURN语句。(四)子程序1.子程序的结构一个子程序是一个自立的FORTRAN程序单位。子程序的第一个语句必须是SUBROUTINE语句,最后一个语句必须是END语句。即子程序的普通结构为:SUBROUTINE子程序名(形参表)语句块[RETURN]END子程序名的命名规矩与普通变量相同。但是子程序中的

温馨提示

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

评论

0/150

提交评论