第三章 顺序结构程序设计PPT课件.ppt_第1页
第三章 顺序结构程序设计PPT课件.ppt_第2页
第三章 顺序结构程序设计PPT课件.ppt_第3页
第三章 顺序结构程序设计PPT课件.ppt_第4页
第三章 顺序结构程序设计PPT课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 顺序结构程序设计,顺序结构是面向过程程序设计三种基本结构中最简单的一种结构,它只需按照处理顺序,依次写出相应的语句即可。学习程序设计,首先都是从顺序结构开始的。一个程序由数据和语句两大部分组成,数据是程序加工处理的对象,语句描述了对数据的具体操作,本章首先介绍两种基本的数据类型:整型和实型,然后介绍最基本的语句,包括赋值语句和最简单的输入输出语句等,从而帮助读者学会编写最简单的FORTRAN程序。,1,3.1 FORTRAN常量,从数据的表现形式上讲,FORTRAN中数据有常量、变量、表达式和函数之分。从数据的类型上讲,有整型、实型、字符型、复型和逻辑型等基本的数据类型,还可有如数组、

2、结构体等复杂的数据类型。每一种数据类型定义了一个(或一组)相同性质的值的集合(结构体除外),并决定了该类型数据在计算机中的存储方式和作用于该类型数据的操作,下面主要从表现形式角度,介绍其中最简单的数据:常量和变量。 常量是在程序运行过程中,其值不改变的量。例如15、0、-21、3.1416、FORTRAN等都是常量。FORTRAN中,常量可以分为直接常量和符号常量两大类。,2,1. 直接常量,直接常量是指数据本身就是一个常量。不同类型的常量有不同的表示方法,下面依次介绍。 (1)整型常量: 整型常量又称为整型常数或整数,包括正数、负数或0。如125,-258,+28等。 必须注意:整型常量中的

3、数字之间不能用“,”分隔,即日常中所用的千分位分隔符,例如123,000是错的整型常量表示;整型常量不能有小数点;整型常量内部最好不要加空格(FORTRAN77中整型常量的空格被忽略,而FORTRAN90及以上版本整型常量加入空格将产生错误)。,3,FORTRAN77中一个整型常量占2个字节的存储空间,而FORTRAN90标准中整型常量的范围没有明确规定。如16位计算机上整型常量的范围是2个字节,表示为十进制数为-32768+32767,即-215215-1。,4,(2)实型常量,实型常量即实型常数或简称实数。它有2种表示形式:小数形式和指数形式。 小数形式根据小数点前后是否有数字形成3种不同

4、格式,分别是:m.n、m.、.n。数字前面可以加上“+”或“-”号,默认为正号。小数点“.”前或后可以不出现数字。例如3.52、4.0、-5. (相当于-5.0)、.6378(相当于0.6378)等。 指数形式可以表示一个绝对值非常大或非常小的数,表示方式是用E将有效数字和指数分隔,E的前面是指数,E的后面是小数。例如:,5,1.32E5表示13200或1.32*105。 1.285E-12表示1.285*10-12。 指数形式应注意以下事情: 首先,有效数字可以是整型或实型常量,如1E2和1.0E2两种表示100.0,它们方式等价,但它们与100是不等价的,因为100代表一个整型常量; 其次

5、,E后面的指数只能是整型常量,如5E3.2,E4,.E8都是错误的指数表示。 除前面介绍的两种直接型常量外,还有复型、逻辑型、字符型等类型的常量,这些在后面章节中将陆续介绍。,6,2. 符号常量,所谓符号常量,是用一个标识符来代表一个常量。符号常量常用PARAMETER语句来定义。例如: PARAMETER(PI=3.1416,M=10,)。 该语句定义了两个符号常量PI和M,在该程序单位内,PI代表3.1416,M代表10,其中PARAMETER为特有的常量定义标识,要定义的项必须放在()内,如果有多项,项之间要用逗号隔开。,7,注意,符号常量与变量有着本质的区别,PARAMETER语句是非

6、执行语句,在编译源程序时,编译程序将程序中的符号常量名全部替换成所对应的常量。变量对应于一个存储单元,程序执行时,可将表达式的值存放到变量所对应的存储单元中(即给变量赋值)或从变量所对应的存储单元中取出相应的值。所以,符号常量不能当变量使用。,8,3.2 FORTRAN变量,3.2.1 变量的概念 变量与常量相对应,是指在程序运行过程中其值可以改变的量。变量实质上代表的是一个内存单元(高级语言的一个重要的优点是:允许通过变量名,而不是存储单元的物理地址来访问存储单元)。因此,在FORTRAN中经常用看到下列的语句: N=N+1 该语句可以这样理解:“空间N里的数据在原来基础上增加1”。,9,3

