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
- 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.
- Unitats de fitxer: Fortran utilitza unitats de fitxer per identificar fitxers oberts. Cada fitxer obert està associat a una unitat de fitxer única.
- 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 variableunit
de tipus enter per a la unitat de fitxer.OPEN(unit, FILE='sortida.txt', STATUS='REPLACE', ACTION='WRITE')
: Obre el fitxersortida.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 unitatunit
.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
- No obrir el fitxer abans d'escriure: Assegura't d'utilitzar la instrucció
OPEN
abans de qualsevol operació d'escriptura. - No tancar el fitxer: Sempre tanca el fitxer amb la instrucció
CLOSE
per assegurar-te que totes les dades s'han escrit correctament. - 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.
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