注册岩土工程师计算机考试复习资料_第1页
注册岩土工程师计算机考试复习资料_第2页
注册岩土工程师计算机考试复习资料_第3页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、刖言第二十二讲计算机程序设计语言(之二)一、内容提要:本讲主要讲述FORTRAIN语句二、重点难点:根据所讲语句对简单的程序能够判断输出结果三、内容讲解:国三、赋值语句三、赋值语句赋值语句的一般格式为:变量名二表达式其中,连接变量名和表达式的符号“二”称为赋值号。在FORTRAN冲,有三种赋值语句:算术赋值语句,逻辑赋值语句和字符赋值语句。(一)算术赋值语句1算术赋值语句中赋值号右边是算术表达式。算术表达式可以是单个变量或数组元素,可以是用算术运算符号连接起来的数值计算过程。(1) 算术表达式中的各个数据量 ( 常量或变量 ) 的类型一般应该一致。 如果不一致, FORTRAN 程序在运行中先

2、将其进行转换,再进行计算。例如实型变量和整型变量进行计算时,整 型变量的数值先被转换为实型。(2) 算术表达式计算中,特别应注意两个整型量之间的除法 (称为整除 ) 。例如,算术表达式10.0- 2/4 X 10.0的计算过程是10.0- 0X 10.0=10.0 -0.0=10.0如果表达式写为10.0-2 /4.0 X 10.0,则计算过程是10.0-2.0 4.0X10.0=10.0 -0.5X10.0=5.0因为 24是整除,其结果为 0,而进行 24.0 的计算时,整型量 2先被转化为实型。2算术赋值左边只能是数值型变量名或数值型数组元素。如果赋值号左边的变量与右边 的表达式类型不一

3、样时,系统将自动把右边表达式计算的结果转换为与左边变量的类型 一致后再赋给该变量。(二)逻辑赋值语句 在逻辑赋值语句中,赋值号左边为逻辑变量或逻辑型数组元素,右边为一个逻辑表达式。(三)字符赋值语句1 字符赋值语句赋值号的左边为字符变量或字符型数组元素。 2赋值号的右边为字符表达式,可以是单个字符串或用字符运算符连接起来的字符串。 字符运算符只有一个,表示为 / ,含义为连接该符号两边的字符串。3执行字符赋值语句时,应注意字符串的长度与赋值号右边变量或数组元素的长度的关 系。例如:CHARACTER*4,AB*6, CA二/FILE/B二A/NAME/,C=B(5:6)定义字符型变量时,根据类

4、型说明语句的规定,A、C长度为4,而变量B因有专门说明,其长度为6。程序运行后,变量A的长度与赋值号右边字符串长一致,A的值为 FILE'; 而B的长度小于 FILE'和 NAME两个字符串长度之和,因此多余的字符被截去,B的 值为 FILENA ; C的结果为 N ”,其中最后两格为空格符,这是因为 C的长度为 4,大于字符串 NA的长度,于是在其右边补上2个空格符后形成4个字符长再赋值给 G在上面的程序例中,出现表达式 B(5: 6),称为“子串”,表示取出字符串的一部分, 本例中,表示将B的字符串 FILENA中的第5个字符至第6个字符取出。囚四、循环语句四、循环语句(一

5、 )DO语句DO语句的一般形式为:DO n V=e1,e2,e3n 循环体其中,n为语句标号;V为循环控制变量,它只能是简单变量(整型或实型),不能是表达 式:e1, e2, e3分别为循环控制变量的初值、终值与增量(步长),它们都可以是表达式, 当e3为1时可以省略不写。循环体是若干语句的集合,其中最后一个语句称为循环终端 语句;若循环体只有一个语句,则该语句也就是终端语句。终端语句必须有标号n。在DO循环执行时,首先计算表达式 el, e2, e3的值,并将它们化为与循环控制变量 V 的类型一致;然后将初值赋给循环控制变量 V,并计算需要循环的次数;最后根据循环次 数重复执行循环体中的语句

6、,并每次执行完循环体后,将循环控制变量增值一次,循环 次数减少一次。当循环次数为零时,则结束循环,转向程序规定的下一个语句。(二)继续语句 CONTINUECONTINUE:个可执行语句,其功能是使程序的流程继续到逻辑上的下一个语句。FORTRAN7规定,循环终端语句必须是一个可执行语句, 但不能是GOTO语句、块IF语句、 ELSE语句、ELSE IF语句、ENDIF语句、DO语句、STOPS句、END语句。由于这些限制, 通常用CONTINU语句作为循环的终端语句。当然, CONTINUE句也可用在其他场合。(三)循环嵌套 使用循环嵌套可以实现多重循环。这时应注意各重循环的层次和循环变量的

