收藏 分享(赏)

For90 第3章基本语句.ppt

上传人:hskm5268 文档编号:5812290 上传时间:2019-03-18 格式:PPT 页数:110 大小:1.17MB
下载 相关 举报
For90 第3章基本语句.ppt_第1页
第1页 / 共110页
For90 第3章基本语句.ppt_第2页
第2页 / 共110页
For90 第3章基本语句.ppt_第3页
第3页 / 共110页
For90 第3章基本语句.ppt_第4页
第4页 / 共110页
For90 第3章基本语句.ppt_第5页
第5页 / 共110页
点击查看更多>>
资源描述

1、1,第三章 基本语句,3.1类型说明语句,3.2 算术表达式和赋值语句,3.3 输入与输出语句,3.4 输入和输出编辑符,2,前面已经介绍了Fortran90的语言组成元素及有关程序单元等概念,也了解了程序是由语句组成。Fortran90的程序具有强大的功能,语句很多,但支持程序的最基本的语句主要有四种:类型说明语句、赋值语句、输入语句、输出语句。运用这些基本的语句,就可以编写一些简单的程序。,3,1、 Fortran90中的变量通常要进行类型说明,然后才能使用。类型说明语句的式是:类型说明(种别说明),属性说明1,属性说明2,属性说明n:变量名表,3.1 类型说明语句,3.1.1类型说明,4

2、,五种变量的类型说明关键字:,整型:INTEGER 实型:REAL 复型:COMPLEX 逻辑型:LOGICAL 字符型:CHARACTER,5,例如:Integer(kind2),dinmension(1:15):A 说明变量A的类型是整型、种别是2、属性是Dmension(1:15),即A被说明为种别参数为2的一维整型数组,具有15个元素。这里的种别说明和属性说明不是必选的,有时也可以省略。类型说明省略了种别说明和属性说明后具有最基本形式: 类型:变量名表 或 类型*长度:变量名表,例 INTEGER:A,SUM,TOTOL 或 INTEGER(KIND=4):A,SUM,TOTOL 或

3、INTEGER*4:A,SUM,TOTOL 或 INTEGER(4):A,SUM,TOTAL以上语句等价,例 INTEGER : C,DINTEGER(2),DIMENSION(1:10):XINTEGER,DIMENSION(1:3,1:3):YREAL(4),DIMENSION(1:2,1:5):WREAL(8):RCOMPLEX(8):PLOGICAL:TCHARACTER(LEN=5):MCHARACTER(5):M,功能相同,表示长度为5个字符的变量M,选择恰当的数据类型:运算速度、范围、精度、注意实数的误差,整型数据运算速度快,在机内存储没有误差,但能表达的值的范围较小; 实型数据

4、能表示小数、分数及不同的精度,表达的值的范围大,但数的外部表示和机器存储会有误差。例,10.2,在机内表示可能为10.1999998。 使用实数时,尽量避免作相等或不相等的比较例:A是实型变量,对其与10.2作相等与否比较,不能写成 :IF(A=10.2) PRINT *,A应改写为:IF(ABS(A-10.2)1.0E-6)PRINT*,A,9,2、 淘汰隐式说明 FORTRAN77的版本规定,可以有隐式说明。而FORTRAN90不提倡使用隐式说明,为防止隐式说明起作用,应该在程序说明部分一开始就用语句: IMPLICIT NONE 向系统声明不使用隐式说明,在程序中使用的变量必须先说明方能

5、使用。,10,3、语句顺序:IMPLICIT NONE先写,然后写类型说明语句。类型说明语句是非执行语句,一般写在可执行语句前面。 4、类型说明时,可进行变量的初始化REAL:SCORE=89.5,11,3.1.2 种别说明,1、种别的说明方法:关键字KIND,后跟=及种别参数,写在类型关键字后面的括号内。例如:REAL(KIND=4):X !种别说明可以缺省 或 REAL(4):X 或 REAL*4:X,12,不同类型的数据KIND值不同: INTEGER的KIND值为:1、2、4,8,缺省为4 LOGICAL的KIND值为:1、2、4,缺省为4 REAL的KIND值为:4、8,缺省为4 C

