当前位置:首页 > Fortran语言基础 - 图文
山东建筑大学
fn_2 = fn_1 fn_1 = fn end do stop end
33
数值分析程序设计——Fortran基础
5 数组(ARRAY)
5.1 基本使用
5.1.1 一维数组
数组声明方法:
DATATYPE NAME (SIZE) 例如: INTEGER A(10) Integer, dimension(10) :: a 例 记录5人成绩的程序
program ex0701 implicit none
integer, parameter :: students = 5 integer :: student(students) integer i do i=1, students
write(*,\ read(*,*) student(i) end do do while( .true. ) write(*,*) \ read(*,*) i
if ( i<=0 .or. i>students ) exit write(*,*) student(i) end do stop end
执行后会要求按照学生学号一个一个地输入成绩,输入完成后就可以按照学生学号来查询成绩,输入一个不存在的学号会结束程序。
34
山东建筑大学
5.1.2 二维数组
声明数组大小时,时用两个数字,他就声明为二维数组。 integer a(10,5) real a(12,3)
二维数组经常被用来当成矩阵使用。 例 二阶矩阵加法
program ex0704 implicit none
integer, parameter :: row = 2 integer, parameter :: col = 2 integer :: matrixA(row,col) integer :: matrixB(row,col) integer :: matrixC(row,col) integer r ! 用来指定row integer c ! 用来指定column ! 读入矩阵A的内容 write(*,*) \ do r=1, row do c=1, col
write(*,\ read(*,*) matrixA(r,c) end do end do
! 读入矩阵B的内容 write(*,*) \ do r=1, row do c=1, col
write(*,\ read(*,*) matrixB(r,c) end do
35
数值分析程序设计——Fortran基础
end do
! 把矩阵A,B相加并输出结果 write(*,*) \ do r=1, row do c=1, col
matrixC(r,c) = matrixB(r,c)+matrixA(r,c) ! 矩阵相加 write(*,\ end do end do stop end
这个程序使用了三个两层循环,前两个循环用来读入矩阵,最后的一个循环用来作矩阵的加法,同时输出相加的结果。
5.1.3 多维数组
Fortran最多可以声明高达七维数组。 Integer a(d1,d2,…,dn)
数组除了可以使用基本的4种类型外,还可以使用自定义类型,这部分将在下面一章介绍。
5.1.4 另类的数组声明
在没有特别赋值的情况下,数组的索引值都是从1开始的。可以经过特别声明的方法改变这个默认值。
Integer a(0:5) Integer a(-3,3)
不过建议不要使用,以免在数组引用过程中,由于不同数组的索引值声明不同,造成混乱。
5.2 数组内容的设置
数组中的每一个元素,可以在程序执行中逐一进行赋值,也可以在声明时
36
共分享92篇相关文档