7、关系。例如, 编写一个计算乘法表的程序段,可以写为:DO 10 I=1 , 9DO 8 J=I , 9IJ=1*J8 CONTINUE10 CONTINUE本例中,外层循环控制变量 I 初值为 1 ,终值为 9,内层循环控制变量 J 初值为外层循环 控制变量 I 的当前值,终值为 9。外层的第 1 次循环,内层经过 9-1+1=9 次循环,依次计 算10 = 1,1X 2=2,,,1X 9=9,外层的第 2次循环,内层经过9-2+1=8次循环,依次 计算 2X2=4,2X3=6, ,,2X 9=18;,。(四)使用循环语句应注意的若干问题1正确选定循环变量的初值比如,对累加问题和连乘问题,变量

8、初值不正确,便影响最终结果。例如计算 m=1!+2!+,+10! ,采用循环语句编写程序,涉及到累加和连乘。 其程序可编写如下:m=0n=1D0 20 I=1 , 10n=n*Im=m+n20 CONTINUEPRINT*,mEND例如,n用于存放连乘结果,其初值设定为1,而m用于存放累加结果,其初值设定为 02. DO语句可以和转换语句,条件语句等结合起来使用,此时应注意从循环体内可以转向循环体外,但不允许从循环体外转向循环体内;从内层循环中可以转向外层循环,但不 允许从外层循环转向内层循环中。3. 当内外层循环体的终端语句相同,且两个终端语句之间没有其他语句时,可以合并使 用一个终端语句。

9、例如,前面计算乘法表的程序段可以写为:DO 10 I=1 , 9DO 10 J=I , 9.IJ=I*J10 CONTINUE或写为DO 10 1=1 , 9DO 10J=l, 910 IJ=I*J国五、输入输出语句五、输入输出语句(一) 表控输入输出表控输入输出语句是一种隐含格式的输入输出语句,又称自由格式输入输出,其格式由程序编译系统提供,在程序语句中不予表示。1. 表控输出语句FORTRAN 7表控输出语句有两种方式:PRINT *,输出量表WRITE(*, *)输出量表这两种表控输出语句的作用是相同的,但一般微机上的FORTRAN 7子集不提供PRINT语句,所以通常使用WRITE语句

10、。2. 表控输入语句FORTRAN 7表控输入语句有两种形式:READ *输入量表READ(* *)输入量表表控输入又称为自由格式输入。表控输入语句要求用户在隐含的输入设备(通常是键盘)上输入所需的数据,在输入数据时,各数据之间用逗号或空格分隔。(二)格式输入输出1格式输出数据语句WRITE语句和FORMA语句WRITE语句的一般形式为:WRITE(u,f) 输出量表其中,u为部件说明符,用以指出在哪个设备上进行输出,通常也称为通道号,当u为记号*时,表示在显示器 (标准输出设备 ) 上进行输出。 f 为格式说明,它通常是一个格式语 句的标号,用以指出输出数据所采用的格式。格式语句的一般形式为

11、:标号FORMAT格式说明)例如:WRITE(*, 10)A, B, A*B10 FORMAT(1,X F6.2, F7.3, F10.4)FORMA语句中,第一个“ 1X称为纵向控制符,它表示前进一空格后再输出后面的数据, 后面的三个项分别说明了三个实型数据输出的,称为格式编辑符。FORTRAN 7也允许在 WRITE语句中直接指定输出格式,从而可以省略格式语句FORMAT例如,上面的输出语句与格式语句可以合并成一个,即:WRITE(*, / (1X , P6.2, F7.3, F10.4)/)A , B, A*B2格式编辑符FORTRA常用的格式符有十几种,详细可参照任何一本FORTRA教

12、材或专用手册。(三)隐循环的输入输出数组元素的输入输出可以采用循环方式实现。例如:DIMENSION X (20)DO 10 1=1 , 2020 READ*, X(I)程序段执行时进行20次循环,每次输入1个数据。这个输入程序段可以改写如下:DIMENSION X (20)READ * (X(I),1=1,20)其中第2句就是隐循环的输入语句。循环控制变量 I的初值为1,终值为20,步长为1而予以省略。隐循环语句的作用与 DO语句是相同的;但使用隐循环语句时,20个数据允许一次性输入,当然,数据与数据之间要用空格符或逗号区别开来。隐循环语句也用于输出语句,也可使用多重循环。例如DIMENSI

13、ON Y (1Q 6)READ(* *)(Y(l ,J),J=1, 6),I=1,10)WRITE(*, 5)(Y(l ,J),J=1,6),I=1,10)5 FORMAT(1X 6F10. 2)运行程序段时,首先读入60个数据,Y(1,1) , 丫(1 , 2) , , , Y(1, 6) , Y(2 , 1) , Y(2 ,2) , , ,Y(2 , 6) , , ,Y(10, 1) , Y(10, 2) , , ,Y(10, 6),然后输出 60 个数据,每行输出6个数据,数据的排列顺序与输入时相同。匡六、控制语句六、控制语句一般情况下,FORTRA程序是按语句顺序执行的,但需要时,可以

