Fortran数据类型.ppt

上传人:za****8 文档编号:7277370 上传时间:2020-03-18 格式:PPT 页数:36 大小:402.50KB
返回 下载 相关 举报
Fortran数据类型.ppt_第1页
第1页 / 共36页
Fortran数据类型.ppt_第2页
第2页 / 共36页
Fortran数据类型.ppt_第3页
第3页 / 共36页
点击查看更多>>
资源描述
5 1数据类型的概念 内部数据类型 数值型 非数值型 派生数据类型 第五章FORTRAN90数据类型 系统提供了多种表示整数值的方法 每种方法定义了一个整型数据值的集合 每种方法用类别类型参数来区分 整型常量的表示形式为一个数字串 并在数字串后有一个可任选的下划线后再跟类别类型参数 例如 373 1024 35792 0 32 2 1992110235764803 8 5 2整型数据 二进制 八进制和十六进制整型常量 只能用于DATA语句中 二进制常量 以字母B开头 后跟一对撇号或双引号括起来的数字串 数字不是0就是1 如B 10101101 B 1011101 八进制常量 以字母O开头 后跟一对撇号或双引号括起来的数字串 数字是0到7之间的数字 例如 O 453 O 376 十六进制常量 以字母Z开头 后跟一对撇号或双引号括起来的数字串 且每个数字是0到9或字母A到F之间的一个 例如 Z FFA9 Z 9B45 INTEGERi j kDATAi B 110010 DATAj O 62 DATAk Z 32 整型变量的说明 格式 INTEGER KIND 类别参数值 属性列表 变量列表 类别参数可缺省 取决于计算机的字长 对于32位计算机默认为 231 231 1 类别参数值取 1248对应字节数 1248 可等价写成 INTEGER 2 K LIMITINTEGER 4 MIN MAX 例 INTEGERI TOTALINTEGER 2 K LIMITINTEGER KIND 4 MIN MAX 使变量具有符号常量属性 integer 4 parameter n 10 使变量具有数组属性 integer dimension 1 10 A 实型常量的表示方法 小数形式 类别参数 有效数E指数 类别参数 有效数D指数 5 3实型数据 FORTRAN用类别类型参数区分不同类型的实型数据 实型数据有单精度和双精度之分 单精度类别类型参数值为4 双精度数类别类型参数值为8 默认的类别参数是4 D表示双精度实型常量 此时禁用类别参数 单精度 3 45E212 3E2 4双精度 5 3D 2 表示5 3 10 2 表示为 5 3E 2 8但不能写成 5 3D 2 8 052D0 052 8 实型变量的说明 REAL x y 单精度REAL 4 DX DY或 REAL 4 DX DY 单精度REAL 8 a1 b2或 REAL 8 a1 b2 双精度DOUBLEPRECISION a6 b8 双精度 REAL KIND 类别参数值 属性列表 变量列表 单精度用REAL 4 定义 双精度用REAL 8 或DOUBLEPRECISION定义 缺省的类别值为4 即为单精度 5 4复型数据 a b类别不同 低向高转换类别 复型常量的表示方法 复数a bi表示为 a b 其中是a b一对实数常量 例如 1 25 0 4 表示复数1 25 0 4i 1E2 3 4 表示复数100 0 3 4i 复型数据的类别类型参数是用于说明实部和虚部这两个实型数据的类别类型 a b都为整型或都为默认实型 则得到默认复型 复型变量的说明 COMPLEX KIND 类别值 属性列表 变量列表 COMPLEXZ1 Z2 单精度复型变量COMPLEX 4 COM VAL 单精度复型变量COMPLEX 8 CZ CQ 双精度复型变量 CZ 3 0 6 3 复型常量赋给复型变量CQ 8 76E 5 67 8E 3 C CMPLX 3 0 A 6 0 B 实部虚部含变量 用CMPLX函数将实部和虚部组成复型数据再赋给复型变量 P75例5 5有一线段AB A的坐标为 1 1 B的坐标为 4 5 4 5 求AB的长度 以及黄金分隔点C的坐标 黄金分割点在线段的0 618处 分析 A B的坐标可用复数表示 即A为 1 0 1 0 B为 4 5 4 5 AB的长度就是 A B 的模 可用ABS函数直接求出复数的模ABS A B 黄金分隔点C的坐标为A 0 618 B A PROGRAMCOMP 3IMPLICITNONECOMPLEX A B CREAL LREAD A BC A 0 618 B A L ABS A B PRINT L LPRINT C CENDPROGRAMCOMP 3 输入 1 0 1 0 4 5 4 5 回车以2个实数作为一个复型数据 第一个实数为复数的实部 第二个实数为虚部 用括号括起来 输出 L 4 949748C 3 163000 3 163000 5 5字符型数据 字符型常量 字符串常量 用单撇号或双撇号括起来的字符序列 china 12345 234 4 234 4 在字符串内部的空格是有效字符 当字符串本身含有单撇号时 例如要将I maboy作为一个字符串来处理 可采用两种方式表示 I maboy 用双撇号作定界符 I maboy 用单撇号作定界符 将字符串的单撇号用两个单撇号表示 字符串的长度 字符串内字符的个数 例 abcff 的长度为5 和 为空串 长度为0 字符型变量 CHARACTER LEN n 属性说明 变量列表 n 变量的长度 character len 15 a b c 长度均为15的字符变量a b c 等价于 character 15 a b c 等价于 character 15 a b c Character len 10 parameter name fortran90 CHARACTER LEN 8 DIMENSION 1 10 X Y Z CHARACTER LEN 15 A B 8 C 5A的长度为15 B的长度为8 C的长度为5 注 以下情形均可以采用 来说明长度 1 character len parameter name fortran90 具有PARAMETER属性的字符常量 给出的字符串长度是确定的 因此字符符号常数name的长度等于9 可用 说明 2 用字符变量做虚参时 一般可以不具体指明长度 子字符串 子字符串的表示方法 字符变量名 m n m n 整数 表示子串在字符串中的起止位置 子字符串的长度 n m 1 n m 1 例如 CHARACTER LEN 80 ROWROW 4 7 ROW字符串中从第4个字符到第7个字符组成的一个子串 其长度为4ROW I I 表示该字符型变量的第I个字符row 5 相当于row 1 5 row 5 相当于row 5 80 row 相当于row 1 80 字符表达式与字符赋值语句 1 字符连接符 将两个字符型数据连接起来 成为一个字符型数据例 human shanghai 的值 humanshanghai 2 赋值 PROGRAMCHAR 1CHARACTER LEN 5 A B CCHARACTER LEN 11 DA abcde B fghij C AD A BPRINT C DENDPROGRAMCHAR 1 当赋值号两端数据的字符长度不等时 character len 7 a b 2a abcd b ef a a ba b a 结果a abcd 结果a efabcd character len 7 a ba abcde 结果a abcde a abcdefghfiemd 结果b abcdefg 对字符数据的输入作同样处理 字符关系表达式 1 两个单个字符比较 以它们的代码值决定大小 A 2 的值为真 2 两字符串比较 先将短的字符串后面以空格补足再比较 两串中的字符自左向右逐对比较 若所有对字符均相同 则两串相等 否则 以第一次出现不同字符的比较结果为准 例如 SHANGHAI thi 的值为真 用于字符处理的内部函数 1 求字符串长度函数LEN和LEN TRIM LEN String 函数值是String中字符个数LEN TRIM String 去掉尾部空格后的长度String为字符型常量 变量等字符串 LEN 的值为3 例如 LEN abcdfg 的值为6 LEN ABC D 的值为5 LEN TRIM abc d 的值为5 LEN TRIM abcd 的值为4 LEN TRIM 的值为0 2 除去字符串尾部空格函数TRIM TRIM String TRIM ABC 的值为 ABC TRIM ABC 的值为 ABC 3 子串位置函数INDEX INDEX follow me me 的值为8 INDEX String1 String2 若string2是string1子串 返回String2在String1中起始位置 否则返回0 4 字符串比较函数LGE LGT LLE和LLT LGE string1 string2 LGT string1 string2 LLE string1 string2 LLT string1 string2 5 字符与ASCII转化 IACHAR A 的值为65IACHAR Z 的值为90ICHAR ABC 的值为65 字符 ASCII IACHAR或ICHAR IACHAR 字符转化为ASCII码ICHAR 字符转化为在相应处理系统中的字符序号 函数取值 真或假 ASCII 字符 ACHAR或CHAR ACHAR 65 的值为 A ACHAR 90 的值为 Z P82例5 7在读入的一批单词中 把以字母B开头的打印出来 直到输入ZZZ结束 PROGRAMCHAR 2IMPLICITNONECHARACTER 10 WORDDOREAD WORDIF WORD ZZZ EXITIF WORD 1 1 B PRINT WORDENDDOENDPROGRAMCHAR 2 也可以用INDEX函数 PROGRAMCHAR 2IMPLICITNONECHARACTER 10 WORDDOREAD WORDIF WORD ZZZ EXITIF INDEX WORD B 1 PRINT WORDENDDOENDPROGRAMCHAR 2 P82例5 8将一个字符串中的字符逆序打印出来Programchar 3implicitnoneinteger i j lenthcharacter len 8 s1 s2read s1lenth LEN TRIM s1 doi 1 lenthj lenth i 1s2 j j s1 i i enddowrite oldstring s1write newstring s2endprogramchar 3 为了保密 常不采用明码电文 而用密码电文 按事先约定的规律将一个字符转换为另一个字符 收报人则按相反的规律转换得到原来的字符 例如 将字母A F B G C H 即将一个字母变成其后第五个字母 例如 HEISINBEIJING 应转换为 MJNXNSGJNONSL P83例5 9翻译密码 分析 可用IACHAR函数取该字母的ASCII代码 加上5 再用ACHAR函数按其ASCII码转换为另一个字母 当字母为V时 加5就超过了Z 故应使之转换为A 同理 W B X C Y D Z E 只对字母进行转换 对字母之外的字符维持原样 integer i j kcharacter len 80 line1 line2Character len 1 l1read line1dok 1 80l1 line1 k k if lge l1 A and lle l1 Z or lge l1 a and lle l1 z theni iachar l1 j i 5if j iachar z or j iachar Z and j ichar Z 6 j j 26l1 achar j endifline2 k k l1enddowrite line2end 用表控方式输入字符串时 要加引号 5 6逻辑型数据 逻辑常量只有真和假两种值 TRUE 和 FALSE 变量说明的格式为 LOGICAL KIND 类别值 属性列表 变量列表 例5 11当某点的X Y坐标落在图中四个方块内和方块边上时 Z 0 如在方块外 Z 3 INTEGER ZREAL X YLOGICAL P Q R SREAD X YZ 3P X 5 0 AND X 1 0 AND X 6 0 AND Y 2 0 AND Y 4 0IF P AND R OR P AND S OR Q AND R OR Q AND S Z 0PRINT X X Y Y Z ZEND 作业 P874 8 9 10 4 三角形面积 三个边长 a b c面积 sqrt s s a s b s c 其中s a b c 2 implicitnonecharacter str1 m str 25integer i n 12str 1 1 m doi 1 nstr i 2 i 2 achar iachar str1 i str i 2 1 i 2 1 achar iachar str1 i enddoprint strend 作业 P87 7把25个字母A B Y 打印出 MLNKO 作业 P87 8将一个字符串中的前导空格 后置空格及中间的空格全部去掉 得到一个新的字符串后输出 implicitnonecharacter 80str1 str2integer i j 1read str1doi 1 len trim str1 if str1 i i thenstr2 j j str1 i i j j 1endifenddoprint str2end 字符型变量默认值为空字符 ASCII码为0 作业 P87 9输入n个英文单词 输出其中以元音字母开头的单词 implicitnonecharacter 10wordinteger i nread ndoi 1 nread wordselectcase word 1 1 case A E I O U a e i o u print wordendselectenddoend complexx y z xyzreala b c s arearead x y za abs x y b abs x z c abs y z s a b c 2area SQRT s s a s b s c xyz x y z 3print area xyzend 作业 P874 implicitnonerealx ylogicalaintegerzread x yx abs x y abs y z 0a sqrt x 2 2 y 2 2 1if a z 1print z zend 作业 P8710
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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