7、.2.2 变量名,一个变量需要一个名字来识别,在同一个程序单位中不能用同一个变量名代表不同的变量。 变量的名字即标识符。 在FORTRAN语言中,标识符只能由字母、数字和下划线组成,且开头只能是字母。 定义标识符时应注意以下事情: (1)FORTRAN标识符不区分字母的大小写,如grade、Grade、GRADE所表示的是同一个变量。,10,(2)标识符的长度因FORTRAN版本不同而有差异,表2.1说明了这种差异。在FORTRAN90中,标识符长度范围是131,超过的字符无效。 (3)标识符要尽量做到“见名知义”,如可用AREA代表“面积”,GRADE代表“成绩”,AVER代表“平均值”等。

8、 (4)FORTRAN没有规定的“保留字”,因此FORTRAN中具有特定意义的语句名、函数名,可以用作变量名。但为避免误解、混淆,在实际中要尽量避免使用这些有一定意义的符号作变量名,如最好不要用PRINT作变量名,因为PRINT为FORTRAN的输出语句,SIN为FORTRAN语言的正弦函数名,因而也不要用它作变量名,以避免混淆。,11,表2.1 FORTRAN77与FORTRAN90标识符对照,12,3.2.3 变量的说明,FORTAN中变量的类型的定义有三种方式: 1.强制说明 格式为:类型说明词 变量名1,变量名2。 其中类型说明字为: INTEGER:整型变量说明; REAL:实型变量

9、说明; DOUBLE PRECISION:双精度型变量说明;,13,COMPLEX:复型变量说明; LOGICAL:逻辑型变量说明; CHARACTER:字符型变量说明; 如:INTEGER X,Y 含义是定义两个整型变量名字分别为X和Y。 REAL AREA,AVERAGE,STUDENT1则定义了3个实型变量。 注意,在FORTRAN90中,还可以用如下语句来声明变量的类型: REAL:SCORE=89.5 该语句在变量类型进行声明的同时进行变量的初始化。,14,2隐含说明语句IMPLICIT,IMPLICIT说明语句可以将某个或某些字母开头的变量规定为所需的类型,格式为: IMPLICI

10、T 类型说明(字母表)。 例如: IMPLICIT INTEGER(A,C,T-V) 该语句的含义是将以A和C及T到V开头的变量规定为INTEGER类型(即整型)。,15,3隐含约定,FORTRAN语言规定,以I,J,K,L,M,N 6个字母开头的变量被当作整型变量。该规则又称为IN规则。 例如:在没有前面两种说明的情况下,I1,MA,N3S等都为整型变量。,16,注意:,(1) IN规则在FORTRAN77中用的较多,它具有一定的副作用,如隐含说明与强制说明一同使用时,变量类型不清晰,因此FORTRAN90中一般不提倡用,通过在程序变量说明之前加入:IMPLICIT NONE语句来取消IN规

11、则。 (2) 在以上3类规则中,第一类优先级最高,第二类次之,隐含约定最低。也就是说,当一个变量被强制定义为某种类型时,IMPLICIT语句和隐含约定将不再起作用。 (3) IMPLICIT语句和变量强制说明语句,都为非执行语句,FORTRAN77规定:应把它们放在所有可执行语句之前。,17,3.3 FORTRAN内部函数,FORTRAN语言具有丰富的内部函数,内部函数是指系统本身带有的能完成一定功能的程序单位。内部函数可供用户直接使用,只不过必须遵守其使用规则,不必重新编写程序。如数学函数中的三角函数,象正弦函数,如果自己编程,则要用到高等数学中的无穷级数知识,FORTRAN中的循环结构等,

12、是一件比较麻烦的事情,但由于有了内部函数,我们只要在程序中输入SIN(X),其中X为任意实数,就可以得到对应数值(弧度)的正弦值。 FORTRAN常用的函数见表2.2。,18,表2.2 FORTRAN常用的内部数学函数表,19,说明: (1) FORTRAN内部函数,也称为库函数。在程序中可直接调用这些函数,在完成程序的编译后,通过连接,即将一组二进制指令代入该函数出现的地方,与编译好的目标程序一起形成可执行程序。 (2) 一个内部函数要求一个或多个自变量。如SIN(X)自变量仅一个。MOD(M,N)自变量为两个:M、N。而象求最大值、最小值MAX,MIN等函数,自变量就可以有多个。 (3)

