Professional Documents
Culture Documents
Manejo de Registros
Contenido:
1. Concepto de registro.
2. Diferencias entre registros con y sin formato.
3. Caracteres de control para impresiones.
4. Formatos de registros enteros, fraccionarios cientficos, lgicos,
alfanumricos y tabulares.
5. Evidencias del aprendizaje.
Pregunta Gua
Una lectura o una simple impresin es un registro?
116
SESIN PRESENCIAL:
REGISTRO:
Aqu por ejemplo tenemos las variables n1, n2, n3 como variables enteras de
tipo numrico y la variable nombre como tipo caracter (Conocida como variable
de cadena)
El programa lee un registro conteniendo los valores numricos y otro registro
adicional conteniendo un nombre que corresponder en este caso al destinado
(Bautizado) para acceder a un archivo de datos. Y cuyo contenido sern los
valores de n1, n2, n3. As de esta forma podemos ejemplificar que un registro
no es solamente el conjunto de valores almacenados, sino tambin se le puede
denominar a los valores que leemos, imprimimos, desplegamos, trasmitimos, o
grabamos en algn medio.
De acuerdo a su estructura Los registros pueden ser de tamao fijo o variable,
segn sea el caso. Para fines del lenguaje Fortran, se vern los registros de
tamao fijo. Es decir el registro que se define con una especificacin y tamao
fijo, es decir no podr crecer o decrecer, su tamao permanecer invariable, a
diferencia de otro tipo de registros que se pueden re definir de acuerdo a las
necesidades de optimizacin de recursos. Actualmente la memoria es uno de los
recursos ms econmicos dentro del rea computacional, de tal manera que
esas tcnicas de optimizacin han cado en desuso.
117
En la siguiente seccin del presente texto, veremos como los registros
conforman los registros, y de acuerdo a como los describamos podemos
estructurar diferentes tipos de archivos.
El contenido de un registro se pude estructurar de todo tipo de valores, es decir
tanto de contenido de tipo numrico como alfanumricos (Caracter , cadena), de
tipo lgico especial, as por ejemplo pudisemos tener el siguiente registro :
Ejemplo:
Nota:
118
Para presentar reportes y desplegar con mejor presentacin, es conveniente
hacer uso de los formatos, sobretodo si ya se encuentra en el campo laboral.
Ejemplo:
--
WRITE (#, 50)
50 FORMAT (1, 20X, INSTITUTO TECNOLOGICO DE CHIHUAHUA)
WRITE (#,100)
100 FORMAT (0, 5X, MATRICULA ,10X, NOMBRE)
WRITE (#,150)
150 FORMAT ( , 5X, ============, 10X ========,//)
El resultado ser:
HOJA DE IMPRESORA
5 20
MATRICULA NOMBRE
========== = =========
119
Descripcin de Formatos.- Los hay de cuatro formas a saber:
Smbolo Significado
C Numero de columna
D Numero de dgitos a la derecha del punto decimal para salidas fraccionarias
M Numero de dgitos a desplegar
N Numero de espacios a dejar
R Numero de veces que se repite el formato
W Tamao del campo (# carcter de entrada y/o salida)
120
Ejemplos:
Aqu el T10 indica que se
posiciona en la columna #10.
WRITE (#, 100) NUMERO, LUGAR
El #2 antes del parntesis nos
100 FORMAT (T10, 2(1I3, 2X)) indica que lo del parntesis se
repite dos veces.
10 XX XX El I 3, nos dice que usara 3
I_I_I_I I_I_I_I columnas para el contenido de
614 18
cada variable.
El 2x nos indica 2 columnas de
separacin en cada salida.
Aqu el 5x, indica que deja 5
columnas.
WRITE (#, 200) NOMBRE, SUELDO
El 1A30, pudiese omitir el 1 y
200 FORMAT (5X, 1A30, T36, F7.2,/) solo A30 dice que nombre
ocupar 30 lugares.
12345 6 30 36 T36 indica a partir de donde se
I_I_I_I_I_I I_I_I_I_I_I I_I_I_I_I_I_I contina imprimiendo.
CHUCHO EL ROTO 417. 52
El F7.2 nos dice que sueldo
tiene 7 espacios de los cuales
2 sern fraccionarios.
Nota:
El # es el numero de dispositivo de impresin que se explicar en el captulo
nueve (archivos)
121
Ejemplos de problemas resueltos
Entrada: la entrada ser el nombre del archivo que contiene los datos de los
puntos.
Pseudo-cdigo
PROGRAM PRUEBA_EXP1
VARIABLES IMPLCITAS
DECLARO REAL, EXTERNAL :: EXP1
DECLARO ENTERA :: I
DECLARO REAL, DIMENSION (8) :: X
X= (/-10., -5., -1., 0. ,1. ,5., 10., 15., /)
CICLOI=1,8
DESPLIEGO (1,1000) X(I), EXP1(X(I)), X(I), EXP(X(I))
1000 FORMATO (XP1(,F0.4) = , ES15.7,4X.EXP(,F10.4,)=,ES15.7)
FIN CICLO
FIN PROGRAM
122
DIAGRAMA ESTRUCTURADO
VARIABLES IMPLCITAS
DECLARO REAL, INTENT (IN) ::X
DECLARO REAL::EXP1
DECLARO ENTERA:: FACT
DECLARO ENTERA:: I
DECLARO REAL::XI
EXP1=1
XI= 1
FACT= 1
CICLOI = 1,11
XI = XI*X
FACT = FACT *I
EXP1 = EP1 +XI / DECLARO REAL (FACT)
FIN CICLO
FIN FUNCION
PROGRAM PRUEBA_EXP1
VARIABLES IMPLCITAS
DECLARO REAL, EXTERNAL :: EXP1
DECLARO ENTERA ::I
DECLARO REAL, DIMENSION (8) ::X
X= (/-10., -5., -1., 0. ,1. ,5., 10., 15., /)
CICLOI = 1.8
DESPLIEGO (1,1000) X(I), EXP1(X(I)), X(I), EXP(X(I))
1000 FORMATO (XP1(,F0.4) = , ES15.7,4X.EXP(,F10.4,)=,ES15.7)
FIN CICLO
FIN PROGRAM
123
FUNCTION EXP1
! ESTE PROGRAMA EVALA LA SERIE DE E**X EN 12 TRMINOS POR MEDIO DE UNA
! FUNCIN PREDISEADA Y LA COMPARA CON EL RESULTADO QUE NO DA LA FUNCIN
! USUARIO.
IMPLICIT NONE
REAL, INTENT(IN) :: X
REAL ::EXP1
INTEGER:: FACT
INTEGER :: I
REAL ::XI
EXPL=1.
XI=1.
FACT =1.
DO I=1 ,11
XI = XI * X
FACT = FACT * I
EXPL= EXPL + XI /* REAL (FACT)
END DO
END FUNCTION
PROGRAM PRUEBA_EXPL
IMPLICIT NONE
REAL, EXTERNAL :: EXPL
INTEGER :: I
REAL DIMENSION(8) ::X
OPEN (UNIT=1, FILE =LPT1) ! Recuerde que ste puerto se configura segn su impresora
X= (/-10., -5., -1., 0., 1., 5., 10., 15./)
DO I = 1, 8
WRITE (1,1000) X(I), EXP1(X(I)), X(I) EXP(X(I))
1000 FORMAT (EXPL(, F10.4,) = , ES15.7, 4X, XEP(, F10.4.) = ,ES15.7)
END DO
END PROGRAM PRUEBA_EXPL
124
PROGRAM PROMEDIOS
! ESTE PROGRAMA REALIZA LOS CLCULOS DE LOS PROMEDIOS DE LOS ALUMNOS DE UN GRUPO, ADEMS
! EL PROMEDIO POR MATERIA Y PROMEDIO GENERAL DEL GRUPO
! ESPECIALIDAD INGENIERA INDUSTRIAL
! GRUPO DE 12:00 A 13:00 HRS
! PROFESOR: M.A. e ING. MIGUEL EDUARDO OGAZ GARZA
IMPLICIT NONE
REAL , DIMENSION(20) :: MATE, ECONOMIA. QUIMICA, FISICA, METODOS, TOTUNI
CHARACTER(25) , DIMENSION (20) :: NOMBRE
REAL:: SUMA1, SUMA2, SUMA3, SUMA4, SUMA5, TOTSEM
INTEGER:: CONTA, NUM_ RENG
WRITE (*,*) HOLA, BIENVENIDO!
WRITE (*,*) ESTE PROGRAMA REALIZA LOS CLCULOS DE LOS PROMEDIOS DE LOS ALUMNOS DE UN
GRUPO
WRITE(*,*) ADEMAS DE EL PROMEDIO POR MATERIA Y EL PROMEDIO GENERAL DEL GRUPO
WRITE (*,*) TECLEE EL NUMERO DE PERSONAS DEL GRUPO
READ(*,*) NUM_RENG
DO CONTA=1,, NUM_RENG
WRITE(*,*) NOMBRE
READ(*,*) NOMBRE (CONTA)
WRITE(*,*) TECLEE 5 CALIFICACIONES DE ESTA PERSONA
READ(*,*) MAT(CONTA), ECONOMIA(CONTA), QUIMICA(CONTA), FISICA(CONTA), METODOS(CONTA)
END DO
WRITE(*,*) CALCULO DEL PROMEDIO
DO CONTA=1 , NUM_RENG
TOTUNI(CONTA)=(MATE(CONTA)+ECONIMIA(CONTA)+QUIMICA(CONTA)+FISICA(CONTA)+M ETODOS(CONTA))/5.
END DO
SUMA1=0.
SUMA2=0.
SUMA3=0.
SUMA4=0.
SUMA5=0.
DO CONTA =1, NUM_RENG
SUMA1= SUMA1+ MATE(CONTA)/ Real(NUM_RENG)
SUMA2= SUMA2+ ECONOMIA(CONTA)/ Real(NUM_RENG)
SUMA3= SUMA3+ QUIMICA(CONTA)/ Real(NUM_RENG)
SUMA4= SUMA4+ FISICA(CONTA)/ Real(NUM_RENG)
SUMA5= SUMA5+ METODOS(CONTA)/ Real(NUM_RENG)
END DO
TOTSEM=(SUMA1+ SUMA2+ SUMA3+ SUMA4+ SUMA5)/5.
OPEN (UNIT =4, FILE = LPT1)
WRITE(4,20)
20 FORMAT (//,19X, INSTITUTO TECNOLOGICO DE CHIHUAHUA)
WRITE(4,30)
30 FORMAT(//,1X,NOMBRE MATE ECONOMIA QUIMICA FISICA METODOS PROMEDIO)
DO CONTA=1, NUM_RENG
WRITE (4,40) NOMBRE(CONTA), MATE(CONTA), ECONOMIA(CONTA), QUIMICA(CONTA), FISICA(CONTA),&
& METODOS(CONTA), TOTSEM(CONTA)
40 FORMAT (//, 1X, A8, 6 ( 4X,F7.2))
END DO
WRITE (4,50) SUMA1, SUMA2, SUMA3, SUMA4, SUMA5, TOTSEM
50 FORMAT (// , 1X, PROMEDIO, 6(4X, F7.2))
CLOSE (UNIT=4)
END PROGRAM PROMEDIOS
125
INSTITUTO TECNOLOGICO DE CHIHUAHUA
NOMBRE MATE ECONOMIA QUIMICA FISICA METODOS PROMEDIO
126
PROGRAM ECUACION
!ESPECIALIDAD INGENIERA INDUSTRIAL
!GRUPO DE12:00 A 13:00 HRS
!MAESTRO: M.A. MIGUEL EDUARDO OGAZ GARZA
IMPLICIT NONE
CHARACTER (LEN=8) :: NOMBRE
REAL :: X1, X2, X3 ,X4 ,X5, X6, X7, X8, X9, X10, A, B, C
WRITE(*,*)BIENVENIDO AL PROGRAMA
WRITE(*,*) ESTE PROGRAMA REALIZA LOS CLCULOS DE UNA ECUACIN DE TRES NMEROS, LA CUAL ES
WRITE (*,*) PRESENTADA DE DIFERENTES MANERAS, POR MEDIO DE PARNTESIS
WRITE (*,*) PARA LA EJECUCIN DEL PROGRAMA DEBER PROPORCIONAR LOS SIGUIENTES DATOS:
WRITE (*,*) CUAL ES TU NOMBRE
READ(*,*) NOMBRE
WRITE(*,*) MUY BIEN, NOMBRE, AHORA
WRITE (*,*) LA FORMULA A DESARROLLAR ES B+B**2-4*A*C**0.5/2-A
WRITE (*,*) DAME EL VALOR DE A
READ (*,*) A
WRITE (*,*) DAME EL VALOR DE B
READ (*,*) B
WRITE (*,*) DAME EL VALOR DE C
READ (*,*) C
WRITE (*,*) NUESTRO Siguiente PASO , NOMBRE, SERA CALCULAR LOS VALORES
X1=-B+B**2.-4.*A*C**0.5/2.*A
X2=-B+B**(2.-4.)*A*C**(0.5/2.)*A
X3=(-B)+B**2.-4.*A*C**0.5/2.*A
X4=-B+(B**2.-4.-A-C) **0.5/2.*A
X5=-B+((B**2.-4.)*A*C)**0.5/2.*A
X6=-B+B**2.-(4.*A*C)**0.5/2.*A
X7=-B+(B**2.-(4.*A*C))**0.5/2.*A
X8=-B+(B**2.-4.*(A*C))**0.5/(2.*A)
X9=(-B+(B**2.-(4.*A)*C)**0.5/(2.*A)
X10=(-B+(B**2.-4.*A*C)**0.5)/(2.*A)
OPEN (UNIT =4, FILE=LPT1)
WRITE(4,200)
200 FORMAT (//, 10X, LISTO LOS DATOS HAN SIDO CALCULADOS Y SON)
WRITE (4,*) EL VALOR DE X1 ES= , X1
WRITE (4,*) EL VALOR DE X2 ES= , X2
WRITE (4,*) EL VALOR DE X3 ES= , X3
WRITE (4,*) EL VALOR DE X4 ES= , X4
WRITE (4,*) EL VALOR DE X5 ES= , X5
WRITE (4,*) EL VALOR DE X6 ES= , X6
WRITE (4,*) EL VALOR DE X7 ES= , X7
WRITE (4,*) EL VALOR DE X8 ES= , X8
WRITE (4,*) EL VALOR DE X9 ES= , X9
WRITE (4,*) EL VALOR DE X10 ES= , X10
WRITE (4, 1000) Nombre
1000 FORMAT (///, 4X, AH Valores Diferentes ....!, A8)
CLOSE (UNIT= 4)
END PROGRAM ECUACION
127
PROGRAM VECTOR
!ESPECIALIDAD INGENIERA INDUSTRIAL
!GRUPO DE12:00 A 13:00 HRS
!MAESTRO: MIGUEL EDUARDO OGAZ GARZA
IMPLICIT NONE
REAL , DIMENSION (100):: X, Y, Z
INTEGER:: NVECTORES, I
WRITE (*,*) ESTE PROGRAMA CALCULA LA SUMA DE DOS VECTORES DADOS
WRITE(*,*) DAME EL NUMERO DE SUMATORIAS A REALIZAR
READ(*,*) NVECTORES
DO I=1, NVECTORES
WRITE (*,*) DAME EL VALOR DE X
READ (*,*) X(I)
WRITE (*,*) DAME EL VALOR DE Y
READ (*,*) Y(I)
Z(I)=X(I) + Y(I)
END DO
OPEN (UNIT=4, FILE=LPT1) !Recuerde que ste puerto se configura segn su impresora
WRITE(4,100)
100 FORMAT(///, 28X, LOS RESULTADOS SON: )
WRITE(4, 200) (X(I), I=1, NVECTORES)
200 FORMAT (//, 2X LOS VALORES DE X SON: , 8X, F7.1, 2X, F7.1, 2X, F7.1, 2X, F7.1, 2X, F7.1,//)
WRITE(4, 300) (Y(I), I=1, NVECTORES)
300 FORMAT (//, 2X LOS VALORES DE Y SON: , 8X, F7.1, 2X, F7.1, 2X, F7.1, 2X, F7.1, 2X, F7.1,//)
WRITE (4,400 (Z(I), I=1, NVECTORES)
400 FORMAT (//, 2X LA SUMA DE LOS VALORES ES : , 2X, F7.1, 2X, F7.1, 2X, F7.1, 2X, F7.1, 2X,
F7.1,//)
CLOSE (UNIT=4)
END PROGRAM VECTOR
128
Evidencias del aprendizaje.
**Haciendo uso correcto de Formatos y con todos los pasos sugeridos para una
exitosa programacin, solucione los siguientes problemas.
129
8.17.- Elabore un programa que lea una temperatura en grados Celsius y la
convierta en grados Fahrenheit, Kelvin, y Ranking. Si :
Grados K = 5/9(grados F-32)+273.15
Grados R = -273.150C.
Despliegue temperatura leda en Celsius y sus conversiones.
El promedio se calcula:
Promedio Prom. Con 6 caracteres reales con tres fracciones
(Incluye el punto)
130