Fortran95程序设计-第五章-复件教程.pptx
文本预览下载声明
七、数组;复习—数据类型和属性;种别说明,F90的新概念。一个数据,不仅有一个类型,在同一类型下还可分若干种别,种别值确定了数据的大小范围和精度。有了种别说明后,程序更易于移植。因为在不同的计算机系统上,同一种变量类型可以有不同的精度,因此当程序在另一种机子上运行时可能会出现溢出。规定种别则可以避免这种现象出现。
一个数据通常在内存中占有一个存储单元。对整型数而言,如果该变量在程序中使用值范围很小,则只需半个存储单元,如果变量的整数变化范围很大,则存储时有必要占两个内存单元。实型数更复杂,除了存储的数值范围大小不同外,要求精度也会不同,有的只要8为有效值即可,有的则可能要24位有效值,因此所要求的存储单元数量不同,为了提高效率,节约内存,按照该变量表达的值范围与表达的精度范围,把同一类划分成几个种别,不同种别分配不同数目的内存单元。;属性说明关键字很多。一般来说,数据属性描述了一个对象是如何在程序中被应用的。可以使用一个或多个语句来规定某个数据对象的属性。Visual Fortran的数据属性如表所示:;;数组定义(基本使用)
数组赋值与运算(内容设置)
数组的保存规则
可变大小的数组及其它
数组的应用;数组是科学和工程计算问题中常见的向量和矩阵的反映和概括。数组在FORTRAN程序中有着重要的意义,在批量大的情况下,如果不利用数组就失去了计算机的优越性 。;统计100年内月平均温度及高于平均温度的月数。
统计学校1500名学生的平均身高及大于平均身高的男女生人数。
统计某商场近10年月平均销售额及高于平均销售额的月份。
求解100元一次方程组。
求解高阶微分方程。
计算50?50阶矩阵的转置矩阵。
对某班30名学生的学习成绩进行排序处理。
以上问题都要涉及几十、几百、几千,甚至上万个数据,如果在程序中采用简单的内部数据类型和变量来求解这类问题,其难度将大大增加,甚至无法设计和编写程序。
;!统计3个数的平均值及大于平均值的数据个数。使用普通变量和顺序结构实现。
PROGRAM example1
REAL a1,a2,a3,sum,av
INTEGER num
READ *,a1,a2,a3 !输入3个数
sum=a1+a2+a3 ;av=sum/3 !求3个数之和,计算平均值
num=0 !赋初值
IF (a1av) num=num+1 !统计大于平均值的数据个数
IF (a2av) num=num+1
IF (a3av) num=num+1
PRINT *,‘平均值为:’,av !输出平均值
PRINT *,大于平均值的数据个数为:,num !输出大于平均值的数据个数
END ;!统计15个数的平均值及大于平均值的数据个数。使用普通变量和顺序结构实现。
PROGRAM example2
REAL a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,sum,av
INTEGER num
READ *,a1,a2,a3,a4,a5,a6,a7,a8,aa9,a10,a11,a12,a13,a14,a15
sum=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15
av=sum/15; num=0
IF (a1av) num=num+1
IF (a2av) num=num+1
IF (a15av) num=num+1
PRINT *,平均值为:,av; PRINT *,大于平均值的数据个数:,num
END ;;;输入四个数A、B、C、D,请按照由小到大顺序将这四个数排序后输出出来 ; 数组定义;输入四个数A、B、C、D,请按照由小到大顺序将这四个数排序后输出出来 ;组成数组的每一个元素称为数组元素
数组的维数称为秩(rank),F90规定数组最多可以有7维;
在某一维中元素的个数称为该维的长度(extent);
数组中所有元素的个数称为数组的大小(size),它等于各维的长度的乘积,数组的大小可以为0。
数组的形状(shape)取决于秩和每一维的长度;声明方法(严谨):;数组(元素)的引用:;写出各步骤id 的值?;数组片段:; 数组赋值与运算;这是一个“隐含式”循环,I会从2增加到4,依照顺序到后面取数字,初始值设定结果为A(2)=2, A(3)=3, A(4)=4, A(1)和A(5)没有设定。;隐含的循环省略了“DO”的描述,除了应用在声明的初值设置,还可以应用到其他的程序代码中,比如输出命令
write(*,*) (a(i), I=2,4)
!
显示全部