14、改变这种顺序。这种改 变可以通过各种控制转移语句、逻辑条件语句等来实现。(一) 转移语句1无条件转移语句无条件转移语句的一般形式为:GOTO n当程序流程到达GOTO语句时,随后就转向语句标号为 n的语句。标号为n的语句必须是 可执行语句,但它在程序中的排列位置,可以在引导到它的 GOT语句之后,也可以在该 GOTOg句之前。无条件转移语句常和其他控制语句结合起来使用。2算术条件转移语句算术条件转移语句的一般形式为:IF(e) n1 , n2, n3其中,e必须是算术表达式,当表达式运算结果e<0时,程序转向标号为n1的语句;当e=0时,转向标号为n2的语句;当e>0时,转向标号为

15、n3的语句。例如,计算边长为B的正方形中挖去半径为R的圆后的面积,若B<2R则给出相关信息。 该问题的FORTRA程序可用算术条件转移语句编写如下。cComputationOf area 。READ *, B,RIF (B-2*R) 5 ,15,155WRITE (*,10)10FORMAT(/Errormessage:Blessthan 2*R/)GOTO 2015AREA=B*B-3.14159 * R* RWRITE *,AREA20 CONTINUEEND本例中,在算术条件转移语句的第1个分支后,使用了 GOTOg句;倘没有此语句,则程 序按顺序仍会执行标号为 15的语句,从而得

16、出不正确的结果。3计算转移语句计算转移语句的一般形式为:GOTO(n,1 n2, , ”, mm,) e其中,ni(i=1 , 2, , ,m)是被转向的语句标号,共 m个;e是一个整型算术表达式,其值不得小于1且不得大于m。当e的值等于1时,程序转向标号n1的语句,当e的值 等于2时转向标号n2的语句,当e的值为m时转向标号为nm的语句。整型算术表达式e 前的逗号可以省略。计算转移语句通常也和 GOTO©句结合起来使用。 例如,有如下一个程序:READ *, MGOTO(2,0 30, 40, 50)M20N=MGOTO 6030N=M*2GOTO 6040N=M*3GOTO 60

17、50N=M*460WRITE * ,NEND程序运行时,若输入1,则转向标号为20的语句,N的值为1;若输入2,则转向标号为 30的语句,N的值为4;输入3,转向标号为40的语句,N的值为9,输入4,转向标号 为50的语句,N的值为16。(二)逻辑条件语句1 逻辑 IF 语句逻辑 IF 语句用来实现选择结构。它的一般形式为:IF( 逻辑表达式 ) 内嵌语句 其中内嵌语句是单独的一个可执行语句。 逻辑 IF 语句执行时, 首先计算逻辑表达式的值, 如果逻辑表达式的值为“真”,则执行内嵌语句,若内嵌语句非转移语句,则执行该语 句后继续按顺序往下执行,若内嵌语句是转移语句,则转向指定的语句;如果逻辑

18、表达 式的值为“假”,则不执行内嵌语句,而直接执行该语句后面的语句。例如,从键盘读入一个代表百分制成绩的数据,如果数据在90100之间就输出 Excelent ',在8089之间输出 Good,在6079之间输出 Pass',在60以下 则输出 Notpass '。其程序可以如下编写:READ(*, *) IPOINTWRITE(* , *) /DATAERROR/WRITE(* , *) /Excelent/WRITE(* , *) /Good/WRITE(* , *) /Pass/WRITE(* , *) /Not Pass/END2块 IF 结构的各种形式(1)块

19、IF和ENDIF形式IF( 逻辑表达式 ) THEN语句块ENDIF当逻辑表达式的值为“真”时,执行语句块,否则按顺序执行ENDIF后的语句。例如,如下程序段:READ,* RN, ANSTRESS=RNANWRITE,* RN, AN, STRESSENDIF当RN大于等于零且AN大于零时,执行赋值语句和输出语句。使用ELSE的形式IF( 逻辑表达式 )THEN语句块 1ELSE语句块 2ENDIF当逻辑表达式的值为“真”时,执行语句块 1,当逻辑表达式的值为“假”时,执行语句 块2。由此可见,使用ELSE的形式,可以进行两个分支的选择。使用ELSEIF的形式IF(逻辑表达式1)THEN语句

20、块1ELSE IF(逻辑表达式2)THEN语句块2ELSE语句块n+1ENDIF这种形式,允许在多个分支中作出选择。FORTRAW!试条件的顺序为逻辑表达式1、逻辑表达式2,,一旦遇到逻辑表达式值为 TRUE则执行该条件下的语句块,然后执行 ENDIF 的下一语句。3.块IF结构的嵌套在一个块IF结构的语句块中,可以完整地包含另一个或多个块IF结构,称为块IF的嵌套。块的嵌套可以多层。国七、函数与子程序(过程)七、函数与子程序(过程)(一)内部函数内部函数是预先编制的一些常用函数或算法的过程,由FORTRA语言提供,可以直接调用。内部函数调用时的一般形式是:内部函数名(实元表)实元表中元素的数

