Documentos de Académico
Documentos de Profesional
Documentos de Cultura
155
Formatos y archivos
string=’2I3’
WRITE (*,string) N,M !variable carácter especifica formatos de N y M
156
Formatos y Archivos
SÍMBOLO SIGNIFICADO
c número de columna
m mínimo nº de dígitos
n nº de espacios saltados
157
Formatos y archivos
I4 452 •452
I2 6234 **
I5 -52 ••-52
I4.3 3 •003
I2.0 0 ••
I4 •1•• 1
I2 -1 -1
I4 -123 -123
I3 •12 12
I2 123 12
158
Formatos y Archivos
159
Formatos y archivos
160
Formatos y Archivos
[r]ESw.d
• Los símbolos usados tienen el significado que se muestra en la
Tabla 7.1.
• Los mismos criterios que operan sobre un dato real con formato F
se aplican a ese dato real con formato científico.
• Si un número se quiere leer/escribir en formato científico con d
cifras decimales, la anchura de campo mínima w ≥ d+8, pues tal
número se representa ±1.ddddES±ee y requiere como mínimo un
carácter para representar el signo (sólo si es negativo), otro para la
parte entera del número, el punto decimal, los dos caracteres ES, el
signo del exponente y los dos dígitos del mismo.
• La diferencia entre el formato exponencial y el científico para un
valor real dado con una anchura de campo dada es que en el
formato científico se representa una cifra significativa más que en
el formato exponencial.
• Ejemplos de salida:
Tab la 7 .9: Fo r matos de lect ura de rea les e n fo rmato c ien tíf ico
161
Formatos y archivos
L5 .FALSE. ••••F
L4 .TRUE. •••T
L1 .TRUE. T
L2 .FALSE. •F
L5 •••T• .TRUE.
L2 F1 .FALSE.
L4 •X•T ERROR
162
Formatos y Archivos
VALOR LONGITUD DE LA
DESCRIPTOR SALIDA
INTERNO VARIABLE CARACTER
A ABCDEF 6 ABCDEF
A8 ABCDEF 6 ••ABCDEF
A4 ABCDEF 6 ABCD
LONGITUD DE LA
CAMPO VALOR
DESCRIPTOR VARIABL
ENTRADA LEÍDO
CARACTER
A ABCDEFGH 6 ABCDEF
A ABCDEFGH 8 ABCDEFGH
A8 ABCDEFGH 4 EFGH
A4 ABCDEFGH 6 ABCD••
163
Formatos y archivos
164
Formatos y Archivos
165
Formatos y archivos
166
Formatos y Archivos
167
Formatos y archivos
INTEGER:: error_de_escritura
…
WRITE (UNIT=16,*, IOSTAT= error_de_escritura) X,Y
WRITE (20,’3F8.3’) X,Y,Z
168
Formatos y Archivos
…
READ (15, *, IOSTAT = error_de_lectura) a,b,c
• Ejemplo de procesamiento de archivos.
PROGRAM temperaturas
! Lee una serie de temperaturas de un archivo y
! calcula el valor medio
IMPLICIT NONE
CHARACTER (LEN=20):: archivo
INTEGER:: cuenta, error_de_apertura, error_de_lectura
REAL:: temperatura, suma, media
! Abrir archivo como unidad 15
WRITE( *, *) ‘ Dame nombre del archivo:’
READ (*, *) archivo
OPEN(15, FILE= archivo, STATUS=‘OLD’, ACTION=’READ’,&
IOSTAT= error_de_apertura)
IF (error_de_apertura > 0) STOP ‘ error al abrir el archivo ‘
100 FORMAT (1X, F4.1)
cuenta=0
suma=0
DO
READ (15, 100, IOSTAT = error_de_lectura) temperatura
IF (error_de_lectura >0 ) THEN
WRITE(*,*) ‘error de lectura’
EXIT
ELSE IF (error_de_lectura <0 ) THEN
! WRITE(*,*) ‘fin del archivo’
EXIT
ELSE
suma = suma + temperatura
cuenta = cuenta + 1
ENDIF
END DO
! Calcular temperatura media
media = suma/ REAL(cuenta)
WRITE (*, *) ‘ temperatura media: ‘
169
Formatos y archivos
170
EJERCICIOS RESUELTOS
Objetivos:
171
Formatos y archivos
PROGRA M c ap 7_1
IM PL IC IT NON E
I N T E GER : : n
WR ITE( *,8) 'NU M ERO, RA IZ CUADRADA , RA IZ CUB ICA'
8 FOR MAT (1X, A)
WR IT E ( * ,10 ) (n ,SQRT (REAL( n)) ,R EAL (n) ** (1 .0 /3 .0) ,n= 1 ,10 0)
1 0 FOR MAT (1 X, I5 , 4 X, F8 .3 , 8 X, F8 .3)
E ND PROGRA M ca p7_ 1
PROGRA M c ap 7_2
IM PL IC IT NON E
INT EGER :: m=- 123 ,n=9 877 ,l= 889 ,i= 77
R EA L : : r=8 9 .12 6 , s=1 4 .53 2
CHARAC TER (LEN= 6):: pal= 'abcdef '
W R IT E( * ,1 0 0 ) ' En t e r o s ' , m ,n , l , i
1 00 F OR MA T ( 1 X /1 X ,T 10 ,A / ,1 X ,I4 , 1 X , I 4 ,1 X, I 3 , 1 X , I 1 )
WR IT E( * ,15 0) 'Rea le s' ,' se red on de a' ,r ,'s e re lle na c on ce ro s' ,r ,'n o
c ab e' ,r
1 50 FORMAT (1 X/1 X,T 10 ,A /,1 X,A ,1 X,F5 .2 /,1 X,A ,1 X,F7 .4 /,1 X,A ,1X,F 4 .2)
WR IT E( * ,25 0) 'C ara ct ere s' ,'w =6= L EN(p a l)' ,pa l,&
'w = 8. L a va r ia b le s e a j ust a a la d er ech a de l ca mp o' ,p a l ,&
'w =4. Se mu est ra n los 4 p r imero s c ara cter es de la va r ia b le' ,pal
2 50 F OR MA T ( 1 X / ,T 10 ,A / , 1X ,A ,1 X ,A / ,1 X ,A, 1 X ,A 8 / , 1 X,A ,1 X ,A4 )
172
Formatos y archivos
3 00 FOR MA T ( 1 X / ,1 X ,A / ,1 X ,4 I 5 ,2F 6 .2 ,A 7 )
E ND PROGRA M ca p7_ 2
Clase Nota
1 [8.5,10]
2 [5,8.5)
3 [0,5)
PROGRA M c ap 7_3
IM PL IC IT NON E
CHARAC TER (LEN= 18) :: nombre
R EAL : : no ta
INTEGER ::
c lase ,er ror _d e_a pe rtu ra ,er ro r_d e_ lectu ra,e rr or _d e_e sc r itu ra
O PEN (6 0 ,F IL E='c ap7 _3 in.txt' ,STA TU S='O LD' ,AC T ION= 'REA D' ,&
IO STAT=e rr o r_d e_a pe rt ura )
I F ( er ro r_ de _a per t u ra> 0 ) S TO P ' c ap 7_3 i n .tx t N O A B IER T O'
O P EN (7 0 ,F I L E='c ap7 _3 out .t xt',S TA TU S='N EW' ,AC T ION= 'WR ITE' ,&
IO STAT=e rr o r_d e_a pe rt ura )
I F ( er ro r_ de _a per t u ra> 0 ) S TO P ' c ap 7_3 out. t x t N O A B I E R T O'
WR IT E( 70 ,9 ,IOSTAT=e rr or _d e_e sc r itu ra) 'A LUMN O' ,'C LA SE'
WR IT E( 70,'( 1 X,A6,T 20,A 5)') '======','====='
IF (er ro r_ de _es cr it ura> 0) STO P ' er ro r de e sc r itu ra'
9 FOR MAT (1 X ,A 6 ,T20 ,A 5)
DO
R EAD(6 0 ,* ,IO STA T=e rr or _d e_ le ctu ra) nomb re ,not a
e xt e rn o: IF ( er ro r_ de _ lec t u ra > 0 ) TH EN
WR IT E(* ,*) ' er ro r d e lec tu ra'
EXIT
EL SE IF (e rr or _d e_ le ctu ra < 0 ) TH EN
173
Formatos y archivos
174
Formatos y archivos
PROGRA M c ap 7_4
IM PL IC IT NON E
CHARAC TER (LEN= 15), D IMENSION ( 5) :: nomb
CHARAC TER (LEN= 15)::nombm,nombp
R EAL , D I MEN S ION(5 ) :: not a
R EA L : : m ej o r ,p eo r , me d ia clas e ,m e d ia
INT EGER :: i,n ,er ro r_d e_ ape rt ur a ,e rr or _de _ lec tu ra ,s uf ic ient es ,nu m
O PEN (1 0 ,F IL E='c ap7 _4 in.txt' ,STA TU S='O LD' ,AC T ION= 'REA D' ,&
IO STAT=e rr o r_d e_a pe rt ura )
I F ( er ro r_ de _a per t u ra> 0 ) S TO P ' c ap 7_4 i n .tx t N O A B IER T O'
175
Formatos y archivos
O P EN (2 0 ,F I L E='c ap7 _4 out .t xt',S TA TU S='N EW' ,AC T ION= 'WR ITE' ,&
IO STAT=e rr o r_d e_a pe rt ura )
I F ( er ro r_ de _a per t u ra> 0 ) S TO P ' c ap 7_4 out. t x t N O A B I E R T O'
WR IT E( 20 ,'( 1 X ,A , I3 ,A)' ) 'HA Y' , nu m,' ALU MNO S CON S UF IC I ENT E '
WR IT E( 20 ,'( 1 X,A ,F4 .1 )') ' LA NO TA M ED IA D E LA CLA SE ES:' ,me d ia
W R IT E( 20 ,'( 1 X ,3A ,F 4.1) ' ) 'El p eo r a l umn o e s: ' , no m bp ,' y su n ot a
e s: ' , peo r
WR IT E( 20 ,'( 1 X,3A ,F 4.1) ') ' El mejo r a lu mn o e s: ' ,no mb m, &
' y s u no t a e s: ' , me j or
CL O SE (10)
CL O SE (20)
E ND PROGRA M ca p7_ 4
176
Formatos y archivos
c ont ad or=0
DO i= 1,n
IF (nota( i) >= 5.AND.nota( i) < 6) TH EN
c ont ad or =co nta dor +1
E N D IF
END DO
s uf ic ient es= co nta dor
END FUNCTION suf icientes
177
Formatos y archivos
EJERCICIOS PROPUESTOS
178
Formatos y archivos
179
BIBLIOGRAFÍA
181