Els arrays multidimensionals són una extensió dels arrays unidimensionals i permeten emmagatzemar dades en més d'una dimensió. En Fortran, els arrays multidimensionals són molt útils per a treballar amb matrius, tensors i altres estructures de dades complexes.

Continguts

Definició d'Arrays Multidimensionals

Un array multidimensional és una estructura de dades que permet emmagatzemar elements en una taula de múltiples dimensions. Per exemple, un array bidimensional pot ser vist com una matriu de files i columnes.

Declaració d'Arrays Multidimensionals

En Fortran, els arrays multidimensionals es declaren especificant les dimensions entre parèntesis després del nom de la variable. Aquí teniu alguns exemples:

! Declaració d'un array bidimensional de 3x3
real :: matriu(3, 3)

! Declaració d'un array tridimensional de 4x4x4
real :: cub(4, 4, 4)

Accés a Elements d'Arrays Multidimensionals

Els elements d'un array multidimensional es poden accedir utilitzant els índexs corresponents. Els índexs es proporcionen entre parèntesis, separats per comes.

! Assignar un valor a un element específic
matriu(2, 3) = 5.0

! Llegir un valor d'un element específic
print *, matriu(2, 3)

Inicialització d'Arrays Multidimensionals

Els arrays multidimensionals es poden inicialitzar en el moment de la seva declaració utilitzant una llista de valors entre parèntesis.

! Inicialització d'un array bidimensional
real :: matriu(2, 2) = reshape([1.0, 2.0, 3.0, 4.0], [2, 2])

! Inicialització d'un array tridimensional
real :: cub(2, 2, 2) = reshape([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0], [2, 2, 2])

Exemples Pràctics

Exemple 1: Matriu de 3x3

program matriu_3x3
    implicit none
    real :: matriu(3, 3)
    integer :: i, j

    ! Assignar valors a la matriu
    do i = 1, 3
        do j = 1, 3
            matriu(i, j) = i * j
        end do
    end do

    ! Imprimir la matriu
    do i = 1, 3
        print *, (matriu(i, j), j = 1, 3)
    end do
end program matriu_3x3

Exemple 2: Cub de 2x2x2

program cub_2x2x2
    implicit none
    real :: cub(2, 2, 2)
    integer :: i, j, k

    ! Assignar valors al cub
    do i = 1, 2
        do j = 1, 2
            do k = 1, 2
                cub(i, j, k) = i + j + k
            end do
        end do
    end do

    ! Imprimir el cub
    do i = 1, 2
        do j = 1, 2
            print *, (cub(i, j, k), k = 1, 2)
        end do
    end do
end program cub_2x2x2

Exercicis Pràctics

Exercici 1: Matriu de 4x4

  1. Declara una matriu de 4x4.
  2. Assigna valors a la matriu de manera que cada element sigui la suma dels seus índexs.
  3. Imprimeix la matriu.

Solució

program matriu_4x4
    implicit none
    real :: matriu(4, 4)
    integer :: i, j

    ! Assignar valors a la matriu
    do i = 1, 4
        do j = 1, 4
            matriu(i, j) = i + j
        end do
    end do

    ! Imprimir la matriu
    do i = 1, 4
        print *, (matriu(i, j), j = 1, 4)
    end do
end program matriu_4x4

Exercici 2: Cub de 3x3x3

  1. Declara un cub de 3x3x3.
  2. Assigna valors al cub de manera que cada element sigui el producte dels seus índexs.
  3. Imprimeix el cub.

Solució

program cub_3x3x3
    implicit none
    real :: cub(3, 3, 3)
    integer :: i, j, k

    ! Assignar valors al cub
    do i = 1, 3
        do j = 1, 3
            do k = 1, 3
                cub(i, j, k) = i * j * k
            end do
        end do
    end do

    ! Imprimir el cub
    do i = 1, 3
        do j = 1, 3
            print *, (cub(i, j, k), k = 1, 3)
        end do
    end do
end program cub_3x3x3

Conclusió

Els arrays multidimensionals són una eina poderosa en Fortran per a gestionar dades complexes. Hem après com declarar, inicialitzar i accedir a elements d'arrays multidimensionals, així com alguns exemples pràctics i exercicis per reforçar els conceptes apresos. En el següent tema, explorarem la gestió de cadenes en Fortran.

© Copyright 2024. Tots els drets reservats