Els arrays són una estructura de dades fonamental en Fortran que permet emmagatzemar múltiples valors del mateix tipus en una sola variable. Aquesta capacitat és especialment útil per a treballar amb grans quantitats de dades numèriques, com ara vectors i matrius.

Conceptes Clau

  1. Definició d'Arrays: Un array és una col·lecció d'elements del mateix tipus, identificats per un nom comú i un índex.
  2. Declaració d'Arrays: Els arrays es declaren especificant el tipus de dades, el nom de l'array i la seva dimensió.
  3. Accés als Elements: Els elements d'un array es poden accedir utilitzant els índexs corresponents.
  4. Inicialització d'Arrays: Els arrays es poden inicialitzar en el moment de la seva declaració o mitjançant assignacions posteriors.

Declaració d'Arrays

En Fortran, els arrays es declaren especificant el tipus de dades seguit del nom de l'array i la seva dimensió entre parèntesis.

! Declaració d'un array d'una dimensió
INTEGER :: array1D(10)

! Declaració d'un array de dues dimensions
REAL :: array2D(5, 5)

Accés als Elements

Els elements d'un array es poden accedir utilitzant els índexs corresponents. Els índexs en Fortran comencen per defecte en 1.

! Assignació de valors a un array d'una dimensió
array1D(1) = 10
array1D(2) = 20

! Assignació de valors a un array de dues dimensions
array2D(1, 1) = 1.0
array2D(2, 3) = 2.5

Inicialització d'Arrays

Els arrays es poden inicialitzar en el moment de la seva declaració utilitzant la sintaxi següent:

! Inicialització d'un array d'una dimensió
INTEGER :: array1D(3) = (/ 1, 2, 3 /)

! Inicialització d'un array de dues dimensions
REAL :: array2D(2, 2) = RESHAPE((/ 1.0, 2.0, 3.0, 4.0 /), (/ 2, 2 /))

Exemples Pràctics

Exemple 1: Array d'una Dimensió

PROGRAM Array1DExample
  IMPLICIT NONE
  INTEGER :: i
  INTEGER, DIMENSION(5) :: numbers

  ! Assignació de valors a l'array
  DO i = 1, 5
    numbers(i) = i * 10
  END DO

  ! Impressió dels valors de l'array
  PRINT *, 'Valors de l''array:'
  DO i = 1, 5
    PRINT *, 'numbers(', i, ') = ', numbers(i)
  END DO
END PROGRAM Array1DExample

Exemple 2: Array de Dues Dimensions

PROGRAM Array2DExample
  IMPLICIT NONE
  INTEGER :: i, j
  REAL, DIMENSION(3, 3) :: matrix

  ! Assignació de valors a l'array
  DO i = 1, 3
    DO j = 1, 3
      matrix(i, j) = i * j
    END DO
  END DO

  ! Impressió dels valors de l'array
  PRINT *, 'Valors de la matriu:'
  DO i = 1, 3
    DO j = 1, 3
      PRINT *, 'matrix(', i, ',', j, ') = ', matrix(i, j)
    END DO
  END DO
END PROGRAM Array2DExample

Exercicis Pràctics

Exercici 1: Array d'una Dimensió

Descripció: Escriu un programa que declari un array d'enter de 10 elements, assigni els valors de 1 a 10 als elements de l'array i imprimeixi els valors.

Solució:

PROGRAM Exercise1
  IMPLICIT NONE
  INTEGER :: i
  INTEGER, DIMENSION(10) :: array

  ! Assignació de valors a l'array
  DO i = 1, 10
    array(i) = i
  END DO

  ! Impressió dels valors de l'array
  PRINT *, 'Valors de l''array:'
  DO i = 1, 10
    PRINT *, 'array(', i, ') = ', array(i)
  END DO
END PROGRAM Exercise1

Exercici 2: Array de Dues Dimensions

Descripció: Escriu un programa que declari una matriu de 3x3, assigni els valors de la taula de multiplicar a la matriu i imprimeixi els valors.

Solució:

PROGRAM Exercise2
  IMPLICIT NONE
  INTEGER :: i, j
  INTEGER, DIMENSION(3, 3) :: matrix

  ! Assignació de valors a la matriu
  DO i = 1, 3
    DO j = 1, 3
      matrix(i, j) = i * j
    END DO
  END DO

  ! Impressió dels valors de la matriu
  PRINT *, 'Valors de la matriu:'
  DO i = 1, 3
    DO j = 1, 3
      PRINT *, 'matrix(', i, ',', j, ') = ', matrix(i, j)
    END DO
  END DO
END PROGRAM Exercise2

Resum

En aquesta secció, hem après els conceptes bàsics dels arrays en Fortran, incloent la seva declaració, accés als elements i inicialització. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. Els arrays són una eina poderosa per gestionar col·leccions de dades i són fonamentals per a moltes aplicacions científiques i d'enginyeria. En la següent secció, explorarem els arrays multidimensionals, que ens permetran treballar amb dades més complexes.

© Copyright 2024. Tots els drets reservats