版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、fortran重点,昨晚看Fortran PPT,找了一些较为基础的知识点,重点,复制粘贴过来,由于时间关系未加整理,内容比较零散,凌乱,多是一些关键语句的定义,配上一个例子,大家对照着书本额基本的知识点看看,有时间的话能给大家讲讲最好。,指数部分:只能为整数 错例:4E5.6 数字部分不能丢; 例:10-4: E-4(错) 1E-4(正确) 以标准化形式(规格化指数)输出(=1) 1。数字部分的值小于1,且小数点后的第一位数字非0 例:0.743643E-12 (正确) 21.835E-12 (错) 2。数字部分有且仅有一位非零的整数。 例:7.43643E-12 (正确),数字部分E(或D
2、)指数部分 科学计数法 0.876=87610-3 876E-3,如:Im a student. 可采用两种表示方法: 1) Im a student. 2 ) I m a student. ,1、定义:程序运行过程中值可变化的量 2、命名的规则,错例 3A 、 x-3 、3.14 、A3 $,2.3.5 变量的命名,基本类型有五种,同常量。五种变量的类型说明关键字分别是: 整型:INTEGER 实型: REAL (非重点)复型:COMPLEX 逻辑型:LOGICAL 字符型:CHARACTER :默认长度为一,INTEGER:I=5,J=126 REAL:X=7.2,Z,W=774.2,2.
3、3.7 基本类型数组,数组是具有相同类型的元素的有序集合。数组在使用之前必须说明。 数组的说明: INTEGER,DIMENSION(1:50):X 数组名为X,类型为整型,元素个数为50。 INTEGER,DIMENSION(5,3):B 数组名为B,类型为整型,元素个数为5*3个,2.4.1 主程序,主程序的结构:,PROGRAM 程序名称 声明语句部分 执行语句部分 ENDprogram 程序名称,练习1:FORTRAN90使用的专用字符集中,以下字符中可用于标识符(如变量名)的是:,A. * B. $ C. _(下划线) D. B=20 C=A A=B B=C,例:使用赋值语句交换A,
4、B值,简单的输入语句: Read *,变量名表 Read(*,*)变量名表,print “(2I3,I4)”,I,J,K,DO READ *,X IF(X=0) EXIT IF(X0) CYCLE NUM=NUM+1 SUM=SUM+X ENDDO,运算符的优先级,类型 运算符 优先级 括号( ) 1 算术运算 * 2 *, / 3 +, - 4 关系运算 ,=,=,=,/= 5 逻辑运算.NOT. 6 .AND. 7 .OR. 8 .EQV.,.NEQV. 9,FUNCTION FACT(N) RESULT(FACT_RESULT) IMPLICIT NONE INTEGER:N,I,FAC
5、T_RESULT FACT_RESULT=1 DO I=1,N FACT_RESULT=FACT_RESULT*I ENDDO END FUNCTION FACT,PROGRAM MAIN INTEGER:FACT,SUM=0,I DO I=1,5 SUM=SUM+FACT(I) ENDDO PRINT*,SUM END,函数,INTEGER,DIMENSION(1:5):A,B(-1:2),C,REAL(4),DIMENSION(1:3,1:4):D=0,DO I=1,15 READ*,A(I) ENDDO,integer,dimension:a(10),integer,dimension(
6、10):a,例: INTEGER,DIMENSION(6:50):A 则下列片段含有的元素为哪些? A(10:30:1) A(:20:5) A(8:10),A(10)至A(30)中连续的21个元素,表示A(6)、A(11)和A(16),表示A(8)、A(18)、A(28)、A(38)和A(48),例7-4 使用数组片段输出,PROGRAM TRIPLET IMPLICIT NONE INTEGER,DIMENSION(1:15):R INTEGER:I DO I=1,15 R(I)=I ENDDO DO I=1,11,5 WRITE(*,(1X,5I4) R(I:I+4) ENDDO END
7、PROGRAM TRIPLET,输出结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,几行?每行几个?哪几个?,数组构成器是表达式。 1、用于给数组名赋初值(数组说明时) integer,dimension(4):A=(/1,2,3,4/) 2、用于直接给一维数组名或片段一般性赋值。 integer,dimension(4):A A=(/1,2,3,4/) A(2:4)=(/5,6,7/),二维数组的说明(增加一对维界): INTEGER,DIMENSION(1:4,1:5):A REAL,DIMENSION(1:7,1:15):R 二维数组的大小(体积):各维维
8、长的乘积 例:REAL,DIMENSION(2:4,3:6):A 则A的大小为(4-2+1)*(6-3+1)=12 二维数组片段:与一维数组同,只是增加一维 例:V(2:4:2,1:7:3) 表示元素:V(2,1)、V(2,4)、V(2,7)、V(4,1)、V(4,4)、V(4,7) 例:C(1:4:3,6) 表示元素:C(1,6)、C(4,6),7.3.1 二维数组的概念,例: DO I=1,2 DO J=1,3 READ*,A(I,J) ENDDO ENDDO 6个READ语句输入6行,输入:,2、使用双重显DO循环控制元素顺序, 行在外按行序,列在外按列序。(数组元素),1 2 3 4
9、5 6,READ*, (A(I,J),J=1,3),I=1,2) READ*, (A(I,1:3),I=1,2) 等价于:READ*,A(1,1:3),A(2,1:3),如使数据按行优先的原则存放,需要使用ORDER选项。 例:INTEGER,DIMENSION(2,3):B B=RESHAPE(SOURCE=(/1,2,3,4,5,6/),SHAPE=(/2,3/),ORDER=(/2,1/),或: B=RESHAPE(/1,2,3,4,5,6/),(/2,3/), ORDER=(/2,1/),注意:“ORDER=” 不能省略。,ORDER=(/1,2/)为列序,与缺省同,编写主程序把n个整
10、数中最大的数找出来,并指出它在队列中的位置。 当数组大小未知,可用动态数组实现,IMPLICIT NONE INTEGER,DIMENSION(:),allocatable:A !说明动态数组 INTEGER:MAX,K,I,n Read*,n Allocate(a(n) !分配存储空间 READ*,(A(I),I=1,N) MAX=A(1);K=1 DO I=2,n IF(A(I)MAX)THEN MAX=A(I);K=I ENDIF ENDDO,Print*,max,k Deallocate(a) !释放空间 end,主程序中动态数组的应用,READ(*,(3I2)((A(I,J),J=1
11、,3),I=1,2) 格式隐DO输入: 1 2 3 4 5 6 DO I=1,2 READ(*,*)(A(I,J),J=1,3) ENDDO 行显DO列隐DO的输入:1,2,3 4,5,6,输入格式:与外观一致,7、与外观一致的输入输出格式(重点),10 2 5,例:INTEGER,DIMENSION(2,5):A PRINT*,SIZE(A) PRINT*,SIZE(A,DIM=1) PRINT*,SIZE(A,2),2、求数组极值函数 求数组A的最大值函数:MAXVAL(A,DIM,MASK=逻辑表达式) 可选项MASK:起屏蔽作用,为逻辑表达式 求数组最小值的函数: MINVAL (A,
12、DIM,MASK) 例:MAXVAL(A) MAXVAL(A,2) MINVAL(A,1,MASK=A0),求数组每行的最大值,函数值是数组,求数组每列正数中的最小值,函数值是数组,字符变量应先说明其类型、长度、名字,再使用,Character(8,1):Var,Au,长度在前,种别在后,只有长度说明而无种别参数说明时,可采用以下说明: Character(len=7):A Character(7):A Character*7:A,6、有时可把长度值写成一个星号,表示此处暂不指明其长度,也可理解为长度任意,但要加括号。例: Character(LEN=*):CH,PARA Character(
13、*):CH,PARA Character*(*):CH,PARA Character(2): CH,PARA*(*),例:子串写法 A(1:3) 123 A(4:5) 45 A(3: 3) 3 A(:4) 1234 A(4:) 456 A(:) 123456,ASCII顺序:空格 0 9 , A Z , a z 32 4857 6590 97122,CHARACTER(LEN=5):A,B,C*4 READ (3A),A,B,C,(1)用字符型编辑符:A 宽度的值同长度的值,A1234 B12 C12345,例: CHARACTER(LEN=5):A,B,C*4 READ (A5,A3,A6)
14、,A,B,C,输入:A1234B12C12345,Aw:,如果具有Dimension属性,就成为字符数组。 例: character(3),dimension(4):a A的每个元素的长度均为3 A(1)(1:1)表A(1)中的第1个字符,Ichar 和Iachar:字符向字符序号转化 例: Ichar(A) 65,char(82) R,Ichar 和Iachar:字符向字符序号转化,char 和achar :字符序号向字符转化,INDEX(STR1,STR2):返回STR2在STR1中的起始位置,若STR2不是 STR1 的字串,则返回0。,4.1.1 关系表达式(表示简单的条件) 一、关系运算符: 、 =、 、 =、 =(等于)、 /=(不等于) (常用),.NOT. a:求反运算, a.AND.b:a与b同时为真,表达式值才为真 a.OR.b: a与b有一个为真,表达式值就为真,语句写法: IF(条件) 一条语句 例:IF (X0) PRINT*,X,IF(条件)THEN ! 块IF语句 语句体1(then块) ! 由若干语句组成 ELSE ! ELSE语句 语句体2(else块) !由若干语句组成 ENDIF ! ENDIF语句,SELECT CASE(x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 3.5.2 神经调节的结构基础(第一课时)教学设计-2023-2024学年济南版生物七年级下册
- 综合管廊防水防腐工程施工方案及技术措施
- 6.2 制作数字作品 第一课时(教案)三年级下册信息技术苏科版2023
- 5《应对自然灾害》 第二课时 教学设计道德与法治六年级下册统编版
- 2025-2026学年瓶盖教学目标设计
- 2025-2026学年巧妙移动教学设计
- 4.6 循环结构程序设计实例教学设计中职信息技术(信息科技)编程语言基础-C语言(第5版)高教版
- 2026年国学知识竞赛题库题及答案
- 农家乐景观改造施工方案及技术措施
- 2026年中小学生健康知识竞赛题库(附答案)
- 劳动关系协调师竞赛技能竞赛考试题库(含答案)
- DL∕T 5106-2017 跨越电力线路架线施工规程
- 《细胞分子生物学》课件
- 中医诊所防火管理制度
- (完整版)一年级数独100题
- 武术馆聘用教练合同
- 信阳市国企招聘考试真题及答案
- 常州市房屋租赁合同(常州市2021版)
- 高支模工程专项施工方案(附图及计算书)
- 毒理学基础名词解释与问答题
- 安全事故处理监理程序
评论
0/150
提交评论