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
- Declara una matriu de 4x4.
- Assigna valors a la matriu de manera que cada element sigui la suma dels seus índexs.
- 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
- Declara un cub de 3x3x3.
- Assigna valors al cub de manera que cada element sigui el producte dels seus índexs.
- 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.
Curs de Programació en Fortran
Mòdul 1: Introducció a Fortran
- Introducció a Fortran
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Escrivint el teu Primer Programa en Fortran
Mòdul 2: Conceptes Bàsics
- Variables i Tipus de Dades
- Operadors i Expressions
- Entrada i Sortida
- Estructures de Control: Sentències If
- Estructures de Control: Bucles
Mòdul 3: Arrays i Cadenes
Mòdul 4: Procediments i Funcions
Mòdul 5: Estructures de Dades Avançades
Mòdul 6: Gestió de Fitxers
Mòdul 7: Temes Avançats
Mòdul 8: Millors Pràctiques i Optimització
- Tècniques d'Optimització de Codi
- Depuració i Perfilat
- Escrivint Codi Mantenible
- Estàndards i Portabilitat de Fortran