6、OMPLEX的KIND值为:4、8,缺省为4 CHARACTER的KIND值为:1,通常在说明字符型变量时不用说明其KIND值,而是说明其长度,一个字符占一个字节。,13,KIND(X)函数:专用于种别选择的内在函数,返回X的种别参数值 如: KIND(0):返回值是整型的标准(缺省)种别参数KIND(0.0):返回值是实型的标准种别参数kind(0.0,0.0):返回值是复型的标准种别参数KIND(.FALSE.):返回值是逻辑型的标准种别参数KIND(A):返回值是字符型的标准种别参数,2、有关种别的函数,14,SELECTED_INT_KIND(N):用于产生一个在某一范围内的整型的种别

7、参数值如: SELECTED_INT_KIND(6) 则返回一个值的范围在-106106之间整数的种别参数值 即在-106106之间的整数需用多少字节才能表示,因为整数的种别参数值只有1,2,4,所以种别参数值应该是4字节。,2、有关种别的函数,15,例2-4 测试FORTRAN90系统的整数种别参数,PROGRAM INT_KINDIMPLICIT NONEINTEGER:I PRINT *,KIND(0),RANGE(0) DO I=1,10PRINT *,I,SELECTED_INT_KIND(I) ENDDO END PROGRAM INT_KIND,整数缺省的种别参数值,缺省的种别参

8、数值其可表示的十进制幂的范围,给定范围内的种别参数值,4 91 12 13 24 25 46 47 48 49 410 -1,16,SELECTED_REAL_KIND(N,M): 用于产生一个在某一精度和范围内的实型种别参数值.如: SELECTED_REAL_KIND(8,88) 则返回一个表示8位精度、值的范围在-10881088之间实数的种别参数值,其值应该是8(字节)。,2、有关种别的函数,17,INTEGER,PARAMETER:LONG=SELECTED_REAL_KIND(8,88)此语句说明种别类型参数值,说明的符号常量LONG提供了8位的精度,以及-10881088的值的范

9、围。 可以用以下两个函数得到任意实数的精度和范围: PRECISION 返回精度值(有效数字) RANGE 返回值的范围 如: PRECISION(45.89_LONG)-有效数字至少为8位 RANGE(45.89_LONG)-数的范围至少是-10881088,18,3、常数种别的表示,后缀法: 15_2: 表示种别为2的整型数15 14.56_4:表示种别为4的实型数14.56 .false._4:表示种别为4的逻辑型常数假 注意:复型常数的种别由两个实数成分的种别来标明。(3.5_4, 8.6_4) 前缀法:字符型 1_abcd: 表示种别为1的字符常数 abcd,19,3.1.3 属性说

10、明,属性是被说明对象的所属性质。使该对象具有某种附加功能、特殊的使用方式与适用范围。属性关键字写在说明语句种别说明符之后,双分隔符之前,各属性关键字之间用逗号分开,次序任意。 属性关键字: PARAMETER DIMENSION PUBLIC INTENT PRIVATE OPTIONAL POINTER SAVE TARGET EXTERNAL ALLOCATABLE INTRINSIC,20,(1)功能:用一个符号代表一个常量,称为符号常量(常数) (2)写法: Real,Parameter :G=9.8 !说明类型时赋值 (3)位置:位于可执行语句之前,1、Parameter 属性,21

