Está en la página 1de 15

Universidad Autónoma del Carmen

Dependencia Académica de Ciencias Químicas y


Petroleras
Facultad de Química

NOMBRE DEL TRABAJO

EJERCICIOS QUIZ 4-1, QUIZ 4-2, QUIZ 4-3 Y EJERCICIOS


DE FIN DE CAPITULO

MATERIA
PROGRAMACIÓN

PRESENTA
Ian Gennaro Güitrón Sagaón

DOCENTE DE LA ASIGNATURA
Alberto Vázquez Martínez

CD. DEL CARMEN, CAMPECHE, MEXICO. 08 DE JUNIO DEL 2020

ENTREGA: 20.00 HRS


INDICE

ANTECEDENTES ……………………………………………………………………..… 3
Declaraciones de Formatos ………………….…………………………………. 3
Dispositivos de salida .………..…………………………………………………. 3
Descriptores de Formatos ……………………………….…………………….... 4
Procesamiento de Archivos ...……………………………………………...…… 5
CONTENIDO ……………………………………………………………………………... 6
Quiz 4.1 …………………………………………………………………………… 6
Quiz 4.2 …………………………………………………………………………… 9
Quiz 4.3 …..……………………………………………………………………… 11
Ejercicios de Fin de Capítulo ………………………………………………….. 13
CONCLUSION ………………………………………………………………………….. 14
BIBLIOGRAFIA …………………………………………………………………………. 15
ANTECEDENTES
DECLARACIONES DE FORMATOS
Los formatos en Fortran se utilizan para especificar de manera exacta en que los
datos y variables se muestren en pantalla o se lean al momento de utilizar comandos
de lectura o de escritura, esta especificación va desde la posición tanto vertical
como horizontal de las variables, así como el número de cifras significativas de un
número. Cabe mencionar que las declaraciones FORMAT pueden especificadas de
diversas formas con números, letras o variables dependiendo de las necesidades o
preferencias del autor del código como se presenta a continuación:

DISPOSITIVOS DE SALIDA
La forma más común de emplear un dispositivo de salida es a través de una hoja
de papel, y esta nos dará una impresión de lo que se hizo o se resolvió en el
programa, para esto se emplea una impresora de línea; la cual consiste en imprimir
el contenido de la información una línea a la vez, tal como lo hace Fortran.
Una línea de impresión contiene 133 caracteres de largo, donde le primer carácter
funciona como carácter de control y el resto son la imagen que se imprimirá en la
hoja. En la impresión, la impresora omite el primer carácter, ya que este solo indica
una función o un comportamiento que se llevará a cabo en esa línea, ya sea
cualquiera de las siguientes opciones:
DESCRIPTORES DE FORMATO
Los descriptores de formatos se clasifican en cuatro categorías básicas:
1. Descriptores de formato que describen la posición vertical de una línea de
texto.
2. Descriptores de formato que describen la posición horizontal de los datos en
la línea.
3. Descriptores de formato que describen el formato de salida de un valor
particular.
4. Descriptores de formato que controlan la repetición de las porciones del
formato.
TIPO DE VARIABLE DESCRIPTOR SIMB. DEFINICION FORMA
ENTERO (INTEGER) I R Repetir cuenta, el rIw,m
numero de veces
que se usa un
descriptor o grupo
de descriptores.
W Ancho de Campo, el
número de dígitos
que se usaran en la
entrada y salida.
M Mínimo número de
dígitos que pueden
aparecer en promp.
REAL F R Repetir cuenta rFw,d
W Ancho de campo
D Número de dígitos
después del punto
decimal.
NOTACION E R Repetir cuenta rEw,d
EXPONENCIAL W Ancho de Campo
D Numero de dígitos
después del punto
decimal.
NOTACION ES R Repetir cuenta rESw,d
CIENTIFICA W Ancho de campo
D Numero de dígitos
después del punto
decimal.
LOGICA L R Repetir cuenta rLw
W Ancho de campo
CARACTER A R Repetir cuenta rAw
W Ancho de campo
POSICION X Inserta espacios nX
HORIZONTAL T Realiza función de Tc
tabulación a ciertas
columnas de la
línea.
CAMBIO DE LINEAS SLASH / Funciona como una (4I2.3, //)
indicación de
cambio de línea.

PROCESAMIENTO DE ARCHIVOS
Los programas al ir avanzando en complejidad y manejo de información o requerir
información de documentos anteriores o de bases de datos pueden referenciarse
para poder solicitar estos datos de documentos previamente utilizados o registrados
en la base de datos de nuestra computadora.
Esta estructura es llamada archivo y consiste en una cierta cantidad de líneas o
datos relacionados a los que se puede acceder por medio de una unidad. Cada
línea de información en un archivo es llamado registro. Fortran puede acceder a
estos archivos y registros por medio de instrucciones y declaraciones dadas con
ayuda del acceso secuencial y el acceso directo. Las declaraciones que se emplean
para la solicitud de esta información son las siguientes:
DECLARACION I/O FUNCION
OPEN Asociación con un archivo de disco especifico a un número
de unidad i/o especifica.
CLOSE Fin de la asociación específica del archivo de disco.
READ Lectura de datos de un número de unidad i/o especifico.
WRITE Escritura de datos a un número de unidad i/o específico.
REWIND Regreso al inicio del archivo.
BACKSPACE Regreso de un registro en el archvio.
CONTENIDO
QUIZ 4.1
A MENOS QUE ESTE ESPECIFICADO, ASUMA QUE LAS VARIABLES QUE
INICIEN CON LAS LETRAS I – N SON DE TIPO ENTEREAS Y QUE TODAS LAS
DEMAS VARIABLES SON DE TIPO REAL.
ESCRIBA LAS DECLARACIONES FORTRAN PARA ELABORAR LAS
SIGUIENTES OPERACIONES:
1. SALTE A UNA NUEVA PÁGINA E IMPRIMA EL TITULO “¡ESTA ES UNA
PRUEBA!” EMPEZANDO EN LA COLUMNA 25.

write (*, 100) ‘¡Esta es una Prueba!’


100 format (‘1’, 24x)

2. SALTE UNA LINEA Y DESPUES MUESTRE LOS VALORES DE I, J, Y


DATA_1 EN UN CAMPO DE 10 CARACERES DE LARGO. PERMITA SOLO
DOS VALORES DECIMALES PARA LAS VARIABLES REALES.

Write (*,100) i, j, data_1


100 format (‘0’, 2I10, F10.2)

3. EMPEZANDO DE LA COLUMNA 12, ESCRIBA LA STRING “EL


RESULTADO ES” SEGUIDO POR EL VALOR DE “RESULTADO” EXPRESE
HASTA CINCO DECIMALES SIGNIFICATIVOS EN CORRECTA
NOTACIÓN CIENTIFICA.
Write (*,100) ´ El Resultado es: ´, resultado
100 format (´1´, T13, ES12.4)
ASUMA QUE LAS VARIABLES A, B Y C SON INICIALIZADAS CON – 0.0001, 6.02
X 10^23, Y 3.141593, RESPECTIVAMENTE, Y QUE LAS VARIABLES DE TIPO
ENTERO I, J Y K SON INICIALIZADAS CON 32767, 24 Y -1010101,
RESPECTIVAMENTE. ¿QUE SE IMPRIMIRA EN LA PANTALLA EN CADA UNA
DE LAS SIGUIENTES DECLARACIONES?
4. WRITE (*, 10) a, b, c
10 FORMAT (1X, 3F10.4)

-.0001 en el espacio 5 y llega al espacio 10


Del 11 al 20 sería el valor de 6.02x10-23 pero no se podrá ver el valor
debido al espacio.
3.1416 del espacio 25 al 30.
5. WRITE (*,20) a, b, c
20 FORMAT (1X, F10.3, 2X, E10.3, 2X, F10.5)

.000 en el espacio 7 y se corta la información por los tres dígitos de


decimal
El espacio 20 es el máximo, qudaria como .602E24
En el espacio 30 se registra el 3.14159

6. WRITE (*, 40) a, b, c


40 FORMAT (1X, ES10.4, ES11.4, F10.4)
formato no disponible, no se puede leer el valor
el siguiente es en el espacio 15, 6.0200E23
y por último en el espacio 25 3.1416
7. WRITE (*, ‘(1X, I5)’) i, j, k

Todos los valores quedan acomodados en forma de lista, el máximo


espacio de almacenamiento de caracteres es el número 5
32767
24
No perceptible debido al largo de la información

8. CHARACTER (LEN=30) :: fmt


Fmt = “(1X, I8, 2X, I8.8, 2X, I8)”

32767 empezando en el espacio 4 y terminando en el 8


00000024 empezando en el espacio 11 y terminando en el 18
-1010101 empezando en el espacio 21 y terminando en el 28
ASUMA QUE string_1 ES UNA VARIABLE DE 10 CARACTERES INICIALIZANDO
CON EL STRING ‘ABCDEFGHIJ’ Y QUE string_2 ES UNA VARIABLE DE 5
CARACTERES INICIALIZADA CON UN STRING ‘12345’. ¿QUE SE IMPRIMIRA
DE CADA UNA DE LAS SIGUIENTES DECLARACIONES?
9. WRITE (*, *(1X, 2ª10)*) string_1, string_2

ABCDEFGHIJ del espacio 1 al espacio 11


12345 del espacio 15 al 20

10. WRITE (*, 80) string_1, string_2


80 FORMAT (T21, A10, T24, A5)
Se imprimirá el siguiente resultado, ABC12345IJ debido al acomodo,
este forza a que encimen los caracteres de los strings, del espacio 20 al 30.

11. WRITE (*, 100) string_1, string_2


100 FORMAT (1X, A5, 2X, A5)

ABCDE debido a la restricción de 5 caracteres del espacio 1 al 5


12345 dos espacios después del primer string, por ende del espacio 7
al 12
EXAMINE LAS SIGUIENTES DECLARACIONES FORTREAN. ¿SON
CORRECTOS O INCORECCTOS? SI SON INCORRECTOS, ¿POR QUE SON
INCORRECTOS? ASUMA QUE EL TIPO DE NOMBRE DE VARIALBES NO
ESTAN DEFINIDOS.
12. WRITE (*, 100) istart, istop, step
100 FORMAT (2I6, F10.4)

La declaración es correcta, todas las descripciones de formatos son idénticos


o hacen juego con los tipos de variables especificados.

13. LOGICAL :: test


CHARACTER (len=6) :: name
INTEGER :: ierror
WRITE (*,200) name, test, ierror
200 FORMAT (1X, ‘Test name: ’, A, /, ‘ Completion status :’, &
16, ‘ Tests results: ’, L6 )

Incorrectos, las descripciones de los formatos no corresponden con los tipos


de variables test ni tampoco de ierror.
¿QUE IMPRESIÓN EN PANTALLA SE GENERARA POR EL SIGUIENTE
PROGRMA? DESCRIBA EL RESULTADO DEL SIGUIENTE PROGRAMA,
INCLUYENDO TANTO LA POSICION VERTICAL COMO LA HORIZONTAL DE
CADA UNO DE LOS ELEMENTOS IMPRESOS.
14. INTEGER :: index1 = 1, index2 = 2
REAL :: x1 = 1.2, y1 = 2.4, x2 5 2.4, y2 = 4.8
WRITE (*, 120) index1, x1, y1, index2, x2, y2
120 FORMAT (‘1’, T11, ‘Output Data’, /, &
‘ ’, T11, ‘===========’, //, &
(‘ ’, ‘Point (‘, I2,’)=’, 2F14.6))
El programa salta a la parte superior de la pagina y escribe las instrucciones
especificadas, una tabla similar a la siguiente

Output Data
=============
POINT( 1) = 1.200000 2.400000
POINT( 2) = 2.400000 4.800000

QUIZ 4.2
ESCRIBA LAS DECLARACIONES FORTRAN QUE DESEMPEÑEN LAS
SIGUIENTES FUNCIONES:
1. LEA LOS VALORES DE UNA VARIABLE REAL amplitude DE LAS
COLUMNAS 10 – 20, DE UNA VARIABLE TIPO ENTERA count DE LA
COLUMNA 30 – 35, Y UN CARÁCTER DE TIPO VARIABLE identity DE LAS
COLUMNAS 60 – 72 DEL BUFFER DE ENTRADA ACTUAL.

read (*,100) amplitude, count, identity


100 format (9x, f11.2, t30, i6, t60, a13)

2. LEA UNA VARIABLE DE TIPO CARÁCTER (25) LLAMADA title DE LAS


COLUMNAS 10 – 34 DE LA PRIMERA LINEA DE ENTRADA; LUEGO LEA
5 VARIABLES DE TIPO ENTERO i1 A TRAVES DE i5 DE LAS COLUMNAS
5 – 12 EN CADA UNA DE LAS SIGUIENTES LINEAS.

Read (*, 100) title, i1, i2, i3, i5, i5


100 format (t10, a25, / (4x, i8))

3. LEA LAS COLUMNAS 11 – 20 DE LA LINEA DE ENTRADA ACTUAL EN


UNA VARIABLE DE CARÁCTER string, SALTE DOS LINEAS, Y LEA LAS
COLUMNAS 11 – 20 EN VARIABLES NUMERICAS TIPO ENTERO. USE
UN UNICO FORMATO DE DECLARACION READ.

Read (*, 100) string, number


100 format (t11, a10, ///, t11, i10)
¿QUE SE ALMACENARA EN CADA UNA DE LAS SIGUIENTES VARIABLES?
4. READ (*, ‘ (3F10.4)’) a, b, c
CON LOS DATOS DE ENTRADA:

A= 1.65 x 10-10
B= 17.0
C= - 11.7
5. READ (*, 20) a, b, c
20 FORMAT (E10.2, F10.2, /, 20X, F10.2)
CON LOS DATOS DE ENTRADA:

A= -3.141593
B = 2.718282
C= 37.55

6. READ (*, ‘ (3I5)’) i, j, k


CON LOS DATOS DE ENTRADA:

I = -35
J = 6705
K = 3687

7. CHARACTER (len=5) :: string_1


CHARACTER (len=10) :: string_2, string_4
CHARACTER (len=15) :: string_3
READ (*, ‘ ( 4ª10 ) ’ ) string_1, string_2, string_3, string_4
CON LOS DATOS DE ENTRADA:

String_1 = ABCDE
String_2 = FGHIJKLMNO
String_3 = PQRSTUVWXYZ0123
String_4 = _TEST_1

EXAMINE LAS SIGUIENTES DECLARACIONES FORTRAN, ¿SON CORRECTAS


O INCORRECTAS? SI SON INCORRECTAS, ¿POR QUE SON INCORRECTAS?
SI SON CORRECTAS, ¿QUE HACEN?
8. READ (*, 100) nvals, time1, time2
100 FORMAT (10X, I10, F10.2, F10.4)

Las declaraciones son correctas.

9. READ (*, 220) junk, scratch


220 FORMAT (T60, I15, /, E15.3)

Las declaraciones son correctas, las declaraciones de lectura enteras junk


para las columnas 60 a la 75 de una línea, después se lee la variable scratch
para las columnas 1 a 15.

10. READ (*, 220) icount, range, azimuth, elevation


220 FORMAT ( I6, 4X, F20.2)

La declaración es incorrecta, la variable elevation debería ser leida por una


instrucción de formato tipo i

QUIZ 4.3
ESCRIBA DECLARACIONES DE FORTRAN QUE DESARROLLEN LAS
FUNCIONES QUE SE DESCRIBEN A CONTINUACION. A MENOS QUE SE
DECLARE LO CONTRARIO, ASUMA QUE LAS VARIBLES QUE INICIAN CON
LAS LETRAS I – N SON DE TIPO ENTERO Y TODAS LAS DEMAS VARIGALES
SON DE TIPO REAL.
1. ABRA UN ARCHIVO EXISTENTE LLAMADO IN052691 EN I/O UNIDAD 25
DE SOLO LECTRUA Y VERIFICAR EL ESTATUTO QUE DE SI LA
DECLARACION OPEN FUE REALIZADA CON ÉXITO.

open (unit=25, file=’INO52691’, action=’read’, iostat=’istat’)


if (istat /= 0) then
write (*,*) ‘Error al abrir el archivo. IOSTAT=’, istat
else
write (*,*) ‘Archivo abierto con éxito!’
end if

2. ABRA UN ARCHIVO NUEVO, ASEGURANDOSE QUE NO SE REESCRIBA


EN UN ARCHIVO EXISTENTE DEL MISMO NOMBRE. EL NOMBRE DEL
ARCHIVO DE SALIDA DEBE SER GUARDADO CON EL NOMBRE DE LA
VARIABLE out_name.

Open (unit=4, file=out_name, status=’new’, action=’write’, iostat=istat)

3. CERRAR EL ARCHIVO ADJUNTADO A LA UNIDAD 24.

Close (unit=24)

4. LEA LAS VARIABLES first Y last DE I/O UNIDAD 8 EN FORMATO LIBRE,


CHECADOPOR EL FIN DE Y LA INFORMACION DURANTE LA LECTURA.

Read (8,*,iostat=istat) first, last


If (istat<0) then
Write (*,*) ‘Final, el archivo fue encontrado en la unidad 8’
End if

5. RETROCEDA 8 LINEAS IN EL ARCHIVO ADJUNTO A I/O UNIDAD 13.

Do i=1,8
Backspace (unit=13)
End do
EXAMINE LAS SIGUIENTES DECLARACIONES FORTRAN. ¿SON CORRECTOS
O INCORRECTOS? SI SON INCORRECTOS, ¿POR QUE SON INCORRECTOS?
A MENOS QUE SE DECLARE LO CONTRARIO, ASUMA QU ELAS VARIABLES
QUE INICIAN CON LAS LETRAS I – N SON DE TIPO ENTERO Y QUE TODAS
LAS DEMAS VARIABLES SON DE TIPO REAL.
6. OPEN (UNIT = 35, FILE =’DATA1’, STATUS=’REPLACE’, IOSTAT=ierror)
READ (35,*) n, data1, data2

Incorrecto, el archivo data1 fue remplazado, no hay información por leer.

7. OPEN (UNIT=11, FILE=’DATA1’, STATUS=’SCRATCH’, IOSTAT 5 ierror)

Incorrecto, no se puede especificar el nombre de un archivo con un archivo


tipo scratch.

8. OPEN (UNIT=15, STATUS=’SCRATCH’, ACTION=’READ’, IOSTAT= ierror)


Incorrecto, no hay nada en el archivo scratch para leer, ya que el archivo fue
apenas creado no contiene datos.

9. OPEN (UNIT=X, FILE=’JUNK’, STATUS=’NEW’, IOSTAT=ierror)

Incorrecto, no se permite utilizar una variable no numérica en el apartado de


unidad.

10. OPEN (UNIT=9, FILE=’TEMP.DAT’, STATUS=’OLD’, ACTION=’READ’, &


IOSTAT=ierror)
READ (9, *) x, y
La declaración es correcta.

EJERCICIO DE FIN DE CAPITULO


17. ¿ES LA DECLARACION CLOSE ES SIEMPRE REQUERIDA EN UN
PROGRAMA FORTRAN QUE USA ARCHIVOS DE DISCO? ¿POR QUE SI O POR
QUE NO?
Si hablamos desde el punto de vista de hábitos de un buen tipado de programación
si es necesario el escribir la sentencia CLOSE cada vez que abramos un archivo
dentro de Fortran; sin embargo, el omitirlo no afecta en nada a la ejecución del
programa, ya que Fortran cuando no se emplea el cierre por medio de la sentencia
CLOSE, ejecuta el cierre de todos los archivos abiertos al finalizar el programa.
CONCLUSION

El orden y acomodo de información es fundamental para que nosotros como


ingenieros podamos interpretar los resultados; de esta forma, podemos eficientizar
tiempo en la interpretación de los datos. Por ello, el uso de los formatos en Fortran
es más importante de lo que uno puede llegar a esperar, ya que en programas
sencillos o cortos no se presentan problemas a la hora de leer o solicitar información,
pero cuando hablamos de procesos complejos como iteraciones, ecuaciones de
estado, simulaciones de procesos, es casi imposible interpretar resultados o hacer
predicciones de comportamientos si no se presenta de forma correcta la
información.
BIBLIOGRAFIA

Fortran 95 / 2003 for Scientist and Engineers, Tercera Edición, Stephen J.


Chapman, Editorial McGraw – Hill, año 2007, 982 páginas.

Introducción a la Programación en Fortran 90 para Químicos, Prácticas. Primera


Edición. Pedro Alberto Enríquez Palma, María Pilar Puyuelo García – Universidad
de la Rioja, año 2007. 276 páginas.

También podría gustarte