21、据类型、个数是预先规定的。常用内部函数及其功能可查阅FORTRA教材或用户手册。(二)语句函数1语句函数的定义定义语句函数的语句称为语句函数语句。其一般形式为: 函数名( 形参表 ),表达式其中,函数名的命名规则与一般变量名相同,所以它也可以用类型说明语句等来说明。 形参又称哑元,是一些变量名,一般应出现在表达式中。语句函数在程序单位中的位置,应在所有可执行语句之前。2语句函数的调用调用语句函数的结果是得到一个函数值,因此,语句函数的调用形式同内部函数。(三)函数子程序一个函数子程序是一个独立的 FORTRA程序单位。它的第一个语句必须是FUNCTIONS句, 最后一个语句必须是END语句。即

22、函数子程序的一般结构为:类型说明FUNCTION!数名(形参表)语句块函数名:表达式RETURNEND也可以写为:FUNCTIO函数名(形参表) 类型说明函数名 语句块函数名:表达式RETURNEND其中函数名的命名规则与变量相同,而函数名的类型决定了函数值的类型。在函数子程序中,形参可以是变量名、数组名、外部过程名,而形参的命名与类型说明也与变量相同,形参数组也必须在函数子程序中予以定义。函数子程序的函数值由函数名带回到调用该函数子程序的程序,因此,在函数子程序中必须对函数名赋值。在函数子程序中,函数名应该像普通变量那样来使用。在函数子程序中,所有的名字、语句标号都可以和其他程序单位中的相同

23、而彼此没有任何关系。在函数子程序中,END语句的功能有两个:一是表示该程序单位的结束,二是具有返回语 句RETURI的功能。函数子程序中必须有并且只有一个 END语句,而且只能是子程序的最 后一个语句。当在子程序的其他位置须要返回时,可以使用RETUR语句。(四)子例方程子程序1子例方程子程序的结构一个子例方程子程序是一个独立的 FORTRA程序单位。子例方程子程序的第一个语句必须是 SUBROUTINE句,最后一个语句必须是 END语句。 即子例方程子程序的一般结构为:SUBROUTINE子例方程子程序名(形参表)语句块RETURNEND子例方程子程序名的命名规则与普通变量相同。但是子例方程

24、子程序名不能用于返回数 值,这与函数子程序是不同的。因此,子例方程子程序名没有类型,它不能在本程序单 位中使用。SUBROUTINE句中的形参表可以省略。这时子例方程子程序名后的括弧不要保留。 对子例方程子程序的其他有关规定与函数子程序相同。2.子例方程子程序的调用子例方程子程序调用通过CALL语句实现。其形式为:CALL 子程序名(实参)其他有关对子例方程子程序的调用规定与函数子程序相同。国八、程序单位间的数据传递八、程序单位间的数据传递(一)虚实结合虚实结合又称哑实结合,是各程序单位(主程序和各种过程如函数子程序)之间传递数据的一种重要途径。1变量的虚实结合当子程序等过程的形参为变量时,则

25、在调用时所对应的实参可以是类型相同的常数、变量、数组元素或表达式;子程序调用后,其运行的结果通过这些实参返回到调用者。在FORTRAN冲,当形参变量所对应的实参是变量或数组元素时,则它们之间的结合方式是地址结合;而当形参变量所对应的实参是常数或表达式时,其结合方法对于不同的FORTRA系统有可能是不同的。2数组的虚实结合当子程序中的形参为数组名时,则在调用时所对应的实参必须是数组名或数组元素。如果实参是数组名,则实参数组与形参数组按地址结合,实参数组与形参数组都从第一个元素开始按列逐个对应。例如,有主程序与子程序如下:PROGRAMMAININTEGER A (0:5)5CALLSB (A)5

