Está en la página 1de 20

Física Computacional I

(Semana 3)
Dr. José Domingo Arbañil Vela
Periodo 2021-I
¿Qué vemos en la imagen?
Saberes previos
• ¿Cómo se hace una impresión por pantalla?

• ¿Qué es un descriptor de formato?


Logro de la sesión
Al finalizar la sesión, el
estudiante aprenderá a hacer
estructuras de repetición, bucles
controlados por contador,
entrada y salida de información,
formatos y edición con orden,
seguridad y mostrando una
buena presentación.
Sentencias de control repetitivos
• Son también llamadas de bucles. Entre ellas tenemos el DO, DO WHILE
• DO
• Se usa si se conoce el número de veces que ha de ejecutarse el bucle.
Verdader Falsa
DO variable_control=valor_inicial,valor_final,incremento 1a Condición
Sentencia_1
Sentencia_2
END DO Sentencia
Cuerpo DO

• La variable de control es de tipo entero.


• El valor inicial y final son valores tales que si el incremento es: Incremento

• Positivo valor_inicial<=valor_final
• Negativo valor_inicial>=valor_final 1
• Pueden ser cualquier valor entero, también negativos.
• Si no se especifica, se considera igual a 1. Sentencia
Sentencias de control repetitivos
• Ejemplo:
• Sumas los primeros 20 números naturales.
• Bucle DO.

DO i=1,20
suma=suma+i
END DO

• Con incremento negativo -1.

DO i=20,1,-1
suma=suma+i
END DO
Sentencias de control repetitivos
• DO WHILE
• Se usa si no se conoce el número de veces que ha de ejecutarse el bucle.

DO WHILE (condición) Verdader Falsa


1a Condición
Sentencia_1
Sentencia_2
END DO Sentencia
Cuerpo DO WHILE

• Las sentencias en algún momento deben modificar


la condición de forma que esa sea falsa para salir 1
del blucle.

Sentencia
Sentencias de control repetitivos
• Ejemplo:
• Sumar números introducidos por teclado hasta introducir el 0.
• Condición de parada “número==0”
• Bucle DO WHILE.

DO WHILE (numero/=0)
suma=suma+numero
READ*, numero
END DO
Entrada y salida en Fortran
• Hay dos formas
• Entrada/salida dirigida por lista. Este es un formato libre.

• Entrada/salida con formato. Se define la manera exacta en que desee leer/escribir los datos:

• Lectura: Sentencia READ


• Escritura: Sentencia WRITE

• Salida por pantalla


• WRITE(*,*) El primer asterisco se refiere al dispositivo de salida y el segundo se refiere al
formato con que se mostrarán.
• WRITE(*,formato) El formato contiene descriptores de formato de lista, o la etiqueta
FORMAT. Además, en este caso debe existir la etiqueta FORMAT.
Entrada y salida en Fortran
• Entrada por teclado
• READ(*,*) El primer asterisco se refiere al dispositivo de entrada y el segundo al formato con
que se leerán las variables.
• READ(*,formato) Es similar al caso de WRITE

• Descriptores de formato
• Describen la posición vertical de línea de texto.
• Describen la posición horizontal de los datos en una línea.
• Describen el formato de entrada/salida de un valor particular.
• Controlan la repetición de porciones de formatos.
Entrada y salida en Fortran

Símbolo Significado
c Número de columnas.
d Número de dígitos a la derecha del punto decimal.
m Mínimo número de dígitos.
n Número de espacios saltados.
r Número de repeticiones de un grupo de descriptores.
w Número de carácter o dígitos.
Entrada y salida en Fortran
Descriptores I de formato de números enteros
• Sintaxis general para salida de datos enteros [r]Iw[.m].
• Si el valor es demasiado grande para mostrarse con w dígitos, se muestran w asteriscos. Comprobado

• La sintaxis general para entrada de datos enteros es [r]Iw.


Solo vale introducir "1" porque esos "*" no vale, tampoco letras, (error).

SALIDA ENTRADA
Descriptor Valor interno Salida Descriptor Valor de entrada Leído
I4 452 *452 I4 *1** 1
I2 6234 ** I2 -1 -1
I5 -52 **-52 I4 -123 -123
I4.3 3 *003 I3 *12 12
I2.0 0 ** I2 123 12
Me sale "**"

Algunos asteriscos como estos representan "espacios" ya que en el ppt como colocamos espacios, sin que sean invisibles para contar.
Entrada y salida en Fortran
Descriptores F de formato de número real
• Sintaxis general para entrada/salida de datos reales [r]Fw.d.
• Si d es menor que el número de dígitos decimales del número, el valor se redondea.
• Si d es mayor que el número de dígitos decimales del número, se añaden ceros hasta
Si "d" es mayor o igual ...
completarlos.
• Si el valor es demasiado grande para leer/escribir con w caracteres, el campo w se llena con
asteriscos.
SALIDA ENTRADA
Descriptor Valor interno Salida Descriptor Valor de entrada Leído
F9.3 25.338 ***25.338 F6.3 49.225 49.225
F5.1 0.35247 **0.4 F6.2 49.225 49.23
F6.2 0.089235 **0.09 F7.1 -1525.1 -1525.1
F8.3 732.56 *732.560 Los "*" en este ppt son para representar
F4.3 -12.345 **** los espacios y * como tal, pero en el
fortran únicamente ponen "*" para cuando
el # es muy grande para "w"
Entrada y salida en Fortran