11、, 程序中不得改变其值 与普通常量的区别:不可以作语句标号和FORMAT中重复系数 类型:需先定义其类型,(4)使用规则,22,DIMENSION也称数组属性。定义一个数组必须在说明语句中附加数组属性关键字。DIMENDION(数组形状说明) 例如: INTEGER,DIMENSION(1:10):X,2、DIMENSION属性,23,FORTRAN90有四种表达式: 算术表达式 关系表达式 逻辑表达式 字符表达式,3.2 算术表达式和赋值语句,以后章节再介绍,24,3.2.1 算术表达式,1、 5个算术运算符:,* 乘方* 乘 / 除 + - (正,负,加,减),由运算符和括号将各运算元素(

12、也称为操作数,如:常数、变量、函数、数组元素)连接起来的有意义的式子。,25,2、运算符的优先级,26,3、内在函数,FORTRAN 90配置的函数称为内在函数。内在函数分为三种: 基本函数 转换函数 查询函数 使用函数应注意的四个问题: 1、函数名及函数的功能 2、自变量的个数及类型 3、函数值的个数及类型 4、对函数的限制,27,1、定义:系统函数,系统已经定义了的函数(P40表3-1) 2、种类与写法,28,29,(3)查询函数(P41),KIND() SELECTED_INT_KIND() SELECTED_REAL_KIND PRECISION() RANGE() ,31,注意: (

13、P40、41),所有内在函数见P285附录III 三角函数自变量单位为弧度,如不是则须转换sin、 cos、 tan 自变量个数、次序、类型例:MOD(5,3)=2 ;MOD(3,5)=3 MOD(5.0,3.0)=2.0 ;MOD(3.0,5.0)=3.0 某些函数自变量只能为实型如:log(2.0) (loG(2)错) 自变量可以是有值的常量、变量、表达式 ,还可以是函数例: ABS(B*2+SIN(A+B)SQRT(SQRT(625.0),32,4、算术表达式,33,例: 3.1_4+4.5_8 得7.6_82.1_4+(6.5,3.8_8) 得(8.6_8,3.8_8),34,书写表达

14、式注意事项: 1)避免整数相除,如1/2+1/2=0 2)避免大数相乘,产生溢出 3)避免除数为0或除数是很小的数 4)几个乘方相连时,注意写法,在适当的地方加上括号。 如:323 对多次乘方,先右后左, 3*2*3相当于3*(2*3),35,36,1、-B*3:相当于-(B*3) 2、X/Y*Z:相当于(X/Y)*Z,想一想:1/2*3.6-1.2的值? 有何3.6*1/2-1.2的值? 不同?,例:,1/2*2=0 8/5+2.0*5/2=6.0(逐步转化),37,例:1、2、,答案:1、2.0*SIN(3.14/4)/3.02、(Sin(4.0)+cos(10*3.14/180)*exp

15、(2.5)/(Sqrt(2.0)+abs(a*x)+log(3.0*5),例:注意函数对自变量的类型要求1、2、,39,表达式计算要注意由于有效位数限制引起的误差:,由于十进制小数转换为二进制小数可能不能精确转换,会引起的误差。 表达式1.0/3.0的计算结果在内存不是0.3333333,而是0.3333333(系统有效位数为7位),与理论值有些小的误差,这在程序设计中应事先估计到。还应考虑表达式计算过程中的“溢出”问题。,40,一、一般形式变量V=表达式e例:A=3.14159*R*2 注意读法B=AC=3逻辑型、字符型的赋值语句要求“=”两边类型必须相同;对于数值赋值,不区别整型、实型和复

16、型,允许“=”两边类型不同,执行赋值语句后,变量类型不变,系统自动将“=”后边表达式的值转换后再赋值给变量。,3.2 赋值语句(可执行语句),41,二、赋值语句执行过程: 1、先计算“=”右边表达式值 2、再将结果转换成“=”左边变量类型、种别 3、最后赋值,例:A=3.9 !若A为整型,则执行该语句后A的值为3,例:I=6.2*2 !I为整型,值为12A=6*2 !A为实型,值为12.0C=I+A(C复型) !C值为(24.0,0.0) 例: m为整型,x为实型 M=(1.0,2.0)*2 :2 X=(1.5,2.0)+(2.0,1.0) :3.5,42,三、作用1、计算(公式赋值语句)2、

17、赋值 例、交换A,B值;,PROGRAM abIMPLICIT NONEINTEGER:A,B,TREAD*,A,BPRINT*,A,BT=A; A=B; B=TPRINT*,A,B END PROGRAM AB,PROGRAM X1X2IMPLICIT NONEREAL:X1,X2,TREAL:A=3,B=10,C=5T=B*B-4*A*CX1=(-B+SQRT(T)/(2*A)X2=(-B-SQRT(T)/(2*A)WRITE(*,*)X1=,X1WRITE(*,*)X2=,X2 END PROGRAM X1X2,44,45,3.3 输入输出语句,用FORTRAN语言解决实际问题的过程,如

18、下图所示:,46,3.3.1 输入/输出(I/O)的概念,I/O概念共有四个: 一、I/O的定义I/O是相对于内存而言的,键盘属于输入设备,显示器属于输出设备,软盘、硬盘既是输入设备,又是输出设备。,47,1、I/O的对象 列在中 2、I/O的方向及语句READ (U,f) WRITE其中:输入 READ语句输出 PRINT语句,只输出到显示器WRITE语句,适合任何输出设备,二、I/O需确定的三个因素,格式,设备(部件),3、设备与格式U(部件) * : 系统约定设备 某个值: 指定通道号(设备逻辑号、文件号)表控格式I/O(*): 系统约定的格式。 f(格式) 基本格式(自定格式)I/O:

19、按用户要求的格式 组织I/0。 带控制信息表的I/O: 系统约定设备、约定格式的输入、输出语句简单为:READ (*,*) 变量表WRITE(*,*) 表达式,49,三、的内容,READ中的输入表的内容可以是:变量名,数组名,数组片段名,结构成员名,隐循环表(隐DO表),不能是表达式WRITE 中的输出表内容可以是:PRINT变量名,数组名,数组片段名,结构成员名,隐循环表(隐DO表), 常数,函数和表达式。,50,四、记录和文件,1、记录:以回车符(ENTER)作为记录的分隔标记。每执行一个I/O语句就启动一个新记录。I(输入):碰到回车(ENTER)为一个记录。O(输出):一行为一个记录。

20、 2、文件:文件是同类记录的集合,文件的读取单位为记录。,51,3.3.2 输入语句,输入数据时一般不用自定格式输入语句,而用表控格式输入语句。,一、含义输入:数据 内存(变量)赋值语句:定值,少量,程序中变值输入语句:变动(待定),批量,执行时才送值 二、输入语句(读语句 )最基本格式: 1、 READ(部件号,格式说明) 输入表如:READ(5,(I7) X,Y 可简化: READ(*,(I7) X,Y READ (I7),X,Y,52,输入语句,例:Read *,A,D,F,三、功能:执行时,暂停,等待用户从键盘输入数据, 分别赋给各变量,赋值顺序自左向右。,53,四、程序执行过程中按表

21、控格式输入数据各数据间用分隔符:,或空格。 类型匹配:整型: 带小数点只取整数部分;实数:可以为整数;复数:(实部,虚部);字符:一串字符:赋值时长度转化或一串字符 即可省略。逻辑:以T或F作为第一个字母的字符串(点号1个、空格多个在前均忽略),54,例:read *,I 输入:2.5 取2 如输入2+1,则出错 出错信息:run-time error F6601:Read(con)-Invalid Integer含义: 输入了无效的整数 输入数据个数:1)不得少于变量的个数;2)可分行输入;3)多余的数据不起作用,例: READ *,A,B,C,D,E,F以下几种方式输入都是可行的: 1)1

22、1.2,21.5,32.4,-10.1,0.83,-7.3 2)11.2,21.5,32.4-10.1,0.83,-7.3 3)11.221.5,32.4,-10.10.83-7.3 4)11.2,21.5,32.4,-10.1,0.83,-7.3,1.3,9.4,7.1,56,输入数据时 数据间的空格可以有多个,/表示输入数据结束,后面的数据被取消,没有输入数据的变量值为原值;Read*,A,B,C 输入: 2,1/3 结果: A=2 B=1 C=0 r*c: r为重复数4*0.5,2*3,2*AB,3*(1.0,-1.0),57,多个Read语句每个Read必须从一个新的行输入数据例:re