26、ENDSUBROUTINESB (B)INTEGERB(-1:2)5END则在主程序中使用CALL语句调用子程序SB时,实参数组与形参数组的结合情况如下:实参数组形参数组A(0)B(-1)A(1) B(0)A(2) B(1)A(3) B(2)A(4)A(5)也即调用SB时,A数组的头4个元素与B数组的元素对应,这些对应元素实际上为同一 存储地址。如果实参是数组元素,则从该元素开始依次与形参数组的第一个元素起按列逐个对应, 它们也是按地址结合。例如,有主程序与子程序如下:PROGRAM MAINDIMENTION A (8)5CALLSB (A (5)5ENDSUBROUTINE SB (B)D

27、IMENTION B (3)5END则在调用语句执行时,实参数组 A与形参数组B的结合情况如下: 实参数组形参数组A(1)A(2)A(3)A(4)A(5) B(1)A(6) B(2)A(7) B(3)A(8)FORTRAN 7规7 定,不管实参是数组名还是数组元素,用作实参的数组,其维数、各维下 标的上下限及数组中元素个数可以和与之结合的形参数组不同,但要求从与形参数组的 第一个元素结合的实参数组元素算起,以后的实参数组元素的个数不能少于形参数组元 素的个数。多维数组或数组元素虚实结合时,要特别注意 FORTRAIN数组按列存放的规定,不要搞 错存储地址的对应关系。例如:PROGRAM MAI

28、NDIMENSION A (3, 2)5CALL SB (A)ENDSUBROUTINE SB (B)DIMENSION B (2, 3)5END这种情况下,数组元素地址的对应关系是: 实参数组形参数组A(1, 1) B(1 , 1)A(2, 1) B(2 , 1)A(3, 1) B(1 , 2)A(1,2) B(2,2)A(2,2) B(1,3)A(3,2) B(2,3)3可调数组在主程序中定义数组元素时,定义说明符中各维下标的上下限必须为整常数,不能是变 量或算术表达式。但在子程序中定义数组时,允许用变量来定义各维下标的上下限。子 程序中用变量来定义各维下标上下限的数组称为可调数组。但使用

29、可调数组必须遵循以 下几个原则。(1) 可调数组名必须是形参数组名。(2) 说明可调数组各维下标上下限的表达式中只能出现整型变量,且这种变量必须是形参或出现在COMMON句中。但在某些FORTRAN 7子集中,定义可调数组各维下标上下限 时只能是整型变量,而不能是任何算术表达式。(3) 可调数组的大小不得超过对应实参数组的大小。4字符型变量的虚实结合(1) 当子程序中的形参为字符型变量时,对应的实参必须是字符型变量、字符常数、字符 型数组元素或字符表达式。字符型实参必须用CHARACTER句加以说明。(2) 如果字符型形参的长度小于对应的实参长度,则从实参中最左边的字符开始与形参结 合,而实参

30、中右边多余的字符被截去。例如:CHARACTER A* 5A=/ABCDE/CALL SB (A)ENDSUBROUTINE SB (X)CHARACTER X*3WRITE(*,*) XEND程序执行后的输出结果为: ABC。(3) 在 FORTRAN 7中7 ,对字符型形参的长度还可以用“ * ”号来说明,此时,形参字符变 量自动与对应的实参取相同的长度。例如:在上面的子程序SB中,如果将CHARACTER X*3改为CHARACTE*R(x),则执行后,输出的结果为:ABCDE(4) 当子程序中形参为字符型数组时,如果形参字符型数组元素的长度与对应实参字符型 数组元素长度一致,则其虚实结

31、合的情况与一般的数组虚实结合的情况相同。如果形参 与实参的字符型数组元素长度不同,则按字符依次对应。例如,有主程序与子程序如下:CHARACTER A (5)*3DATA A'ABC', 'DEF' , 'GHI' , 'JKL' , 'MNO'CALL SB (A)ENDSUBROUTINE SB (D)CHARACTERD (4)*2END则形参数组D中元素的值为;D(1) :'AB'D(2) :'CD'D(3) :'EF'D(4) ; 'GH'(

32、5) 过程名的虚实结合FORTRA允许子程序中的形参为过程名,此时,调用程序中的实参必须是过程名。如是实参是外部过程名 (如函数子程序名、子程序名 ) ,则该外部过程名在调用程序中必 须用EXTERNA语句说明。如果实参是内部过程名(如内部函数名),则该内部过程名在调用中必须用INTRINSIC语 句说明。(二)公用区语句1公用区语句的一般形式COMMONSk公用区名1/变量表1, /公用区名2/变量表2, 没有公用区名的就称为无名公用区,其他都是有名公用区;一个完整的程序只能设置一 个无名公用区,但可以有多个有名公用区;变量表中,可以是变量名、数组名、数组说 明符,互相之间用逗号隔开。例如:

33、COMMON, ab(3) , c(2) 定义了 b是3个元素的一维数组,c是2个元素的一维数组。这条语句与下面两句语句是 等价的:DIMENSION b(3), c(2)COMMONJab, c2.利用公用区进行数据传递时,在无名公用区或同名的有名公用区中,位置排列相同的 变量、数组,实际上使用同一存储地址,亦即共享同一数据。例如:PROGRAM MAINCOMMON a (2) /COMJ/d, cCALL SBENDSUBROUTINE SBCOMMON aaJK (2) /COMJ/f , gEND其中,主程序中的变量a的数据与子程序的变量aa共享,数组1的数据与JK共享,而d , c

34、的数据分别与f , g共享。由此可以知道,各个程序单位中 COMMON句中的变量类型必 须按位置一一对应一致才能正确传递数据。国八、程序单位间的数据传递八、程序单位间的数据传递(一) 虚实结合 虚实结合又称哑实结合,是各程序单位 ( 主程序和各种过程如函数子程序 )之间传递数据 的一种重要途径。1变量的虚实结合当子程序等过程的形参为变量时,则在调用时所对应的实参可以是类型相同的常数、变量、数组元素或表达式;子程序调用后,其运行的结果通过这些实参返回到调用者。在FORTRAN冲,当形参变量所对应的实参是变量或数组元素时,则它们之间的结合方式是地址结合;而当形参变量所对应的实参是常数或表达式时,其

35、结合方法对于不同的FORTRA系统有可能是不同的。2数组的虚实结合当子程序中的形参为数组名时,则在调用时所对应的实参必须是数组名或数组元素。如果实参是数组名,则实参数组与形参数组按地址结合,实参数组与形参数组都从第一个元素开始按列逐个对应。例如,有主程序与子程序如下:PROGRAMMAININTEGER A (0:5)5CALLSB (A)5ENDSUBROUTINESB (B)INTEGERB(-1:2)END则在主程序中使用CALL语句调用子程序SB时,实参数组与形参数组的结合情况如下: 实参数组形参数组A(0) B(-1)A(1) B(0)A(2) B(1)A(3) B(2)A(4)A(

36、5)也即调用SB时,A数组的头4个元素与B数组的元素对应,这些对应元素实际上为同一 存储地址。如果实参是数组元素,则从该元素开始依次与形参数组的第一个元素起按列逐个对应, 它们也是按地址结合。例如,有主程序与子程序如下:PROGRAM MAINDIMENTION A (8)5CALLSB (A (5)5ENDSUBROUTINE SB (B)DIMENTION B (3)END 则在调用语句执行时,实参数组 A与形参数组B的结合情况如下: 实参数组形参数组A(1)A(2)A(3)A(4)A(5) B(1)A(6) B(2)A(7) B(3)A(8)FORTRAN 7规7 定,不管实参是数组名还

37、是数组元素,用作实参的数组,其维数、各维下 标的上下限及数组中元素个数可以和与之结合的形参数组不同,但要求从与形参数组的 第一个元素结合的实参数组元素算起,以后的实参数组元素的个数不能少于形参数组元 素的个数。多维数组或数组元素虚实结合时,要特别注意FORTRAIN数组按列存放的规定,不要搞错存储地址的对应关系。例如:PROGRAM MAINDIMENSION A (3, 2)5CALL SB (A)ENDSUBROUTINE SB (B)DIMENSION B (2, 3)END这种情况下,数组元素地址的对应关系是:实参数组形参数组A(1,1) B(1,1)A(2,1) B(2,1)A(3,

38、1) B(1,2)A(1,2) B(2,2)A(2,2) B(1,3)A(3,2) B(2,3)3可调数组在主程序中定义数组元素时,定义说明符中各维下标的上下限必须为整常数,不能是变 量或算术表达式。但在子程序中定义数组时,允许用变量来定义各维下标的上下限。子 程序中用变量来定义各维下标上下限的数组称为可调数组。但使用可调数组必须遵循以 下几个原则。(1)可调数组名必须是形参数组名。(2)说明可调数组各维下标上下限的表达式中只能出现整型变量,且这种变量必须是形参或出现在COMMON句中。但在某些FORTRAN 7子集中,定义可调数组各维下标上下限 时只能是整型变量,而不能是任何算术表达式。(3

39、)可调数组的大小不得超过对应实参数组的大小。4字符型变量的虚实结合(1) 当子程序中的形参为字符型变量时,对应的实参必须是字符型变量、字符常数、字符 型数组元素或字符表达式。字符型实参必须用CHARACTER句加以说明。(2) 如果字符型形参的长度小于对应的实参长度,则从实参中最左边的字符开始与形参结 合,而实参中右边多余的字符被截去。例如:CHARACTER A* 5A=/ABCDE/CALL SB (A)ENDSUBROUTINE SB (X)CHARACTER X*3WRITE(*,*) XEND 程序执行后的输出结果为: ABC。在FORTRAN 7中,对字符型形参的长度还可以用“ *

40、 ”号来说明,此时,形参字符变 量自动与对应的实参取相同的长度。例如:在上面的子程序SB中,如果将CHARACTER X*3改为CHARACTER),则执 行后,输出的结果为:ABCDE(4) 当子程序中形参为字符型数组时,如果形参字符型数组元素的长度与对应实参字符型 数组元素长度一致,则其虚实结合的情况与一般的数组虚实结合的情况相同。如果形参与实参的字符型数组元素长度不同,则按字符依次对应例如,有主程序与子程序如下:CHARACTER A (5)*3DATA A 'ABC' ,'DEF' ,'GHI' ,'JKL' ,'

41、MNO'CALL SB (A)ENDSUBROUTINE SB (D)CHARACTERD (4)*2END则形参数组D中元素的值为;D(1) :'AB'D(2) :'CD'D(3) :'EF'D(4) ; 'GH'(5) 过程名的虚实结合FORTRA允许子程序中的形参为过程名,此时,调用程序中的实参必须是过程名。如是实参是外部过程名 (如函数子程序名、子程序名 ) ,则该外部过程名在调用程序中必 须用EXTERNA语句说明。如果实参是内部过程名(如内部函数名),则该内部过程名在调用中必须用INTRINSIC语 句说明。(

42、二)公用区语句1公用区语句的一般形式 COMMONSk公用区名1/变量表1, /公用区名2/变量表2, 没有公用区名的就称为无名公用区,其他都是有名公用区;一个完整的程序只能设置一 个无名公用区,但可以有多个有名公用区;变量表中,可以是变量名、数组名、数组说 明符,互相之间用逗号隔开。例如:COMMON, ab(3) , c(2)定义了 b 是 3 个元素的一维数组, c 是 2 个元素的一维数组。 这条语句与下面两句语句是 等价的:DIMENSION b(3), c(2)COMMON, ab, c2利用公用区进行数据传递时,在无名公用区或同名的有名公用区中,位置排列相同的 变量、数组,实际上