13、函数的自变量是有类型的,函数的值也是有类型的,如求余函数MOD(M,N),自变量与函数值,都是整型,而SIN(X)等,自变量与函数值都是实型,否则,如果用整型自变量将产生语法错误,函数值用整型变量存储将丢失小数部分的数据,导致结果错误。,20,内部函数使用应当注意:,(1)所有函数必须遵守原有数学规则,如负数不能开方,不能对负数求对数,实数不能求余等,违反规则程序将产生错误。 (2)所有函数名字的后面都必须带有括号(),否则将产生错误。如COS(X)不能写成COSX,因为后者FORTRAN语言将把它当作一个标识符,而非调用一个函数。使用函数时,参数类型和个数必须与函数定义的参数类型和个数一致,

14、如使用MOD函数时,需要两个为整型的参数。,21,内部函数使用应当注意:,(3)三角函数参数单位是弧度,因此得特别注意,如果是普通的度数,必须先转化为弧度才能使用对应的函数。 (4)要注意FORTAN语言中函数名与数学中函数名的差异,如FORTRAN语言中LOG(X),相当于数学的自然对数,即LNX。,22,下面看一些函数运用的具体例子:,(1)求三个数X、Y、Z中的最大值可以表示为:MAX(X,Y,Z); (2)判断一个数自然数M是否为另外一个自然数N的因数,通过MOD(N,M)是否为0可以判断,如果为0,则说明M是N的因数,否则说明N不能被M整除。,23,3.4 FORTRAN算术表达式,

15、将常量、变量、函数用运算符连接起来的式子称为表达式。根据运算符的不同,表达式分为:算术表达式、字符表达式、关系表达式、逻辑表达式,下面要介绍的是算术表达式。,24,3.4.1 运算符号与其优先级别,FORTRAN提供5中算术运算,运算符依次为:+、-、*、/、*,分别代表加、减、乘、除、乘方运算。例如:2*3表示23,M*N表示MN。 表达式应注意: 象在数学里一样,FORTRAN中算术运算也有运算先后次序问题,优先次序为:有括号,25,(FORTRAN中用于运算先后的括号只有圆括号一种,但它可以嵌套使用)先算括号,无括号,先算乘方,再算乘、除,最后算加、减,同级运算从左到右依次运算。例如:1

16、2-5*2*3/8结果为7,计算过程为:先算2*3=8,然后计算5*8=40,再40/8=5,最后计算12-5=7。对于2*3*3,先算2*3=8,然后算8*3=512。 有时,如果某些运算想先算,可以通过加()的方式来保证,下面是一些算术表达式的例子:(A*B)*3表示(AB)3,SIN(X*Y)表示SIN(XY),而A/B表示AB等,而SIN(X*Y)- M*N等同样为数学表达式,26,注意:,(1)表达式中的所有字符都必须写在一行,特别是带有下标的变量,不能象写数学表达式那样书写。如:Z=X1+X2不能写成Z=X1+X2。 (2)表达式中常量的表示、变量的命名以及函数的引用要符合FORT

17、RAN语言的规则。,27,注意:,(3)算术表达式中,乘号不能省略,如3*A不能写为3A,X*Y*Z不能写成XYZ,其理由是很明显的。 (4) 两整数相除,结果为整数,不会进行四舍五入,而是把小数后面的部分切掉。因此,当分子小于分母时,结果一律为0。例如在数学上3*2/3与2/3*3是等价的,但在FORTRAN表达式中,前者为2,后者为0,所以在书写表达式时,应注意数据的类型,防止因两个整数相除而丢失小数部分,导致结果错误。注意象3*2.0/3与2.0/3*3这样写是正确的,28,3.4.3 算术表达式中类型转化,在表达式的书写中,数据类型可以不同,但计算机是按相同数据类型进行运算的处理,这时

18、,编译系统将自动地将不同类型的数据转化为同一种类型,然后进行运算。转换规律是:将低级类型转换成高级类型。对整型和实型而言是将整型转换成实型。 例如: 1/2.0则系统先将1转换成1.0,然后除以2.0,结果为0.5。 因此1.0/2和1/2.0和1.0/2.0结果都为0.5,得到实型数据。 值得注意的是,数据类型转换是从左到右进行的,象5/4*8.0结果为0,而非10.0。要使结果为10.0,可以将5改为5.0。,29,3.5 赋值语句,2.5.1 赋值语句的格式 赋值语句在高级语言中都是作为最基本的语句,它的一般格式为: 变量名=表达式 例如, PI=3.1416其含义是将3.1416的值赋

