130 likes | 280 Views
Entradas y salidas I/O. READ (*, *) WRITE(*; *). Formato libre. Format → se utiliza para especificar la forma en que las variables son impresas o leídas en un programa. WRITE(*, 100) i, resultado 100 FORMAT( ‘ El resultado de la iteración ’, i3, ‘ es ‘ , f7.3 )
E N D
READ (*, *) WRITE(*; *) Formato libre • Format → se utiliza para especificar la forma en que las variables son impresas o leídas en un programa. • WRITE(*, 100) i, resultado • 100 FORMAT( ‘ El resultado de la iteración ’, i3, ‘ es ‘ , f7.3 ) • → Es el nivel (nombre de la sentencia) • Format → como se va a imprimir esa sentencia • I3 y f7.3 → describen como se imprimen i y resultado • ‘ El resultado de la iteración ’→ Frase explicativa • I3 → usa 3 lugares para escribir, significa que va a escribir un número entero de a lo sumo 3 dígitos • F7.3 → usa 7 lugares para escribir este número con 3 decimales a la derecha del punto. • El resultado de la iteración 21 es 3.142 formateado • El resultado de la iteración 21 es 3.141593 formato libre
Distinta formas de incluir los formatos: • WRITE(* ,100) i, x • 100 FORMAT(1X, i6, F10.2) ! sentencia FORMAT • CHARACTER (20) : : forma ! Formato con character variable • forma= ‘(1X, i6, F10.2)’ • WRITE(* , forma) i, x • WRITE(* , ‘(1X, i6, F10.2)’) i, x ! Formato con character constante Los descriptores están separados por comas Las impresoras o las pantallas generalmente usan 132 caracteres de ancho y 72 lineas de largo 1 2 133 El primer carácter no se imprime se lo conoce como caracter de control y especifica el espaciamiento vertical por línea de acuerdo con la tabla
Ej: WRITE(*,100) 100 format (‘1’,’ Escribe en el tope de una nueva pagina’) WRITE(*,110) 110 format (‘0’,’ Doble espaciamiento vertical’) WRITE(*,120) 120 format (‘ ’,’ ======================’) Escribe en el tope de una nueva pagina Doble espaciamiento vertical =======================
! ATENCIÓN Ej WRITE ( *, ‘(I3)’) n Si el número que voy a imprimir es 123 y no está en el primer lugar un caracter de control, toma al 1 y salta a una nueva página. 100 FORMAT(‘1’, I3) 100 FORMAT(‘1’, ‘contador = ’, I3) 100 FORMAT(‘1contador = ’, I3)
Descriptores del formato • Describen la posición vertical de una línea de texto • Describen la posición horizontal de una línea de texto • Describen la el formato de salida de un valor particular • Controla la repetición de una porción del formato
SALIDA DE NÚMEROS ENTEROS Descriptor I • El descriptor de los números enteros es la I. Su formato en general • repetición ←rIw o rIw.m→ número de dígitos que ancho del campo que imprime • Esto significa que el ultimo digito del valor entero ocupará la columna más a la derecha del campo. • Si el valor a imprimir es mayor que el campo asignado, en lugar de imprimir parte del número imprime *. • w ≥ m • Si el número a imprimir es mas pequeño que m agrega 0 a la izquierda. • Si el número a imprimir es mas mayor que m este es ignorado. • m puede ser 0 !!!! Esto es no se pueden escribir dígitos. Si el número a imprimir es 0 pone blancos, si es otro dígito usa Iw • Si el número a imprimir es negativo hay que agregar un espacio mas en el ancho. Si es positivo el signo no se imprime.
Ej El factor de repetición es el número de veces que el descriptor tiene que repetirse Ej 1 3I4 es equivalente a I4, I4, I4 Ej 2 INTEGER : : a = 3, b = -5, c =128 WRITE( *,”(3i4.2)”) a, b, c
SALIDA DE NÚMEROS REALES Descriptor F El descriptor de los números reales es la F. Su formato en general repetición ←rFw.d→ número de dígitos posteriores al punto decimal ancho del campo • Cuando se imprime un número real hay que tener en cuenta que la parte entera ocupa w - (d+1). Si el valor de la parte entera supera el espacio asignado todas las posiciones se completan con *. Si se trabaja con números negativos w ≥ (d+2) • cuando el número decimal contiene mas decimales de los que serán impresos el valor será redondeado. • Ej: el 1.73 con un formato de F3.1 un lugar se usa para el punto un lugar para el decimal y un lugar para el entero → 1.7. Si fuera 1.76 imprime 1.8.
Si el número tiene menos decimales que los considerados con el descriptor los espacios serán completados con 0. • Ej: 1.73 con formato F5.3 imprime 1.730 Ej: Ej: REAL :: a = 12.34, b = -0.945, c = 100.0 WRITE(*,"(3F6.2)") a, b, c
Descriptor E Los números reales pueden ser impresos en notación exponencial usando el descriptor E. Su formato en general repetición ←rEw.d→ número de dígitos posteriores al punto decimal ancho del campo • El descriptor E se utiliza con un numero entre 0.1 y1.0 y una potencia de 10 • Ej: • el número 4096.0 → 0.4096 x 104 y se escribe con el descriptor • E → 0.4096 E+04 • Cuando se utiliza la notación científica se tienen que tener en cuenta los siguientes lugares : • 3 para el signo de la mantisa, el 0 y el punto • 1→ para la E • 3 para el signo del exponente y 2 para el exponente. • En general: w ≥ d + 7 • Ej • REAL : : a = 1.2346E6, b = 0.001, c = -77.7E10, d = -77.7E10
REAL : : a = 1.2346E6, b = 0.001, c = -77.7E10, d = -77.7E10 WRITE (*, 200) a, b, c, d 200 FORMAT( ‘ ‘, 2E14.4, E13.6, E 11.6 ) Descriptor ES Es exactamente como el descriptor E solo que la mantisa va entre 1 y 10 En general: rESw.d
Ej REAL : : a = 1.2346E6, b = 0.001, c = -77.7E10 WRITE (*, 200) a, b, c 200 FORMAT( ‘ ‘, 2ES14.4, E12.6)