1 / 22
文档名称:

数组的定义及使用.ppt

格式:ppt   大小:341KB   页数:22页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数组的定义及使用.ppt

上传人:分享精品 2017/11/14 文件大小:341 KB

下载得到文件列表

数组的定义及使用.ppt

相关文档

文档介绍

文档介绍:第六讲数组的定义及使用
数组的定义
数组是类型相同的一组变量的有序集合。
任何一组类型相同且有序的数据都可使用数组存储。
如:保存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)
数组分静态数组和动态数组
静态数组:在编译时分配存储单元,运行时数组大小不能改变。
INTEGER num(5) !在编译时分配5个数组元素存储单元(20字节)
动态数组:在程序运行时分配存储单元,运行时数组大小可改变。
INTEGER,ALLOCATABLE :: num(:) !在编译时不分配存储单元
ALLOCATE(num(5)) !在运行时分配5个数组元素存储单元(20字节)
数组大小为数组元素个数。
数组声明有3种方式:类型声明语句、DIMENSION语句、DIMENSION属性
使用类型声明语句进行数组声明。一般格式:
<数组声明语句>→<类型声明符> [::] <数组声明表>
<类型声明符>→INTEGER∣PLEX∣CHARACTER∣LOGICAL
<数组声明表>→<数组名>(<维说明表>)[=<数组初值>]{,<数组名>
(<维说明表>)[=<数组初值>]}
<维说明表>→<维说明符>{,<维说明符>}
<维说明符>→[<下界>:]<上界>
<数组初值>→(/<初值1>,<初值2>,…,<初值n>/)
声明下界为1的数组。
声明数组下界不为1的数组。
声明赋初值的数组及动态数组。
数组元素个数计算。
REAL a(L1:U1,L2:U2,…,Ln:Un) !数组元素个数m按以下公式计算:
m=(U1-L1+1)(U2-L2+1)…(Un-Ln+1)
如:REAL arr(2:5,-1:2,4),M=(5-2+1)(2-(-1)+1)(4-1+1)=64。
INTEGER(1)num(3),day(12) !声明KIND值为1的二个整型数组
INTEGER N(4),M(5,8) !声明KIND值为4的二个整型数组
REAL score(4),prices(15) !声明二个单精度实型数组
REAL(8) dr(5) !p(3) !声明一个单精度复型数组
CHARACTER*10 country(15) !声明一个长度为10的字符型数组
LOGICAL L(5) !声明一个KIND值为4的逻辑型数组
INTEGER count(-3:3) !声明一个一维整型数组,有7个数组元素
INTEGER week(0:6) !声明一个一维整型数组,有7个数组元素
REAL sc(-5:-1,5:9) !声明一个二维实型数组,有25个数组元素
REAL ar(2:5,-1:2,4) !声明一个三维实型数组,有64个数组元素
INTEGER :: num(3)=(/12,23,34/),day(12)
REAL :: a(-1:3)=(/,,,,/)
INTEGER :: X(3,4)=(/1,2,3,4,5,6,7,8,9,10,11,12/)
REAL,ALLOCATABLE::SUM(:),AVER(:,:),B(:)
READ(*,*) M,N
ALLOCATE(SUM(0:N),AVER(M,N),B(-1:M))
DEALLOCATE
使用DIMENSION语句进行数组声明。一般格式:
<DIMENSION语句>→DIMENSION <数组声明表>
例:
INTEGER day,count
CHARACTER*10 country
LOGICAL L
DIMENSION num(3),day(12),ihour(5:7),count(-3:3)
DIMENSION sc(-5:-1,5:9),ar(2:5,-1:2,4)
DIMENSION country(15),L(5)
DIMENSION语句中不能出现::,不能给数组赋初值。
使用类型声明语句和DIMENSION属性进行数组声明。一般格式:
<带DIMENSION属性的数组声明语句>→<类型声明符>,DIMENSION(
<维说明表>) :: <数组声明表>
例:
INTEGER,DIMENSION(2)::num,total,score(10:15),price(4,5)
REAL,DIMENSION(-5:-1,5:9) :: sc,jp
CHARACTER*10,DIMENSION(15) :: country,name(10)
IN