43、使用同一存储地址,亦即共享同一数据。例如:PROGRAM MAINCOMMON, aI (2) /COM/l d, c5CALL SBENDSUBROUTINE SBCOMMON ,aaJK (2) /COM/l f, gEND其中,主程序中的变量a的数据与子程序的变量aa共享,数组1的数据与JK共享,而d, c的数据分别与f , g共享。由此可以知道,各个程序单位中 COMMON句中的变量类型必 须按位置一一对应一致才能正确传递数据。国前言第二一讲计算机应用基础一、内容提要:本讲主要讲述计算机基础知识、Win98操作系统、FORTRA的程序构成和基本规定二、重点难点:各种进制之间的转换、FO

44、RTRA的程序构成和基本规定国第一节计算机基础知识第一节计算机基础知识一个计算机系统可分为两部分:硬件和软件。一、硬件的组成和功能计算机的硬件由以下部分组成:中央处理器(即CPU)内存储器、输入输出设备、外存储中央处理器包括运算器和控制器。控制器的主要作用,是使计算机能自动地执行存放在 内存储器的程序。运算器的作用则是进行加、减、乘、除等算术运算和与、或、非、比 较、移位等逻辑运算。目前普遍使用的微型计算机,其中央处理器都集成在一块芯片上, 称为微处理器,芯片的型号代表了微机的型号。内存储器通常又简称为内存,它的功能是保存要处理的程序和数据等信息。内存分成一个个存储单元,每个单元存放一定位数的