ignorado el "o" sería, w>=d+5

Descriptor Valor interno Salida Descriptor Valor de entrada Leído


E8.2 83.456 0.83E+02 E11.2 *43.258E+03 0.43E+05
E7.2 83.456 ******* E11.5 *43.258E+03 0.43258E+05
E10.3 8.3974 *0.840E+01 E11.3 ***0.43E-02 0.430E-02
E10.4 0.83E+2 0.8300E+02
Entrada y salida en Fortran

En otro lado, no se redondeaba cuando era 5

pensé que cambiaría con esto, pero no, asi que se redonde como lo "clásico" al
menos para este formato (ppt)
Descriptor Valor interno Salida Descriptor Valor de entrada Leído
ES8.2 83.456 8.35E+01 ES11.2 *43.258E+03 4.33E+04
ES7.2 83.456 ******* ES11.5 *43.258E+03 4.32580E+04
ES10.3 8.3974 *8.397E+00 ES11.3 ***0.43E-02 4.300E-03
ES11.4 0.83E+2 *8.3000E+01

Entonces redondea al número anterior inmediato.


Entrada y salida en Fortran
Descriptores L de formato lógico
• Sintaxis general para entrada/salida de datos lógicos [r]Lw.
• La salida de un dato lógico es T o F y si valor se ajusta a la derecha del campo.
• La entrada de un dato lógico puede ser T o F.

SALIDA ENTRADA
Descriptor Valor interno Salida Descriptor Valor de entrada Leído
L5 .FALSE. ****F L5 ***T* .TRUE.
L4 .TRUE. ***T L2 *F .FALSE.
L1 .TRUE. T L4 *X*T ERROR
L2 .FALSE. *F
Entrada y salida en Fortran
Descriptores A de formato caracter
• Sintaxis general para entrada/salida de datos caracter [r]Aw.
• Si w no aparece, A lee/escribe el dato en una anchura igual a la longitud de la variable.
• Si w aparece, el descriptor A lee/escribe el dato en una anchura fija w.
• Si w>longitud, para salida, la cadena se ajusta a la derecha del campo. Para la entrada, el
dato del fragmento derecho del campo se lee en la variable caracter.
• Si w<longitud, para salida, solo se escriben los primeros w caracteres. Para la entrada, los
primeros w caracteres de la cadena se ajustan a la izquierda de la variable.
SALIDA ENTRADA
Descriptor Valor Long. de la Salida Descriptor Valor de Long. De la Leído
interno variable entrada variable
A ABCDEF 6 ABCDEF A ABCDEF 6 ABCDEF
A8 ABCDEF 6 **ABCDEF A ABCDEFGH 8 ABCDEFGH
A4 ABCDEF 6 ABCD A4 ABCDEFGH 6 ABCD**
Entrada y salida en Fortran
Descriptores de posición horizontal y vertical
• Los descriptores X y T se usan para controlar el espacio horizontal y el
descriptores slash/ para controlar el espacio vertical.
• nX
• Salida: Se emplea para espaciar los datos. El descriptor nX salta n espacios en la línea actual.
• Entrada: Se emplea para saltar por encima de campos de entrada que no se quieren leerse en
la línea actual.
• Tc
• Salida: Suele emplearse para espaciar los datos.
• Entrada: Suele usarse para saltar por encima de campos de entrada que no se quieren leer o
para leer varias veces unos datos.
• /[/][…]
• Salida: Con un slash se empieza una nueva línea.
• Entrada: Un slash ignora la línea actual y comienza a procesar las siguiente línea.
Entrada y salida en Fortran
Procesamiento de archivos
• Para que fortran pueda usar un archivo, debe abrirlo, asignándole una unidad. La
sintaxis para abrir un archivo es: OPEN(lista_open)
• La lista_open puede incluir dos o más clausulas separadas por comas. Las más
importantes son:
[UNIT=unidad]-> Es un # entero entre 1 y 99 que identifica el archivo.

[FILE=archivo]-> Es una expresión que indica el nombre del archivo que se desea aclarar.

[STATUS=estado_del_archivo]-> es una de las siguientes constantes: ‘OLD’, ‘NEW’, ‘REPLACE’,


‘SCRATCH’, ‘UNKNOWN’ (por defecto).
SCRATCH-> Crea un archivo temporal. Se destruye automáticamente cuando se cierra el
archivo.
UNKNOWN-> Si el archivo existe (no existe) este se reemplaza (crea) al momento de ejecución.

[ACTION=acción]-> Es uno de los siguientes caracteres: ‘READ’, ‘WRITE’.


Ejemplos
1. Escribir una tabla de raíces cuadradas y cúbicas de todos los números naturales
desde el 1 hasta el 20.
2. Escribir por pantalla algunas constantes y variables enteras, reales y carácter
con distintos formatos.

También podría gustarte