您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 综合/其它 > 第72讲信息与计算机计算机程序设计语言四2010年新版
环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6011页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证券从业|期货从业|经济师|报关员|外销员|执业药师|卫生职称|助理医师|职称英语|职称日语|职称计算机|雅思|公共英语|自考英语|新概念|BEC|托福|公务员|人力资源师|高考|中考|司法考试|更多需要课件请联系QQ149420357或547343758八、程序单位间的数据传递(一)虚实结合虚实结合又称哑实结合,是各程序单位(主程序和各种过程如函数子程序)之间传递数据的一种重要途径。1.变量的虚实结合当子程序等过程的形参为变量时,则在调用时所对应的实参可以是类型相同的常数、变量、数组元素或表达式;子程序调用后,其运行的结果通过这些实参返回到调用者。在FORTRAN77中,当形参变量所对应的实参是变量或数组元素时,则它们之间的结合方式是地址结合;而当形参变量所对应的实参是常数或表达式时,其结合方法对于不同的FORTRAN系统有可能是不同的。2.数组的虚实结合当子程序中的形参为数组名时,则在调用时所对应的实参必须是数组名或数组元素。如果实参是数组名,则实参数组与形参数组按地址结合,实参数组与形参数组都从第一个元素开始按列逐个对应。例如,有主程序与子程序如下:PROGRAMMAININTEGERA(0:5)CALLSB(A)ENDSUBROUTINESB(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(5)也即调用SB时,A数组的头4个元素与B数组的元素对应,这些对应元素实际上为同一存储地址。环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6012页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证券从业|期货从业|经济师|报关员|外销员|执业药师|卫生职称|助理医师|职称英语|职称日语|职称计算机|雅思|公共英语|自考英语|新概念|BEC|托福|公务员|人力资源师|高考|中考|司法考试|更多如果实参是数组元素,则从该元素开始依次与形参数组的第一个元素起按列逐个对应,它们也是按地址结合。例如,有主程序与子程序如下:PROGRAMMAINDIMENTIONA(8)CALLSB(A(5))ENDSUBROUTINESB(B)DIMENSIONB(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)FORTRAN77规定,不管实参是数组名还是数组元素,用作实参的数组,其维数、各维下标的上下限及数组中元素个数可以和与之结合的形参数组不同,但要求从与形参数组的第一个元素结合的实参数组元素算起,以后的实参数组元素的个数不能少于形参数组元素的个数。多维数组或数组元素虚实结合时,要特别注意FORTRAN中数组按列存放的规定,不要搞错存储地址的对应关系。例如:PROGRAMMAINDIMENSIONA(3,2)CALLSB(A)。。。ENDSUBROUTINESB(B)环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6013页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证券从业|期货从业|经济师|报关员|外销员|执业药师|卫生职称|助理医师|职称英语|职称日语|职称计算机|雅思|公共英语|自考英语|新概念|BEC|托福|公务员|人力资源师|高考|中考|司法考试|更多DIMENSIONB(2,3)。。。END这种情况下,数组元索地址的对应关系是:实参数组形参数组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.可调数组在主程序中定义数组元素时,定义说明符中各维下标的上下限必须为整常数,不能是变量或算术表达式。但在子程序中定义数组时,允许用变量来定义各维下标的上下限。子程序中用变量来定义各维下标上下限的数组称为可调数组。但使用可调数组必须遵循以下几个原则。(1)可调数组名必须是形参数组名。(2)说明可调数组各维下标上下限的表达式中只能出现整型变量,且这种变量必须是形参或出现在COMMON语句中。但在某些FORTRAN77子集中,定义可调数组各维下标上下限时只能是整型变量,而不能是任何算术表达式。(3)可调数组的大小不得超过对应实参数组的大小。4.字符型变量的虚实结合(1)当子程序中的形参为字符型变量时,对应的实参必须是字符型变量、字符常数、字符型数组元素或字符表达式。字符型实参必须用CHARACTER语句加以说明。(2)如果字符型形参的长度小于对应的实参长度,则从实参中最左边的字符开始与形参结合,而实参中右边多余的字符被截去。例如:CHARACTERA*5A=ABCDE'CALLSB(A)END环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6014页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证券从业|期货从业|经济师|报关员|外销员|执业药师|卫生职称|助理医师|职称英语|职称日语|职称计算机|雅思|公共英语|自考英语|新概念|BEC|托福|公务员|人力资源师|高考|中考|司法考试|更多SUBROUTINESB(X)CHARACTERX*3WRITE(*,*)XEND程序执行后的输出结果为:ABC。(3)在FORTRAN77中,对字符型形参的长度还可以用*号来说明,此时,形参字符变量自动与对应的实参取相同的长度。例如在上面的子程序SB中,如果将CHARACTERX*3改变为CHARACTERX*(*),则执行后,输出的结果为:ABCDE。(4)当子程序中形参为字符型数组时,如果形参字符型数组元素的长度与对应实参字符型数组元素长度一致,则其虚实结合的情况与一般的数组虚实结合的情况相同。如果形参与实参的字符型数组元素长度不同,则按字符依次对应。例如,有主程序与子程序如下:CHARACTERA(5)*3DATAA('ABC','DEF','GHI','JKL','MNO')CALLSB(A)ENDSUBROUTINESB(D)CHARACTERD(4)*2END则形参数组D中元素的值为:D(1):'AB'D(2):'CD'D(3):'EF'D(4):'GH'(5)过程名的虚实结合FORTRAN允许子程序中的形参为过程名,此时,调用程序中的实参必须是过程名.如果实参是外部过程名(如函数子程序名、子程序名),则该外部过程名在调用程序中必须用EXTERNAL语句说明。如果实参是内部过程名(如内部函数名),则该内部过程名在调用中必须用INTRINSIC语句说明。(二)公用区语句环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6015页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证券从业|期货从业|经济师|报关员|外销员|执业药师|卫生职称|助理医师|职称英语|职称日语|职称计算机|雅思|公共英语|自考英语|新概念|BEC|托福|公务员|人力资源师|高考|中考|司法考试|更多1.公用区语句的一般形式COMMON[公用区名l/]变量表1,[公用区名2/变量表2]…没有公用区名的就称为无名公用区,其他都是有名公用区;一个完整的程序只能设置一个无名公用区,但可以有多个有名公用区;变量表中,可以是变量名、数组名、数组说明符,互相之间用逗号隔开。例如:COMMONa,b(3),c(2)定义了b是3个元素的一维数组,c是2个元素的一维数组。这条语句与下面两句语句是等价的:DIMENSIONb(3),c(2)COMMONa,b,c2.利用公用区进行数据传递时,在元名公用区或同名的有名公用区中,位置排列相同的变量、数组,实际上使用同一存储地址,亦即共享同一数据。例如:PROGRAMMAINCOMMONa,I(2)/COMl/d,c。。。CALLSBENDSUBROUTINESBCOMMONaa,]K(2)/COMl/f,gEND其中,主程序中的变量a的数据与子程序的变量aa共享,数组1的数据与JK共享,而d,c的数据分别与f,g共享。由此可以知道,各个程序单位中COMMON语句中的变量类型必须按位置一一对应一致才能正确传递数据。九、文件FORTRAN程序输入输出的基本单位称为记录。记录是数值或字符的序列。记录的集合称作文件。(一)文件的存取方式1.顺序文件顺序文件中的记录是一个接一个按顺序存放的,即总从第1个记录开始,然后是第2个记录,第3个记录,…,要取任何一个记录,都必须从第1个记录开始。2.直接文件环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6016页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证券从业|期货从业|经济师|报关员|外销员|执业药师|卫生职称|助理医师|职称英语|职称日语|职称计算机|雅思|公共英语|自考英语|新概念|BEC|托福|公务员|人力资源师|高考|中考|司法考试|更多直接文件又称直接存取文件,或随机文件。它可以按任意顺序读写某一记录。直接文件中每个记录的长度都是相等的。(二)文件操作语句文件操作语句有打开文件的OPEN语句和关闭文件的CLOSE语句。此外还有文件的读写语句READ语句和WRITE语句。(三)文件定位设想在文件的读写操作时存在一根指针。起先指针停在文件的开始处,随着文件存取的进行,指针在文件中移动。控制指针的位置,即定位,在FORTRAN中可以通过如下语句来实现。I.REWIND语句REWIND语句也称回绕语句。它的形式是:REWIND设备号它使与指定设备号相连的文件中的指针定位在文件的开头。在FORTRAN中,用OPEN语句打开一个文件,指针也是在文件的开头位置。因此对一个已经打开的文件,要使指针移到开头,也可组合使用CLOSE和OPEN语句。2.BACKSPACE语句语句BACKSPACE的形式是:BACKSPACE设备号它使与指定设备号相连的文件中的指针退回一个记录。例题:1.阅读下列FORTRAN程序:INTEGERSUMSUM=0DO10I=1,10,4DO10J=5,100,20DO10K=-10,-5,2环球网校:视频授课+名师答疑+在线模考+内部资料,考试通过无忧!考试问吧,有问必答!音频、讲义网校免费提供,如有贩卖勿上当,免费咨询:400-678-3456转6017页造价工程师|监理工程师|咨询工程师|一级建造师|二级建造师|会计证|建筑师|安全工程师|会计职称|注册会计师|注册税务师|银行从业|证
本文标题:第72讲信息与计算机计算机程序设计语言四2010年新版
链接地址:https://www.777doc.com/doc-6515897 .html