45、二进制数据,每个单元有惟一的地址。内存分为随机访问存储器(Random Access Memory简称RAM和只读存储器(Read Only Memory, 简称ROM。计算机内存中的大部分是由 RAM组成,用户输入的信息都存放在 RAM中。断 电后,RAM中的信息全部丢失。内存中有少量的 ROMS成,它里面固化了一个基本输入输 出系统,称为BIOS断电后,ROM中的信息仍保留。现代的内存储器通常由若干个集成 电路芯片组成,内存的容量和访问速度是衡量计算机性能的很重要指标。当需要永久保存信息时,一般使用外存储器。外存储器有很多形式,常见的有磁盘、光 盘、磁带等。高速缓冲存储器(Cache)为解

46、决高速的CPU与相对速度较低的RAM之间矛盾而引入的。 Cache介于CPU与内存之间,它存取速度比内存快,但容量不大,主要存放当前内存中使 用最多的程序块和数据块,并以接近 CPU勺速度向CPU提供程序指令和数据。输入输出 设备包括输入设备、输出设备和既能输入又能输出的设备。它们起着把各种信息 (程序、 数据、命令等 )输入计算机以及把各种处理结果从计算机中输出的重要功能。常见的输入 输出设备有键盘、扫描仪、显示器、打印机、绘图仪等;磁盘驱动器既是输入设备又是 输出设备。【例题 1】一个计算机系统可分两部分为()。A. 主机和显视器B. 硬件和软件C. 输入和输出设备D. 内存和外存答案:B

47、【例题 2】下列各项中不属于计算机硬件的是()。A. 内存B. 显视器C. CPUD. Windows XP答案:D【例题 3】磁盘驱动器属于()。A. 输入设备B. 输出设备C. 既是输入设备又是输出设备D. 既不是输入设备又不是输出设备答案: C【例题 4】当断电以后,计算机内存中能够保留信息的部分为()。A. RAMB. ROMC. CPUD. Word 文档答案: B二、软件的组成及功能软件是指各种程序、文档和数据的总和。软件对于计算机的使用是必需的。 软件可分为系统软件和应用软件两大类。系统软件是指管理、控制和维护计算机及其外 部设备、提供用户与计算机之间界面等方面的软件。它主要包括

48、操作系统、各种程序设 计语言处理程序 ( 编译程序和解释程序 ) 、各种软件开发工具等。应用软件是专业人员为 各种应用目的开发的程序。常见的应用软件有办公自动化软件、绘图软件、大型科学计 算软件包等。操作系统的功能是用于管理和控制计算机硬件和软件资源的一组程序,是计算机硬件与其他软件的接口、 用户和计算机的接口。 常用的操作系统有: DOS、Windows、Unix 、Linux 、 OS2 等。 程序设计语言可用来编写计算机程序,一般可分为机器语言、汇编语言、高级语言。 计算机能直接接受的只是以二进制形式的机器语言;汇编语言是机器语言的符号表示并 且需要翻译成机器语言才能执行;用高级语言编写

49、的程序更是必须通过编译程序或解释 程序翻译成机器语言才能供机器执行,常用的高级语言有BASIC FOTRANC等等。用机器语言或汇编语言编写的程序一般效率较高、执行速度较快;而用高级语程序则一 般效率较低、执行速度较慢。但用高级语言编写程序要比用机器语言或汇编语言编写程 序容易些,可读性、通用性强。【例题 5】文档属于()。A. 软件B. 硬件C. 内存D. 外存答案:A【例题6】Auto CAD14属于()。A. 机器语言B. 系统软件C. 应用软件D. 高级语言答案: C【例题 7】 FOTRAN 77属于()。A. 机器语言B. 汇编语言C. 低级语言D. 高级语言答案:D【例题 8】用

50、下列哪种语言编制的程序执行速度较慢()。A. 机器语言B. 汇编语言C. 高级语言答案: D三、数制转换 计算机中的数可有二进制、八进制、十六进制、十进制等不同的表现形式。平时人们使 用十进制数;计算机内存放的是二进制数,为了表示方便,引入了八进制和十六进制数。 因为同一个数可表示成不同进制的形式,故常有必要进行数制间的转换。(一)r进制转换成十进制我们可以一般地描述 r 进制,其中 r 是一个大于 1的正整数。 r 进制有如下特点:(1) 数的每一位只能取 r 个不同的数字,其符号集是 0 ,1,, , r-l 。(2) 逢 r 进位。例如,对十进制数,r=10,符号集为0,1,2,3,4,

51、5,6,7,8,9。对十六进制数,r=16,符号集为0 , 1, 2, 3, 4, 5, 6, 7,8,9,A,B,C,D,E,F。r进制数从小数点开始向左的第i位数(i=0 , 1, , , m)的权是r,从小数点开始向右的 第i位数(1=1 , 2, , , n)的权是r-i我们用()r表示,括号内的数是r进制数。 因此,对r进制数(amam-l,a 1a°a-1a-2,a -n) r,按权展开的表达式为:(a nHm-l ,a 依0 a -1 a-2 ,a -n) rmm-110-1-2=amXr + a m-1 Xr + + ar + aor + a-1 r + a-2r-n

52、+ a-nr(7-1-1)式(7-1-1) 就是将 r 进制转换成十进制的方法。【例题 9】把(1101011)2转换成十进制数。【解】(1101011) 2=1 X 2 6+l X 2 5+0X 2 4+1 X 2 3+0X 2 2+1 X 2 1 + 1 X 2 °=(107) 10(二)十进制转换成r进制整数部分与小数部分的转换方式不同。对于整数部分,采用除r取余法。例如,要将十进制的整数m转换成r进制数,则把m除以r并取余,再把所得的商除以r取余, 直至商为零,所有的余数按从后到前的次序依次从左到右排列就构成了所要求的r进制数。【例题10】把(107) 1°转换成二

53、进制数。【解】107/2 得 53 余 1; 53/2 得 26 余 1; 26/2 得 13 余 0; 13/2 得 6 余 1; 6/2得3余0; 3/2得1余1; 1/2得0余1,把所有的余数按从后到前的次序从左到右排列 得:(107) 10=(1101011)2对于小数部分,可用乘以r取整法。例如,要将十进制数的小数 m转换成r进制数时, 把m乘r,取整数部分;又取上一步得数的小数部分再乘以r,再取整数部分;,;至完毕或达到要求的位数。然后把各整数按从前到后的次序从左到右排列,即构成所求的 小数部分。【例题11】把(0.375) 10转换成二进制数。【解】0.375 X 2=0.75,

54、整数为0,小数为0.75 ; 0.75 X 2=1.50,整数为1,小数为0.5 ;0.5 X 2=1.0 ,整数为1,小数为0,停止。把所得的整数按从前到后的次序从左到右排列, 即得所求的二进制数(0 . 011)2。即(0.375) 10=(0.011) 2E0第二节Windows 98操作系统第二节Windows 98操作系统Win dow98是一种图形界面的操作系统,是目前使用最广泛的操作系统之一,在台式计算 机和便携式计算机中得到广泛的使用。使用 Windows 98 系统有两个基本的目的:(1) 掌握操作系统的基本功能和它们的使用。(2) 掌握图形界面软件的一般使用方法。使用Win

55、dows98需要一定的硬件环境。为使 Windows98的功能能较好的发挥,计算机应 该至少具有以下的硬件配置:PentiumlOO处理器、32MB内存、200MB上磁盘空间、鼠 标或其他点击设备、VGA或更高分辨率的显示器。 Win dows 98安装时,除了基本内核外, 还包括许多功能组件。如果全部安装 Windows 98系统及其全部组件,所需的硬盘空间要 超过 3OOMB。【例题12】使用Windows98需要一定的硬件环境,对于磁盘空间而言至少要在()以上。A. 1OOMBB. 2OOMBC. 1GBD. 1OGB答案: B一、 Windows 98 操作系统的基本特点和新特性(一)Windows 98操作系统的基本特点Windows98 操作系统是微软公司 Windows95 操作系统的一个升级版本。从操作系统的角 度而言,它们具有基本相同的特性。1Windows 9895都是 32位操作系统。2Windows 9895 是多任务单用户操作系统。3Windows 9895 都

温馨提示

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

评论

0/150

提交评论