fortran第3章2Fortran语言程序设计初步.ppt

上传人:wuy****n92 文档编号:70271688 上传时间:2023-01-18 格式:PPT 页数:138 大小:713KB
返回 下载 相关 举报
fortran第3章2Fortran语言程序设计初步.ppt_第1页
第1页 / 共138页
fortran第3章2Fortran语言程序设计初步.ppt_第2页
第2页 / 共138页
点击查看更多>>
资源描述

《fortran第3章2Fortran语言程序设计初步.ppt》由会员分享,可在线阅读,更多相关《fortran第3章2Fortran语言程序设计初步.ppt(138页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、3.4FORTRAN字符集字符集3.5常量常量3.6变量变量3.7内部函数内部函数3.8算术表达式算术表达式3.9赋值语句赋值语句3.10简单的输出语句(表控输出)简单的输出语句(表控输出)3.11简单的输入语句(表控输入)简单的输入语句(表控输入)3.12PARAMETER语句语句(参数说明参数说明)3.13PROGRAM语句语句,END语句语句,STOP语句语句,PAUSE语句语句下一页上一页停止放映不是任何一种外文字母或数字符号都能被某一计算机语不是任何一种外文字母或数字符号都能被某一计算机语言接受。每一种计算机的高级语言分别规定了它允许使言接受。每一种计算机的高级语言分别规定了它允许使

2、用的字符。用的字符。FortranFortran允许使用的字符如下允许使用的字符如下:英文字母英文字母:A A B B C C D D E E F F G G H H I I J J K K L L M M N N O O P P Q Q R R S T U V W X Y Z S T U V W X Y Z 阿拉伯数字阿拉伯数字:0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 特殊符号特殊符号:空格:空格=+-*/(),.:!%&;$!%&;$?_(F90?_(F90中新增的字符中新增的字符)3.4FORTRAN字符集字符集下一页上一页停止放映文字字符英文字母

3、ABCDEFGHIJKLMNOPQRSTUVWXYZ数字0123456789下划线_特殊字符图形名称图形名称空格:冒号等号!叹号十加号”引号一减号百分号*星号英语的and斜线;分号(左括号小于)右活号大于,逗号?问号小数点或句号货币符号撇号表表3-13-1基本的基本的FORTRAN 90/95FORTRAN 90/95字符集字符集 基本字符分为两大类:文字字符和特殊字符。除了货币符号基本字符分为两大类:文字字符和特殊字符。除了货币符号可以本地化之外,其他任何字符都必须依照表里的形式。可以本地化之外,其他任何字符都必须依照表里的形式。下一页上一页停止放映注意注意:一一.文字字符的用处文字字符的用

4、处主主要要是是命命名名的的作作用用,可可以以用用来来命命名名语语言言中中的的一一切切对对象,这三种符号可以混合使用;象,这三种符号可以混合使用;其中数字还具有它本来的含义,就是表示数目。其中数字还具有它本来的含义,就是表示数目。二二.特殊字符的用处特殊字符的用处特特殊殊字字符符主主要要具具有有功功能能的的意意义义,如如编编辑辑功功能能,运运算算功功能能,语法功能等。语法功能等。FORTRAN FORTRAN 90/9590/95标标准准原原则则上上接接受受小小写写字字母母。因因此此除除了了以以下下位位置,大小写是等价的。置,大小写是等价的。三三.大小写必须区分的位置大小写必须区分的位置 作为字

5、符常量的字符串里面;作为字符常量的字符串里面;输入输出的纪录里面;输入输出的纪录里面;作为编辑描述符的引号或撇号里面。作为编辑描述符的引号或撇号里面。下一页上一页停止放映四四.CVF编译平台接受小写字母。编译平台接受小写字母。在在OPENOPEN或或者者INQUIREINQUIRE语语句句里里面面的的FILE=FILE=或或NAME=NAME=后后面面是是否否区分大小写,也是由编译平台指定的。区分大小写,也是由编译平台指定的。五五.如如果果是是需需要要调调用用其其他他语语言言写写的的子子程程序序,而而恰恰好好该该种种语语言言(例如例如C C语言语言)是区分大小写的,这时就需要特别小心。是区分大

6、小写的,这时就需要特别小心。【例例3_13_1】如如果果用用C C写写了了两两个个子子程程序序EIGENEIGEN和和eigeneigen,然然后后有有如如下下的的FROTRANFROTRAN片断:片断:EXTERNAL EIGEN EXTERNAL EIGEN .CALL EIGEN CALL EIGEN .END END这时它是该引用这时它是该引用EIGENEIGEN还是还是eigeneigen呢?如果所使用的呢?如果所使用的FROTRANFROTRAN系统正好是怪异的那种,没问题。如果是常见的系统正好是怪异的那种,没问题。如果是常见的如如CVFCVF,这时它就无法区分,这时它就无法区分E

7、IGENEIGEN和和eigeneigen,这样就必须给,这样就必须给它们更换名称了。它们更换名称了。下一页上一页停止放映六六.数字的涵义:数字的涵义:除了以下情形,数字总是表示十进位数字除了以下情形,数字总是表示十进位数字属于二进制,八进制,十六进制的字面常量;属于二进制,八进制,十六进制的字面常量;带有带有B,O,Z编辑描述符的输入输出纪录。编辑描述符的输入输出纪录。【例【例3_23_2】以下语句当中的数字不是属于十进位数字:以下语句当中的数字不是属于十进位数字:DATA I,J,K/O1001,23.54,Z5CA2/DATA I,J,K/O1001,23.54,Z5CA2/其中第一个为

8、八进制数,第二个为十进制数,第三个为十六进制数。其中第一个为八进制数,第二个为十进制数,第三个为十六进制数。下一页上一页停止放映七七.下划线的涵义:下划线的涵义:下下划划线线的的主主要要作作用用就就是是置置于于单单词词之之间间代代替替空空格格,使得我们在命名时使用清楚的英语词汇。使得我们在命名时使用清楚的英语词汇。下下划划线线不不能能置置于于任任意意名名称称的的前前面面,但但是是可可以以置置于于名称的最后。名称的最后。下下划划线线也也用用于于在在字字面面常常量量中中区区隔隔常常量量的的值值和和种种别别参数。参数。无无论论给给什什么么对对象象起起名名,都都尽尽量量使使用用完完整整的的英英语语单单

9、词词,同同时时使使用用下下划划线线以以区区隔隔不不同同的的单单词词。所所谓谓好好记记性性不不如如烂烂笔笔头头,只只有有这这样样才才能能切切实实保保证证你你在在任任何何时时候候,在在程程序代码的任意位置都知道任意变量等的含义。序代码的任意位置都知道任意变量等的含义。下一页上一页停止放映与平台有关的与平台有关的FORTRAN辅助字符集辅助字符集基基本本字字符符集集是是在在一一切切FROTRAN的的编编译译平平台台都都可可以以使使用用的的,被被FORTRAN95标标准准规规定定为为必必须须使使用用的的默默认认字字符符集集。另另外还有些辅助的字符则是不同的平台有不同的用法约定。外还有些辅助的字符则是不

10、同的平台有不同的用法约定。辅助字符分两类:可打印字符和不可打印字符。辅助字符分两类:可打印字符和不可打印字符。可打印字符;可打印字符;各各种种本本地地化化语语言言的的字字符符,象象汉汉字字,希希腊腊字字母母等等,都都可可以以应应用在字符串,注释,和输入输出纪录当中。用在字符串,注释,和输入输出纪录当中。下一页上一页停止放映不可打印字符。不可打印字符。主要就是控制字符,例如制表符主要就是控制字符,例如制表符Tab键。键。制制表表符符(Tab键键)对对于于一一个个FORTRAN77FORTRAN77标标准准的的编编译译系系统统来来说说,在在固固定定源源程程序序形形式式里里的的Tab被被看看成成是是

11、至至少少6个个空空格格,而而在在自自由由源源程程序序形形式式里里的的Tab被被看看成成1个个空空格格。这这样样如如果果Tab被被放放在在文文本本当当中中用用于于输输出出格格式式控控制制,那那么么这这种种默默认认的的转转换换方方式式,有有时时就就会会导导致致输输出出格格式式的的混混乱。乱。有关有关FORTRAN 95FORTRAN 95的辅助字符集的使用规则,请参考具的辅助字符集的使用规则,请参考具体的编译系统的说明。体的编译系统的说明。下一页上一页停止放映所所谓谓FORTRAN的的词词汇汇就就是是一一个个语语句句的的最最小小的的意意义义单单位位,它它由由一一个个或或多多个个FORTRAN字字符

12、符集集里里的的字字符符组组成成。包包括括两两类类共共6种,分类例举如下:种,分类例举如下:3.5 3.5 词汇词汇由文字字符组成的词汇,包括由文字字符组成的词汇,包括4种:种:语句关键词语句关键词名称名称由单个词汇组成的字面常量由单个词汇组成的字面常量标识符标识符由特殊字符组成由特殊字符组成算符算符:+,.OR.定界符:逗号,定界符:逗号,=,=,:,:,:,;,;,%。下一页上一页停止放映1.1.语句关键词语句关键词标志语句本身标志语句本身【例【例3-3】下面的】下面的DO语句中的关键词语句中的关键词DO本身标志了该语句本身标志了该语句DOI=1,500标志选项。标志选项。【例【例3-4】下

13、面的】下面的INTENT语句当中的语句当中的IN,OUT,或或INOUT。INTENT(IN),A。BINTENT(INOUT),X,Y,Z用在语句当中,起分界的作用。用在语句当中,起分界的作用。【例【例3-5】如下面如下面DO语句当中的语句当中的WHILEDOWHILE(.NOT.VECTOR)并非所有的语句都必须包含关键词,在并非所有的语句都必须包含关键词,在FORTRAN里面,赋里面,赋值语句和函数都不需要关键词。值语句和函数都不需要关键词。下一页上一页停止放映在在一一个个程程序序当当中中,任任何何对对象象都都需需要要有有一一个个名名称称,给给它它们们命命名名所所得得到到的的词词汇汇,可

14、可以以说说就就是是一一般般语语言言里里的的名名词词,这这样样的的对对象象包包括括:变变量量,命命名名常常量量,程程序序单单元元,过过程程,公公用块,构造,派生类型,哑元等。用块,构造,派生类型,哑元等。2.2.名称名称名称的拼写规则为:名称的拼写规则为:名称必须由字母开头,可以由文字字符混合组成,而下名称必须由字母开头,可以由文字字符混合组成,而下划线不能作为名称的第一个字符。划线不能作为名称的第一个字符。一个名称至多允许含有一个名称至多允许含有31个字符。个字符。下一页上一页停止放映一个常量就是对一个值的合乎语法的字符标记。一个常量就是对一个值的合乎语法的字符标记。常量分为字面常量和命名常量

15、两种:常量分为字面常量和命名常量两种:一一个个值值如如果果没没有有在在程程序序里里面面经经过过命命名名,则则称称为为字字面面常常量,这种常量不能取派生数据类型。量,这种常量不能取派生数据类型。【例【例4-6】66953Z5120A2.3417.TRUE.(33.2,5.0)3.3.常量常量下一页上一页停止放映一一个个值值如如果果在在程程序序里里面面经经过过命命名名,则则称称为为命命名名常常量量,这这种常量能取派生数据类型。种常量能取派生数据类型。【例【例3-73-7】在如下声明语句当中的常量在如下声明语句当中的常量UNSTABLE_POINTUNSTABLE_POINT为命名常为命名常量:量:

16、PARAMETER (UNSTABLE_POINT=5.332)PARAMETER (UNSTABLE_POINT=5.332)对于常量的语义,将在说明数据时进一步讨论。对于常量的语义,将在说明数据时进一步讨论。下一页上一页停止放映在在一一个个程程序序单单元元内内部部,对对任任何何一一条条语语句句,都都可可以以在在该该语语句句的的前前面面加加上上语语句句标标签签,以以便便在在该该程程序序单单元元内内部部的的任任何何其其他他位位置置引引用用该该语语句句。需需要要引引用用其其他他语语句句的的语语句句包包括括CALL语语句,句,DO结构,分支语句,输入输出语句等。结构,分支语句,输入输出语句等。4.

17、4.语句标签语句标签语句标签的书写规则为:语句标签的书写规则为:语句标签由语句标签由1到到5个十进制数字组成,其中必须至少有一个十进制数字组成,其中必须至少有一个数字不能是个数字不能是0,例如,例如000不能作为标识符;不能作为标识符;标识符以标识符以0开头是没有任何意义的,例如开头是没有任何意义的,例如0034与与34没有没有区别。区别。标识符不能放置于空语句之前。标识符不能放置于空语句之前。下一页上一页停止放映算符用在表达式当中,通过运算而获得某种类型的值。算符用在表达式当中,通过运算而获得某种类型的值。算符分为固有算符和自定义算符两类:算符分为固有算符和自定义算符两类:固有算符固有算符在

18、在FORTRAN95语语法法当当中中,R310规规定定了了固固有有算算符符的的构构成成法则。法则。【例【例4-9】/表示字符串的连接表示字符串的连接+表示对数值的加法表示对数值的加法.NOT.表示逻辑否表示逻辑否.OR.表示逻辑或表示逻辑或5.5.算符算符下一页上一页停止放映6.6.定界符定界符全部的定界符有如下全部的定界符有如下12种形式:种形式:/()(/),=:;%其中其中(和和),(/和和/)都必须成对出现都必须成对出现顾顾名名思思义义,这这些些定定界界符符的的功功能能就就是是在在一一个个连连续续的的源源码码文文本本当当中中,用用来来把把不不同同性性质质的的源源码码成成分分区区分分开开

19、。它它们们的的具具体含义将在具体的语句当中说明。体含义将在具体的语句当中说明。下一页上一页停止放映数数据据表表示示的的实实现现具具有有一一个个重重要要的的参参数数,即即存存储储空空间间,所所以以当当问问题题要要求求的的数数据据,不不能能满满足足于于默默认认的的存存储储空空间间的的时时候候,这这时时,就就需需要要进进一一步步给给出出数数据据的的种种别别参参数数,这是更加详细的数据描述。这是更加详细的数据描述。如如果果在在真真实实世世界界问问题题当当中中出出现现的的的的数数据据对对象象,不不符符合合已已有有的的固固有有数数据据类类型型以以及及数数组组的的定定义义,这这时时就就需需要要根根据据用用户

20、户的的要要求求构构造造一一个个依依赖赖于于问问题题的的特特定定的的数数据据结结构,这就是构,这就是数据描述时会遇到的三种情况数据描述时会遇到的三种情况。对于这三种情况,对于这三种情况,FORTRANFORTRAN的解决方式如下:的解决方式如下:数据的性质数据的性质 (数据的类型以及其他属性)数据的类型以及其他属性)3.6 3.6 常量与变量常量与变量下一页上一页停止放映第一种情况:第一种情况:确定(固有)数据的类型以及相应的可能具有的属性。确定(固有)数据的类型以及相应的可能具有的属性。FORTRAN FORTRAN所能辨识的数据类型首先分为两大类:所能辨识的数据类型首先分为两大类:固有数据类

21、型固有数据类型 派生数据类型派生数据类型 所所谓谓固固有有类类型型,是是FORTRANFORTRAN语语言言所所定定义义的的最最基基本本的的数数据据类类型型,每每一一种种固固有有类类型型是是和和该该种种数数据据类类型型相相应应的的各各种种运运算算一一起起隐隐式式定定义义的的,也也就就是是说说一一旦旦声声明明引引入入某某种种固固有有数数据据类类型型,则则系系统统总总是是默默认认为为对对它它进进行行相相应应的的运运算算是是合合法法的的,并并且总是可访问的。且总是可访问的。固有类型包括五种:固有类型包括五种:整型整型(INTEGER)、实型、实型(REAL)、复型、复型(COMPLEX)、逻辑型、逻

22、辑型(LOGICAL)和字符型和字符型(CHARACTER)。下一页上一页停止放映所所谓谓派派生生类类型型是是由由用用户户定定义义的的,非非隐隐式式定定义义的的类类型型,只只要要用用一一个个类类型型定定义义来来声声明明其其成成员员是是何何种种固固有有类类型型,或或者者是是何何种种其其它它已已经经定定义义过过的的派派生生类类型型,就就能能够够被被FORTRANFORTRAN认可为一种数据类型。认可为一种数据类型。由于派生数据类型正是由固有数据类型充当成员由于派生数据类型正是由固有数据类型充当成员而构成的,因此在结构关系上,可以把固有数据类型而构成的,因此在结构关系上,可以把固有数据类型看成原子,

23、而把派生数据类型看成分子。看成原子,而把派生数据类型看成分子。派生类型数据最重要的用途就是扩充了数组这种派生类型数据最重要的用途就是扩充了数组这种重要的数据结构。重要的数据结构。下一页上一页停止放映每一种固有数据类型的存储模式每一种固有数据类型的存储模式:在在FORTRAN77FORTRAN77中:中:整整型型,实实型型,逻逻辑辑型型数数据据都都是是使使用用了了一一个个数数值值存存储储单单元元,复复型型和和双双精精度度数数据据则则使使用用了了两两个个数数值值存存储储单单元元,字符型数据使用字符型数据使用一个字符存储单元一个字符存储单元。在在FORTRAN90FORTRAN90与与9595中:中

24、:默默认认在在FORTRAN77FORTRAN77中中的的规规定定,在在FORTRAN90FORTRAN90之之后后的的标标准准里里,开开始始允允许许在在一一个个程程序序单单元元内内,由由用用户户定定义义特特定定的的不不依依赖赖于于固有数据存储模式的数据类型,这就是派生数据类型。固有数据存储模式的数据类型,这就是派生数据类型。下一页上一页停止放映第二种情况:第二种情况:指定固有数据类型的种别参数。指定固有数据类型的种别参数。用用来来指指定定程程序序当当中中需需要要使使用用的的每每一一种种固固有有数数据据类类型型所所要要求求占占据据的的内内存存空空间间大大小小的的属属性性由由种种别别参参数数表表

25、示示。给给这这个个变变量量(参参数数)指指定定一一个个数数值值,就就可可以以说说明明数数据据所所需需要要的的存存储储空空间间的的大大小小,也也就就是是程程序序允允许许的的数数值值数数据据的的位位数数和和字字符符串串的字符数目。的字符数目。KINDKIND(种种类类种种别别参参数数)分分别别说说明明整整数数类类型型的的十十进进制制指指数数范范围围,实实数数类类型型和和复复数数类类型型的的十十进进制制精精度度和和指指数数范范围围,字符类型和逻辑类型的表示方法。字符类型和逻辑类型的表示方法。LENLEN(长度种别参数长度种别参数)对字符类型规定了字符的个数。对字符类型规定了字符的个数。【例】【例】R

26、EAL(KIND2 2):ABC,X,LONGCHARACTER(LEN40,KINDGREECE):NAME下一页上一页停止放映如果没有声明数据的种别,那么程序就会采用默认如果没有声明数据的种别,那么程序就会采用默认的参数,的参数,FORTRANFORTRAN的早期版本没有引入种别参数,直接采用的早期版本没有引入种别参数,直接采用了两种不同的数据类型了两种不同的数据类型:REAL:REAL和和DOUBLE PRECISIONDOUBLE PRECISIONFORTRAN90FORTRAN90以来的版本里,引入种别参数,对种别参数的不以来的版本里,引入种别参数,对种别参数的不同取值,就足够表达

27、不同的精度,同取值,就足够表达不同的精度,对于在指定种别参数的数值时,一般是以对于在指定种别参数的数值时,一般是以字或字节字或字节为为单位,这样对于字长不同的机器而言,相互之间就会出现程单位,这样对于字长不同的机器而言,相互之间就会出现程序移植的困难,下面分情况予以说明:序移植的困难,下面分情况予以说明:下一页上一页停止放映实型实型-由于由于DOUBLE PRECISIONDOUBLE PRECISION是属于老式标准的遗留是属于老式标准的遗留物,因此使用物,因此使用DOUBLE PRECISIONDOUBLE PRECISION作为数据声明的程序就不作为数据声明的程序就不具备良好的可移植性,

28、因为所谓双精度是针对具体的机器具备良好的可移植性,因为所谓双精度是针对具体的机器的字长而言的,对于的字长而言的,对于3232位的机器,双精度就是位的机器,双精度就是6464位,而对位,而对于于6464位机器,双精度就意味着位机器,双精度就意味着128128位,这样在不同字长的位,这样在不同字长的机器环境里,双精度就具有不同的位数,使得程序无法在机器环境里,双精度就具有不同的位数,使得程序无法在不同字长的平台之间进行直接的移植。不同字长的平台之间进行直接的移植。最好统一使用最好统一使用REALREAL的种别参数来表达算法所要求的实数精的种别参数来表达算法所要求的实数精度。度。整型整型-在程序应用

29、当中会出现几乎任何大小的整型数在程序应用当中会出现几乎任何大小的整型数据,因此无法在语言标准里面统一的规定整型数据的存储据,因此无法在语言标准里面统一的规定整型数据的存储空间大小,这就同样需要依靠种别参数来指定应该给具体空间大小,这就同样需要依靠种别参数来指定应该给具体问题当中的整型数据确定多大的存储空间。具体地指定方问题当中的整型数据确定多大的存储空间。具体地指定方式属于编译器设计者的选择,需要式属于编译器设计者的选择,需要参考相应编译器参考相应编译器的语言的语言说明。说明。下一页上一页停止放映复复型型-由由于于所所谓谓复复型型本本质质上上就就是是由由两两个个实实数数表表达达的的,因因此此按

30、按道道理理复复型型同同样样应应该该能能够够具具有有表表达达多多种种精精度度的的能能力力,而而实实际际上上早早期期的的版版本本在在这这方方面面是是有有欠欠缺缺的的,不不过过随随着着FORTRAN90FORTRAN90引引入入种种别别参参数数,就就可可以以在在COMPLEXCOMPLEX的的声声明明语语句句里里通通过过运运用用种种别别参参数数来来实实现现多多种种精精度度的的表表达达,对对于于任任何何FORTRANFORTRAN的的实实现现,至至少少能能表表达达两两种种精精度度,而而一一般般来来说说是多于两种的。是多于两种的。字字符符型型-对对于于字字符符,一一般般的的机机器器都都是是用用单单字字节

31、节8bits8bits来来表表示示一一个个字字符符,这这样样就就可可以以总总共共表表示示2 28 8=256=256个个不不同同的的字字符符,这这对对于于任任何何以以字字母母写写出出来来的的语语言言都都是是足足够够的的了了,不不过过对对于于汉汉语语,日日语语这这样样一一些些语语言言就就不不够够用用了了,一一般般得得需需要要双双字字节节,即即16bits16bits,这这样样就就可可以以表表达达2 21616个个字字符符。因因此此字字符符型型数数据据同同样样需需要要附附加加种种别别参参数数,以以便便除除了了使使用用默默认认的的基基本本字字符符之之外外,还还可可以以使使用用辅辅助助字字符符集集里里

32、的的字字符符,从从而而实实现现程程序序的的本本地地化化。不不过过某某个个具具体体的的编编译译器器是是否否支支持双字节字符,必须参考相应的手册。持双字节字符,必须参考相应的手册。下一页上一页停止放映 逻逻辑辑型型-由由于于一一切切逻逻辑辑型型数数据据都都只只有有两两个个值值,因因此此如如何何确确定定逻逻辑辑型型数数据据的的存存储储空空间间应应该该是是非非常常好好办办的的,不不过过不不幸幸的的是是,FORTRANFORTRAN的的早早期期版版本本规规定定逻逻辑辑型型数数据据使使用用和和实实型型数数据据一一样样大大小小的的机机器器存存储储单单位位,这这样样当当机机器器的的字字长长很很大大时时,就就会

33、会非非常常的的浪浪费费机机器器的的存存储储空空间间。因因此此到到了了FORTRAN90FORTRAN90和和FORTRAN FORTRAN 9595,除除了了作作为为默默认认的的情情形形,和和旧旧的的语语言言标标准准保保持持兼兼容容之之外外,还还可可以以通通过过指指定定种种别别参参数数,使使得得逻逻辑辑型型数数据据的的存存储储空空间间大大小小只只有有一一个个字字,甚甚至至一一个个bitbit。当然具体的使用方法需要参考相应编译器的说明。当然具体的使用方法需要参考相应编译器的说明。下一页上一页停止放映第三种情况:第三种情况:派生数据类型。派生数据类型。在在计计算算机机语语言言里里,把把对对象象的

34、的每每一一个个需需要要描描述述的的性性质质用用一一个个适适当当的的基基本本数数据据类类型型来来表表示示,这这样样用用一一组组基基本本数数据据类类型型就就可可以以描描述述该该对对象象。而而这这一一组组数数据据可可以以看看成成是是一一个个新新的数据类型,表示了一个变量。的数据类型,表示了一个变量。这这样样构构造造出出来来的的数数据据类类型型称称为为派派生生数数据据类类型型,和和固固有有数数据据类类型型一一样样,在在声声明明派派生生数数据据类类型型时时,需需要要给给出出名名称称,描描述述它它的的每每一一个个元元素素的的固固有有数数据据类类型型以以及及相相应应属属性性和和种种别别参参数数(如如果果非非

35、默默认认的的话话),当当然然也也需需要要适适当当地地定定义义其其运运算。算。下一页上一页停止放映派生数据类型是由一组数组成派生数据类型是由一组数组成,就会出现两种情况:,就会出现两种情况:这组数据都是属于一个数据类型这组数据都是属于一个数据类型这这样样构构成成的的派派生生数数据据类类型型就就是是数数组组,显显然然对对于于数数组组的的元元素素的的描描述述就就可可以以统统一一进进行行。具具体体的的用用法法会会在在后后面面专专门说明。门说明。这组数据的各个元素属于不同的数据类型这组数据的各个元素属于不同的数据类型这这样样构构成成的的派派生生数数据据类类型型称称为为结结构构,这这时时就就需需要要对对每

36、每个个数数据据元元素素进进行行分分别别的的说说明明,即即每每一一个个元元素素的的数数据据类型,可能有的属性,种别参数等等。类型,可能有的属性,种别参数等等。下一页上一页停止放映【例【例5-25-2】下面是一个典型的派生数据类型。下面是一个典型的派生数据类型。TYPE SAMPLE TYPE SAMPLE REAL CURRENT REAL CURRENT COMPLEX(KIND=QUAD)PHASE COMPLEX(KIND=QUAD)PHASE CHARACTER(LEN=50)SOURCE CHARACTER(LEN=50)SOURCE END TYPE SAMPLE END TYPE

37、SAMPLE TYPE(SAMPLE)SI401 TYPE(SAMPLE)SI401,SI402SI402,SI403SI403,SI404SI404在在上上面面的的例例子子里里,首首先先定定义义了了一一个个名名称称为为SAMPLESAMPLE的的数数据据类类型型,每每一一个个SAMPLESAMPLE类类型型的的数数据据由由三三个个分分量量组组成成,它它们们的的名名称称分分别别为为CURRENTCURRENT,PHASEPHASE,SOURCESOURCE,分分别别属属于于实实型型,复复型型和和字字符符型型,其其中中复复型型和和字字符符型型还还分分别别说说明明了了种种别别参参数数和和字字符符长

38、长度度属属性性,然然后后给给出出了了程程序序当当中中需需要要使使用用的的四四个个属属于于该该种种数数据据类类型型的的变变量量:SI401SI401,SI402SI402,SI403SI403,SI404SI404。下一页上一页停止放映数据不同种类的存储模式数据不同种类的存储模式对对于于计计算算机机来来说说,数数据据分分类类的的第第一一个个反反应应就就是是针针对对不不同同类型的数据约定不同的存储模式。类型的数据约定不同的存储模式。由由于于存存储储模模式式的的规规定定涉涉及及到到编编译译环环境境的的设设置置,因因此此存存储储模模式式的的约约定定是是与与系系统统环环境境相相关关的的,鉴鉴于于Comp

39、aq Compaq Visual Visual FortranFortran的的广广泛泛应应用用,本本节节特特别别针针对对Compaq Compaq Visual Visual FortranFortran系统而言的说明了数据的各种存储模式。系统而言的说明了数据的各种存储模式。下表下表5-15-1列出了列出了Compaq Visual FortranCompaq Visual Fortran所有的固有数据所有的固有数据类型的存储空间要求,和相应的能够在这个空间里表达类型的存储空间要求,和相应的能够在这个空间里表达的数据规模。的数据规模。下一页上一页停止放映数据类型单位存储空间能表示的数据规模B

40、YTEINTEGER(1)1byte(8bits)BYTE表示等价于INTEGER(1)的带符号的整型数据类型。INTEGER参见INTEGER(2),INTEGER(4),以及INTEGER(8).带 符 号 的 整 型 数 据,包 括 INTEGER(2),INTEGER(4),orINTEGER(8)。数据规模由编译器选项/integer_size:nn控制。默认的规模控制 选 项 为/integer_size:32(等 价 于INTEGER(4)。INTEGER(1)1byte(8bits)从-128到127带符号的整数。INTEGER(2)2bytes(16bits)从-32,768

41、到32,767带符号的整数。INTEGER(4)4bytes(32bits)从-2,147,483,648到2,147,483,647带符号的整型数据。INTEGER(8)8bytes(64bits)从-9,223,372,036,854,775,808到9,223,372,036,854,775,807带符号的整型数据。下一页上一页停止放映REAL(4)REAL4bytes(32bits)从1.17549435E-38到3.40282347E38的按照IEEES_floating格式的单精度实型浮点值。在1.17549429E-38和1.40129846E-45之间的值是非常态的。REAL(

42、8)DOUBLEPRECISION8bytes(64bits)从2.2250738585072013D-308到1.7976931348623158D308的按照IEEET_floating格式的双精度实型浮点值。在2.2250738585072008D-308和4.94065645841246544D-324之间的值是非常态的。COMPLEX(4)COMPLEX8bytes(64bits)由一对从1.17549435E-38到3.40282347E38的按照IEEES_floating格式的单精度实型浮点 值 组 成 的 单 精 度 复 型 浮 点 值。在1.17549429E-38和1.4

43、0129846E-45之间的值是非常态的。COMPLEX(8)DOUBLECOMPLEX16bytes(128bits)由 一 对 从 2.2250738585072013D-308到1.7976931348623158D308的按照IEEET_floating格式的双精度实型浮点值组成的双精度复型浮点值。在2.2250738585072008D-308和4.94065645841246544D-324之间的值是非常态的。下一页上一页停止放映LOGICAL参见LOGICAL(2),LOGICAL(4),以及LOGICAL(8).逻辑型值,包括LOGICAL(2),LOGICAL(4),以及LO

44、GICAL(8).数据规模由编译器选项/integer_size:nn控制。默认的规模控制选项为/integer_size:32(等价于LOGICAL(4)。LOGICAL(1)1byte(8bits)逻辑型值.TRUE.或.FALSE.LOGICAL(2)2bytes(16bits)逻辑型值.TRUE.或.FALSE.LOGICAL(4)4bytes(32bits)逻辑型值.TRUE.或.FALSE.LOGICAL(8)8bytes(64bits)逻辑型值.TRUE.或.FALSE.CHARACTER每个字符1byte(8bits)根据约定的字符编码表示的字符数据,通过 字 符 数 据 的

45、声 明 形 式:CHARACTER(LEN=n)或 CHARACTER*n,其中n表示byte数,来表示数据规模。HOLLERITH每个Hollerith字符1byte(8bits)Hollerith常量。下一页上一页停止放映对对于于字字符符型型数数据据来来说说,它它的的存存储储空空间间完完全全和和字字符符串串长长度度成成正正比比,因因此此只只要要直直接接规规定定字字符符串串的的字字符符个个数数,就可以一致地得到其存储空间分配标准。就可以一致地得到其存储空间分配标准。至至于于复复型型和和派派生生类类型型,则则完完全全以以其其他他数数据据类类型型作作为为成成员员,自自身身没没有有什什么么特特别别

46、的的规规定定,因因此此也也就就没没有有独独特特的的针对这两种数据类型的种别参数。针对这两种数据类型的种别参数。显然,显然,FORTRANFORTRAN通过运用种别参数来明确地规定数据的表通过运用种别参数来明确地规定数据的表示,使得示,使得FortranFortran的标准化程度得到了进一步提高,从而的标准化程度得到了进一步提高,从而提高了程序的可移植性。提高了程序的可移植性。下一页上一页停止放映 数据的基本(固有)类型数据的基本(固有)类型对对于于计计算算机机来来说说,数数据据的的意意义义无无非非就就是是要要知知道道在在存存储储空间为一个特定的数据划出多大的空间来装载它。空间为一个特定的数据划

47、出多大的空间来装载它。FORTRAN早早期期的的做做法法统统一一地地给给一一类类数数据据指指定定固固定定的的存存储模式。储模式。FORTRAN90引引进进的的种种别别参参数数,这这样样就就扩扩充充了了固固有有数数据类型的存储模式。据类型的存储模式。整型整型(INTEGER)实型实型(REAL)双精度型双精度型(DOUBLEPRECISION)复型复型(COMPLEX)逻辑型逻辑型(LOGICAL)字符型字符型(CHARACTER)隐含说明隐含说明IMPLICIT固有数据类型固有数据类型:Fortran中有七种类型说明语句:中有七种类型说明语句:类型说明类型说明1 1隐式类型描述法隐式类型描述法

48、当当初初FORTRAN使使用用隐隐式式类类型型声声明明方方法法,是是与与语语言言的的简简朴朴形态相适应的除非首先声明了形态相适应的除非首先声明了IMPLICIT语句。语句。隐式类型声明方法的约定,就是让名称的第一个字母来标隐式类型声明方法的约定,就是让名称的第一个字母来标记它的类型,隐含说明记它的类型,隐含说明(I-N规则规则)I-N规则规则:若不加说明,以字母若不加说明,以字母I,J,K,L,M,N六个字母开头的六个字母开头的所有变量名,其变量类型为整型,以其他字母开头的为实型所有变量名,其变量类型为整型,以其他字母开头的为实型变量。变量。例如:例如:I,J,IMAX,NUMBER,LINE

49、,JOBKl为整型变量为整型变量A,Bl,COUNT,AMOUNT,TOTAL为实型变量为实型变量FORTRAN沿用了数学里的很多习惯,这里使用沿用了数学里的很多习惯,这里使用I,J,K,L,M,N来表来表述整数,就是一个明显的数学习惯。述整数,就是一个明显的数学习惯。下一页上一页停止放映利用利用IMPLICIT语句来自定义字母分配模式,一般的语句来自定义字母分配模式,一般的IMPLICIT语句的句法形式有语句的句法形式有2种,分别行使不同的功能:种,分别行使不同的功能:IMPLICITtype-specification(letter-specification-list)IMPLICITN

50、ONE(f90)其中的字母分配说明列表的句法形式为:其中的字母分配说明列表的句法形式为:letter-letter例如:例如:IMPLICIT INTEGER(AIMPLICIT INTEGER(A,C C,T-V)T-V)IMPLICIT REAL(IIMPLICIT REAL(I,J)J)IMPLICIT INTEGER(AIMPLICIT INTEGER(A,B)B),REAL(I,K)REAL(I,K),INTEGER(X-Z)INTEGER(X-Z)下一页上一页停止放映隐式类型的一般规则如下:隐式类型的一般规则如下:如果要使用如果要使用IMPLICITNONE语句,那么它必须放置在语

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com