19、给左边的变量PI,X=X1+X2*X3+5将算术表达式X1+X2*X3+5的值赋给变量X,I=I+1变量I 在原来的基础上增加1。 赋值语句的作用是:将右边表达式的值赋给左边变量,即将表达式的值存放到变量所对应的存储单元。,30,3.5.2 执行赋值语句时的类型转换问题,赋值语句中被赋值的变量和表达式的类型可以相同,也可以不同。FORTRAN规定: (1) 左右两边类型相同,运算完毕,直接赋值,例如: INTEGER I I=I+2 I与2都为整型,因此I+2也为整型,最后I得到一个整型数据,在原来的基础上增加了2。,31,REAL X,Y Y=2.5*X X、2.5和2.5*X都为实型、因此

20、Y得到一个实型数据。 (2) 左右两边类型不同,右边表达式按原来规则计算,再转换为与左边变量相同的类型,然后将值赋给左边的变量。例如 INTEGER N N=3.33*3,32,赋值过程如下:先计算右边表达式3.33*3的值,为9.99,再将9.99转化为整型9,最后将9赋值给N,因此N的值是9。 为了加深对赋值语句的理解,看下面程序段 INTEGER M,N REAL X,Y M=5/2 N=5.0/2 X=5/2 Y=5.0/2,33,第一个赋值语句中,右边5/2得到一个整型值2,左右类型一致,M的值是2;第二个赋值语句中,5.0/2得到实数2.5,在赋值给整型变量N时,小数部分被切掉,N

21、的值是2;第三个赋值语句中,5/2得到整数2,但X为一个实型变量,因此,将整数2转化为实数2.000000,再将它赋给X,因此,X的值是2.000000;Y的值是2.500000。,34,3.6 简单输入输出语句,输入输出是计算机内存与外部设备交换数据的过程。要顺利地传递数据,一般应在输入输出语句中给计算机语提供三方面的信息: (1) 通过什么设备进行输入输出; (2) 采用什么样的格式进行输入输出; (3) 输入、输出的内容。 根据上述三个方面,FORTRAN提供多种输入输出方式,与此对应的是各种输入输出语句。下面要介绍的是其中最简单的表控输入、输出语句,也就是系统默认的输入输出方式。,35

22、,3.6.1 表控输入语句,所谓输入是指从外部设备上将数据输入到计算机内存中。向计算机输入数据又叫“计算机从外部设备读入数据”。 FORTRAN用READ语句实现数据输入,方式有3种 (1)数据按用户规定的格式输入; (2)用自由格式输入,即表控格式输入。 (3)无格式输入,即以二进制形式输入,只适用从磁盘或磁带输入。这里介绍的是表控格式输入。,36,表控格式输入不必指定输入数据的格式,只需要将数据按其合法形式依次输入即可,所以又称为自由格式输入,其一般格式为: READ*,变量表 变量之间用逗号隔开,例如: READ*,X,Y,Z 其中,READ后面的“*”号表示“表控输入”,语句含义是从系

23、统隐含指定的输入设备上(一般为键盘)读入3个实型数据分别给X、Y、和Z。 表控输入也可以写为:READ(*,*)变量表,其中第一个*表示“系统隐含指定的输入设备”,第二个*是指“表控输入”。,37,当程序执行到READ语句时,向设备发出输入数据的命令,这时,通过隐含的输入设备输入相关的数据。 表控输入语句使用注意: (1)在输入数据时,如果只输入一个数据,则直接输入,再按回车键即可。但当输入多个数据时,数据之间必须分隔,分隔方法有两种:一种是每输入一个数据,键入一个回车,即一个数据作为一行。另一种方法是在一行输入数据,但数据之间用分隔符隔开,允许的分隔符号有空格、逗号和斜杠。两个数据之间空格可

24、以有多个,但逗号只能有一个,多个逗号意味着对某些变量输入空数据,即不输入数据。例如:,38,READ*,S1,S2,S3 输入方式为:1.2 2.5 3.45或1.2,2.3,3.45再回车,还可以每输入一个数据一个回车。 (2)如果输入数据少于变量个数,则计算机将等待继续输入,如果数据多于变量个数,则多余的数据不起作用。 (3)当多个输入语句并列使用时,一个READ语句对应一行。例如: READ*,M,N READ*,X1,X2 READ*,A1,A2 输入:5,6,12.3,14.8回车 输入:56.4,12.8回车,39,该程序执行后,M为5,N为6,而X1为56.4,X2为12.8而非

