Fortran的数据结构


3
二、双精度类型数据
双精度数在计算机系统中以两倍于实型的字节数来 存储,它提供的有效数字比实型数据多一倍以上。 双精度数也是近似的表示一个数,只是它的精度更 高。在同一个系统中,它与实型数据的表数范围相同。
双精度常数要以指数形式表示,并以d代替e。 1.1e2 1.1d2 1.234567e+01(只有7位有效数字) 1.234567d+01(表示1.234567000000000,假设双精度数为16位有效数字) 双精度型数据,要先用类型说明语句或implicit语句定义后使用 double precision amount, income implicit double precision (r, x-z) real*8 imax, volt real(8) imax, volt real (kind=8) imax, volt !Fortan 90 添加
比较时使用“.EQ.”、“.NE.”、“ .GT.”、“.GE.”、 “.LT.”、 “.LE.”关系符。 logical a,b,c,d a='shanghai'.ge.'shandong' b='this'.lt.'that' c='the'.eq.'the ' d='agent'.gt.'ago' write(*,*) a,b,c,d end 5. 字符处理内部函数
4
2 2 4 4 6 6 Y 前200项乘积。 求: 1 3 3 5 5 7 double precision i,ai,y y=1d0 i=1d0 2 4i 10 if(i.le.100d0) then 通项 : ai 2 ai=4.0*i*i/(4.0*i*i-1) 4i 1 y=y*ai i=i+1 goto 10 end if write(*,*) 'y=',y end
必须先定义后使用。
character*5 name, number, proper*20 character(5) name, number, proper*20 character (len=5) name, number, proper*20 !90添加 implicit character*4 (i, j), character*6 (r, x-z) character *5 name parameter ( name=’China’)
线段AB:A(1, 1),B(4.5, 4.5); 求:AB长度及黄金分割点C坐标。 complex a,b,c real L read(*,*) a,b c=a+0.618*(b-a) L=abs(a-b) write(*,*) 'L=',L write(*,*) 'c=',c end
11
复型数据之间可以进行加、减、乘、除运算。 设A=(a1,a2),B=(b1,b2): A+B=( a1+b1,a2+b2) A-B= ( a1-b1,a2-b2) A*B= ( a1*b1-a2*b2, a1*b2+a2*b1 ) A/B= ((a1*b1+a2*b2)/ (b1*b1+b2*b2) , (a2*b1-a1*b2 )/ (b1*b1+b2*b2))
16
character*5 name1,name2,name3 name1='Wuhan' name2='Shanghai' name3='Lasa' write(*,*) name1,name2,name3,'!' end
Wuhanname1;Shangname2;Lasa□name3 character*5 name1,name2,name3 read(*,*) name1,name2,name3 write(*,*) name1,name2,name3,'!' end
“个别指定”优先于“统一指定”。
在内存中用一个字节存放一个字符。
15
a='hello' !Fortran77只能用单引号封装字符串 b="hello " !Fortran90可以用双引号封装字符串 c="That's right. " ! 双引号封装字符串,可在字符串中任意使用单引号 d='That''s right. ' ! 单引号封装字符串,输出单引号要连续使用两个单引号 e="That's ""right"". " ! 双引号封装字符串,输出双引号要连续使用两个双引号
cmplx(3.0)则 转成(3.0, 0.0)
7
求一元二次方程Ax2+Bx+C=0的根
complex x1,x2 read(*,*) a,b,c d=b*b-4.0*a*c part1=-b/(2.0*a) part2=sqrt(abs(d))/(2.0*a) if(d.ge.0.0) then x1=cmplx(part1+part2, 0.0) x2=cmplx(part1-part2, 0.0) else x1=cmplx(part1,part2) x2=cmplx(part1,-part2) end if write(*,*) 'x1=',x1 write(*,*) 'x2=',x2 end
12
不同数值类型数据间运算遵循由低级向高级转化原 则:(低)整型实型双精度型复型(高)。
13
三、字符型数据
1. 字符型常量 用单引号括起来的若干个字符,也称字符串。 Fortran77语句字符集: (1)英文26个字母的大小写; (2)0~9的10个数字; (3)□(空格)、’、$、(、)、+、-、*、/、,、 =、.、:13个专用字符。
Z 2 r2 iL2
50 2 314.59
Z Z 0 Z12 Z 0 Iຫໍສະໝຸດ Z1Z 2 Z1 Z 2
U Z Z , I1 I 12 , I 2 I 12 Z Z1 Z2
9
implicit real(l) implicit complex(u,i,z) parameter (omega=314.1592) u=(220.0,0.0) Z 0 r0 iL0 write(*,*) 'enter r0,l0,r1,c1,r2,l2,c2' read(*,*) r0,l0,r1,c1,r2,l2,c2 1 i Z1 r1 r1 z0=cmplx(r0,omega*l0) iC1 C1 z1=cmplx(r1,-1.0/(omega*c1)) i Z 2 r2 iL2 z2=cmplx(r2,omega*l2-1.0/(omega*c2)) C 2 z12=(z1*z2)/(z1+z2) 50 2 314.59 z=z0+z12 i=u/z Z1Z 2 i1=i*z12/z1 Z Z 0 Z12 Z 0 Z1 Z 2 i2=i*z12/z2 write(*,*) 'z=',z U Z12 Z12 I , I I , I I 1 2 write(*,*) 'i=',i Z Z1 Z2 write(*,*) 'i1=',i1 write(*,*) 'i2=',i2 end 10
18
4. 字符表达式和字符关系表达式
Fortran77的字符表达式只有“//”(字符连接符)运算。 character*25 name,name1 name='Fortran Powerstation4.0' name1=name(9:20)//' '//name(1:7) & //name(21:23) write(*,*) '-',name,'-' write(*,*) '-',name1,'-' end Powerstation Fortran4.0name1 字符间可以比较大小,具体规律为: 一般按其ASCII码的值进行比较。例如:字母a小z大, A小Z大;数字0小9大;两个字串比较时,从左至右依此 比较字符,第一个小者即为小;不同长度字串比较时, 短的右端补齐空格;空格字符最小。 19
6
复型常数表示为: 1+2.5i -5.4i 7.8 (1.0, 2.5) (0.0, -5.4) (7.8, 0.0)
如果实部或虚部是表达式,则需通过cmplx函数转 换成复型数。 complex cordxy, trans Read(*,*) x,y trans=(3.0, 6.5) cordxy=cmplx(3.0*x, 6.5*y) Write(*,*) trans, cordxy end
第一章 算法 第二章 计算机和计算机程序 第三章 Fortran语言程序设计初步 第四章 逻辑运算和选择结构 第五章 循环结构的实现 第六章 Fortran的数据结构 第七章 数据的输入、输出 第八章 常用算法的程序设计举例
1
一、程序中的数据结构
程序处理的对象是数据 某班学生
学生1
学生2