23、ad *,a,b,c,dread *,e 键盘输入:1,2,3 数据不够,继续读取下一行4,5 5 作为无效数据被放弃6,58,3.3.3 输出语句,注意:缺省设备的写语句关键字是PRINT,而不是WRITE,也就是说,用WRITE语句其部件号不能省,可以是一个数字如6,或是*。,59,WRITE(*,(1X,2F6.2)X,Y或:PRINT (1X,2F6.2) ,X,Y,其中的格式说明符(1X,2F6.2) : 1X表示一个空格,用于走纸控制。每行输出都要在最前面准备一个字符控制走纸,它将被吃掉,一个空格表示走纸一行,即换一行,实际上这个空格并不输出,即屏幕上并没有这个空格字符(FORTR

24、AN 77)。 2F6.2表示使用实型编辑符F6.2两次,分别输出X,Y,60,61,三、功能:按表控格式依次输出各数据的值。例:PRINT *,N=,N,如,N=100,则输出结果为:N= 100,62,四、表控格式输出:,说明: 1、PRINT语句的输出设备由计算机系统隐含 指定,而用WRITE则可以在希望的任何设备输出,其用途比PRINT广。 2、 若WRITE(*,*),则第一个*为隐含设备(显示器或打印机),此时WRITE和第一个*作用相当于PRINT,第二个*指按表控格式输出。,63,3、如输出语句无输出表列,则输出一个空行,可实现“隔行打印” 例: PRINT * 4、不同系统的

25、表控格式输出有不同规定(P51)整数占11列,实数占15列。,说明:,64,5、数值之间输出用空格隔开,而数值与字符及字符之间无空格隔开。 不同数据类型输出形式:(例L3-10)复型: 带( )输出逻辑型:T,F 只输出一个字符字符型:丢失,采用左对齐输出,说明:,65,6、一行显示不下,数据自动换行输出 7、多个PRINT语句:每个开始输出一个新的记录,PROGRAM MAINCOMPLEX:I=(1,2)LOGICAL:F=.TRUE.REAL:W=120.34INTEGER:A=2564WRITE(*,*)“I=“,IWRITE(*,*),“F=“,FWRITE(*,*),“W=“,WW

26、RITE(*,*),“A=“,AWRITE(*,*),“FORTRAN90“ END PROGRAM MAIN,输出结果:I= (1.000000,2.000000)F= TW= 120.3400A= 2564FORTRAN90,66,3.4 输入与输出编辑符,输入、输出语句的一般形式: READ (,) READ , WRITE (,) PRINT , ,67,格式说明:*、格式字符表达式 作用:精确地说明每一个数据应该怎样输入或输出,包括类型、小数点位置、有效位数、输出结果的形式。 格式说明可以是字符表达式或字符变量: 例: WRITE(*,( I5,3F5.4,A16 )IOLIST 或

27、分解为: CHARACTER(80)MYLISTMYLIST=( I5,3F5.4,A16 )WRITE(*,MYLIST)IOLIST,68,一. 整型数的输入输出,1、编辑符控制输出 编辑符专门用于整型数据的输入/输出。一般形式为: 1),整型,字段宽度,3.4.1 常用编辑符,2) rIw 或rIw.m,重复系数,至少m位数字,69,例1设 J=10, K=-12,L=123WRITE (*,”(1X,I3,I5,I7)”)J,K,L,注意:1数字在指定的区域内右端对齐,不足w则左边补空格。2负数的符号也包含在字段宽度内,70,3如果应输出的位数超过了规定的字段宽度,则不输出有效数据,以

