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 ) 100 → 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 El resultado de la iteración 21 es formateado 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 forma= ‘(1X, i6, F10.2)’ WRITE(* , forma) i, x ! Formato con character variable 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 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 133 Ej: caracter de control acción 1 Salta a una nueva página Blanco Simple espacio 0 Doble espacio + sin espaciamiento (sobreimprime) 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 1. Describen la posición vertical de una línea de texto 2. Describen la posición horizontal de una línea de texto 3. Describen la el formato de salida de un valor particular 4. Controla la repetición de una porción del formato Símbolo significado c Número de columna d Número de dígitos a la derecha del punto decimal para la entrada o salida de in real m Número mínimo de dígitos a ser mostrados n Número de espacios para saltear r Factor de repetición→ número de veces a usar un grupo de descriptores w Ancho del campo→ número de caracteres a usar para la entrada o salida 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 ancho del campo rIw.m → número de dígitos que 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 FORMAT( ‘ ‘, 2E14.4, E13.6, E 11.6 ) 200 5 1 0 0 . 1 2 3 5 E+ 0 7 1 5 2 0 2 5 3 0 3 5 4 0 4 5 0 . 1 0 0 0 E- 0 2 - 0 . 7 7 7 0 0 0 E+ 1 2 * * * 5 0 5 5 * * * * * * * * Descriptor ES Es exactamente como el descriptor E solo que la mantisa va entre 1 y 10 En general: rESw.d Ej 200 REAL : : a = 1.2346E6, b = 0.001, c = -77.7E10 WRITE (*, 200) a, b, c FORMAT( ‘ ‘, 2ES14.4, E12.6) 5 1 0 1 . 2 3 5 E+ 0 6 1 5 2 0 2 5 3 0 3 5 4 0 1 . 0 0 0 E- 0 3 * * * * * * * * * * *