En aquest tema, aprendrem com escriure dades a fitxers en Fortran. La gestió de fitxers és una part essencial de la programació, especialment quan es treballa amb grans volums de dades o es necessita persistència de dades. Fortran proporciona diverses maneres de treballar amb fitxers, i en aquesta secció ens centrarem en les operacions bàsiques d'escriptura.

Conceptes Clau

  1. Fitxers de text vs. fitxers binaris: Els fitxers de text contenen dades llegibles per humans, mentre que els fitxers binaris contenen dades en format binari, que són més eficients per a l'emmagatzematge i la lectura per part de màquines.
  2. Unitats de fitxer: Fortran utilitza unitats de fitxer per identificar fitxers oberts. Cada fitxer obert està associat a una unitat de fitxer única.
  3. Operacions bàsiques: Inclouen obrir un fitxer, escriure dades al fitxer, i tancar el fitxer.

Obrir un Fitxer

Abans d'escriure a un fitxer, cal obrir-lo. Això es fa amb la instrucció OPEN. Aquí teniu un exemple bàsic:

PROGRAM EscriureFitxer
  IMPLICIT NONE
  INTEGER :: unit

  ! Assignem una unitat de fitxer
  unit = 10

  ! Obrim el fitxer per escriure
  OPEN(unit, FILE='sortida.txt', STATUS='REPLACE', ACTION='WRITE')

  ! Escrivim dades al fitxer
  WRITE(unit, *) 'Aquesta és una línia de text.'

  ! Tanquem el fitxer
  CLOSE(unit)
END PROGRAM EscriureFitxer

Explicació del Codi

  • IMPLICIT NONE: Desactiva la declaració implícita de variables, obligant a declarar explícitament totes les variables.
  • INTEGER :: unit: Declara una variable unit de tipus enter per a la unitat de fitxer.
  • OPEN(unit, FILE='sortida.txt', STATUS='REPLACE', ACTION='WRITE'): Obre el fitxer sortida.txt per escriure. Si el fitxer ja existeix, es reemplaçarà (STATUS='REPLACE').
  • WRITE(unit, *) 'Aquesta és una línia de text.': Escriu la línia de text al fitxer associat a la unitat unit.
  • CLOSE(unit): Tanca el fitxer.

Escrivint Dades a un Fitxer

Podem escriure diferents tipus de dades a un fitxer utilitzant la instrucció WRITE. Aquí teniu alguns exemples:

Exemple 1: Escriure Nombres

PROGRAM EscriureNombres
  IMPLICIT NONE
  INTEGER :: unit, i

  unit = 10
  OPEN(unit, FILE='nombres.txt', STATUS='REPLACE', ACTION='WRITE')

  DO i = 1, 10
    WRITE(unit, *) i
  END DO

  CLOSE(unit)
END PROGRAM EscriureNombres

Exemple 2: Escriure Text i Nombres

PROGRAM EscriureTextNombres
  IMPLICIT NONE
  INTEGER :: unit, i

  unit = 10
  OPEN(unit, FILE='text_nombres.txt', STATUS='REPLACE', ACTION='WRITE')

  DO i = 1, 5
    WRITE(unit, '(A, I2)') 'Número: ', i
  END DO

  CLOSE(unit)
END PROGRAM EscriureTextNombres

Explicació del Codi

  • WRITE(unit, '(A, I2)') 'Número: ', i: Utilitza un format específic per escriure text (A) seguit d'un nombre enter de dos dígits (I2).

Exercicis Pràctics

Exercici 1: Escriure una Taula de Multiplicar

Escriu un programa que escrigui la taula de multiplicar del 1 al 10 en un fitxer anomenat taula_multiplicar.txt.

Solució

PROGRAM TaulaMultiplicar
  IMPLICIT NONE
  INTEGER :: unit, i, j

  unit = 10
  OPEN(unit, FILE='taula_multiplicar.txt', STATUS='REPLACE', ACTION='WRITE')

  DO i = 1, 10
    DO j = 1, 10
      WRITE(unit, '(I2, A, I2, A, I3)') i, ' x ', j, ' = ', i*j
    END DO
  END DO

  CLOSE(unit)
END PROGRAM TaulaMultiplicar

Exercici 2: Escriure Dades d'un Array

Escriu un programa que escrigui els elements d'un array de 10 elements en un fitxer anomenat array_dades.txt.

Solució

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

  ! Inicialitzem l'array
  DO i = 1, 10
    array(i) = i * 2
  END DO

  unit = 10
  OPEN(unit, FILE='array_dades.txt', STATUS='REPLACE', ACTION='WRITE')

  DO i = 1, 10
    WRITE(unit, *) array(i)
  END DO

  CLOSE(unit)
END PROGRAM EscriureArray

Errors Comuns i Consells

  1. No obrir el fitxer abans d'escriure: Assegura't d'utilitzar la instrucció OPEN abans de qualsevol operació d'escriptura.
  2. No tancar el fitxer: Sempre tanca el fitxer amb la instrucció CLOSE per assegurar-te que totes les dades s'han escrit correctament.
  3. Unitats de fitxer duplicades: Utilitza unitats de fitxer úniques per a cada fitxer obert per evitar conflictes.

Conclusió

En aquesta secció, hem après com obrir fitxers, escriure dades i tancar fitxers en Fortran. Hem vist exemples pràctics i hem practicat amb exercicis per reforçar els conceptes. La gestió de fitxers és una habilitat fonamental que serà útil en molts projectes de programació. En la següent secció, explorarem com llegir dades de fitxers.

© Copyright 2024. Tots els drets reservats