28、w个*填充。 例2, 设 J=-100, K=-12,L=123WRITE (*,”(1X,I3,I5,I7)”)J,K,L 则结果为:*-12123,71,例5如将上例1中的格式串修改为print “(2I3,I6.5)”, J,K,L 则输出结果会变为:10-1200123 !Iw.m :m位数,则按照实际数输出,例1设 J=10, K=-12,L=123WRITE (*,”(1X,I3,I5,I7)”)J,K,L,72,2I 编辑符控制输入:rIw其中w控制输入数据所占的位数。,例6 READ(*,”(I4,I5)”)I,J输入数据如下:345415输入数据后按回车键,则I=345,J=

29、415,73,1编辑符格式rFw.d 将数据按小数形式输出rEw.d 将数据按指数形式输出r重复系数 w字段宽度(总宽度) d小数部分宽度,二、实型数的输入输出,74,F编辑符,F编辑符用于实型数据的输入/输出,它使输出的数据以“小数形式的实数”表示。(定点数:单精度实数,4个字节,7个有效数字) 一般形式: . d(符号位、小数点、整数位、小数位),实数,字段总宽度,小数位数,75,设a=1.2;b=45.67;c=-8.3527READ(*,(F4.1,2F10.6))A,B,C (1)124567-83527 !输入不带小数点,由则编辑符指定位置自动加上小数点。按w截取数据,由d决定小数

