计算机语言

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言

第二十二讲计算机程序设计语言(之二)

一、内容提要:

本讲主要讲述FORTRAN的语句

二、重点难点:

根据所讲语句对简单的程序能够判断输出结果

三、内容讲解:

三、赋值语句

三、赋值语句

赋值语句的一般格式为:

变量名=表达式

其中,连接变量名和表达式的符号“=”称为赋值号。在FORTRAN77中,有三种赋值语句:算术赋值语句,逻辑赋值语句和字符赋值语句。

(一)算术赋值语句

1.算术赋值语句中赋值号右边是算术表达式。算术表达式可以是单个变量或数组元素,可以是用算术运算符号连接起来的数值计算过程。

(1)算术表达式中的各个数据量(常量或变量)的类型一般应该一致。如果不一致,FORTRAN 程序在运行中先将其进行转换,再进行计算。例如实型变量和整型变量进行计算时,整型变量的数值先被转换为实型。

(2)算术表达式计算中,特别应注意两个整型量之间的除法(称为整除)。例如,算术表达式10.0-2/4×10.0的计算过程是

10.0-0×10.0=10.0-0.0=10.0

如果表达式写为10.0-2/4.0×10.0,则计算过程是

10.0-2.0/4.0×10.0=10.0-0.5×10.0=5.0

因为2/4是整除,其结果为0,而进行2/4.0的计算时,整型量2先被转化为实型。2.算术赋值左边只能是数值型变量名或数值型数组元素。如果赋值号左边的变量与右边的表达式类型不一样时,系统将自动把右边表达式计算的结果转换为与左边变量的类型一致后再赋给该变量。

(二)逻辑赋值语句

在逻辑赋值语句中,赋值号左边为逻辑变量或逻辑型数组元素,右边为一个逻辑表达式。

(三)字符赋值语句

1.字符赋值语句赋值号的左边为字符变量或字符型数组元素。

2.赋值号的右边为字符表达式,可以是单个字符串或用字符运算符连接起来的字符串。字符运算符只有一个,表示为//,含义为连接该符号两边的字符串。

3.执行字符赋值语句时,应注意字符串的长度与赋值号右边变量或数组元素的长度的关系。

例如:

CHARACTER*4 A,B*6,C

A=/FILE/

B=A///NAME/,

C=B(5:6)

定义字符型变量时,根据类型说明语句的规定,A、C长度为4,而变量B因有专门说明,其长度为6。程序运行后,变量A的长度与赋值号右边字符串长一致,A的值为‘FILE’;而B的长度小于‘FILE’和‘NAME’两个字符串长度之和,因此多余的字符被截去,B的值为‘FILENA’;C的结果为‘NA——”,其中最后两格为空格符,这是因为C的长度为

4,大于字符串‘NA’的长度,于是在其右边补上2个空格符后形成4个字符长再赋值给C。在上面的程序例中,出现表达式B(5:6),称为“子串”,表示取出字符串的一部分,本例中,表示将B的字符串‘FILENA’中的第5个字符至第6个字符取出。

四、循环语句

四、循环语句

(一)DO语句

DO语句的一般形式为:

DO n V=e1,e2,e3

n 循环体

其中,n为语句标号;V为循环控制变量,它只能是简单变量(整型或实型),不能是表达式:e1,e2,e3分别为循环控制变量的初值、终值与增量(步长),它们都可以是表达式,当e3为1时可以省略不写。循环体是若干语句的集合,其中最后一个语句称为循环终端语句;若循环体只有一个语句,则该语句也就是终端语句。终端语句必须有标号n。

在DO循环执行时,首先计算表达式e1,e2,e3的值,并将它们化为与循环控制变量V

的类型一致;然后将初值赋给循环控制变量V,并计算需要循环的次数;最后根据循环次数重复执行循环体中的语句,并每次执行完循环体后,将循环控制变量增值一次,循环次数减少一次。当循环次数为零时,则结束循环,转向程序规定的下一个语句。

(二)继续语句CONTINUE

CONTINUE是一个可执行语句,其功能是使程序的流程继续到逻辑上的下一个语句。FORTRAN77规定,循环终端语句必须是一个可执行语句,但不能是GOTO语句、块IF语句、ELSE语句、ELSE IF语句、ENDIF语句、DO语句、STOP语句、END语句。由于这些限制,

通常用CONTINUE语句作为循环的终端语句。当然,CONTINUE语句也可用在其他场合。

(三)循环嵌套

使用循环嵌套可以实现多重循环。这时应注意各重循环的层次和循环变量的关系。例如,编写一个计算乘法表的程序段,可以写为:

DO 10 I=1,9

DO 8 J=I,9

IJ=1*J

8 CONTINUE

10 CONTINUE

本例中,外层循环控制变量I初值为1,终值为9,内层循环控制变量J初值为外层循环控制变量I的当前值,终值为9。外层的第1次循环,内层经过9-1+1=9次循环,依次计算1×1=1,1×2=2,…,1×9=9,外层的第2次循环,内层经过9-2+1=8次循环,依次计算2×2=4,2×3=6,…,2×9=18;……。

(四)使用循环语句应注意的若干问题

1.正确选定循环变量的初值。

比如,对累加问题和连乘问题,变量初值不正确,便影响最终结果。

例如计算m=1!+2!+……+10!,采用循环语句编写程序,涉及到累加和连乘。

其程序可编写如下:

m=0

n=1

D0 20 I=1,10

n=n*I

m=m+n

20 CONTINUE

PRINT*,m

END

例如,n用于存放连乘结果,其初值设定为1,而m用于存放累加结果,其初值设定为0。

2.DO语句可以和转换语句,条件语句等结合起来使用,此时应注意从循环体内可以转向循环体外,但不允许从循环体外转向循环体内;从内层循环中可以转向外层循环,但不允许从外层循环转向内层循环中。

3.当内外层循环体的终端语句相同,且两个终端语句之间没有其他语句时,可以合并使用一个终端语句。

例如,前面计算乘法表的程序段可以写为:

DO 10 I=1,9

DO 10 J=I,9.

IJ=I*J

10 CONTINUE

或写为

DO 10 I=1,9

DO 10J=I,9

10 IJ=I*J

五、输入输出语句

相关文档
最新文档