25、12.3和14.8,A1、A2得不到值。 (4)如果在输入数据行中出现“/”号,表示READ语句的输入到此结束,未被赋值的变量将不被赋值。例如: READ*,I,J,X,Y 输入数据为: 2,6/14.3,12.64回车 这时,I为2,J为6,而X、Y将得不到值。 (5)特别注意:输入的数据类型应与变量类型尽量保持一致,整型变量不能接受实型数据,否则运行时将出错,实型变量可以接受整型数据,但最后按实型数据处理。,40,3.6.2 表控输出语句,与表控输入语句对应,表控格式输出语句简称表控输出语句,一般格式为: PRINT*,输出项表 其中“*”同样代表表控格式,输出项内容可以是常量、变量、表达

26、式或字符串,它们之间使用逗号隔开。例如 PRINT*,X PRINT*,“Y=”,Y,“Z=”,Z PRINT*,“最大的数是:”,MAX,“最小的数是:”,MIN,41,注意:,(1)每一个PRINT语句在新的一行开始显示。 (2) PRINT*后面字符串里的内容将原样显示,如上例中的“最大的数是:”、“最小的数是:”就是原样显示的,好处在于阅读方便,删除该字符串对程序运行不会产生任何影响。 (3)单独一个PRINT*语句,后面无列表相当于一个换行语句。 (4)PRINT*语句可以进行表达式的运算,例如 PRINT*,X*2,Y+3,42,(5)表控格式还可以写成,WRITE(*,*)输出列

27、表 其中第一个*表示“在系统隐含的输出设备上输出”,隐含输出设备一般是显示器或打印机。第二个*指的是“表控格式输出”,相当于PRINT*中的*号。列表的内容与PRINT语句相同。 WRITE(*,*)X,Y PRINT*,X,Y 两个语句作用相同。,43,例3.1 分析下列程序的结果 IMPLICIT NONE INTEGER M,N READ*,M,N,N,M M=M+N N=M+N PRINT*,M,N END 当输入7 8 9 10时,输出结果为19 28,44,例3.2 输入三个实数,输出最大值和最小值 READ*,X1,X2,X3 MAXNUM=MAX(X1,X2,X3) MINUM

28、=MIN(X1,X2,X3) PRINT*,最大的数是,MAXNUM WRITE(*,*)最小的数是,MINUM END 从键盘输入2.8,9.6,4.3 输出结果为: 最大的数是9.6 最小的数是2.8,45,3.7.1 STOP语句 STOP语句的作用是使程序“终止运行”,一个程序可以有多个STOP语句,为了区分,可以在STOP后面加上标识,其一般格式为: STOP N 例如:,3.7 程序执行控制语句,46,STOP 150 STOP ABC 这样,在程序停止运行时,输出150或ABC等信息。 STOP主要是早期FORTAN语言版本(如FORTRAN66)中,需要用它作为程序运行的结束,

29、因为当时的END语句仅仅为程序结束的标志,真正要结束程序的运行,需要STOP来完成,对于现在的FORTRAN版本,STOP语句以无实质性的含义。,3.7 程序执行控制语句,47,3.7.2 PAUSE语句,PAUSE语句是暂停语句,使程序“暂时停止运行”,这时不是“结束运行”,而只是把系统程序暂时挂起来,按回车键可以恢复运行。其使用格式如下: PAUSE N 例如: PAUSE 200 有意识的PAUSE语句相当于在程序中设置断点,把程序分成几段,调试程序时,一段一段地检查,使用完毕再将PAUSE语句删除。,48,3.7.3 END语句,END语句是一个比较重要的语句,它的作用有二点: (1)

30、结束本程序单位的运行,每个完整的FORTRAN程序,都必须在最后加一个END,以结束程序。 (2)在FORTRAN子程序中,同样用END作为该程序单位的结束,但同时兼起返回的作用:使程序返回到被调用处,即RETURN语句的功能。,49,3.8 程序举例,通过前面学习,我们可以编写简单的FORTRAN程序了,下面举一些具体的例子。 例2.3 任意输入两个数,对它们进行加、减、乘、除、乘方运算 分析,用变量X1、X2存储待输入的两个数,用S1、S2、S3、S4、S5分别用来存放加、减、乘、除、乘方运算结果,程序如下:,50,REAL X1,X2 READ*,X1,X2 S1=X1+X2 S2=X1-X2 S3=X1*X2 S4=X1/X2 S5=X1*X2 PRINT*,2数之和为,S1

温馨提示

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

评论

0/150

提交评论