30、点的位置,按右对齐,空格当0,1)实数的输入(三种方式),76,(2)1.245.67-8.3527 !输入的数据本身带小数点,如果编辑符中规定的小数点位置和数据本身的小数点位置有矛盾,按“自带小数点优先”原则,d不起作用,小数点记入w中(3)1.2,45.67,-8.3527(表控格式) !用自由格式,逗号分隔,但每个数连同后随逗号必须=w,否则出错。,READ(*,(F4.1,2F10.6))A,B,C,77,例:X=25.6 Y=-378.452 Z=873.2 WRITE(*,(F5.1,2F8.2))X,Y,Z 结果:25.6-378.45873.20,2)实数输出:,78,用F编辑

31、描述符输出的结果,79,注意: 1 w包括数符和小数点的两位 2 若数据小于w位,则左边补空格 3 输出值时舍入,而不是截断 4. 如果是科学计数法则转换小数形式,结果: 12345.68 !舍入,取2位小数 *!所给描述符整数位不够,小数位要占2位 -45.60 !输出小数形式的实数 -365.00 !输出时小数点一定占宽度 123456.712345678.0-45.6-365.0 ! (4F10.1格式),例: REAL*4:G,H,E,RG=12345.678; H=12345678. ;E=-4.56E+1 ;R=-365.WRITE(*,“(F8.2)”) G,H,E,R !分4行

