數(shù)組可以存儲(chǔ)相同類(lèi)型的元件的固定大小的連續(xù)集合。數(shù)組是用來(lái)存儲(chǔ)數(shù)據(jù)的集合,但它往往是更加有用認(rèn)為數(shù)組為相同類(lèi)型的變量的集合。
所有數(shù)組由連續(xù)的存儲(chǔ)單元。最低的地址對(duì)應(yīng)于所述第一元件和所述最高地址的最后一個(gè)元素。
Numbers(1) | Numbers(2) | Numbers(3) | Numbers(4) | … |
數(shù)組可以是一維的(如向量),二維(如矩陣),F(xiàn)ortran允許最多創(chuàng)建7維數(shù)組。
數(shù)組的尺寸屬性聲明。
例如,聲明含有5個(gè)元素的實(shí)數(shù)的一個(gè)一維陣列命名號(hào)編寫(xiě),
real, dimension(5) :: numbers
數(shù)組的各個(gè)元素通過(guò)指定其下標(biāo)引用。數(shù)組的第一元件具有一個(gè)的下標(biāo)。數(shù)組數(shù)字包含五個(gè)實(shí)變量- numbers(1), numbers(2), numbers(3), numbers(4), 和numbers(5)。
要?jiǎng)?chuàng)建一個(gè)5×5的二維矩陣命名的整數(shù)數(shù)組:
integer, dimension (5,5) :: matrix
也可以聲明某些明確的下限,例如數(shù)組:
real, dimension(2:6) :: numbers integer, dimension (-3:2,0:4) :: matrix
可以將值分配給各個(gè)成員一樣,
numbers(1) = 2.0
或者,可以使用一個(gè)循環(huán),
do i=1,5 numbers(i) = i * 2.0 end do
一維數(shù)組元素可直接分配其值使用短手形符號(hào),被稱為數(shù)組構(gòu)造,如,
numbers = (/1.5, 3.2,4.5,0.9,7.2 /)
請(qǐng)注意,不存在括號(hào)“(”和背斜杠“/”之間所允許有空格
例子
下面的例子演示了上面討論的概念。
program arrayProg real :: numbers(5) !one dimensional integer array integer :: matrix(3,3), i , j !two dimensional real array !assigning some values to the array numbers do i=1,5 numbers(i) = i * 2.0 end do !display the values do i = 1, 5 Print *, numbers(i) end do !assigning some values to the array matrix do i=1,3 do j = 1, 3 matrix(i, j) = i+j end do end do !display the values do i=1,3 do j = 1, 3 Print *, matrix(i,j) end do end do !short hand assignment numbers = (/1.5, 3.2,4.5,0.9,7.2 /) !display the values do i = 1, 5 Print *, numbers(i) end do end program arrayProg
當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
2.00000000 4.00000000 6.00000000 8.00000000 10.0000000 2 3 4 3 4 5 4 5 6 1.50000000 3.20000005 4.50000000 0.899999976 7.19999981
下表給出了一些陣列相關(guān)的術(shù)語(yǔ):
術(shù)語(yǔ) | 意思 |
---|---|
Rank | 它的尺寸數(shù)組具有的數(shù)目。例如,對(duì)于數(shù)組命名矩陣,秩為2,并且對(duì)數(shù)組命名號(hào),秩為1。 |
Extent | 它是沿一維中的元素的數(shù)量。例如,陣列數(shù)字具有范圍5和命名矩陣陣列具有在兩個(gè)維度范圍3。 |
Shape | 數(shù)組的形狀是一維整數(shù)數(shù)組,包含在每一維的元素(程度)的數(shù)量。例如,對(duì)于數(shù)組基質(zhì),形狀為(3,3)和數(shù)組數(shù)字它是(5)。 |
Size | 它是元素的數(shù)組中包含的數(shù)量。對(duì)于數(shù)組矩陣,它是9,而對(duì)于數(shù)字陣列,其為5。 |
可以傳遞一個(gè)數(shù)組到過(guò)程作為參數(shù)。下面的例子演示了這一概念:
program arrayToProcedure implicit none integer, dimension (5) :: myArray integer :: i call fillArray (myArray) call printArray(myArray) end program arrayToProcedure subroutine fillArray (a) implicit none integer, dimension (