VisualFortran90第3章.ppt_第1页
VisualFortran90第3章.ppt_第2页
VisualFortran90第3章.ppt_第3页
VisualFortran90第3章.ppt_第4页
VisualFortran90第3章.ppt_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

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

文档简介

第3章基本语句,3.1类型说明语句,3.2算术表达式和赋值语句,3.3输入与输出语句,3.4输入和输出编辑符,基本语句概述,前面已经介绍了Fortran90的语言组成元素及有关程序单元等概念,也了解了程序是由语句组成。Fortran90的程序具有强大的功能,语句很多,但支持程序的最基本的语句主要有四种:类型说明语句、赋值语句、输入语句、输出语句。运用这些基本的语句,就可以编写一些简单的程序。,Fortran90中的变量通常要进行类型说明,然后才能使用。类型说明语句的形式是:类型说明(种别说明),属性说明1,属性说明2,属性说明n:变量名表例如:Integer(kind2),dimension(1:15):A说明变量A的类型是整型、种别是2、属性是Dimension(1:15),即A被说明为种别参数为2的一维整型数组,具有15个元素。这里的种别说明和属性说明不是必选的,有时也可以省略。,3.1类型说明语句,例INTEGER:A,SUM,TOTOLREALX,Y(缺省双冒号)CHARACTER:C!Character类型的长度缺省为1。其余类型的说明语句请自己练习。,类型:变量名表(注意:此处双冒号可以省略,但不提倡),省略了种别说明和属性说明后具有最基本形式:,选择恰当的数据类型:运算速度、范围、精度、注意实数的误差,整型数据运算速度快,在机内存储没有误差,但能表达的值的范围较小;实型数据能表示小数、分数及不同的精度,表达的值的范围大,但数的外部表示和机器存储会有误差。例,10.2,在机内表示可能为10.999998。使用实数时,尽量避免作相等或不相等的比较例:A是实型变量,对其与10.2作相等与否比较,不能写成:IF(A=10.2)PRINT*,A应改写为:IF(ABS(A-10.2)=n+d+1用此来确定w的宽度,1)实数的输入(三种方式)READ(*,(F4.1,2F10.6))A,B,C输入:124567-83527,则a=1.2;b=45.67;c=-8.3527!不带小数点输入不带小数点,则由编辑符指定位置自动加上小数点。按w截取数据,由d决定小数点的位置,按右对齐,空格当0,(2)1.245.67-8.3527,READ(*,(F4.1,2F10.6))A,B,C,!带小数点。输入的数据本身带小数点,如果编辑符中规定的小数点位置和数据本身的小数点位置有矛盾,按“自带小数点优先”原则,d不起作用,小数点记入w中,READ(*,(F4.1,2F10.6))A,B,C,(3)1.2,45.67,-8.3527(表控格式)!用自由格式,逗号分隔,但每个数连同后随逗号必须=d+3+4优点:不必事先估计数的大小,能容纳任意大小的数据。Ew.dEee指定指数的宽度,例:用E格式输出数据X=-84.31Y=3.141592Z=0.0187WRITE(*,(E10.3,E13.6,E15.6)X,Y,Z结果?,-0.843E+020.314159E+010.187000E-01,规则:1wd+7数据右对齐,左边用空格填满w位若wd四舍五入取d位尾数位数abs(A)=0.1使用F格式输入输出,A=758321.6G14.7ABS(A)107用E格式0.7583216E+08注意:采用F格式,d为全部数字的位数优先满足整数位,格式:Dw.d数符+0+小数点+小数部分+D+符号+指数部分2位3d4方法同E格式,三、双精度数的输入输出,复型数据是用两个实型编辑符(例如,用2Fw.d或(Fw.d,Fw.d)或2Ew.dEe来分别描述该复型的实数部分与虚数部分的。如:COMPLEX:XX=(2.8,4.6)PRINT(2F4.1),X输出结果为:2.84.6,四.复型编辑,格式:rLw功能:逻辑值的输入输出规则:输出一个字母,在字段最右端,前面补空格输入时按宽度读取,以第一个字母作为逻辑值,五.逻辑型数的输入输出,六、字符型编辑A,A用来编辑字符型变量,它不关心该字符串的长短如何。例:CHARATER*5A,B,CREAD(*,(A,A,A))A,B,CWRITE(*,(A,2X,A,2X,A))A,B,CEND输入:ABCDBASICFORMAT,结果:ABCDBASICFORMA,注意:对于字符型数据的输入:1、在表控格式输入的时候,输入的字符串可以加上撇号,也可省略,撇号不起作用2、在有格式输入的时候,输入的字符串的时候不需要加上撇号,如果输入带撇号,则撇号算入W宽度,,1)X编辑描述符功能1:在输出时产生空格,它的一般形式为:nX例:K=123L=2001A=34.5WRITE(*,(I3,2X,I4,3X,F4.1))K,L,A,六.其他格式编辑符,结果:123200134.5,功能2:输入时,表示跳过n个字符READ(*,(2X,F7.1))A输入:1234.51,A=34.51!12跳过,2撇号编辑符(单或双)功能:撇号内的字符串原样输出。3H编辑符:描述字符串nH注意:1.N必定等于字符串长度,否则编译出错2.字符串中空格有意义,X=45.7Y=289.7WRITE(*,100)X,Y100FORMAT(2HX=,F5.1,4HY=,F6.2)END,结果:X=45.7Y=289.70也可FORMAT(X=,F5.1,Y=,F6.2),4斜杠编辑描述符作用:结束本记录的输出并开始下一个记录的输出WRITE(*,(5HABCDE,/,5HBCDEF,/,1X,5HCDEFG))结果如下所示:ABCDEBCDEFCDEFG注意:1.如两个连续斜杠,在输完前面记录后,空一行再输出2.如在编辑符的最后出现一个斜杠在输出完记录后,再输出一个空行,作用:当输入表、输出表输完后,阻止后面的编辑符起作用。但若输入、输出表未结束之前,不起作用。,5冒号编辑符:,INTEGER:X,Y,ZX=1;Y=2;Z=3PRINT(1x,I1:+,I1:,+,I1:+),X,Y,ZEND,输出结果为:1+2+3,带控制信息表的输入输出,1、带控制信息表的读语句(P49)READ(说明符1,说明符2,说明符n)输入表关键字=指定参数这里的说明符是指一些附加的功能(例如,指示读入是否出错,出错如何处理等),这些功能每一个可写成一个控制说明符,彼此用逗号分开,全部控制说明符用一对括号括起,写在读关键字和输入表之间,称为控制信息表。,例如:,WRITE(说明符1,说明符2,说明符n)输出表WRITE(UNIT=6,FMT=(1X,2F8.2),IOSTAT=M)X,Y各部分与输入语句中基本相同。,带控制信息的输出语句(P51),例:,programmainreal:a,binteger:mread(UNIT=5,FMT=*,IOSTAT=m)a,bprint*,A,Bprint*,mend,read(*,*,IOSTAT=m)A,B,1一个记录的编辑格式由它所需的各种类型编辑符组合在一起,彼此用逗号分开,并用括号括起来,再在外面加上单撇号(或双撇号)做定界符。如:(编辑符1,编辑符2,编辑符n)例:PRINT(1X,F3.1,”AND”,F3.1),X,Y,3.4.2有关一个记录的编辑格式说明,3记录编辑格式如有相连的几个相同的编辑符,则可简化为一个编辑符,但在前边需加上重复系数。例:PRINT(1X,F6.1,F6.1,I7,I7),A,B,C,D可写为:PRINT(1X,2F6.1,2I7),A,B,C,D,2.编辑符的类型必须与输入(或输出)表中对应位置数据的类型一致,否则出错。,4相同的编辑符串连续出现时,可简化为一串,用括号括起,前置重复系数。例:PRINT(1X,F6.1,2I4,F6.1,2I4,E10.3),A,B,C,D,E,F,G可写为:PRINT(1X,2(F6.1,2I4),E10.3),A,B,C,D,E,F,G,5在读写语句中可没有变量名表,但不可没有记录格式说明,此时的写语句输出1空行,读语句执行时则读入1空行(即按一下回车键)。例:WRITE(10,(1X,3F5.1),IOSTAT=L)PRINT(1X,4I3)PRINT*READ*,6编辑符个数和变量个数应相等,如编辑符个数多余变量个数,则多余编辑符不起作用;如编辑符个数少于变量个数,则重复使用格式说明,每重复一次产生一个新纪录。例:PRINT(1X,I4,F5.1,E10.3),A,B,C,D,E,F,G,H则按如下顺序打印各项数据:ABCDEFGH,例:READ(*,100)A,B,CFORMAT(10F8.3)多出7个F8.3不用,不影响语句的执行,例:WRITE(*,100)IFORMAT(I=)输出I=,永不停止,原因是漏写了I4编辑符,三角形面积=,其中:s=,已知三角形3条边:a、b和c,输入边长,计算面积,并输出。,PROGRAMexam1REALa,b,c,s,areaREAD*,a,b,cs=(a+b+c)/2area=SQRT(s*(s-a)*(s-b)*(s-c)PRINT*,area=,areaEND运行程序输入数据:2.53.54.5输出结果数据:area=4.353070,PRINT(1x,3(A,F6.3),A,F8.3),A=,A,B=,B,C=,C,AREA=,ARAE,PROGRAMexam2IMPLICITNONEREALa,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

温馨提示

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

评论

0/150

提交评论