32、输出WRITE(*,(4F10.1)G,H,E,R !1行输出,81,X=123567890.876543Y=0.000001245WRITE(*, (1X,F15.6,F15.2) X,Y 输出结果:* 0.0015列 15列X Y,说明:优点,输入时准备数据方便,和数学中实数的写法相同,输出时,数据便于阅读。缺点,必须预先知道输出数据的范围。另容易产生“大数印错”、“小数印丢”,82,E编辑描述符也是用于实型数据的输入/输出,但它的I/O形式是以指数的形式表示的实数,一般形式为:E w. d,E编辑符,实数以指数形式表示,字段总宽度,在指数形式中数字部分(尾数)的小数位数,83,Ew.d格

33、式:数符+0+小数点+小数部分+E+符号+指数部分2位3 d 4指数部分宽度固定4列,w=d+3+4, 即w=d+7优点:不必事先估计数的大小,能容纳任意大小 的数据。,84,结果:0.12E+050.12E+08-.46E+02-.37E+030.1E+05 0.1E+08 -0.5E+02 -0.4E+03,例: REAL*4:G,H,E,RG=12345.678; H=12345678. ;E=-4.56E+1 ;R=-365.WRITE(*,“(E8.2)”) G,H,E,R !分4行输出WRITE(*,(4E10.1)G,H,E,R !1行输出,85,要输出的数据 编辑符 输出结果

34、说明728.653 E10.2 0.73E+03 先化成 0.728653103 0.00000000124 E12.4 0.1240E-08 先化成0.124 10-8 1864.323 E13.6 0.186432E+04 先化成0.186432 104 72.8106 E12.7 * W应d+7=14字段宽度不够,用E编辑符输出的情况,规则: 1wd+7 数据右对齐,左边用空格填满w位若wd 四舍五入取d位尾数位数d 其后用0补齐 注意:一般格式E16.7 7+7+2(2个空格,以便阅读),格式: Dw.d 数符+0+小数点+小数部分+D+符号+指数部分2位3 d 4 方法同E格式,三、

35、 双精度数的输入输出,复型数据是用两个实型编辑符(例如,用2Fw.d或(Fw.d,Fw.d)来分别描述该复型的实数部分与虚数部分的。 如:COMPLEX:XX=(2.8,4.6)PRINT (2F4.1),XPRINT *,X !表控格式 输出结果为: 2.8 4.6 (2.800000,4.600000) !表控格式输出带一对括号,四. 复型编辑,89,格式:rLw 功能:逻辑值的输入输出 规则:输出一个字母,在字段最右端,前面补空格输入时按宽度读取,以第一个字母作为逻辑值例: LOGICAL:F=.TRUE.PRINT (L6),F,五.逻辑型数的输入输出,输出 : T,90,格式:A例:

36、CHARACTER*5 :A,B,C !定义长度为5的字符变量READ(*,(A,A,A))A,B,CWRITE(*,(A,2X,A,2X,A))A,B,C输入:ABCDBASICFORMAT !按定义变量的长度取值 结果:ABCDBASICFORMA,六、字符型数据的输入输出,91,输出:,1)X编辑描述符 功能1:在输出时产生空格,它的一般形式为: nX 例: K=123 L=2001 A=34.5WRITE(*,(I3,2X,I4,3X,F4.1))K,L,A结果:123200134.5,七. 其他格式编辑符,功能2:输入时,表示跳过n个字符READ(*,(2X,F7.1))A输入:12

37、34.51A=34.51 !12跳过,X编辑描述符,2撇号编辑符(单或双) 功能:撇号内的字符串原样输出。 例:PRINT (1X,F3.1,”AND”,F3.1), X,Y 结果: 1.1 AND 1.2 !X=1.1,Y=1.2,95,3 /斜杠编辑符 作用:结束本记录的输出并开始下一个记录的输出 注意:1.如两个连续斜杠,在输完前面记录后,空一行再输出2.如在编辑符的最后出现一个斜杠在输出完记录后,再输出一个空行,96,例: WRITE(*,“(XYZ,ABC)“) 结果: XYZABC,又如: 改用格式串 WRITE(*, “(XYZ,/,ABC)”)XYZABC 改用格式串 WRIT

38、E(*, “(XYZ,/,ABC)”)XYZABC,97,4 反斜杠编辑符 作用:使数据输出时不结束本行,下一语句输出的数据从本行末开始输出。 例: integer:x,yx=123;y=456print (“x=“,i3,),xprint (2x,“y=“,i3),yend,X=123 y=456,带控制信息表的输入输出,1、带控制信息表的读语句(P49) READ(说明符1,说明符2,说明符n)输入表关键字=指定参数这里的说明符是指一些附加的功能(例如,指示读入是否出错,出错如何处理等),这些功能每一个可写成一个控制说明符,彼此用逗号分开,全部控制说明符用一对括号括起,写在读关键字和输入表

39、之间,称为控制信息表。,例如:,WRITE(说明符1,说明符2,说明符n)输出表WRITE(UNIT=6,FMT=(1X,2F8.2),IOSTAT=M)X,Y各部分与输入语句中基本相同。,带控制信息的输出语句(P51),例:,program mainreal:a,binteger:mread *,a,bWRITE(UNIT=6,FMT=(2F8.2),IOSTAT=m) A,Bprint *,m end,WRITE(*,(2F8.2),IOSTAT=m) A, B,102,3.4.2 有关一个记录的编辑格式说明,1 一个记录的编辑格式由它所需的各种类型编辑符组合在一起,彼此用逗号分开,并用括

40、号括起来,再在外面加上单撇号(或双撇号)做定界符。如:(编辑符1,编辑符2,编辑符n) 例:PRINT (1X,F3.1,”AND”,F3.1),X,Y,二、 编辑符的类型必须与输入(或输出)表中对应位置数据的类型一致,否则出错。 三、 编辑符个数和变量个数应相等,如编辑符个数变量个数,则多余编辑符不起作用;如编辑符个数变量个数,则重复使用格式说明,每重复一次产生一个新纪录。,例1: READ(*,100)A,B,C100 FORMAT(10F8.3) !多出7个F8.3不用,不影响语句的执行 例2: PRINT (1X,I4,F6.1,E10.3),A,B,C,D,E,F,G,H规定一行内I

41、/O三个数,如一行输完后, I/O表还有内容未输,则按此行数据格式在下一行继续I/O。 A B CD E FG H 这样同一列的数据类型必须一致。,READ(*,(10F8.3)A,B,C,105,四、记录编辑格式中如有相连的几个相同的编辑符,则可简化为一个编辑符,只需在前面加上重复系统数, 例: PRINT (1X,F6.1,F6.1,I4,I7,I7,I7),A,B,C,D,E,F 也可写成: PRINT (1X,2F6.1,I4,3I7),A,B,C,D,E,F,106,五、相同的编辑符串连续出现时,可简化为1串,用括号括起来,前置重复系统数。 例: PRINT (1X,F5.1,2I4

42、,F5.1,2I4,E10.3),A,B,C,D,E,F,G 可写为: PRINT (1X,2(F5.1,2I4),E10.3),A,B,C,D,E,F,G,107,六、在读写语句中可没有变量名表,但不可没有记录格式说明,此时的写语句输出1空行,读语句执行时则读入1空行(即按一下回车键)。 例:WRITE(10,(1X,3F5.1),IOSTAT=L)PRINT (1X,4I3)PRINT *READ *,三角形面积= ,其中:s=,PROGRAM exam1REAL a,b,c,s,areaREAD*,a,b,cs=(a+b+c)/2area=SQRT(s*(s-a)*(s-b)*(s-c)

43、PRINT*,area=,area END 运行程序输入数据: 2.5 3.5 4.5 输出结果数据:area= 4.353070,PRINT (1x,3(A,F6.3),A,F8.3),A=,A,B=,B,C=,C,AREA=,ARAE,3.4.2 应用举例,PROGRAM exam2IMPLICIT NONEREAL a,b,c,max_num,min_numREAD*,a,b,cMax_num=MAX(abs(a),abs(b),abs(c)Min_num=MIN(abs(a),abs(b),abs(c)PRINT*,max=,max_num, min=,min_num END 运行程序输入数据: 2.5 -3.5 -4.5 输出结果数据: max= 4.500000 min= 2.500000,例:输入3个实数,求其中绝对值最大和最小的数,并输出。,WRITE(*,(1X,2(A,F8.2)max=,max_num, min=,min_num,1、类型说明语句 2、算术表达式和赋值语句 3、输入输出语句 表控格式 自定格式(编辑符的使用:I、F、E、A、L、X、等) 带控制信息表,本章小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报