- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FORTRAN章 8
Visual Fortran 90 程序设计;8.1 字符型数据基础;长度为字符的个数:
起止界不算
两个单撇号或双撇号算一个
空格为有效字符算一个;说明语句的写法;长度可为整型表达式,但要加括号
例: character(2)::a,b*(2+3)
有时可把长度值写成一个星号,但要加括号
Character(*)::CH,PARA
Character(2):: CH,PARA*(*)
使用范围:
(1)具有PARAMETER属性的字符常量
Character(*),parameter::para=‘FORTRAN_90’
字符串长度取对应的字符常量的长度。
(2)用字符变量作为虚元时,虚元的长度取对应实元的长度
虚元可以和任意长度的实元相结合,有利于提高子程序的通用性。
;8.1.2 字符子串;8.1.3 字符表达式与字符赋值语句;2、关系运算:
例:‘abc’‘ada’;字符型赋值语句;8.2 字符型数据的输入与输出;用户规定格式输入;例:
Character(3)::a,b,c
Read(*,fmt=‘(a3,a2,a4)’)a,b,c
如输入’123’,’1234’,’ 123’
则a值’12
B值3’
C值’12;表控格式输出语句:
CHARACTER(3)::A,B
……
PRINT*,A,B;8.3 字符型数组;8.4 用于字符处理的内在函数;;例8-4 用自定格式输入和输出字符型数据。(掌握数据输入格式)
如输入:FORTRAN;例8-5 从键盘上输入5个城市的名称(用汉语拼音表示),然后按从小到大的顺序排序。(排序算法同数值型)
输入:’Harbin’,’Shanghai’,’Anda’,’Beijing’,’Daqing’;习题8-3(1)输出*号图形
算法:引入LINE存放每一行的数据(长度为图形的第一列到最右)
LINE子串赋值
输出LINE
LINE回归为空串
;8.5.1 字符型数据作为函数过程变元
1.字符型变量作为虚元:
对应的实元必须是字符型变量、字符型数组元素、字符串常量或字符表达式等。
虚元必须在该子程序中说明其类型。
可采用固定长度,长度说明也可采用(*)。
例8-7 编写函数子程序,实现字符内在函数LEN_TRIM的功能。在主程序中输入一个字符串,对去掉尾部空格部分的字符子串中的字符逆序存放后输出。
输入:Good morning!
(1)去尾部空格算法:从右往左顺序查找非空格字符
(2)逆序算法:交换首尾对应元素
;FUNCTION LENTRIM(STRING)RESULT(LENTRIM_RESULT)
IMPLICIT NONE
CHARACTER(LEN=*),INTENT(IN)::STRING
INTEGER::LENTRIM_RESULT,I
LENTRIM_RESULT=0
DO I=LEN(STRING),1,-1
IF(STRING(I:I)/=’ ’)THEN
LENTRIM_RESULT=I
EXIT
ENDIF
ENDDO; END
;PROGRAM CHAR_INVERSE
IMPLICIT NONE
CHARACTER(20)::STRING1,C*1
INTEGER::I,K,LENTRIM
READ’(A)’,STRING1
K=LENTRIM(STRING1)
DO I=1,K/2
C=STRING1(I:I)
STRING1(I:I)= STRING1(K-I+1:K-I+1)
STRING1(K-I+1:K-I+1)=C
ENDDO; PRINT*,STRING1; END
;2.字符型数组作为虚元
虚元是字符型数组时,对应的实元必须是字符型数组、数组元素或字符型数组元素的片段等。
若长度不一致时,则虚实数组的元素间并不是一一对应结合。而是按字符进行一个一个字符地相结合。
例如虚元a,长度为3,实元b长度为5,a,b虚实结合规则为:
FUNCTION F(A)RESULT(F—RESULT)
CHARACTER(3),DIMENSION(4)::A
主程序调用语句:K=F(B); CHARACTER(5),DIMENSION(4)::B;8.6 程序举例;例: 验证一字符串是否为“回文”。
算法: 去尾部空格
首尾对应字符比较
;DO I=1,J/2
IF(LINE(I:I)/=LINE(J-I+1:J-I+1))THEN
文档评论(0)