学生30
而字符串中的字符规定要宽得多,能够从键盘等输入 的都可以作为引号中的字符。 ’Lao Li’, ’That’’s it’, ’How are you?’, ’*@#^%&!~’, ’机器’, ’z=x+y’, ’01001’, ’U.S.A.’, ’μΩ’, ’きは’, ’ ☆☆☆’
14
2. 字符型变量
职工记录 职工名 职工号 性别 年龄 家庭住址
合集下载

第六讲 Fortran数据结构及输入、输出

第六讲  Fortran数据结构及输入、输出
6.1 复数型数据运算及内部函数
将参数转换为复数型。 将参数转换为复数型。
将参数转换为复数型。结
REAL(x) REAL(x) IMAG(x) IMAG(x) CONJG(x) CONJG(x)
求x的实部。 的实部。 同AIMAG(x)。 AIMAG(x)。 (x) 求x的共轭复数。 的共轭复数。
AIMAG(x) 的虚部。 AIMAG(x) 求x的虚部。
字符按先后排列成某种次序, 字符按先后排列成某种次序,每个字符在排序中有确定的位 character(len= 6) first 称为排序号 有了排序号, 排序号。 置,称为排序号。有了排序号,字符之间就可以比较大小及 character(len=10) second 相等与否,组成关系表达式。 相等与否,组成关系表达式。
6.1 字符型数据/ A(11:) 11: A(字符型数据/子字符串 -> 11
Fortran数据结构及输入 数据结构及输入、 第六讲 Fortran数据结构及输入、输出
字符型数据
字符运算符: 字符运算符:// 子字符串 运算符 内部函数 例子
program ex060202 ,系统都把本机上可以使用的各种 关系表达式:对每种机器, 关系表达式:对每种机器
end
Fortran数据结构及输入 数据结构及输入、 第六讲 Fortran数据结构及输入、输出
字符型数据
函数名 子字符串 运算符 内部函数 说明
LGE(s1,s 按 ASCII码值判定字符串 。 LGE(s1,s2 * ASCII码 码值判定字符串s ASCII 码值判定字符串 转换为对应字符。 ACHAR(n)2)将ASCII码n转换为对应字符s1 大于等于 字符串s 字符串s2。 ADJUSTL(string)* 将字符串string 左对齐, string左对齐 ADJUSTL(string)* 将字符串 string 左对齐 , 即去 掉左端空格* 按 ASCII 码值判定字符串 s1 大于字符 LGT(s1,s2 ASCII码值判定字符串 码值判定字符串s LGT(s1,s2) 串s2。 ADJUSTR(string)* 将字符串string 右对齐, string右对齐 ADJUSTR(string)* 将字符串 string 右对齐 , 即去 掉右端空格。string:CH(*),结果类型同string 结果类型同string 掉右端空格。string:CH(*),结果类型同1 小于等于 LLE(s1,s2 ASCII码值判定字符串 码值判定字符串s LLE(s1,s2)* 按 ASCII 码值判定字符串 s 字符串s ASCII码 转换为对应字符。 字符串 CHAR(n)* s2。 CHAR(n)* 将ASCII码n转换为对应字符。 IACHAR(c)* 将字符c转换为对应的ASCII码。 ASCII码 IACHAR(c)** 将字符c转换为对应的ASCII小于字符 LLT(s1,s2 ASCII码值判定字符串 码值判定字符串s LLT(s1,s2) 按 ASCII 码值判定字符串 s1 串s2。 ICHAR(c)* 将字符c转换为对应的ASCII ASCII码 ICHAR(c)* 将字符c转换为对应的ASCII码。

fortran数据结构ch09-数组

fortran数据结构ch09-数组

§1 数组的说明和数组元素的引用
2011-4-11
数组的逻辑结构和存储结构(p198 (p198§2 数组的逻辑结构和存储结构(p198-200)
一、一维数组的逻辑结构和存储结构 1. 逻辑结构 一维数组是线性表的一种表现形式。 一维数组是线性表的一种表现形式。 线性表的特点: 存在唯一的一个被称做“第一个” 线性表的特点:⑴存在唯一的一个被称做“第一个” 的数据元素; 存在唯一的一个被称做“最后一个” 的数据元素;⑵存在唯一的一个被称做“最后一个”的 数据元素; 除第一个之外, 数据元素;⑶除第一个之外,表中的每个数据元素均只 有一个前驱; 除最后一个之外, 有一个前驱; ⑷除最后一个之外,表中的每个数据元素 均只有一个后继。 均只有一个后继。 一维数组的逻辑结构是按数组元素下标值由小到大排 一维数组的逻辑结构是按数组元素下标值由小到大排 列的一个线性表, 列的一个线性表,每个元素的下标值确定了该元素在表 中的位置。 中的位置。
2011-4-11
dimension c(2,2,2),问c的元素存储顺序如何? 的元素存储顺序如何? , 的元素存储顺序如何 c(1,1,1) c(2,1,1) c(1,2,1) c(2,2,1) c(1,1,2) c(2,1,2) c(1,2,2) c(2,2,2)
15
注意: 注意: 存储结构: 存储结构:一个数组在计算机内存中实际存 放的形式。 放的形式。 Fortran程序可以在一个输入 / 输出语句中通 程序可以在一个输入 输出; 过数组名对所有数组元素进行一次性的输入 / 输出; 采用这种形式时, 采用这种形式时,输入 / 输出的顺序是和存储结构 的顺序一致的。 的顺序一致的。
6
下标下界和上界必须是整型常量或整型常量表达式, ⑶ 下标下界和上界必须是整型常量或整型常量表达式, 上界≥下界 下界。 且上界 下界。

fortran二维数组存储顺序

fortran二维数组存储顺序

fortran二维数组存储顺序Fortran二维数组存储顺序Fortran是一种古老而又经典的编程语言,具有高效、稳定、可靠等优点,被广泛应用于科学计算、工程设计、数据处理等领域。

在Fortran 中,二维数组是一种常见的数据结构,它可以用来表示矩阵、图像、地图等复杂的数据模型。

而二维数组的存储顺序则是Fortran程序员需要了解和掌握的重要知识之一。

按类划分,Fortran二维数组的存储顺序可以分为两种:行主序(Row-major order)和列主序(Column-major order)。

下面分别对这两种存储顺序进行详细介绍。

一、行主序行主序是指二维数组按照行为主序进行存储,即先存储第一行的所有元素,再存储第二行的所有元素,以此类推,直到存储完最后一行的所有元素。

在Fortran中,行主序是默认的存储方式。

例如,有一个3×4的二维数组A,其元素值分别为:A(1,1)=1 A(1,2)=2 A(1,3)=3 A(1,4)=4A(2,1)=5 A(2,2)=6 A(2,3)=7 A(2,4)=8A(3,1)=9 A(3,2)=10 A(3,3)=11 A(3,4)=12那么,在行主序下,A的存储顺序为:1 2 3 4 5 6 7 8 9 10 11 12。

行主序的优点是访问数组元素时具有更好的局部性,即访问相邻的元素时可以利用CPU的缓存机制,提高访问效率。

而其缺点则是在进行列操作时,需要跨越多个内存块,导致访问速度变慢。

二、列主序列主序是指二维数组按照列为主序进行存储,即先存储第一列的所有元素,再存储第二列的所有元素,以此类推,直到存储完最后一列的所有元素。

在Fortran中,可以通过在数组声明时使用“column-major”来指定列主序。

例如,有一个3×4的二维数组B,其元素值分别为:B(1,1)=1 B(1,2)=5 B(1,3)=9B(2,1)=2 B(2,2)=6 B(2,3)=10B(3,1)=3 B(3,2)=7 B(3,3)=11B(4,1)=4 B(4,2)=8 B(4,3)=12那么,在列主序下,B的存储顺序为:1 2 3 4 5 6 7 8 9 10 11 12。

fortran教程[技巧]

fortran教程[技巧]

前言FORTRAN90的新特性1、淘汰了所有转移语句,增加了新的控制结构,使程序结构化。

增加了结构块,模块及过程的调用灵活形式。

2、加强数组的算法功能。

提出超载概念与实现方法。

提高了文字处理功能。

3、更接近自然语言与公式演算。

允许在字符数据用选取不同种别。

特别:语句书写对列的要求放宽:一般一行写一条语句(也可也多个语句,用“;”分隔),没有标号区、续行区、正文区的区别。

一行最多为132列,可以在任何列处中断语句,中断处写一个“&”,随后在下一行任意列处继续。

一个语句最长不能超过2640个字符。

语句结尾不可有标号、符号。

注释以“!”开始,可以位于任何位置。

***以下只讨论与FORTRAN77不相同处。

第一章FORTRAN90的基本语句第一节类型说明语句1、变量名全长不得超过31个字符。

2、变量类型定义:INTEGER::X,YREAL::ACOMPLEX::B,C,D3、建议淘汰隐式说明,在程序说明部分一开始就写:IMPLICIT NONE向系统声明不使用隐式说明。

4、可以在变量说明时就置初值。

如:REAL::X=1.1,Y,Z=2.25、种别——决定变量的精度和所占内存单元数。

a.如:REAL(KIND=2)::X 说明变量X为REAL型,种别为2。

KIND是种别说明关键字。

如没有种别说明,则采用系统省缺值。

b.有关函数:KIND(X) 返回X的种别参数。

当X取常数0时,返回省缺种别参数。

如KI ND(0)、KIND(0.0)、KIND(.FALSE.)、KIND('A')分别返回整型、实型、逻辑型、字符型的省缺种别参数。

SELECTED_REAL_KIND(N,M) 返回种别参数,使之满足十进制有效位为N, 值范围在10**(-M)和10**M之间的实数。

SELECTED_INT_KIND(N,M) 与上类似,选择整型类别。

c.常数类别表示对数值型常数、逻辑型常数用后缀法,即在常数后加一下划线,再跟种别参数。

fortran指针与动态数据结构

fortran指针与动态数据结构

!例11.1 使用指针实现两个整数交换 组元素、结构体成员的访问,采用直接访问方式。如图 12INTEGER,TARGET :: I,J !声明两个目标变量I和J 2所示。 INTEGER,POINTER :: P1,P2,P3 !声明三个指针变量P1、P2和P3 I !给目标变量I和J直接赋值 J I=25;J=35 I=125 125 3*125 125!给指针分配指向 375 P1=>I;P2=>J I和J的存储空间 J=3*I WRITE(*,*) '未交换数据:',P1,P2 !通过指针变量间接输出I和J的值 P3=>P1;P1=>P2;P2=>P3 !交换指针P1和P2指向的目标变量 间接访问:先从存储单元中得到被访问存储单元地址,然后 PRINT*, '已交换数据:' ,P1,P2 !通过指针变量间接输出J和I的值 通过该地址访问被访问存储单元中的内容。如对指针变量 END的访问,采用间接访问方式。如图12-3所示。
数组、结构体的地址。通过改变其所存储的地址内容实现 动态数据结构。
示例:
11.1 概述/存储结构
INTEGER,TARGET :: I=1255 REAL :: R=534.45 CHARACTER*5 ::S='CHINA‘ INTEGER :: A(3)=(/35,45,55/) INTEGER,POINTER :: P P=>I
F90指针保存目标变量名称,将指针看成目标变量的别名。 交换前 交换后 (示例)
图12-4 指针交换 指针变量声明后,未分配存储空间 ,访问前需分配存储空间。
第十一讲
指针与动态数据结构
11.1 概述

概述 存储结构

fortran中数组的定义 -回复

fortran中数组的定义 -回复

fortran中数组的定义-回复Fortran 中数组的定义在Fortran编程中,数组是一种强大且灵活的数据结构。

它允许我们存储和操作一系列相同类型的数据。

数组在科学计算中广泛应用,可以用于存储矩阵、向量、图像等多维数据。

在本文中,我们将一步一步回答有关Fortran中数组的定义的问题。

第一步:声明数组在Fortran中,要声明一个数组,我们需要指定数组的名称、维度和元素的数据类型。

数组的名称是一个标识符,用于在程序中引用该数组。

维度决定了数组的大小和形状,可以是一维、二维、三维或更高维。

元素的数据类型定义了数组中每个元素的类型,可以是整数、实数、复数等。

在Fortran中,声明一个一维整数数组的语法如下:fortranINTEGER :: myArray(10)这个声明语句创建了一个名为myArray的整数数组,大小为10。

我们可以通过myArray(i)来访问数组中的元素,其中i代表数组中的索引。

索引从1开始,最大为数组的大小。

第二步:初始化数组在声明数组之后,可以选择对数组进行初始化。

作为初始化的一种方法,我们可以使用一个数组常量来为数组赋值。

数组常量是一个由花括号括起来的列表,其中包含了按顺序排列的元素值。

例如,下面的语句将一个一维整数数组的前五个元素初始化为1、2、3、4和5:fortranINTEGER :: myArray(10)myArray = [1, 2, 3, 4, 5, 0, 0, 0, 0, 0]这个数组被初始化为:1, 2, 3, 4, 5, 0, 0, 0, 0, 0。

数组的大小必须与数组常量的元素数目相匹配,否则会引发编译错误。

第三步:访问数组元素一旦数组被声明和初始化,我们可以使用索引操作符来访问和修改数组元素的值。

在Fortran中,数组的索引从1开始,并且可以使用一个或多个索引来访问多维数组的元素。

以下是一个二维实数数组的声明和初始化:fortranREAL :: myArray(3, 3)myArray = RESHAPE([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], [3, 3]) 这个数组myArray的值被初始化为:1.0 4.0 7.02.0 5.0 8.03.0 6.0 9.0我们可以使用两个索引来访问二维数组中的元素。

Fortran数据结构及输入输出


CMPLX(x[,y][,kind]) 将参数转换为复数型。 结果:C(kind)。
DCMPLX(x[,y]) 果:C(8)。 6.1 复数型数据运算及内部函数
将参数转换为复数型。结
REAL(x) 求x的实部。
AIMAG(x) 求x的虚部。
IMAG(x) 同AIMAG(x)。
CONJG(x) 求x的共轭复数。
定义 声明1 声明2 声明3 说明
6.2 数组
数组是类型相同的组变量的有序集合。 任何一组类型相同且有序的数据都可使用数组存储。 如:保存30名学生成绩数据的一组变量:s1,s2,s3,…,s30
REAL s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15 这组变量可用数组s取代,数组元素s(1),s(2),…,s(15),分别取代 s1,s2,…,s15。
REAL s(15) 数组分静态数组和动态数组
静6.2 数态组/定数义 组:在编译时分配存储单元,运行时数组大小不能改变。 INTEGER num(5) !在编译时分配5个数组元素存储单元(20字节) 动态数组:在程序运行时分配存储单元,运行时数组大小可改变。 INTEGER,ALLOCATABLE :: num(:) !在编译时不分配存储单元 ALLOCATE(num(5)) !在运行时分配5个数组元素存储单元(20字节) 数组大小为数组元素个数。 数组声明有3种方式:类型声明语句、DIMENSION语句、DIMENSION属性
第六讲 Fortran数据结构及输入、输出
1. Fortran 数据结构 2. 数组 3. 数据有格式输入输出概述 4. 格式说明与格式编辑符 5. 整数有格式输入输出 6. 实数有格式输入输出 7. 复数有格式输入输出 8. 字符串有格式输入输出 9. 逻辑值有格式输入输出 10.二、八、十六进制数据有格式输入输出 11.任意类型数据有格式输入输出 12.不可重复编辑符 13.纵向走纸控制 14.有格式输入输出应用举例 15.作业

fortran的数据结构

3
6.1 程序中的数据结构
1) 基本类型(简单类型)
是最基本的数据项,不可再分,在 FORTRAN语言中,它主要包括: 整型、实型、双精度型、逻辑型、 复型、字符型数据类型。
4
6.1 程序中的数据结构
2)构造类型:
由基本类型按一定的规则构造而成 的复合类型的数据。主要包括: 数组、记录、文件、集A=(2.1, -2.2) B=(3.1, 3.2) C=A+B Print *, A Print *, B Print *, C End
如:复数直接运算
23
24
这是错误的,必须使 用CMPLX()函数
Complex a,b,c,d S1=2.0 S2=4.5 a=(1.1,-2.3) b=(3.3,-4.4) c=a+b Print *, C d=(1.1+s1,2.2+s2) Print *,d End
在科学计算中常常会遇到复数运算问题:
*数学中求解方程的根; *电工学中交流电路的计算; *自控系统中传递函数的计算等. 在数学中的复数: 2+3.5i 或 15-5.6i 用复型数据表示为: (2.0, 3.5) (15.0, -5.6)
20
6.3 复型类型数据
Fortran77提供了复型数据结构,就
8
6.2 双精度类型数据
Real A, C Double Precision B, D A=1E38 在VF4系统中:F.for和F.f90 C=1E-37 一样,这是它们的最大数。 B=1D308 D=1D-306 Print *, A, C Print *, B, D End
9
A,C为实型数; B,D为双精度型数.
17
18

fortran知识点总结

fortran知识点总结一、语法结构Fortran语言的语法结构遵循一套严格的规则。

下面是一些常见的语法结构:1. 程序单元:Fortran程序由一个或多个程序单元组成。

每个程序单元由一个或多个声明和执行语句组成。

2. 注释:在Fortran中,注释可以用来提高代码的可读性。

注释以感叹号(!)开头,直到行末为止。

3. 标识符:Fortran中的标识符由字母、数字和下划线组成,且区分大小写。

标识符用于表示变量、函数、子程序等。

4. 变量声明:在Fortran中,变量声明使用关键字“REAL”、“INTEGER”、“LOGICAL”等来指定变量的数据类型。

例如,REAL :: x 表示声明了一个实数类型的变量x。

5. 程序控制结构:Fortran提供了多种控制结构,包括顺序结构、条件结构和循环结构。

这些结构提供了程序的流程控制和逻辑控制。

6. 函数和子程序:Fortran支持函数和子程序的定义和调用。

函数和子程序可以帮助程序员组织和重用代码。

7. 模块和接口:Fortran中的模块和接口提供了一种组织代码的方式。

模块可以包含多个子程序和全局变量,接口可以用来定义子程序的接口。

二、数据类型在Fortran中,数据类型用于表示数据的类型和大小。

Fortran提供了多种数据类型,包括整数、实数、逻辑值、字符、复数等。

下面是一些常见的数据类型:1. 整数:整数类型用于表示整数值。

在Fortran中,整数类型包括“INTEGER”、“LOGICAL” 和“CHARACTER”类型。

2. 实数:实数类型用于表示实数值。

在Fortran中,实数类型包括“REAL”和“COMPLEX”类型。

REAL类型用于表示实数,COMPLEX类型用于表示复数。

3. 字符:字符类型用于表示字符值。

在Fortran中,字符类型使用CHARACTER关键字进行声明。

字符类型可以表示单个字符或者字符数组。

4. 数组:数组类型用于表示多个相同类型的数据。

Fortran结构体PPT课件


program clerkrecord
implicit none
integer :: k, i
type clerk
! 定义结构体类型
integer num
character(15) name
real sal
end type clerk
type (clerk), dimension(150):: cl ! 定义结构体数组
TYPE STUDENT
CHARACTER(15) NAME
INTEGER
MARK
INTEGER
GRADE
END TYPE STUDENT
TYPE (STUDENT)::STRE (N)
INTEGER I, N, KEY
I=1
DO WHILE((STRE (I)%MARK.NE.KEY).AND.(I.LE.N))
i=1
do while (stre(i)% MARK <new% MARK. and. i<=N)
i=i+1
end do
do j=N, i, -1
stre(j+1)=stre(j)
end do
stre(i)=new
end
12
! 顺序查找
SUBROUTINE SORT_SEARCH(STRE, N, KEY)
read *, cl(i).sal end do do i=1, 150 if(cl(i).sal<500) then ! 打印 工资<500的职工信息 及计数
k=k+1 print*, cl(i).num, " ", cl(i).name, " ", cl(i).sal end if end do Print *, k end
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档