Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

136
Proyecto de Investigacion I y 11. \ OL- Preaehta¿o por: Aooooreo : Garcia. Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez. Junio de 1988

Transcript of Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Page 1: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Proyecto de Investigacion I y 11. \ OL-

Preaehta¿o por:

Aooooreo : Garcia.

Dr. Lorenzo P h e 2 FernAndez. Dr. Fernando Prieto NernAndez.

Junio de 1988

Page 2: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

- CompcLfSeros de la Universidad.

- Comweros de Banamex.

- Profesores del Area de Computact6n.

Page 3: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 4: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

NOME?RE DEL PROYECTO.

L"' Base d e Datos para la e laboracibn de E x h e n e s d e C e r t i f l c a c i 6 n del Consejo Nacional de Neumol o g l a .

NOMBRE DEL ALUMNO.

h o b 1 es Gar c i a Javier Aqui 1 eo.

Dr. Fernando Pr I e t o Her nhndez .

OBJETIVO GENERAL.

Disefiar un SCstema para reunir y accesar l a informaci6n necesaria y generar examenes con reacti vos de opci 6n mol t i p l e .

OBJETIVOS PARTICULARES.

a3 Formar un Banco de Reactivos y respuestas.

b3 Efectuar movimientos de Inclusi6ns Exclusi6ns Cambios y consultas.

.c3 Generar exAmenes que incluyan, de manera a l e a t o r i a , los reacti vos d e acuerdo a proporcl ones indicadas de cada materia.

Page 5: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

I NTRODUCCI ON.

El Consejo Nacional de Neumologia se d e c r e t 6 como organismo o f i c i a l j u n t o c o n l a Academia Nacional d e Medicina y l a S o c i e d a d Mexi c a n a d e Neumol ogí a y C i r u g í a d e Tordx hace unos 18 aKos.

E s t e C o n s e j o t i e n e como f u n c i h p r i n c i p a l , l a de c e r t i f i c a r l a e s p e c i a l i d a d d e N e u m o l o g i a a los W i c o s que se h a l l a n h e c h o a c r e e d o r e s a l a misma, s e g h los e s t a t u t o s d e c r e t a d o s .

E s t a c e r t i f i c a c i 6 n se h a c e e n base a un e x h e n , el c u a l se r e a l i z a cada ano e n el mes de F e b r e r o p r e v i a c o n v o c a t o r i a < no c u a l q u i e r p e r s o n a l o p u e d e r e a l i z a r >.

E l C o n s e j o Nací onal de Neumologí a t i e n e una d i r e c t i v a y d e n t r o de e s t a , una c o d s i 6 n e x a m i n a d o r a e n c a r g a d a d e e l a b o r a r d l c h o exAmen. si el s o l i c i t a n t e a p r u e b a el examen, se l e dB una C e r t i f i c a c i 6 n d e v a l o r n a c i o n a l e n l a e s p e c i a l i d a d d e Neumologla.

H a s t a el momento. el proceso de l a e l a b o r a c l b n d e l e x h e n , es como s i g u e :

- Cada uno de 1 os m i embr os d e l C o n s e j o , r e a l iza un ntlrmero X de p r e g u n t a s , cada una d e l a s c u a l e s , t i e n e s u r e s p u e s t a c o r r e c t a , c u a t r o r e s p u e s t a s i n c o r r e c t a s y l a r e f e r e n c i a b i b l i o g r a f i c a d e l a c u a l se o b t u v o l a p r e g u n t a .

- Teniendo el c o n j u n t o d e p r e g u n t a s r e a l i z a d a s C mas o menos unas 250 >, una s e c r e t a r i a se e n c a r g a de c o p i a r l a s e n l i m p i o C una por una 3 , de t a l modo que l a i nformaci dn d e c a d a pregunta quede en una sol a h o j a .

- El C o n s e j o se retlrne y d i c t a m i n a qu& preguntas aparecergn en el examen, cubles no 6 c u i 5 1 e s n e c e s i t a n a l gun- cambios para p o d e r a p a r e c e r d e n t r o d e l examen. E l n6mero d e p r e g u n t a s q u e debe s e l e c c i o n a r el C o n s e j o es de 200, que es l a c a n t i d a d d e p r e g u n t a s q u e p a r e c e e n el exAmen.

- D e f i n i d a s l a s p r e g u n t a s d e f i n i t i v a s , l a t a r e a s i g u i e n t e es l a d e r e a l i z a r el for mato d e l examen con su hoja d e p r e s e n t a c i f m , el c o n j u n t o de preguntas numeradas con sus r e s p e c t i v a s r e s p u e s t a s C c u a t r o i n c o r r e c t a s y l a c o r r e c t a 3 por i n c i s o s y, una hoja d e r e s p u e s t a s e n l a q u e a p a r e c e el ntmero d e p r e g u n t a j u n t o c o n l a l e t r a d e l i n c i s o c o r r e s p o n d i e n t e a l a r e s p u e s t a c o r r e c t a de d i c h a p r e g u n t a .

- Obtener un número d e c o p i a s i g u a l a l número de s o l i c i t a n t e s d e ese e d m e n .

- V o l v e r a r e p e t i r todo el p r o c e s o p a r a l a s i g u i e n t e c o n v o c a t o r i a .

E s por eso q u e s u r g e l a n e c e s i d a d de s i s t e m a t i z a r d i c h o p r o c e s o c o n l o c u A 1 . se o b t e n d r í a n l a s s i g u i e n t e s v e n t a j a s :

- L a c a p t u r a de los r e a c t i v o s C conjunto formado por el e n u n c i a d o d e l a p r e g u n t a , l a r e s p u e s t a c o r r e c t a , c u a t r o

2

Page 6: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

- -

respuestas incorrectzs y s u referencia bibl iografica S , se hard casi d e l a misma manera l a primera vez, pero para las subsecuentess la cantidad de reactivos a dar d e a l t a , s e r a menor.

- Ser& d s f k i l el consultar todo e1 conjunto de reactivos, ya que el Sistema cuenta con un vaciado total de reactivos C con un r e a c t i v o por hoja S .

- La modificacidn o baja d e algQn reactivo, sera tambibn s e n c i l l a conociendo el nQmero d e l reactivo C el nQmero de r e a c t i v o es el í n d i c e d e cada pregunta e n el archivo 3 .

- Los edmenes 1 os r e a l i z a r & el si stem d e 1 a s i g u i e n t e manera : *

1 . Una hoja de p r e s e n t a c i h .

2. Conjunto d e Preguntas obtenidas d e l Archivo d e forma al eator i a.

3. El conjunto de respuestas para cada pregunta, aparecer& tambien de manera a l e a t o r f a e n los i n c i s o s .

4 . Hoja d e Respuestas para ese examen , donde aparecer& el n ~ m e r o de pregunta, el i n c i s o e n el que veni a 1 a respuesta correcta y l a r e f e r e n c i a b i b l i o g r a f i c a d e l a misma.

- Cada examen tendra s u nQmero de examen para poder1 o re1 aci onar con 1 a hoja d e respuestas cor respondi ente a l e-men.

Ademas, se previeron otros casos con los que cuenta el sistema :

Consulta de react1 vos por Pantal 1 a 6 por Impresora.

Cada reactivo pertenecer& a c i e r t o tema, con l o cual, se sabra d e que t i p o es el reactivo.

Un l i s t a d o d e l o s temas existentes para poder saber que temas existen e n el banco de r e a c t i v o s .

Se dar& el nQmero d e examenes a r e a l i z a r y el sistema obtendr& tal cantidad d e eamenes d i s t i n t o s .

Se podrían haber hecho 6 s casos para un desarroll o completo y seguro d e l sistemas pero por 1 a fa1 ta d e tiempo y d e memori a e n 1 a computadora, se cubrieron solamente los objetivos sugeridos por 1 os asesor es.

3

Page 7: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

"- -

DESARROLLO TEORI CO.

D i c h o s i s t e m a n o ser& p a r a g e n t e muy v i n c u l a d a c o n 1 a computacibn por l o que u n o d e los objetivos a c u b r i r es que el sistema t e n g a l a f a c i l i d a d h a c i a el usuario manejandose en base a mends c o n l e t r e r o s d e s e g u i m i e n t o y de p r e c a u c i d n .

Dado q u e esto es t r a n s p a r e n t e p a r a el u s u a r i o f i n a l , el 1 engua j e d e programacibn que se u t i 1 i z a r & sera el de Turbo PuscuL y como manejador d e B a s e s de Datos Btrieve-Xtrieve. AdemAs. se t r a t a r a de t e n e r un dptimo manejo d e l a memoria y a q u e el Sistema se d e s a r r o l l a r a e n una PC P r i n t a f o r m d e 2S6 K d e memoria.

L a t e o r i a q u e se a p l i c a r a , sera l a v i s t a e n el A n a l i s i s y Di sefío d e Sistemas d e Computaci 6n , d e s d e el d e s a r r o l l o h a s t a 1 a i m p l a n t a c i 6 n .

METODOLOGIA SEGUIDA Y DESARROLLO EXPERIMENTAL.

P a r a l o g r a r el Anilisis y D i s e f i o d e l S i s t e m a se tendrA q u e di vi d i r el e s t u d i o e n dos p a r t e s , el DisePSo L4i co y el Di seno Fl si co.

DI SEF10_ LOG1 CO.

En el D i s e f i o L 6 g i c o se t r a t a r a d e r e p r e s e n t a r el Sistema e n un Modelo de E n t i d a d e s y A s o c i a c i o n e s q u e r e p r e s e n t e el model o d e d a t o s q u e u s a r a el Sistema.

El primer Modelo de E n t i d a d e s y a s o c i a c i o n e s q u e r e p r e s e n t 6 al Sistema, es el que se p r e s e n t a e n el Diagrama A C H o j a s i g u i e n t e 3.

En el Diagrama se p o d r a o b s e r v a r q u e 1 os grados de asoci a c i 6 n s o n d e uno a 5 para l a s e n t i d a d e s PREGUNTA y RESPUESTAS, ya q u e u n a p r e g u n t a t i e n e c i n c o r e s p u e s t a s y l a s c i n c o r e s p u e s t a s s o l a m e n t e c o r r e s p o n d e n a una pregunta; el g r a d o de a s o c i a c i 6 n e n t r e l a e n t i d a d RESPUESTAS y REF. BIBLIOGRAFICA es d e uno a uno, ya q u e al c o n j u n t o d e r e s p u e s t a s C e n t r e e l las l a c o r r e c t a >, le c o r r e s p o n d e s o l a m e n t e u n a referencia b i b l i o g r h f i c a y a cada r e f e r e n c i a bi b l i o g r A f i c a , l e corresponde una r e s p u e s t a C porque d e n t r o d e l a r e f e r e n c i a b i b l i o g r a f i c a se encuentra el namero d e M g i n a e n l a c u i 1 se e n c o n t r a b a l a r e s p u e s t a y , por c o n s i g u i e n t e , l a p r e g u n t a 3 .

Haciendo el Mapeo del Model o de E n t i d a d e s y A s o c i a c i o n e s al Model o R e 1 aci onal y Normal i zando el Model o el model o, se 11 egaba a o b t e n e r un solo a r c h i v o , 1 o c u a l es aceptable ya que conociendo el ndmero d e l a p r e g u n t a . se puede conocer directamente cual es el e n u n c i a d o de 1 a pregunta el enunciado d e cada una de s u s r e s p u e s t a s y l a r e f e r e n c i a b i b l i o g r a f i c a .

4

Page 8: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

u W a

m

o c:

O > H

Z 3

w O

O H U H O U W

W cn

O O

> U

z I 4

V P

o Lt

n

a

O J O m

n U z

Z H 3 m

a .

-1 a a

n

O .. 4

O -3 4

I- t

J z W

3 > u] m W W U P

a

Page 9: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Est.e modelo tuvo sus f a l l a s en su implantaci6n. ya que ocupaba demasiados espacio e n memoria. Esto se d e b i d a q u e l a longitud d e l enunciado d e l a pregunta 6 d e las respuestas 6 de l a r e f e r e n c i a bibliogrAfica, podia ser muy grande y l a longitud del registro era a l rededor de 1580 caracteres C 650 para l a pregunta m&s larga , i 30

para cada una d e las respuestas - son cinco respuestas, entonces dA un total de 650 - y 280 para la roforonei n bibliogrAf ica m6s l a r g a 3.

Se t r a t b d e solucionar el problema cambiando l a l o c a l i z a c i 6 n del Archivo. En lugar de dejarlo dentro d e un d i r e c t o r i o e n el diskette, coloque el Archivo e n todo un diskette. Al p r i n c i p i o pareci a que había dado r e s u l tad0 esto, pero no. Al dar de a l t a directamente e n Xtrieve, había problemas despQes de anadir 38 registros, comenzaba a r e p e t i r r e g i s t r o s 6 a meter basura e n l o s regi s t r o s . Consul tando el manual , t a l v e z el problema se solucionarla si aumentaba el tamaKo de l a p&gi na definida por Btr 1 eve.

El Maxi m0 tamafio d e PAgina especf f i c a el &xi mo tamafio de cual qui er archivo de Btri eve que vaya a ser accesado. El tamafio d e d e f a u l t que dA Btr i eve es de 51 2 bytes y par a ampl f ar el tamaRo, debe ser un mQltiplo d e 512. Hice todas las ampl i aciones posí bles y de todas maneras si gul6 fa1 1 ando. ProbC cambiar el Mxl m0 tamalYo del Manejador de Registros d e BOK hasta 32K y no r e s u l t b , por l o c u a l , t u v e q u e d i v i d i r el Archivo Fisico e n otros nds pequenos.

Para saber de que manera 6 cud1 seria l a mejor forma d e d i v i d i r el archivo e n cuantos y de que 1 ongi tud, hice una t a b l a d e datos estadí sti cos con los 265 r e a c t i vos que me hablan f aci l i Lado e n el Consejo. Estos datos se encuentran e n l a Tabla 1 C s i g u i e n t e hoja >.

Page 10: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

ESTADISTICAS DE LAS LONGITUDES DE LAS PARTES DEL REACTIVO.

PREGUNTAS : DE I A 73 CARACTERES :

DE 74 A 146 CARACTERES :

DE 147 A 219 CARACTERES :

MAS DE 219 CARACTERES :

RESPUESTAS : DE I A 65 CARACTERES :

DE 66 A 130 CARACTERES :

REF. BIBLIOGRAFICA : DE I A 70 CARACTERES :

DE 71 A 140 CARACTERES :

DE 141 A 210 CARACTERES :

DE 211 A 200 CARACTERES :

54

104

20

22

153

47

89

65

35

I 1

Page 11: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

V i endo el comportami e n t o d e 1 a s m u e s t r a s C 1 os r e a c t í vos S def i n 1 los s i g u i e n t e s a r c h i v o s y l o n g í t u d e s d e r e n g l o n e s :

ARCHIVO

PREGUNTAS

RESPUESTAS

REFERENCI A BI BLI OGRAFI CA

NUMERO DE RENGLONES LONG. DE CADA RENGLON

8

2

S

73

66

70

Y a d e d s , a g r e g u e un nuevo Archivo. REACTIVOS. el c u P 1 , t e n d r P 1 a i nformaci dn general d e todos los demAs a r c h í vos , como d e q u e ti PO es 1 a 1 o n g i t u d q u e t i e n e el e n u n c i a d b d e 1 a pregunta, d e l a r e s p u e s t a , d e l a r e f e r e n c i a b i b l i o g r a f i c a y el nQmero de r e a c t i v o del q u e se t r a t a .

De este a n a l i s i s es de donde se o b t u v o el Segundo Modelo d e E n t i d a d e s y A s o c i a c i o n e s C D I A G W B > y con el cdal , ya no se t u v i e r o n p r o b l e m a s e n los A r c h i v o s F i s i c o s .

6

Page 12: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 13: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

En l a e n t i d a d REACTI VOS, exi sti r i un campo 1 1 amado ESTADO que s e r v i r a p a r a s a b e r si el r e a c t i v o ya f u e 6 n o s e l e c c i o n a d o e n l a e l a b o r a c i 6 n d e l examen. El tipo d e p r e g u n t a , se r e f i e r e a l a l o n g i t u d q u e t i e n e el enunciado d e l a p r e g u n t a , y que puede ser :

C 3 h i c a C un solo r e n g l 6 n R l 3 .

M 3 e d i ana C un solo r e n g l 6 n R2 3 .

L 3 a r g a C dos r e n g l o n e s R 3 y R4 3 .

G 3 rande C c u a t r o r e n g l o n e s RS, R 6 b R7, R8 y R9 3 .

el tipo d e r e s p u e s t a C l o n g i t u d > , p u e d e s e r sol amente de dos tipos :

C 3 hlca C un solo r e n g l o n 3 .

L 3 a r g a C un r e n g l 6 n a s >.

y por Qltimo, el tipo d e r e f e r e n c i a c o n r e s p e c t o a s u tamaPTo, puede ser :

C 2 h i c a C un solo r e n g l 6 n R1 3 .

M 3 e d i a n a C o t r o r e n g l 6 n R2 >. G 2 rande C t r e s r e n g l o n e s mAs R 3 , R4 y R5 3 .

A c o n t i n u a c i 6 n se p r e s e n t a el Mapeo d e l Modelo d e E n t i d a d e s y Asoci a c i o n e s a l Modelo Re1 aci onal del Segundo Model o en 1 a Figura No. l.

7

Page 14: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

MAPEO DEL M O D E L O D E E N T I D A D E S Y A S O C I A C I O N E S A L MODELO R E L A C I O N A L

ENTIDADES :

REACTIYOS ( NUMERQ REACTIVO. NUMERQ TEMA, ESTADO. TIPQ PREB. TIPQ RESP. TIPQ REF

ASOCIACIONES :

PREGUNTAS ( NUMERa REACTIVO. P R E k RENBI. P R E k RENBP, PREa REN63. . . . , P R E E REN69 1

RESPUESTAS l NUMERQ REACTIVO. RESe Ri. RESE R 2 INCOF R i . INCOL R 2 . . . , INCOl R2

REE BIBL106 I NUMERQ REACTIYO, REE Rí. RE€ R2, RE€ R3. RE€ R 4

TEMAS ( NUMERQ TEMA. OESCRIPCION 1

Page 15: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Y a c a s i cuando t e n l a l a mitad d e l sistema, uno de los asesores me s u g i r i 6 que cada pregunta podía estar clasificada d e acuerdo al tipo d e tema del que se habla , por l o que tuve que i mplementar e s t a nueva opci6n dentro del model o de entidades y asociaciones.

E s t e nuevo requerimiento no n e c e s i t o d e una gran modificaci6n del modelo del sistema, solamente se modified el Archivo de REACTIVOS para que t a m b i b v i n i e r a l a i n f o r m a c i 6 n del tipo de tema del que se t r a t a el r e a c t i v o y af3adlr un Archivo &S que es el de TEMAS.

En este Archi vo sol amente i r a l a c l a v e d e l tema y s u d e s c r i p c i h y s e r v i r & como gula al jurado q u e r e a l i z a el exAmen, para saber e n qu& t i p o s d e temas hay gran cantidad d e preguntas y e n cuales no.

Por lo tanto, el altimo y d e f i n i t i v o Modelo de Entidades y Asociaciones qued6 como se muestra e n el DIAGRAMA C.

8

Page 16: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

PRE6UNTAS RESPUESTAS

REACTIVOS

NO DE REACTIVO

BIBLIOGRAFICA

Page 17: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

NORHALl ZAG1 ON.

WWIMEIRA IFOIRMA WOIRMAR C 1NF 3 .

Todas l a s r e 1 a c i ones estan e n Pri mera Forma Normal por que todos sus atributos t ienen dominios simples m es decir m son del ti PO entero caracter cadena 6 boo1 eano.

En l a Figura No. 2 se muestran l a s dependencias funcionales de efte model o.

Todas 1 a s r e l a c i o n e s d e l si stem estan e n Segunda Forma Normal por que todos 1 os a t r i b u t o s no primos C 1 os que no son 11 aves > son totalmente dependientes de sus r e s p e c t i v a s l l a v e s y ya estan e n h i mera For ma Nor mal .

En l a segunda parte de l a Figura No. 2 se encuentran l a s l l a v e s de cada re1 aci6n y se puede observar que todos 1 os atributos que no son 11 aves dependen de una s o l a 11 ave dentro de 1 a r e l a c i 6n.

Todas 1 a s re1 aci ones e s t a n en Ter cera For ma Normal por que no hay dependencias transí ti vas d e a t r i b u t o s no primos con respecto de alguna 11 ave e n ninguna r el a c i 6 n y ya se encuentran e n Primera y Segunda Forma Normal.

Q

Page 18: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

DEPENDENCIAS FUNCIONALES :

N U M E R Q R E A C T I V O ~ NUMERQ TEMA, ESTADO. TIPQ PRES. T I P a RESP, TIPQ REF.

P R E E RENBI, PRER REN62, . . . . P R E a REN69.

RESE R M B I . RESE RM62. . . . INCOL Ri. INCOL R 2 . . . . INCO4 R 2

RE€ Ri, REE. R2, REE. R3. RE€, R4

N U M E R Q T E M A C~~~~~~~~~~~

POR LO TANTO. LAS RELACIONES CON SUS LLAVES SON :

REACTIVOS ( NUMERQ REACTIVO. NUMERQ TEMA, ESTADO. TIPQ PREG. TIPQ RESP. TIPQ REF

PREBUNTAS ( NUMERQ REACTIVO. PREQ RENGI. PREQ REN92. . . . , PRER. RENQ9

RESPUESTAS ( NUMERQ REACTIVO, RESE REN6I. R E S E REN62. INCOL Ri. INCQ AB. . . , INC04 R2 1

RE€ BIBLIOG ( NUMERQ REACTIVO. RE€ Ri. REE. R2, R E E R3. RE€ R4

TEMAS I NUHERQ TEMA. DESCRIPCION 1

F1GURA NU&ERO 2

Page 19: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Par a p o d e r r e p r e s e n t a r 1 a rol u c 1 6 n del pr ob1 ema y 1 as par tes e n que se d i v i d i 6 el mismo, se h i c i e r o n los siguientes Diagrams de Flujo d e Datos. los cu i le s r e p r e s e n t a n l a mayor p a r t e d e l manejo que hace el sistema con todas s u s e n t i d a d e s C DIAGRAMAS D, E, F, G, H, I, J, K y L 3 .

10

Page 20: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

J

U W z W ID

m O I-

a

a n W z n w

Page 21: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

u) O b- 4 n

w n

Page 22: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

I. DIAGRAMA DE FLUJO DE DATOS.

3. PARA EL PROCESO DE ALTAS

F :

Y '

A :

0 :

c : 0 :

R :

S :

1 :

I-" I TEMAS / , F-L-;Z-A "-

VALIDA ". "~

.-

CAPTURA Y VALIDA TEMA

' - RESP CORTA

CAPTURA Y

Y ' VALIDA E E S P , LARGA M : MENSAJE

X : NUMERO DE PREGUNTA SIN VALIZAR

X ' : NUMERO DE PREGUNTA VALTDAUO S

E: EXIT0 VALIDA E. BIBL. CORTA

x ' c . , ' " " I " "_ -

." "l_"

CAPTURA Y .. . .. . .. -.-

FRACASO X ' D : NUMERO DE TEMA VALIDADO

DESCRIPCION DEL TEMA

ENUNCIADO DE LA PREGUNTA

ENUNCIADO DE LA RESPUESTA BTBLIO.

1 REACTIVOS "- "I -

T " VALIDA REF. REF. BIBL. GRA.

M ""--

ENUNCIADO DE LA REFERENCIA BIBLIOGRAFLCA

TIPO DE PREGUNTA

TIPO DE RESPUESTA TIPO DE REFERENCIA BIBLIOGRAFICA

1 I USUARIO 1

Page 23: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

- I. DIAGRAMA DE FLUJO DE DATOS

4. PARA EL PROCESO DE CAMBIOS

" - F

M : MENSAJE X : NUMERO DE PREGUNTA X ' : NUMERO DE PREGUNTA VALIDADO E: EXIT0 F : A : 0 : c : D : I I : R : S : T : A * E ' C '

TEMAS PRE6. LARGA

PREG. GRANDE

h n - Y " "

MODIFICA REACTIVO ____1_1_,

X

X ' E/F

t

1 REACTIVOS FRACASO NUMERO DE TEMA TIPO DE PREGUNTA TIPO DE RESPUESTA TIPO DE REFERENCIA EIELIOGRAFICA DESCRIPCION DEL TEMA ENUNCIADO DE LA PREGUNTA ENUNCIADO DE LA RESPUESTA ENUNCIADO DE LA REFERENCIA : NUEVO NUMERO DE TEMA : NUEVO TIPO DE PREGUNTA

\I REF. GRANDE

: NUEVO TIPO DE RESPUESTA D ' : NUEVO TIPO DE REFERENCIA

Page 24: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

- I. DIABRAMA DE FLUJO DE DATOS

6. PARA EL PROCESO DE BAJAS

M : MENSAJE X : NUMERO DE PREBUNTA X @ : NUMERO DE PREGUNTA VALIDADO E: EXIT0 F : FRACASO A : TIPO DE PRESUNTA B : TIPO DE RESPUESTA C : TIPO DE REFEAENCIA

\ \ I

1 USUARIO

Page 25: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

I. DIABRAMA DE FLUJO DE DATOS.

6. PARA EL PROCESO DE CONSULTAS

I"--"

I TEMAS USUARIO

I "

A X ' R VALIDA

PRESENTA TEMA Y

PREGUNTA . _" "" - . - - L

T X' PRESENTA

X ' D

M : MENSAJE

X : NUMERO DE PREGUNTA SIN VALIDAR

1 X ' : NUMERO DE PREGUNTA VALIDADO PRESENTA U REF. BIBL. 6RA. REFERENCIA

I REACTIVOS E: EXXTO

F : FRACASO A : NUMERO DEL TEMA

B : TIPO DE LA PREGUNTA C : TIPO DE LA RESPUESTA 0 : TIPO DE LA REFERENCIA BIBLIOGRAFICA

R : DESCRIPCION DEL TEMA S : ENUNCIADO DE LA PREGUNTA

T : ENUNCIADO DE LA RESPUESTA

U : ENUNCIADO DE LA REFERENCIA DIAGRAMA r

Page 26: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 27: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

M""

I. DIAGRAMA DE FLUJO DE DATOS

0. PARA EL PROCESO DE LISTADO DE TEMAS

X : NUMERO DE TEMA A : DESCRIPCION DEL TEMA

OPCION LISTA

USUARIO MENSAJE

X A i '1 USUARIO 1

l" TEMAS

Page 28: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

- I. DIAGRAMA DE FLUJO DE DATOS

S. PARA EL PROCESO DE LISTADO DE REACTIVOS

DE REACTIVO PREGUNTA Y TEHA

R E S P U E S T A

t u T I yR8

X : NUMERO DE REACTIVO A : N U W DE TEMA 0 : TIPO DE PREGUNTA C : TIPO DE RESPUESTA D: TIPO DE REF. BIBLIO. M : MENSAJE R : DESCRIPCION DEL fDlA S : ENUNCIADO DE L A PREBUNTA T : ENUNCIADO DE LAS RESPUESTAS U : P(MCIAD0 DE U REF. BIBLIO.

Page 29: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

DI SENO_ FI SI CO.

En el disePTo d e los programas para el sistema, se t r a t 6 d e o p t i m i z a r los d i a g r a m s d e e s t r u c t u r a c o n un a l t o grado d e c o h e s i 6 n y un bajo a c o p l a m i e n t o C c o h e s i 6 n es l a medida de q u 6 t a n r e l a c i o n a d o s e s t a n e n t r e sf los e l e m e n t o s d e procesamiento d e cada m5dul0, y el a c o p l a m i e n t o s i g n i f i c a . l a medida d e cuan r e l a c i o n a d o s e s t a n e t r e sf e l e m e n t o s de procesamiento que forman p a r t e d e d i s t i n t o s m W u l o s 3 .

En el DIAGRAMA M. se muestra l a mayor p a r t e d e d e l Diagrama d e E s t r u c t u r a g e n e r a l d e l Sistema. n o esta seflialado c o n los F l u j o s d e Datos por q u e s o n casi los mismos q u e e n el Di seflio L6gi co de Procesos.

Page 30: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

DIABRAMA D E E S T R U C T U R A

1

Page 31: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

ORGANZZACZON DE LOS ARCHIVOS

Los t i p o s d e A r c h i v o s q u e e x i s t e n e n el Sistema s o n t r e s : De tipo Maestro, Maestro y T r a n s a c c i o n e s . y d e tipo T r a n s a c c i o n e s .

E l A r c h i v o q u e es del T i p o M a e s t r o es el A r c h i v o TEMAS. ES d e t i p o M a e s t r o por que nunca va a quedar vaclo ya que s iempre van a e s t a r los Temas d e l a s p r e g u n t a s .

Los A r c h i v o s q u e s o n d e l Tipo M a e s t r o y T r a n s a c c i o n e s s o n : REACTI VOS, PREGUNTAS. RESPUESTAS y REFERENCI A BI BLI OGRAFI CA. Son d e este, tipo p o r q u e c o n t i e n e todos los datos d e l a s e n t i d a d e s y l a s a s o c i a c i o n e s e n el modelo d e d a t o s .

El A r c h i v o q u e es del T i p o T r a n s a c c i 6 n es un A r c h i v o s e c u e n c i a 1 e n el c u a l se guarda l a h o j a d e hoja d e r e s p u e s t a s m i e n t r a s se el a b o r a el exAmen. Al terminar el examen que estaba r e a l i z a n d o el sistema, este A r c h i v o se limpia.

El A r c h i v o TEMAS t i e n e un modo d e acceso DIRECTO, y a q u e n o n e c e s a r i a m e n t e d e b e n e x i s t i r todos los temas C d e l 1 a l 69 3

E l A r c h i v o q u e s i r v e p a r a l a impresirjn d e l a hoja d e r e s p u e s t a s del examen t i e n e un tipo de acceso SECUENCI AL ya que se i rA i m p r i m i e n d o l i n e a por l i n e a .

Todos los deds A r c h i v o s t i e n e n un t i p o d e acceso INDEXADO por s u l l a v e r e s p e c t i v a C n ~ m e r o del r e a c t i v o 3 .

Dado los problemas que hubo con 1 a c a p a c i d a d d e memori a y l a 1 o n g i t u d d e los r e g i s t r o s f lsicos n o se pudo hacer gran recombí naci6n d e Archí vos s6l o e n l a s Asociaci o n e s y eso por que el Grado d e A s o c i a c í 6 n e n t r e l a s E n t i d a d e s , e r a uno a muchos.

12

Page 32: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

LISTADO DEL SI S T E M

PRO-ALTA.PAS : Altas d e R e a c t i v o s y , e n s u caso. de Temas.

PRO-CM. PAS : Modi ficaci 6 n de I n f o r m a c i 6 n del R e a c t i vo.

PRO-COLI . PAS : C o n s u l t a s y l istados d e R e a c t i v o s . L i s t a d o G e n e r a l C vaciado de reactivos 3 y l i s tado de t e m a s .

PRO-EXAM. PAS : Elaboraci6n de ExAmener. LLama a PRO-INCI.

PRO-INCI . PAS : Hace l a c o l o c a c i 6 n aleatoria de los i n c i s o s e n el e x h e n .

PRO-LECT.PAS : P a n t a l l a s , l e c t u r a y p r e g u n t a s d e l Sistema.

PRO-LIMP. PAS : L i m p i a variables de l Sistema.

PRO-MENU. PAS : Menas del Sistema.

PRO-SINC.PAS : A u x i l i a r para PRO-INCI. Imprime los i n c i s o s .

13

Page 33: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

n:wRo_AL1n,PAs

1 PROCEDURE altas; 2 1 J Realiza o no e l movimiento de Alta en el archivo de Reactivos, # ) 3 WAR 5 i : integer; 7 3 PROCEDURE alta-lee-datos; I C

I

Se encarga de randar a leer los datos para guardarlos en las variables correspondienter para poderlas actualizar en el archivo,

1 E E G Y

l e d 3, 1,!3, 51; IF cod1 = " THEN

ELSE band := true X Hubo opcion de salida en la lectura, 3

BEGIN copia( O, 3) ; rem-keymaber := reac-buf ,nuaero; status := BllIEUE (B+IHDtreac_pos,STt\RT,reac_buf,STPWTlreac_key,ST~HT,O); IF status = O THEN

!¿€GIN qotoxY(?0,24); urite ( BEEP );

urite ('NUHERO DE REACTIUO YA EXSSTENTE EN EL ARCHIVO, ' 1; delar(2500) ;

urite (' '1 qotoxy(20,24);

END ; continua := 'N'; IF (status (> O) THEN WILE { upcase(continua) 0 'S' ) DO

BEGlN liapia-buffsgarte( 1 ); pantallat 1 1; WILE ( upcase(tew1 O 'S' 1 DO

BEGIN qotOxy( 1,101; write 0 REPEAT

UHTIL cad1 O " ; copia(33, 2); tema-key enumber := tema-buf ,nuder; s tat := BTHIEUE !B_FIND,tema_p~,STAHT,tema-buf ,SThRT,tew_key,START,O)t

urite ('Descr, : '1; IF stat = O THEN

lee( 2, 1,13, 7)

qotoxY(25, 7);

BEGIN qOtOxy(34? 7); write (tema-buf +descri); pregunta( 12 1

END

BEGIN ELSE

tema := 'N' ; pregunto( 13 j;

Page 34: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

i9 io 1 1

12 83 i4 i5 )6 ,7 i8 19 'O '1 '2 '3 '4

'6 7 8 9 O 1 '2 3 '4 5 6 7 8 9 O 1 2 3 4 5 6 7 8 9 O i 2 3 4 5 b 7 0 9 O 1 2 3 4 5 5

'C

Page 35: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paqt 3

1

I

t

I

Page 36: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 4

5 6 7 8 9 O 1 2 3 1 5 6 7 0 9 O 1 2 3 4 5 6 7 3 3 3 1 2 3 9 5 6 7 3 ? O 1 2 3 4

5 7 3 9 3 1 2 I #

5 7 3 7 3 1 2

3

3

liwia-buffs; clrscr;

uriteln ('ALTA DE REACTIVOS'); FOR i := 1 TO 80 DO

prlntalla-1; alta-lee-datos;

C Despues de leer todos los datos para un reqitro, se da de alta, 1

IF NOT band THEN

gotoxY(33r 2) ;

urite('-');

IF status = O THEN sique := 'S'

ELSE BEGIN

stdus := BTRIEVE (B_INSERT,reac_pes.START,reac_buf,START,reac_key,START,O); IF status C> O THEN

BEGIN qotoxy(10,20); uriteln ('No se realizo la Alta en HEhC, Status = ',status)

END

BEGIN ELSE

IF stat 0 O THEN BEGIN

stat := BTRIEVE (B_INSERT,tesa_pos.START,terrl_buf ,START,te~_key,STAHT,O); IF stat 0 O THEN

BEGIN gotoxy(10,20); write ('No se pudo dar de alta l a Descripcion del Tena,Stotus = ' , s tat) ; delay(2500)

END END ;

status := BTRIEVE (B_INSERT,precgos,START,prec_buf ,STAhT,prec_key+START,O); IF status 0 O THEN

BEGIN gotoxY(l0,20); uriteln ('No se realizo la Alta en PREC. Status = ',status)

END; CASE reac-buf ,t-preq OF

'HI :

'L' :

BEGIN status := BTRIEUE IB_INSERT,prer_pos,START,prer_buf,START,prer_key,SThRT,O); IF status (> O THEN

BEGIN g0toxY(10,20); uriteln ('No se realizo la Alta en PREH, Status = ',status)

END END I BEGIN

status := BTRIEVE ( B_INSERT,prer_pos,START,prer_buf ,STAkT,prer_ltey,START,O); If status <> O THEN

BEGIN qotor,Y(l0,20); uriteln ('No se redizo l a Alta en PREH, Status = ' ,stntusj)

END ; staius := BTRIE'!E ( E _ I k S E R T , p r e l _ p o s , S T h h T , p r e l _ b u ~ , ~ T ~ ~ ~ l , ~ ~ ~ l - ~ e y , ~ T ~ ~ T . ~ ) ;

Page 37: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

IF

END;

status <> O THEN BE6IN

qotoxy(l0,20); writeln ('No se realizo l a Alta en PREL, Status = ',status)

END

l ' t G 4 BEGIN status := BTRIEUE ( B_INSERT,pfer-postSThRTrprer_buf ISTART,pr~_ke~,"JAFiT,O); IF status 0 O THEN

BEGIN qotoxy(l0,20); writeln ('No se realizo la Alta en PREH, Status = ',status)

END ; status := BTFiIEUE ( B_INSEhTtpre l_pos ,STARf ,p re l_buf tSTA~T ,pre~ -~~y ,S~~~T ,~ ) ; IF status <> O T E N

BEGIN gotoxY(10f20); writeln ('No se realizo l a Alta en PREL, Status = ',status)

END i stutus := BTHIEVE ( B_INSERTfpreggostSThRT,preg_buf.START,p~q-kev,SThRT,O); IF status 0 O THEN

BEGIN qotoxy(l0,20); writeln ('No se realizo la Alta en PREG, Status = ',status)

Wlr END

MI);

status := BTRIEVE IB_INSEHTfrex_pos,STARTlresc-buftSThRTtresc_tey,SThRl,O); IF status 0 O THEN

BEGIN gotoxY(10,20); writeln ('No se realizo l a Alta en RESL Status = ',status)

END; CASE reac-buf t-resp OF

' 1 , L t BEGIN status := BTRIEUE B-INSERT,resl_pos,ST~l,resl_buf tSTART,resl-key,START,O); IF Status <> O THEN

BEGIN qotoxy(1Of20); uriteln ('No se realizo la Alta en RESL, Status = ',status)

END END

END ;

status := BTRIEVE (B-INSERT,refc_pos,START,refc-buf +START,refc-key,START,O); IF status <> O THEN

BEGIN qotoxy~10,20); uriteln ('No 5e realizo la Alta en PEFC, Status = ',status)

END; ChSE reac-buf ,t-rebi OF 'It' : BEGIN

status := BTRIEVE ( B_INSERT,refrgos,SThRT,refr_buf ,SThRT,ref._key,SThRT,O); IF Status (> O THEN

BEGIN qotoxy(10,20); uritein ( 'Ho 5e realizo l!1 Alta m iiEiH, ';tiltus = ',stat!¡;)

.

Page 38: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

EHD END;

'G' : BEGIN status := BTHIEUE ( B_INSERT,refr-pos,SThRT,refr_buf ,START,refrn_key,STAKT,O); IF status O O MEN

~ o ~ o x Y ~ ~ o , ~ o ) ; BEGIX

writeln ('No se reulizo lu Alto en HEFk Status = I rstatus) END;

status := BTHIEUE 4 B-INSEHTlrefg-postSThRT,refg-buf ,SlAHT,refg_key,SThFtT,O); IF status 9 O THEN

BEEIN ~o~oxY(~o,~o); uriteln ('No se realizo la Alta en REFG, St~ltus = ' ,stlItUS)

END END

€ND END;

END C NOT band >

Page 39: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq. 1

I PROCEDURE carb ios ; Z WAR

i t j ; integer;

PROCEDURE actualiza; < 3

Realiza l a actuulizacion en el archivo,

BEGIN

status := BTRIEVE IB_UPDATEtprec_pos,STAHT,prec_b~~f,SThHT,prec_key,SThRTt#); IF status 0 O THEN

N E reuc-buf (t-preg O f

I

writeln ('No se pudo actualizar el registro en PREC, Status = ' ,status);

1 ' . H status := BTRIEUE ~B_IWDATErprer_pos,START,prer-buf ,START,prer_key.STAHT,O); 'C' : BEGIN

status := BTRIEVE ~B_UPDhTErprew_posDSTARTrprer_bufDSTART,prer_key,START,O); status := BTNEVE iB~~~~DATE,prel~posDST~RTrprel~buf,ST~F;Ttprel~key,STARTtO~

END; 'G' : BEGIN

status := BTRIEUE (B_UPDATE,prea_pos,STA~T,prer_buf .SThRT,prer_key,STlhRT,O); status := BTRIEUE (~~~MTEtpre l_pos,START,pre l_buf ,S7~T,pre l~ I t~ ,STARTtD) ; stcltus := PTRIEUE !B_UPDATE,preq_pos,START,preg_buf.START,preg-key,SThRT,O)

END END ;

status := ETRIEVE (B_~DATE,resc_pos,STARTtresc_bufDSTART,resc_key,STAHTt#); IF status O O THEN

IF reac-buf , t-resp 0 " THEN writeln ('No se pudo actualizar e l registro en FtESC, Status = ' ,status);

status := BTRIEVE (B_UPDATE,reslgw.START,r~l_buf tSTIIRT,resl_keycSThHT,O);

status := BTRIEVE (B_OPDATE,refc-pos,STAHT,refc_buf ,ST~RT,refc-key,STAHT,O)i IF status O O THEN

writeln ('No se pudo actualizar el registro en REFC, Status = ' ,status); ChSE reac-buf , t-rebi OF

status := BTHIEUE (B_UPDhTEtrefq_pos,STttRT,refq_buf,STAKT,refq_key,STARTrO) END

END

END; { actualiza, 3

fhOCEDUhE aodi f ica-tema;

Realiza la Hodificacion del temo de 111 pregunta del reactivo, 1 BEGIN

30tO>r ! l ;3 , 7) ;

Page 40: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

C Se proqunta s i el renqlon que se presenta es el que se quiere 1 t modificar, Si l a respuesta es af i rrr t iva , se proceder11 (1 leer 1 C la nueva inforracion para e5e carpa* 1

!

Page 41: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Fag, 4

qotoxy ( 1 , 12) ; write (‘Kodificacion del Noveno Renglon,’); lee(73, 2, 4,221; IF cadl r> ” THEN

copia( 9,73) END

END CASE 14,,*,122+ 1 END C IF es IN s i , 3

END C FOR+ 1

END; { modifica pregunta, 3

PROCEDURE =pit-rodifica; < 3 BEGIN

Hodifica e l enunciado de l a respuesta incorrecta nuaero 1,

encabezado( 3 ); FOR j := 9 TO 10 BO

BEGIH gatoW( 8, J); C H j OF

9 : write (’C’rresc_buf,RI1_R1~‘l’); 10 : write ( ’ I f ,resl_buf ,RIl-R2,’1’)

END; C ChSE 1 prqunta( 2 1; IF es IN si THEN

CihSE j OF 9 ; BEGIN

qotoxy( 1 , lS ) ) write (‘Hodificacion del P r i m Renglon,’); lee(65, 2, ar17); IF cadl <> THEN

~ o p i a ( l 4 ~ 6 5 ) END;

10 : EGIN qotoxyt 1,151; write (‘Kodificacion del Sequndo Renglon,’); lee(65, 2, 8,181; IF cadl 0 ” THEN

copia(1S165) END

END c cnsE 9,lo 1 END < FOR 1

END; { respil rodifica, 1

PROCEDURE respi2-nodifica; c

1 BEGIN

Hodifica el enunciado de la respuesta incorrecta nunera 2,

encabezado( 4 ); FOR J := 3 TO 10 DO

bEGiN r.* ,-,a:.v( 3, , j ) ;

Page 42: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Pag, 5

#SE J OF 9 : write ('C'rr~c_buftR12_Rlt'l');

10 : write ~'C',rnl_buf,RIZ_RZ,'I') EHD; C CASE 3 pregunta( 2 ); IF es IN si THEN

CASE j OF 9 ; BEGIN

qotoxr( 1,15); write ('Hodificacion del Primer Renqlon,'); lee(65, 2, 8,171; IF cadl (> " THEN

copio(17,65) END;

10 : BEGIN gotoxy( 1,151: urite ('Hodificacion del Sequndo Renqlont'); lee(b5, 2, Br18); IF cadl 0 " THEM

copia( 18 , 65) END

END C CASE 9110 1 END C FOR 1

END; C Hodifica respi2, 3

PROCEDURE respi3-modifica; C

3 BEGIN

Hodifica e l enunciado de l a respuesta incorrecta numero 3,

encabezado( 5 1; FOR j := 9 TO 10 DO

BEGIN qotoxy( 8, J); CASE 4 OF

9 : write ( 'C'rr~_buftR13_R1t'3 ' ) ; 10 : write ('I.',resl-buf ,RI3-RZI'1' 1

END; C CASE > pregunta( 2 ); IF es IN si THEN

CASE J OF 9 : BEGIN

gotoxv( lt15); write ('Hodificacion del Primer Renqlon,'); lee(& 2, 8,17); IF cadl 0 " THUI

copia(20,65) END;

10 : BEGIN qotoXy( lr15); urite ('Hodificacion del Segundo Renqlon,'); lee(&, 2, 8,18); IF cadl O " THEN

copia(21,65) END

END C CASE 9710 1 Ek: C FOR >

Page 43: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

END; C Hodifica respi3* 1

t

PROCEDURE respi4-rodifica; c

1 BEGIN

Hodifica el enunciado de l a respuestu incorrecto numero 4,

encubezado( 5 ); FOR J := 9 TO 10 DO

gotow( 8, j)i W E j OF

BEGIN

9 ; write ('C',resc_buf,RI4_Rl,'l'); 10 ; write ('C',resl_bufIRI4_R2,'1')

END; I CASE 1 prequnta( 2 ); IF e5 IN si THEN

CASE j OF 9 : BEGIN

qotoxy( 1115) ; write ('Hodificacion del Primer Renqlon,'); lee(& 2, 8,17); IF cod1 0 " THEN

copia(23,65) END;

10 : BEGIN qotoxY( 1,15); write ('Hodificacion d e l Segundo Renqlonb');

IF cad1 0 " THEN copia(24,65)

1 ~ 1 6 5 , 2, 8,181;

END END C CASE 9910 >

END C FOR 1 END; { Modifica r e q i 4 , 3

PROCEDURE modifica-referencia; c

1 BEGIN

Modifica el enunciado de l a referencia biblioqrafica del rerlctivo+

encabezado( 7 1; FOR J := 9 TO 12 DO

gotow( 5, j); BEGIN

c m J OF 9 : write ('C',refc_buf+REBI_Hl,'l');

10 ; write ('C',refa_buf,R€BI_R2,'1'); 11 ; urite ('C',refq_buf+REBI_R3,'1'); 12 : urite ('[',refq-buf ,REBI-R4,'1')

END; < CASE 1 pregunta( 2 ); IF es IN s i THEM

CASE J OF 9 ; BEGIN

qoto;:./l 1,151;

Page 44: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 7

I

i I

urite ('Hodificacion del Prirer Renqlon,'); lee(70, Zr 5,171; IF cadl O " THEN

copia(26,70) END 'r

10 : BEGIN qotoxy( 1p15) ; write ('nodificacion del Sequndo Henqlon,'); lee(70, 2, &18); IF cadl 0 " THEN

copia(27,70) END;

11 : 2EGIN qotoxy ( l f 1 3 ; write ('nodificacion del Tercer Renglon,'); lee(70, 2 , 5,191; IF cadl 4.) " THEN

~opia(28~70) UD;

12 : BEGIN qotoxv( lr15); urite ('Hodificacion del Cuarto Renqlont'); lee(70, 2, 5f20); IF cadl <> I ' THEN

copia(29,70) END

END C CASE 9 , + + t p 1 2 8 1 END C FOR, >

END; C rodifica referencia, 1

BEGIN C Cambio 3 sique := 'S' ;

i WHILE sigue IN si DO BEGIN

sigue := 'N'; lirpia-buffs; clrscr;

writeln ('HODIFICACION DE REACTIVOS' 1 ; FOR i := 1 TO 80 DO

write('-'); pantalla-1; escribe-datos; IF NOT band THEN

~0tox~t28r 2) ;

BEGIN IF stlltus = O THEN

BEGIN pregunta( 5 ) ;

IF resp IN si THEN BEGIN

pregunto( 3 1;

C Deperidiendo del caso, se rediza el cambio en distintos crlrpos 3 C referentes al reactivo, 1

CASE upcase(caso) OF ' T ' : XGIN TcJdo el Heactivo, 1

Page 45: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

I

I

encrlbezadd 1 j; modifica-\era; rodif ica-prequnta; encabezado( 2 1; FOR j := 10 TO 11 DO

qotoxy( 8 , j); CASE j OF

BEGIN

10 : write ('C',resc_buf,R-h_l,'I'); 11 ; urite ('C',resl-buf A-R-2,f1')

END; c c m 3 pregunta( 2 ); IF es I N si THEN

CASE J OF 10 : BEGIN

gotoxy( 1,151; write ('Hodificacion del Prirer Renglon,');

IF cadl 0 " THEN copia(ll,¿5)

l ~ ( b f t r 2, 8,1711

END ; 11 : BEGIN

qotoxy( 1,151; write ('Hodificacion del Segundo Renglon.') ; lee(65, 2, 8,181; IF cad1 i> " THEN

copia(12,65) END

END C CASE 9r10 3 END; C FOR 3

encabezado( 3 1; FOR j := 10 TO 11 DO

qotoxy( 8, j); CASE j OF

BEGIN

10 : write ( f C',resc-buf .RIl-Rí,'l'); 11 : write ('C'rresl-buf ,RIl-R2,'1')

END; < CASE 3 prequnta( 2 1; IF es IN s i THEN

ChSE j OF 10 : BEGIN

qOtOXy( 1,15); write ('Hodificacion del Prirer Renqlont'); lee(65, 2, 8,17) ; IF cud1 0 " THEN

copia(14,65) END;

11 : BEGIN gOtoXy( 1 15) ; write ('tlodificacion del Segundo Renqlon,');

IF cadl 0 ' ' THEN copia115,65)

l ~ ( 6 5 r 2, 8pl8);

END END C CASE 9910 1

END; { FOR 1 respi2-wdiflcQ;

Page 46: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

I

i

reqi3-sodifica; respi4-wdificrl; aodificrl-referencia

END; C CASE Tt 1 ' I 1 E 1 BEGIN

encabezado( 8 ); modifica-teaa

END; C CASE Et > Ir' ; BEGIN

encabezado( 9 1; aodifictl-pregunta

EHD; C CASE P, 3 1 I t T h t &GIN

enc&ezado( 2 ); FOR j := 1 TO 10 DO

BEGIN qotOxy( 81 J); CASE ,j OF i

9 ; write ('C',resc_buftR-R_lr'l'); 10 ; write ( ' t ' ,resl-bllf,R_R-2,'1')

END; C CASE i pregunta( 2 ); IF es IN si THEN

c m j OF 9 : BEGIN

gotoxy( 1,15) : write ('Nodificacion del Prirer Renqlon.'); lee(65, 2r 8,171; If cad1 0 " THEN

copia(ll,65) END;

10 : BEGIN qotoxy( 1 ~ 1 5 ) ; write ('Hodificacion del Segundo Renglon+');

IF cad1 0 '' THEN copia(i2,65)

le (65 , 2, 8918);

END END C ChSE 9 4 >

END C FOR 3 END; CASE R, 1

'I' : BEGIN prequntd 4 1; CASE numb OF

' I + O t BEGIN respil-aodifica; reSpi2-bOdifiCQ; respi3-rodifica; respi4-rodifica

END; i CASE O (Todo), 1 1 1 1 1 t BEGIN

respil-rodifica END; C CASE 1, 1

I / * 2 e BEGIN respi2-rodifica

END; C CASE 2, >

xspl3-sadifica '3' : BEGIN

Page 47: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq+ 10

END: c c m 3+ 1 1 1 . 4 BEGIN

respi4-nodifica END CASE 4 , 1

END { CASE 1 END; C CASE I * 3

I I * b t BEGIN modifica-referenciu

END C CASE Et 1 END; C CASE 3 actualiza

END C IF si THEN 3 E%; C IF status = O 3

pregw+.al 6 ) €NU C IF NOT band THEH 1

END C WILE t + t DO 3 C carbio* 1

Page 48: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq* 1 1

I PROCEDURE reac-pant; , c I Escribe o no la inforracion del reactivo correspondiente en pantalla* 0 3 5 UAR i si9 : char; 7 BEGIN

Page 49: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

h:\PRO-COLI tPAS Fag, 2

write (red-buf ,RI3-R3 END

gotox~(26~12) ; urite ('Respuesta Incorrecta Not 4, ' ) ; qotoxy( 5,141; write Iresc-buftR14-R1);

. IF NOT vacio( 5 1 THEN BEGIN

gotoXy( 5,151; write (red-buf ,R14-k2)

END; gotuxy(27,171; urite ('Referencia Biblioqrafica.') 1 gotoxy( 5,191; urite (refc-buf,REBI-Rl); IF reac-buftT-hEBI = 'H' THEN

BEGIN gotoxyI 5,201; write (refla-buf ,WbI-ftZ)

IF reac-buf,T-REBI = 'G' THEN END;

BEGIN gotow( 5,201; urite (refapuf ,REBI_k2) qotoxv( 5,211; write (refg-buf ,REBI-R3); IF NOT vario( 11 1 THEN

BEGIN gotoxy( 5122); urite Irefq-buf ,XBI-K41

END END

END; C reac pant, >

YROCEnURE reac-iapr( tipo : integer 1; x 3 BEGIN

' Escribe o no l a inforwrion del reactivo correspondiente en iapreSora+

CASE t i p o OF 1 : BEGIN

writeln (1st): writeln Ilst,' writeln (lst,' writeln (1st)

END ; 2 : BEGIH

writeln (1st ) ; writeln ( l s t , ' writeln ( l s t , ' writeln (1st)

END END; CASE > writeln (lst,'NUHERO DE REhCTIVO : ' ,relx-buf ,NUHERO); uriteln(lst1; write (lst,'NUKKO DE TEM : '1; write (lst,tesa-buf ,nurtea); write (Ist, ' DESCR, ; '); writeln (lst,tera-buf,descri); uriteln(lst1; ur i te ln (lstr'ENUNCIADO DE LA FWGUNTh'); uriteln(1st); writeln (lst , ' ' tprec-buf ,P-R-l) ; IF reclc-buf,T-PREG = 'H' THEN

IF retlc-buf,T-PREG = 'C' ThiN uriteln Ilst,' ' ,prer_buf .P-R-?) 3

CONSULTA DE REACTIVOS' 1 ; '1;

"""" " """"-

LISTADO DE REACTIVOS' 1 ; """_ " """"_

Page 50: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 3

BEGIN uriteln (lst,’ ’ ,prer-buf ,P-R-2); writeln ( ls t , ’ ’ ,prel-buf ,P-R-3) ; IF NOT vacio( 6 1 THEN

uriteln ( l s t , ’ ’ ,prel-buf ,P-R-4) END ;

BEGIN IF rerlc-buf,T-PF(EG = ’G’ THEN

writeln ( l s t ? ’ ’ ,prer-buf +P-H-2) ; writeln (lst,’ ’ ,prel-but”+P_R-S); IF NOT vacio( 6 1 THEN

writeln ( l s t , ‘ ’ rpreg-til! ,P-R-Si ; E ZOT vacio! 7 1 THEN

IF NOT vacio( 8 1 THEN

IF NOT vQcio( 9 ) THEN

IF NOT wcio( 10 ) THEN

writeln ( l s t , ’ ‘ ,prel-buf ,P-R-4);

writeln ( l s t , ’ ’ ppreg-buf 1P-R-6);

writeln (lst,’ ’ ,preg-buf , P-R-7) ;

writeln (lst,’ ’ ,preg-buf I P-R-8)

writeln ’ ?preq-buf ,P-R-9) END;

uriteln(1st); witeln (lst,’EHUNCIhDO DE LA RESPUESTA CORRECTA,’); uritelrdlst); writeln ( M , ’ ’ , rex-buf ,r-r-l) ; IF NOT vaciof 1 1 THEN

writeln (1st); uriteln Ilst,’F,ESPUESTTA INCORRECTA No, 1,’); writeln(1st); uriteln ( M , ’ ’,resc-buf ,RIl-Rl) I IF NOT vacio( 2 ) THEN

writeln (1st); vriteln (lst,’HESPUESTA INCORRECTA No, 2,‘); uriteln(lst); writeln ( ls t , ’ ’ , resc-buf ,RI2-R1) ; IF NOT vacio( 3 1 THEN

uriteln(lst1; uriteln (lst,’kESPUESTh INCORRECTA No, 3,’); writeln(1st); uriteln ( ls t , ’ ‘,resc-buf ,RI3-R1) ; IF NOT vacio( 4 1 THEN

writeln(lst1; uriteln (lst,’RESPUESTA INCORRECTA No, 4, ’); uriteln(lst1; uriteln ( M , ’ ’,resc-buf ,hl4-K1); IF NOT vacid 5 1 THEN

uriteln(lst1; uriteln (lst,’REFERENCIh BIBLIOGRMICA,’); uriteln(lst1; writeln (lst,’ ‘ ,refc_buf ,REBl-RI); IF reac-buf,T-REBI = ‘N’ THEN .

IF reqc-buf,T-REBI = ‘G‘ THEN

writeln ( ls t , ’ ’ ,resl-b?lf ,r-r-2);

writeln ( l s t , ’ ‘,resl-buf ,RIl-R2);

writeln ( l s t , ’ ’ ,resl-buf ,RIZ-R2 );

writeln ( M , ’ ‘ I resl-buf ,RIJ-RZ) ;

writeln ( l s t , ’ ’rresl-buf,R14-R2);

writeln (lst,’ ‘,refr-buf.REBI-R2);

K G I N writeln ( l s t , ’ ’,refr-buf ,REBI-H2); uriteln ( l s t , ’ ’?refq-buf,REBI-R3); IF POT vacio( 11 ) THEN

;rtit?ln i l s l , ’ ‘ I rdq-buf ,hEbI-R4)

Page 51: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 3

BEGIN writeln ( lstr ‘ ’ ,prer-buf ,P-R-2) ; writeln (lst,’ ’ ,prel-buf 2-R-3) ; IF NOT vacio( 6 1 THEN

uriteln ( l s t , ’ ’ ,prel-buf ,P-R-4) END ;

IF reac-buf,T-PREG = ’G’ THEN BEGIN

writeln (lst , ‘ ’ ?prer-buf +P-R-2) writeln ( l s t , ’ ’ ,prel-buf,P-R-3); IF NOT vacid 6 ) THEN

uriteln fist,' ’ ,preq-buf,P_R-Si; IF HOT vacio! 7 1 T H E 4

IF HOT vacio( 8 1 THEN

IF HOT vacid 9 ) THEN

IF NOT vacid 10 ) THEN

writeln ( lst , ’ ’ ,prel-buf ,P-R-4);

writeln (15t, ’ ,preg-buf ,Y-H-6);

uriteln (lst,‘ ’ ,preq-buf P-R-7) ;

writeln (lst , ‘ ’ ,prq-buf ,F-R-8);

writeln ( lst , ‘ ’ ,preq-buf ,P-R-9) END ;

uriteln(1st); clriteln (lst,’ENUNCIADO DE LA RESPUESTA CORRECTA,’); writeln(1st); writeln ( l s t , ’ ‘ ,resc-buf ,r-r-l); IF NOT vacid 1 1 THEN

uriteln (1st ) ; writeln (lst,’HESPUESTA INCORRECTA No, 1,’); writeln(1st); writeln ( l s t , ’ ‘,resc-buf ,RIl-Ri); IF NOT vacid 2 1 THEN

uriteln (1st); writeln (lst,’FtESPUESTA INCORRECTA No, 2 1 ’ ) ; uriteln(1st); writeln ( l s t , ’ ‘,re.sc_buf ,RI’L_Rl); IF NOT vacio( 3 1 THEN

uriteln(lst1; uriteln (lstr’RESPUESTA INCORRECTA No, 3 . ’ ) ; writeln(1st); writeln ( l s t , ’ ‘,resc-buf ,RI3-R1) ; IF NOT vacio( 4 1 THEN

writeln(lst1; uriteln (lst,’HESPUESTh INCORRECTA No, 4 , ’ ) ; uriteln(1st); writeln ( l s t , ’ ’,resc-buf ,hI4-H1); IF NOT vacid 5 1 THEN

uritelntlst); writeln (lst,’REFERENCIA BIBLIOGRAFICA,’); uriteln(lst1; writeln ( l s t I ’ ‘,refc_buf,REBI-Rl); IF reac-b?tf,T-REbI = ’H’ THEN

IF reac-buf,T-REBI = ‘G’ THEN

writeln ( l s t , ’ ’ ,resl-buf ,r-r-2);

writeln ( l s t , ’ ’ , resl-buf ,RIl-R2) ;

writeln ( l s t , ’ ’ ,resl-buf ,RI2-R2 1;

writeln (1st” ’Iresl-buf,813-R2);

writeln ( l s t , ’ ’,resl-buf ,RI4-R2);

writeln ( l s t r ’ ’ rrefr-buf ,R€BI-R2);

KGIN writeln ( l s t , ‘ ’ ,refr-buf ,REBI-H?) ; uriteln ( l s t , ’ ‘,refp-buf,REBI-R3); IF bOT v a c i d 11 1 THEN

;r*lteln (l;t,’ ‘ I wig-buf +HEBI-R4)

Page 52: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

5 END; 6 qOtoxy(20~15); 7 write (' 8 writeln(lst,HOJA 9 END; C reac irpr, O 1 2 PFQCEDURE consultas 3 <

'1 3

* ',

4 Consulta del Reactivo que se l e pida, i > 5 VttR 7 s i 9 : char; 3 i : integer; 7 BEGIN

sigue := 'S';

WHILE sigue I N si DO BEGIN

sigue := 'N'; lirpia-buffs; clrscr ; gotoxy(Z8, 2); writeln ('CONSULTA BE HEACTIVOS' 1 ; FOR i := 1 TO 80 DO

write('-'); pantalla-1; lee( 3, lr18, 5); IF cad1 <> " THEN

copia( 0,3 1; reac_key+nurber := reac-buf,nurero; status := BTRIEVE (B-FInD,reac_pos,START,reac_buf ,SThRT,reac_key,STW(T,O); IF status <> 0 THEN

qotoxy(30,24); write ( BEEP 1 ; write('N0 EXISTE LA PREGUNTA DADA, ' ) ; delav(25001;

write(' I )

BEGIN

BEGIN

9Obxy(30p24);

END

BEGIN ELSE

llaves; pregunta( 15 ); IF upcase( d i s p 1 = 'P' THEN

reac -pal\ t ELSE

BEG I N write ( BEEP 1; qotoxy(20,15); write ('Presiine < L > cuando la Impresora este l ista, ' ) ;

HEPEAT

UNTIL upcase(si9) = ' L / ; rt.ac"impr( 1 )

sig := ';

read(KBD,sig)

iitu

. _" ""

Page 53: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 5

3 END; C status = O 3 4 pregunta( 14 1 5 END C cad1 (3 " 3 6 END 7 END; I consultas, 3 8 S9 O PROCEDURE list-teras: l { 2 Listado de los teras de los rerlctivos que existen actualrente en la 3 base de Datos+ 4 3 5 WAR 6 crctr : char; 7 i r 8 PaxI 9 code, O rousx : integer; 1 BEGIN

limpia-buffs; rousx := O ; clrscr;

uriteln ('LISTADO DE TEHAS'); FOR i ;= 1 TO 80 DO

urite('-'); qotoxy(l3rls); write 0 Verifique que la hpresora este listal '1; gotoxy(l3,20); write ('Opriw <c) pitra continuar+ Cualquier otra para regresar,'); crctr := ' '; read(KbD,crctr); IF upcaselcrctr) = 'C' THEN

qotoxy(30, 2);

BEGIN gotoxy( &924); uriteO0priaa <Ctrl-S) pl3rTJ detener e l listado, i.Ctrl-IU para continuar,'); status := ETRIEUE( 13,te~gos,START~te~_buf~SThRT,tera_ke~~STERT~O)~ IF status 0 O THEN

m a x := trra-buf +NUHTEH; status := BTRIEVEt 12,teaa_pw~STAHTttera_buf+ST~RT,te~_kev~SThHTrO); IF status O O THEN

uriteln (1st); writeln (1st); uriteln (kt,' LISTADO DE TODOS LOS TEMS EXISTENTES EN EL hkCHIVO DE TE¡"'); writeln (1st) i rowsx := 4; FOR i ; = l TO mox DO

BEGIN

write ('No se pudo obtener el Hayor Indice de los Tenas,Status=' ,status);

write ('No se pudo obtener e l Henor Indice de los Tews+Staks=',status);

tera-key,NUHbER := tera-buf,NUHTEH; IF rowsx >= LIH-HOJA THEN

BEGIN write (lstrH03h); rowsx := O

END; rousx := rousx t 2; writeln !l:t,!rk~~_buS.~U~TE~,' ',tera_h~~f,~~ESC~I);

Page 54: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

'1 writeln (1st); ,2 status := BTHIEVE ( bttema-pos,STAFrT,tew_buf ,STARTttelRa-k~ytSTAHT,O); ?3 IF status 0 O THEN '4 write ('No se pudo encontrar el siguiente temat' 1 '5 END; '6 write(lsttHOJA) '7 END '8 END; C l i s t terns, 1 '9 !O 11 PROCEDURE list-total; ,2 c 13 Vaciado de toda la inforaacian de l a hse de Datos, 14 1 85 VAR 6 crctr : char; 7 i t 8 maxt 9 codet O rousx : integer; 1 BEGIN 2 lispia-buffs; 3 rowsx := o; 4 clrscri 5 qotoxy(24t 2); 6 uriteln ('LISTADO DE TODOS LOS REACTIUOS'); 7 FOR i := 1 TO 80 DO B write( ' -' 1 ; P qotoxy~l3,15); O write ( ' Verifique que la Ispresora este l i s ta , '1; 1 qotaxy(l3t20); 2 write ('@rim <C> para continuar. Cualquier otra para regresar,'); 3 crctr := ' '; 4 read(KBD,crrtr); 5 IF upcasekrctr) = 'C' THEN 6 BEGIN 7 qotoxy~l3t2O); 3 write ( * ' 1; t qotoxv( 8924); 3 write('0priw <Ctrl-S> para detener e l listadot (Ctrl-Q> para continuar,'); 1 stotus := BTRIEUE( 13treac_postSThRT,reac_buftSTPlRTtreac-keytSTARTtO);

3 write ('No se pudo abtener e l tlayor Indice de REhCtStatus=',status); \ sw := reac-buf ,NUHERO; 5 status := BTRIEV€( 12,reac_p05,"JTART,reac_buf ,SThRT,reac-key,SThRTtO)',

7 write ('No se pudo obtener e l Henor Indice de REACtStatus=',status);

2 IF status O O THEN

i IF status <> O THEN

1 FOR i :=1 TO mx DO ? BEGIN 1 lirpio-buffsqarte( 2 1; 1 lispia-buffs-parte( 3 1; 2 lirpia-buffs_parte( 4 );

I llaves; 1 reac-inpr( 2 );

3 IF status 0 O THEN

I END

5 status := BTRIEWE ( 6,re~c-pos,ST~HTtreac_buf,SThRTtr~c-key,ST~RTt0)~

? urite ('No 5e pudo acontrrlr el siquiente reactivo,')

. . ""

Page 55: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\PRO-COLI ,PAS

7 EHD 3 END; C list totalt 3

Pegt 7

Page 56: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

PROCEWRE lirpia-variables) c

Lirpia las variables mas necesarias en e l Exasenes

> BEGIN

strl := ‘ ’; azar := O ; nua-ho.ja := O; cont-preg := 1; cont-reng := O; cont-exas := O

END; C limpia variables, 3

A:\PRO-EXflH,PhS

proceso de elaboracion de

PROCEDURE precauciones; c

1 VAR

BEGIN

Handa vensajes de Precaucion para preparar los Dispositivos necesarios+

car : char; C Guwda la respuesta del usuario, 1

liapia;

Page 57: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Pug, 2

write(l~t~'0123456789') 1 writeln; FOR x:=l TO 63 DO

writeln(lst,x) END; C prueba irpresion, 1

PROCEDURE presentacion; C

Caratula de cada exasen, 3 VAR

BEGIN i : integer;

write(lst,HOJA); nur-haia := O ; FOR i:=l TO 8 DO

writelnllst); writeln(lstr' FOR i:=l TO 11 DO

writeln(lst,' writeln(lst,' FOR i:=l TO 3 DO

writeln(1st); writeln(lst,' uriteln(lst1; writeln(lst,' FOR i:=l TO 3 DO

writeln(lst1; writeln(lst,' writeln(1st); writeln(lst,' writeln(1st); writeln(lst,' writeln(lst1; writeln(lstr' writeln(1st); writeln(lst,' writeln(1st); writeln(lst,' uriteln(1st); uriteln(lst,' urite(lstrHOJA)

uriteln(1st);

END; C presentucion, 3

EXAXEN DE CERTIFICACION DEL COMSEJO NACIONAL DE NEUHOLOGIA');

JURADO DE CERTIFlCACION :' 1; """""-""""

Presidente del Jurado :' 1 ;

PROCEDURE escribegrequnta; c

3 BEGIN

Escribe el enunciado de la Pregunta,

verif ica-renglon; uriteln(lst,cont_preq:3,'. 'rprec-buf.p-r-l); CASE reac-buf , t-preq OF

'M' : BEGIN prer-Key,nurber := ;~Q?US := ETRIEiIE(

HECTOR UILLARREK UELARDE' 1 ;

LORENZO PEREZ FERNANDEZ' 1 ;

FERNANDO PRIETO' 1 ;

JULIO snmovw 1;

A W E S CRUZ CH4VEZ' 1 i

JWIN (r. GARCIA URIEE');

LUG0 EDXUNDO PEREZ' ) ;

Page 58: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\FRO-EXAHtPhS Paq, 3

IF status O O THEN

verif ica-renqlon; writeln(lst,’ ’ ,prem-buf (p-r-2)

uriteONo se encontro rwc, en FREH,’);

END; PEGIN

prer-key,nurber := reac-buf macro; status := BTHIEVE( E-FIND,prer_postSTART,prela_buf ,START,prer-kev,STnRT,O); IF stlltlls <> O THEN

verifica-renqlon; writelnIlst,’ ’ ,prer-buf ,p-r-2); prel-key ,nueber := reac-buf ,nuRero; status := BTRIEIJE( B_FINDrp~el_pos,STAKT,~rel_buf,STAfiT,prel~key,ST4FtT,C)!; IF status (> O THEN

verifica-renqlon; writeldlst, ‘ ’ ,prel-buf,p-r-3); IF HOT vacio( 6 1 THEN

verifica-renqlon; uriteln(lst,’ ‘ ,prel-buf +p-r-4)

write(’Ho se encontro reace en PREH,’);

write(’No se encontro react en PREL,’);

BEGIN

END END; BEGIN

prer-keytnurber := reac-buf ,nurePo; status := BTRIEVE( B_FINDrpr~m_pos,SThRT,pres~buf,STMlT,prer~key,START,O); IF status (> O THEN

verifica-renqlon; writeln(lst,’ ’ qrer-buf ,p-r-2); prel-key,number := reac-buf ,nurerot rtatlls := BTFiIEWE( B_FIND,prel_postSTAhT,prel~uf,ST~Trprel-key,START,O); IF status <> O THEN

verificn-renqlon; writeln(lstr’ ‘ ,prel-buftp-r-3); IF NOT vacio( 6 1 THEN

verif ica-renqlon;

urite( ‘h se encontro reQc, en PREH,’);

uritel’No se encontro reac, en PREL,’);

BE6IN

IF

IF

writeln(lst,’ ’ rprel-buf ,p-r-4) END ;

preq-kev,nuaber := retx-buf,numero; status := BTRIEVEI B-FIND,prnq-postST4RT,preq-buf ,START,preq_key,STAhT,O); IF status 0 O THEN

verif ica-renqlon; uriteln(lstI’ ’ ,preq-buf tp-r-5);

write(’No se encontro reac, en PHEG,’);

NOT vacio( 7 1 THEN

Page 59: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A :\PRO-EXAR 4 PAS Paq, 4

j IF i

1 1 1 IF

! I 1 I EN ti 1 END; C CASE 3 ' cont-renq := cont-renq t 1; i writeln(lst1 END; C escribe prequnta, 1

r

I

: PROCEDME prepara-trmporali c

HOT vacid 9 ) THEN PEGIN

verif ica-renqlon; uriteln(lst,' ' tpreq-but ,p-r-8)

END i NOT vacio( 10 1 THEN BEGIN

verif ica-renqlon ; uriteln(1str' ' ,preq-buf ,p-r-9) M

Prepara un Archivo temporal en donde se guardan lus respuestas correctas del Emren,

b3 BE6IN

~ssign(Archlerp,'b:RESP,EXh'); Hewrite(ArchTerp) I Crea o borra l o que tenia e l Archivo Terporal,)

END; C prepara temporal, 3

PROCEDURE escribe-respuestus; c

Elige los llaves de los Archivos Y 1 1 ~ ~ a incisos para escribir las respuesttls sorteadas ,

3 BEGIN

IF reuc-buf ,t-resp = 'L' THEN BEGIN

resl-keymmber := reac-buf +numero; status := BTRIEVE( B-FIND,reslgos.START,resl-buftSTN1T,resl-key1ST19RT,O)i IF status O O THEN

urite ('No se encontro RE%,') END i

incisos END; C escribe respuestas, 3

PROCEDURE imprime-respi c

Imprime el Archivo Temporal donde se encuentran los incisos de Respuesta Correcta de cada exmen junto con la Biblioqrllfio de calda Respuesta.

1 VAR

buff-lect : stringt 80 1; renq-resp : inteqer;

PROCEDURE cabeza-respi c

> Encl~bezado de coda hoja

Page 60: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 5

33 34 35 36 37 38

reng-resp := O ; cabeza-resp ; resetlArchTemp); WILE NOT EOFMrchTerp) DO

BEGIN readln(hrchTerplbuff- l~ct); writeln!lst,buff- lect); renq-resp := renq-resp t. I F reog-resp >.= LIH-HOJA

write(lst,HOJlt); cabeza-wsp

BEGIN

END END

END; C i r p r i w resp. 1

1; THEN

PROCEDURE todos-falsos; c

Procediriento que regresa los estados de todos los react ivos 11 fa lso? es decir, que no se han elegido para e l exanent

1 VAR it

4,

6 code : inteqer; 7 6ECjIN 8 9 o 1 2 3 4 5 b 7 3 9 3 1 2 3

status := BTRIEK( 13,reac_pwtSThRTrreac_buf bSTART,reac_Ke~tSThRTtO 1 'r IF stdm O O THEN

ow := reac-buftNIHERO; s tatus := BTRIEVE( 12,reac-postSTARTr rmc-buf ,SThRTrreac_KeytSTART,O 1;

wri te(% se pudo obtener e l myor ind ice en todos falsos,Stotus :',status);

IF stl l tus 0 O THEN write('No se pudo obtener e l aenor ind ice en todos falsos+Status :'?status);

BEGIN FOR i:=l TO #ax DO

reac-keY,number := reac-buf ,nuI)ero; reuc-buf,edo := false; status := BTRIEVE (B_UPDnTE?rerlc_pus,SThHT,reac_buf ,SThRT,rwc_kevtSTARTIO); SF status O O THEN

status := BTRIEVE ( 61reac_pos,STAKT?reac_buf,START,reac_key(STARTrO) urite('No se pudo poner todos falso.');

E HD 4 END; C todos falsos. 1 3

6 7 PROCEDURE l irpia-renglones; 3 C 7 L i r p i a los rm9lones secundarios en cam de que se hallan l lenado con 1 anterioridad.

Page 61: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq* b

9 O 1 2 3 4

6 7 3 9 3 1 2 3 4 5 5 7 3 3 3 1 2 3 4 3

5

3 ? 1

2 3 1

j

3

c J

I

1

7

limpia-variables; clrscr;

write(‘EUIW1RACION DE EXAKNES’);

FOR i;=l TO 80 DO write(’-’);

pregunta( 11 1; IF cad1 <> ” THEN

gotoxy(28r 2);

gotoxy( 1, 3);

3EGIN precauciones; correcto := ‘N’; UHILE (upcasekorrecto) IN no) DO

BEGIN prueba-iryresion;

urite(’En la linea horizontal debio salir 8 veces l a cadena 0123456789 Y en’); qotoxy( 6i 10) ; urite(’1a linw vertical terminar con 63 ( Todo centrado dentro de l a Hoja I * ’ ) ; prgunta( 10 ); IF upcasekorrectob’N‘ 1 THEN

gOtoXy( 6 , 8) ;

BEGIN gOtOXy ( 1 1 14) ; write(‘ Trate de colocar correctarente e l papel y presione < L > cuundo este l i s t o + ‘ ) ; car := ’; REPEAT

UNTIL (upcase(car)=’L’);

uriteln

read( KBDmr

gOtOXY( 1124) ;

MD END;

l irpia;

urite(’E1Qborando Exomenes + * PC Tt7hEAJhNND08‘); FOR cont-exar := 1 TO total W

qDtOXy (21 t 10) ;

BEGIN nur-hoja := O ; preparo-terporal; q 2 t s ~ ~ ( ? 1 , 1 4 ) ;

Page 62: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

\9 io 51 52 33 54 ;S ib i3

i9 ;o

;a

1

9 l i

1-

13 44 5 .6 3 t8 '9 O 1 2 3 4 5 b 3

9 o 1 2 3 4 5 6 7

9 3 1 2 3 4 5 b 7 3 ? O 1 2 3 4 i 5

a

a

A:\PRO-EXA#*PAS Paq. 7 $85979

write('Kea1izando e l exasen No. : ',cont_exar:3,' de ',total:3,'.');

urite('Para detener un romento e l proceso : <Ctrl-S>+ Continuar ; (Ctr1-D.'); lirpia-buffs; presentacion; ctlb eza ; cont-preg := 1; con?-reng := O; reoc-Key+nusber := 1; status := BTKIEVE (13,reac_pos~START,reac-buf~STARTrreac-key,STARTrO); IF status i> O THEN

w x l := rex-buf ,NUHERO; !dHILE cont-preg (= F'FiEGxEXh DO

gotoxy( 5122);

write('#o r e pudo encontrar e l indice LQS grande,');

BEGIN verifica-renqlont bundera := false; reac-buf ,HUHERO := 1; reac-key,NUHBER := 1; WHILE HOT bandera DO

BEGIN gotoxy(18,18); urite('Euscando pregunta + . '1 ; bandera := false; azar := randon( aaxl 1; IF azar = O THEN

azar := naxl; reac-buf ,NUHERO := azar; reac-key.NUHEER := reac-buf ,NUHERO; status := BTRIEUE~B_FINU,reac~p~.STARTIreac~b?tftSTART,reac~keytSTART,O); IF status00 THEN

IF NOT reac-buf,edo THEN write('No 5e pudo encontrar e l Indice ',reac_key+NUHBER,' en REAC,Status=',stotus)t

PEGIN prec-kev.NUHBEK := reac-buf ,NUHERO; resc-key,NUHbER := reac-buf,NUtlERO; refc-kev.NUHBER := reoc-buf.NU4ERO; status := ETRIEUE( B_FIHD,prec_poslSThRT,prec_buf +START,prec-key.START,O); IF status00 THEN

status := BTRIEUE( B_FIND,resc-pos.SThRT, resc_buf,START,resc_key,SThRT,O) ; IF stotus00 THEN

status := PTRIEUE( B_FINR,refc-posISTART,refc_buf ,START,refc_key,START,O);

urite('No se encontro la llave en PREC, Status =',status);

write('No se encontro la llave en RESC. Status =',status);

IF StatUS(?o THEN urite('No se encontro la l lave en REFC. Status =',status);

escribe-preg~mta; liwpia-renglones; escribe-respuestus; cont-renq := cont-reny t 1; witeln (1st 1 ; reac-buf .edo := true; status := BTRIEUE( E_UPDATE,reac-pos,SThRT,reac_buf,STARiT,reclc_tey,"JThkT,O); IF status O O THEN

bandera := true urite('No se pudo actualizar e l estado,Status :' ,sttltus);

END END; E 4lHILE 1

Page 63: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 64: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 65: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

59 60 61 62 63 64 65 66 67 6R 69 70 71 72 73 74 7s 76 77 78 79 80 81 82 83 84 85 06 87 88 89 90 91 92 93 94 95 96 97 98 99

1M 191 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Page 66: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 1% Ir,? 160 161 162 163 lb4 165 166 167 168 169 170 171 172 173 174

Page 67: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

175 176 177 176 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232

Page 68: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 25 4 255 256 257 258 259 260 26 1 262 263 264 265 266 267 268 269 270 27 1 272 273 274 275 276 277 276 279 280 281 282 283 284 285 286 287 288 289 290

Page 69: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

29 1 292 293 294 295 2P4 297 270 299 300 301 302 303 304 305 306 307 30& 309 310 31 1 312 313 314 31s 316 317 310 319 320 321 322 323 324 325 326 327 328 329 330 331 332 33z 334 335 336 337 336 339 340 341 342 343 344 345 346 347 340

Page 70: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Pug, 7

349 rc( 'e ' 1 350 EHII C a ) I1 t ) I 3 P c ) I4 9 d) I? e ) RC, 3 3 3 END C CASE azor 2 > 352 END C a) 11 b ) I 3 c ) 14, 1 353 ENb C CASE azar 3 3 354 END; C 0 ) I1 b) 13, 3 355 3 ; BEGIN 356 i 4 ( 'b' 1; 357 azar := randor( 3 1; 358 CASE azar OF 359 O : BEGIN 360 rc< 'c' 1; 361 QZor := randoe( 2 1 ; 362 CASE azar OF 363 0 : 6EGIN 364 i2( 'd' 1; 365 i 3 ( 'e' 1 366 EN¡; C a) I1 I b) I 4 c) RC dl I2 e) 13. 3 367 1 : BEGIN 368 i3( 'd' 1; 369 i 2 ( 'e' 1 370 EN11 C a) 11 P b) I 4 c ) RC dl I3 e) 12, 3 37 1 END C CASE azor 2 > 372 END; C a) I1 t1 I 4 c) RC, 3 31 3 1 : BEHN 374 i 2 ( 'c' 1; 375 cInr := randoe( 2 ); 37 6 CASE azar OF 377 O ; BEGIN 378 rc( 'd' ); 379 i 3 ( 'e' 1 380 END; C a) I1 bf I 4 c ) I 2 d ) RC e) I3 , 1 381 1 : BEGIN 382 i3( 'd' 1; 383 rc( 'e' 1 384 EN11 C a ) 11 b) I 4 c) 12 d i I3 e) HC, 3 385 END C CASE azar 2 3 386 END; C a) I1 b) I 4 c) 12, 3 387 2 : BEGIN 388 i 3 ( 'c ' 1: 389 QzQr := randod 2 1; 390 CASE azar OF 39 1 O BEGIN 392 rc( 'd' 1; 393 i 2 ( 'e' 1 394 END; < a) I1 b) I 4 c ) 13 d) RC e ) 12, 3 395 1 ! BEGIN 396 i 2 ( 'd' 1; 397 rc( 'e' 1 39 8 ENII C a) 11 P b) I 4 c ) I 3 d) 12 e) RC, 3 399 END C CASE azar 2 3 400 END C a) 11 b ) I 4 I c) 13, 3 401 END C CASE a z w 3 3 402 ENU C a) I1 b) 14, 3 403 END C C A E azar 4 3 404 END; C a) Incorrecta 1, 3 405 2 : BEGIN 40 6 i2( 'u' 1;

Page 71: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

407 408 409 410 41 1 412 413 414 415 416 4 17 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 962 463 464

Page 72: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

465 4tt 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 463 484 485 486 487 468 409 490 491 492 493 494 495 4S'b 497 498 499 500 501 502 503 504 505 506 X'? 508 509 510 511 512 513 514 515 516 517 S18 519 520 521 522

O : BEGIN i 3 ( 'd ' 1; i4( 'e ' )

END; C a ) I 2 ? b) I1 I c ) RC I d ) I 3 I e) 14, 3 1 : BEGIN

i4( 'd ' 1; i3( ' e ' 1

END C a) I 2 I b) I1 I c ) RC I dl I4 y e) 13, 3 END C CASE azor 2 3

END; C a) I2 I b) I 1 I c ) RC, 3 1 : BEGIN

i3( ' c ' ); azor := randor( 2 1; CASE azar OF

O : BEGIN rc( 'd' ); i4( 'e' 1

END; C a) I2 I b) I1 I c) I 3 I dl HC e) 14. 3 1 : BEGIN

i4( 'd' 1; rc( 'e' 1

END C a ) 12 I b) I1 I c ) I 3 I d) I 4 y e) RC, 3 END C CASE azor 2 1

END; C a) I2 I b i I1 c ) 13, 3 2 : BEGIN

i4( ' c ' 1 ; azor := rondo&( 2 );

CASE azar OF O : BEGIN

rc( 'd' 1; i3( 'e ' 1

END; < a) 12 b) 11 I c ) 14 I d l RC I e) 13, 3 1 : BEGIN

i3( 'd ' 1; rc( 'e' 1

END C a ) I 2 1 b) I1 y c ) I 4 I d) I 3 I e) RC, 3 END C CASE azar 2 1

END C a) I2 I b) I 1 y c) 14, 3 END C CASE azor 3 1

END; I o) I 2 I b) 11, 1 2 : BEGIN

i3( 'b' ); azur := rondo&( 3 ); CASE a m OF

O : BEGIN rc( 'c ' 1; azar := randoh( 2 1; CASE o m OF

O : BEGIN il( 'd' 1; i4( 'e ' 1

EM; C a ) I 2 I b) I3 I c ) RC d) 11 I e) 14, 3 1 : BEGIN

i 4 ( 'd' 1; il( 'e' 1

END C a) 12 Y b) I3 y c ) RC I d) I4 e) I í , 1 END CASE ozar 2 1

END; C a) I2 I b) I 3 I c) RC, 1

Page 73: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Pug, 10

523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 535 539 540 541 542 543 544 545 546 547 546 549 55# 551 552 553 554 555 556 F" JJI

558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580

Page 74: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

h .. Z J U

L

h n c P n u L

Page 75: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

639 640 641 642 643 644 645 646 647 648 649 650 65 1 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 67 1 672 673 674 b 75 676 677 678 679 680 68 I 602 683 684 685 686 687 688 689 690 691 692 693 694 695 696

Page 76: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

697 696 699 700 701 702 703 704 705 706 707 708 709 710 711 712 7 13 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 749 741 742 743 744 745 746 747 748 749 750 751 752 753 754

Page 77: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

755 O : BEGIN 756 rc( 'c' 1; 757 m r := randor( 2 1; 75s CASE azar OF 759 O : BEGIN 760 il( 'd' ); 761 i2( 'e ' 1 762 END; C o ) I 3 b) 14 c ) RC d ) I1 I e ) 12, 3 763 1 : BEGIN 764 i2( 'd ' 1; 7 45 i f ( 'e ' 766 END C a) I 3 I b) I4 c ) KC dl I 2 I e) 11, 3 767 END C CASE azar 2 3 768 END; C a) 13 b) I 4 c ) RC, 1 769 1 : BEGIN 770 il( 'c' 1; 771 war := randor( 2 ); 772 CASE azar OF 773 O : BEGIN 774 rc( 'd' 1; 775 i2( 'e' 1 776 END; < a) I 3 I b) I4 I c ) I1 I d ) RC e) 12, 3 777 1 : BEGIN 778 i2( 'd' 1; 779 rc( 'e ' )

781 END C CASE azar 2 3 782 END; C a) I3 I b) I4 c ) 11 , 1 783 2 BEGIN 784 i2( 'c' )i 785 Dzar := randor( 2 1; 786 CASE czar OF 787 O : BEGIN 788 K( 'd' 1; 789 il( ' e ' 790 END; C a) I 3 I b) I4 y c ) I2 d ) RC I e) 11, 3 791 1 : BEGIN 792 il( 'd' 1; 793 rc( 'e ' 1 794 EN11 C a) I 3 9 b) I4 Y c ) I 2 d) 11 ? e) KC, 3 795 END I CASE azor 2 3 79 6 END C a) I3 I b) I 4 c ) 12, 3 797 END C CASE azQr 3 3 798 END C a) I 3 I b ) 14, 3 799 END < CASE a z ~ r 4 3 800 END; C a) Incorrecta 3 , 3 801 4 : BEGIN 802 i4( 'Q' 1; 803 Qzar := m n h ( 4 ); 804 CASE azar OF 805 O : BEGIN 806 rct 'b' 1; 807 azar := randor( 3 ); 808 CASE azar OF 809 O ; BEGIN 810 il( 'c' 1; 811 mar := randoal 2 1; 812 CASE azar OF

780 END < a) I 3 9 b) I4 I c) I1 d) I2 e) KC, 1

Page 78: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

813 814 815 8 l t

816

820 821 822 823 824 825 824

817

819

827 828 829 830 831 832 833 834 835 834 837 838 839 840 841 842 043 844 845 846 847 a40 849 850 85 1 852 853 854 855 856 857

859 860 861 862 863 864 865 866 867 860 869 870

858

O ; BEGIN i2( 'd' ); i3( 'e' 1

END; C a ) 14 b) fiC I O I1 d) I2 I e) 13, 3 1 : BEGIN

i3( 'd' 1; i2( 'e ' )

EHD C a) 14 I b) KC I c ) I1 I d) I3 I e) 12, 3 END { CASE azar 2 1

END; < a) I4 I b) RC I O 11, 3 1 : BEGIN

i2( ' c ' )I w a r := randoal 2 1; CASE azar OF

O : BEGIN i l ( Id' 1; i31 'e ' 1

EN; C a) I4 I b) KC I O I2 I d) I1 I e) 13, > 1 : BEGIN

i3( 'd' 1; il( 'e' 1

ENXI C a ) I4 t b) KC I c ) I2 I d) I3 I e) 11, 3 END { ChSE azar 2 1

END; C a) I4 I b) RC O 12, 3 2 : BEGIN

i3( 'c' 1; w a r := rando&( 2 1; CASE azar OF

O : BEGIN il( 'd' 1; i2( 'e' 1

EKG C a ) I4 I b) RC I c ) I3 I d ) I1 I e) 12, 3 1 : BEGIN

i2( 'd' 1; il( 'e'

E N C a ) I4 I b ) RC I c) I3 I d ) I2 I e) 11, 3 END C ChSE azur 2 1

END C a) I4 I b ) RC I c) 13, 1 END t CASE azar 3 >

END; C a) I4 b) RC+ 1 1 : BEGIN

il( 'b' I ; m r := randor( 3 ); CASE amr OF

G : BEGIN rc1 'c' 1; mar := randolet 2 1; CASE azar OF

O : BEGIN i21 'd' 1; i31 'e' 1

ENIG C a) I4 I b) I1 I c ) RC I d) I2 I e) 13, 3 1- : BEGIN

i3( 'd' ); i 2 ( 'e '

END C a) I4 I b) I1 I c) RC I d ) I3 e) 12, 3 END ChSE azar 2 >

END; a) I4 b ) I1 I c ) RC, >

Page 79: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

87 1 872 873 874 875 87t 877 878 879 880 88 1 882 883 8b4 885

887 888 889 890 89 1 892 893 894 895 896 897 898 899 900 90 1 902 903 904 905 906 9 O7 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927

ea6

928

Page 80: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 95 1 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 904 985 986

Page 81: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 82: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\FF;O-LECT,PAS

PROCEDURE pantalla-1 ; C

Se despliega una pwtalla para l a captura del nuaero de l a pregunta Junto con la opcion de salidat

3 BEG IN

qotoxy( 1, 3 ; write ('Pregunta Murero '1

ENK C puntalla 1 , 3

1 2 3 4 5 6 7 S 9

10 11 12 13 14 15 16 17

19 20 21 22 23 24 25 26 27 28 29 30 31 32

la

PHOCEDUHE pantallai nu : integer 1; C

En caso de que se de e l numero de preguntal se desplegaran los campos en donde se podru desplegar l a inforracion referente a la pantalla que s e pida+

3 BEGIN

CASE nua OF 1 :

2 :

33 34 3 : 35 36 37 38 39 40 4 1 4 : 42 43 44 45 46 47 46 EM C ChSE,

BEGIH l i q i a l gotoxy( 1, 7); write('Tipo de Pregunta '1; qOtoxy(29112); urite ('Enunciado de l a Pregunta+')

END; C CASE 1t 1 BE61 H

l i rpia ;

urite( 'Enunciado de la Respue~ta corrEcta,'); qOtOXY(231 8);

Incorrerta No, 1,')

Incorrecta No, 2,');

Incorrecta No, 3,');

Incorrecta No, 4 , ' ) ;

urite ('Referencia Bibliografica+') ENL C CASE 4, > 1

49 END; C pantalla, 1 50 51 52 PROCEDURE error(errore~:integer;VhR errtinteger); 53 C 54 Rutina de mensajes de error, 55 3 56 BEGIW 57 err :=l ; 58 write ( BEEF' 1;

Page 83: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\PRO-LECT,PAS

59 60 61 62 63 64 65 6 1 67 68 69 70 71 72 73 74

en l a pantalla, 1

FECHA ERRUNEA NUtiERO DE DIhS ERRONEO PARA

FECHA NO BISIESTO NUMERO ERRONEO DE DIAS FARA

ESTE KS

FEBERO R4NGO DE FECHAS INCORRECTO

LONGITUD ERRONEA OPCION INUALIDA

SOLO C4DENAS ALFANUHERIChS SOLO CADEMS ALFAEETIChS

saLo c h t w s Nunmms

75 END; < error, 3 76 77 78 FUNCTION lee-funcion(IMR cha : char) : boolean; 7 9 c 80 Verificcl que la tecla digitada 5 e ~ o no uha funcion del teclado. a1 > 82 BEGIN 83 lee-funcion:=false; 84 reod(kbdrchcl!; 85 I F ((cha = chrf27)) AND 86 BEGIN 87 read(kbdrcha); 88 lee-funcion:=true a9 END 90 END; i lee fmcion. > 91 92 93 PROCEDURE valido{ cadenas 94 C

(kevp ressed 1 THEN

: ARREGLO; tipo ; integer; U4Fi err : integer);

95 Valida la cadena leida, 96 1 97 UhR 98 correcto : boolean; 99 QUX : char;

100 i r 101 q : integer{ 102 103 BEGIN 104 err:=O; 105 q:=lenqth(cadenas); 106 correcto:=tne; 107 CASE tipo of 108 1 : BEGXW Cnurerical 109 i:=l; 110 REPEAT 111 aux:=cadenasCiX 112 I F ((aux I N nureros) OR (aux = chr(0))) THEN 113 correcto:=true 114 ELSE 115 error(8,err); llb i:=itl;

Page 84: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137

139 140 141 142 143 144 145 146 147 148 149 155 151 152 153 154 155 156 157 158 If5 160 161 I62 163 lb4 165 166 167 168 169 170 171 172 173 174

138

2:

3:

h:\PRO-LECT,F'AS

UNTIL ( (er r= l ) OR ( i > q ) ) END ; BEGIN {alfanurerica)

oux:=cadenasCll; IF (aux in dato-valido) THEN

ELSE correcto:=true

error(9,err) D I D ; RGiN Calfabetical

i :=I; REPEAT

aux:=cadenasliI; IF (aux in C'A',,'Z','a',,'z',' ' I ) THEN

ELSE error(l0,err) ; i:=itl;

correcto:=true

UNTIL((err=l) OR (i>q)) m

PHOCEIGEE lee( long,tip,x,y : integer 1;

Lw es un prwedimiento que lee inforeucion a partir de ciertas posi- ciones en la pantalla ( que corresponden a los campos indicados ) + Ade~a5, se l e pasa CDWI pararetro e l limite de caracteres por coda c a r p , el tipo de cadenrl que se tiene que leer (poro hacer l a volida- cion) y realiza tarbien e l enrascaramiento para l a lectura,

1 VhR

ch : char; existe, funcion : boolean ; cadena : ARFEGiO; i , 4, c i , err hor, 'te? : irttqw;

BEGIN gotoxr! x, y); write('['); FOR i:=l TO lmg D[j

write( 'I' 1 ; REPEAT

urite('-');

gotom (19,241 ; write ('Teclee el dato pedido, <ESE> para dato nulo,'); err:*; gotoxY(xt1,Y); c i := O ; j := o;

existe := false; ch := ' ';

Page 85: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

175 176 177 176 179 180

182 183 184 165 186 187 108 189 190 191 192 193 194 195 196 197 1% 199 m 201 202 203 204 205 206 207 208 209 2 10 2i 1 212 2!3 214 215 216 217 218 219 228 221 222 223 224 225 226 227 228 229 230 231

181

UHILE ((ch <> chr(t3)) AND (ch O chr(27) 1) DO BEGIN

IF ch 0 chr(27) THEN IKGIN

WHILE (ch O chr(8)) hNIi ( c i <= long-1) AND (ch 0 chr(l3)) AH11 (ch U chr(27)) 110 bEGIN

c i := c i t l ; IF NOT existe THEN

BEGIN funcion:=lee-funciontch); IF funcion THEN

6E61 N write(chr(7)); ch:=chr(7)

EN11 UID ;

existe := false; IF (ch O chr(l3)) AND k h 0 chr(8)) AND (ch O chri27)) THEN

BEGIN urite(ch1; cadenakil := ch

END ;

c i := c i - 1 IF (ch = ch1413)) OR (ch = chr(8)) OR (ch=chr(27)) THEN

END; C WHILE 3

WHILE (ch <> chr(l3)) AND (ch O chr(8)) ANI1 (ch 0 chr(27)) DO IF ( c i = long) MD (ch 0 chr(8)) AND (chO chr(l3)) THEN

BEGIN funcion:=leE-funcion(ch); IF funcion THEN

BEGIN urite(chrl7) 1; c h k k r ( 7 )

END END; C IF t e t WHILE 1

IF (ch = chr(8)) THEN UHILE (ci)= 1) MU (ch = chr(8i) DO

qotow(uherex-1 ,uherey); write('-'); qotoxy(wherex-1 ,uherey); c i := c i - 1 ; funcion:=lee-fanrion!ch); IF funcion THEN

BE6IN

BEGIN urite(chr(7) i c h k h r ( 0 )

END END; C IF t e t WHILE 1

IF c i = O THEN YHILE ch = chr(8) DO

BEGIN funcion:=lee-funcion(ch); IF funcion THEN

BEGIN write(chr(7)); ch:=chr(O)

232 END

Page 86: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

233 END; < I F UHILE 3 234 existe := true 235 END 236 END ; 237 IF ch = chr(27) MEN 238 cadi:=" 239 ELSE 249 BEGIN 24 1 cadi:="; 242 FOFi j := 1 Ttl c i M 243 cad1 := cudltcadenuEJ3; 244 FOR J := c i t 1 TO long Dtl 245 codl:= cadlkhr(0) ; 24 b validaIcadlrtiprerr) 247 END ; 248 UNTIL err = O ;

250 write (’ 251 END; <lee> 252 253 254 PROCEDURE borragreg; 255 c 256 Borra e l enunciado de la pregunta realizada, 257 > 258 BEGIN

260 writeln 261 END; < borra preg, 1 262 263 .

264 PRDCEDUkE pregunta( nub : integer); 265 C 266 Despliega el enunciado de una pregunta segun sea el caso y lee la respuesto, 267 1 268 BEGIN

249 qOtOXy( 1124);

259 qotOXy( 11241;

269 270 27 1 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290

‘1; urite (‘ Datos coryletos ? (S/N), REPEAT

WTIL (upcase(continua) IN si t no) read(KBD,continua)

END; C CASE 1, > 2 : BEGIN

write ( ’ Es este el renqlon a ttodificar ? (S/N), ’1; EMAT

Page 87: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

29 1 292 293 294 295 25' b 297 290 299 300 30 1 302 303 304 30; 306 307 308 309 310 31 1 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 323 329 330 33 1 332 333 334 335 336 337

339 340 341 342 343 344 345 346 347 348

338

3 :

4 :

5 :

6 :

7 :

8 :

9 :

10 :

11 :

REPEAT

UNTIL (nurb IN C'Vt , '4 '3 ) read(KBDmkb1

END; C CASE 4, 3 BEGIN

urite I ' Es este el Reactivo o Actualizar ? (S/N), WEAT

UNTIL (upcase(resp) IN s i t no) read(KED,resp)

END; C CASE 5 , BEGIN

urite (,' Desea realizar otro Carbio ? (S/#) REKAT

UNTIL (upcase(sique1 IN s i t no) read(KBD,sique)

END; C CASE 6t 3 BEGIN

urite 0 Desea realizar otra Alto ? (S/N), FiEFiAT

UNTIL (upcase(sique) IN si t no) readMDfsiqueI

END; C CASE 7, 1 BE61 N

write (' Es este el Reactivo o dar de Boja ? (S/N), REPEAT

UNTIL (upcaselresp) IN s i t no) read(KBD,resp)

END; C CASE 8 , > m 1 N

urite ( ' Deseo redizar otra Blija ? (S/N), REPEAT

#TIL (upcase(sique1 IN si t no) read(KBD,sigue)

END; C CASE 9 , > BEGIN

urite (' Salio bien colocada l a linea de Prueba ? (S/N),'); R W T

UNTIL (upcase(correcto1 IN si t no) readlKEDlcorrecto)

END; C MSE 10 3 BEGIN

gotoxY(l2,121; urite (' Cuantos examenes se von a elaboror 7 '1; lee(3r1f58f12): IF cod1 0 I ' THEN

Page 88: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

349 val(cadl,total,nuxi) 350 END; C CASE 11 1 351 12 : BEGIN 352 urite 0 Es este el Tesa Correcto ? (S/N), '1; 353 REPEAT 354 read(KE%twa) 355 UNTIL hpcase(teril) IN si + no) 3% ENS; C CASE 12 1 357 13 ; BEEIH 358 urite I ' E5 un Tipo de Teen Nuevo ? (S/N) '1; 359 REPEAT 360 read(KBI!,nueva) 361 UNTIL (upcaseinueva) IN si t no) 362 END; < CASE 13 1 363 14 ; BEGIN 364 qotoxy( 7,241; 365 u r i t e t ' Desea Realizar otra Consulta ? (S/N), 346 E P U T

1

367 read(KEID,sigue) 368 UNTIL (upcase(sique) IN si .) no) 369 END; C CASE 14 3 370 15 : BEGIN 37 1 urite ( ' Por Pantalla o por Jrpresora ? (P/1lb '1; 372 REFEAT 373 read(KBD,disp) 374 UNTIL ( (upcaseldisp) = ' Y ) Oh (upcase(disp1 = '1') 1 375 END; C CASE 15 1 376 ENU: c c m > 377 borra-preg 378 END; C prequnta, 1 379

Page 89: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\PFiO-LIhP,PAS

1 KWEDURE lirpia-buff sgar te l ; 2 ( 3 Lirpia las variQbles utilizadas para l a captura de l a pantalla 1, 4 1 5 BEGIN 6 reac-buf,nurero := O; 7 rex-buf ,etio := false; 8 reac-buf,tera := 0; 9 reac-buf ,t-preg := ' 'i

10 reac-buf,t-resp := ' 11 rwc-buf.t-rebi := ' ' 12 END; C lirpia buffs parte lt 3 13 14 15 PROCEDURE limpia-buffs-parte( num : integer )I 16 C 17 Lirpia las variables utilizadas para la captura de la pantalla 18 indicada 19 3 20 VAR 21 i : integer; 22 BEGIN 23 CASE nur OF 24 1 : KGIW

26 reac-buf,tera := 0 ; 27 FDFr i := 1 TO 40 M1

29 FOR i := 1 TO 73 DO 30 prec-buftp-r-lCi3 := ' 31 FOR i := 1 TO 73 Do 32 prem-buftp-r-2Cil := ' ' C 33 FDsi i := 1 TO 73 M1 34 prel-buftp-r-3Cil := '; 35 FOR i := 1 TO 73 Ir0 36 prel-buf tp-r-4Ci3 := ' ' ; 37 FM i := 1 TO 73 DO 30 preq-buftp-r-SCil := ' '; 39 FDR i := 1 TO 73 DO 40 preq-~uftp-r-61i3 := ' '; 41 FDFr i := 1 TO 73 DO 42 preg-buftp-r-71il := '; 4 2% FÍB i := 1 TO 73 W 44 preq-buf+p-t.-81il := ' '; 45 FDR i := 1 TO 73 W 46 preq-buf,p-r-9[il := ' ' 47 END; E CASE 1, 1 48 2 : BEGIN 49 FM i := 1 TO 65 W 50 resc-buftr-r-lCi3 := ' 'i S1 FOR i := 1 TO 65 W 52 resl-buftr-r-2Cil := ' '; 53 FOR i := 1 TO 65 DO 54 rex-buf , r i l - r l I i l := ' ' ; 55 FBR i := 1 TO 65 DO 56 resl-buftril-r2[il := ' ' 57 END; C CASE 2, 1 58 3 : BEGXU

25 Ma-buf ,numter := O ;

28 teba-buf,descri I i l := ' ';

Page 90: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

59 FOR i := 1 TO 65 110 60 rex-buf.ri2-rlliI := ' '; 61 FOR i := 1 TO 65 DO 62 resl-buf,ri2-r2CiI := ' '; 63 FOP, i := 1 TO 65 IiO 64 resc_buf,ri3_rlliI := ' '; 65 FOR i := 1 TO 65 DO 66 re5l_buf,ri3_rZ[i3 := ' ' 67 END; C CASE 38 3 68 4 : BEGIN 69 FOR i ;= 1 TO 65 DO 70 resc-buf ,ri4_rl[iI := ' '; 71 FOR i := 1 TO 65 BO 72 resl-buf4ri4-r21i3 := '; 73 FOR i := 1 TO 70 DO 74 refc-buftrebi-rlCi3 := ' 'i 75 FOR i := 1 TO 70 DO 76 refm-buf.rebi-r2lil := ' '; 77 FOR i := 1 TO 70 DO 78 refq-buftrebi-r3Cil := ' '; 79 FOR i := 1 TO 70 DO 80 refg-buf,rebi-r4Eil := ' ' 81 END C CASE 4, 3 82 END c CASE 3 83 END; C liwpiio buffs parte, 3 84 85 86 PROCEDURE limpia-buffs; 87 c 88 Frotedimiento que lirpia todas las variables globales para volver a 89 usarlas y 105 registros que se utilizan en e l manejo del archivo de 90 la base de datos. 91 1 92 VAk 93 i : integer; 94 BEGIN 95 r o v l := ' '; 96 rov2 := ' I ;

97 status := o; 98 band := false: 99 lirpia-buffsgarkl;

100 liapicl-buffs-parte( 1 ); 101 lirpiQ_buffsgarte( 2 ); 102 lihpia-buffs-parte( 3 1; 103 lirpia_buffsgarte( 4 1; 104 lirpia-buffsgarte( 5 1 105 END; I limpia buffs, 3 106 107 108 PROCEDUkE limpia; 109 c 110 Limpia l a parte de abajo del letrero de Numero de Pregunta, 111 > 112 VhR 113 i r 114 x ; integer; 115 BEGIN 116 FOR x := 6 TO 24 I9

Page 91: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

117 BEGIN 118 gotoxy( 1, x); 119 FOR i ;= 1 TO 80 DO 120 write ( f ’) 121 END 12 ENí!; C lispio, 1 123

Page 92: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

1 PhOCEDUriE reactivos; 2 c 3 Despliega e l renu que se requiere para e l manejo de reactivos, k 3 5 BEGIN b 7 & 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2& 29 30

c l r scr ;

writeln('ChTALOG0 DE REACTIVOS.');

uriteln ('Seleccione l a opcion deseada : _');

writeln ( '1 1 hlta de heactivos, ');

writeln ('2 1 h j a de Reactivos, '1:

writeln ( '3 1 Nodificacion de heactivos, ' );

writeln ('4 1 Consulta de Heactivos, ');

uriteln ('Oprima <ESC> para terminart '1;

REPEAT

qoto~y(28, 2);

gotOxY~l8, 8 ) ;

qotrJxy(23,lz);

qoto>:Y(23,14);

gotox~(23rl6) ;

q o t 0 ~ ~ ( 2 3 , 1 8 ) ;

gotoxy(43,24):

qotox)'(49, 8);

read (KBD,mov2) UNTIL (bOV2 IN C'l't+'4'1) OR ( ~ 0 ~ 2 = ESC); CASE (rov2) OF

J / t 1 t al tas ; " I 2 bajas; '3' : cambios; '4' : consultas

Mfi 31 Ea!; C Teraina reactivos, 3 32 33 34 PROCEDURE renu_prin; 35 < 36 Despliega e l menu principal del Sistema, 37 3 38 BEGIN 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

c l rscr ;

writeln ('Sistebu tie Ease de Datos referente a l examen de Certificacion del '1;

writelrt (' Consejo Nacional de NeusologiQ,');

writeln ('Seleccione la opLion deseada : -');

writeln ('1 1 Catalogo de Fieactivos, '1;

writeln ('2 1 Eltitoracion de Exasenes, '1;

uriteln ( '3 Listado de 105 Temas, ' 1;

writeln 1'4 1 Listado de todos los Reactivos.');

writeln ('Dpriw (ESO para teminar,'):

REP EAT

goto>:y( 6, 2);

qotoxy( 6, 4 ) ;

q o t o w g , a);

qotoxy(23r12!;

gotoxy(23,14);

qotoxy(23rld);

qotoxy(23,18);

qotoxy(43,24);

qotOx~(49, 8) ;

read Wfi,movl)

Page 93: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

59 UNTIL ( ~ 0 ~ 1 IN C'1'., '4'1) OFí ( r o v l = ESC) i 60 CASE h o v í ) OF 61 ' I ' : REPEAT 62 l irpia-buffs; 63 reac t ivos 64 UNTIL mov2 = ESG 65 '2 ' : exarenes; 66 67 '4 ' : l i s t - t o t a l 68 END 69 END; Tereina renugrin. 1 70

1 ' . 3 . l ist - teras;

Page 94: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\FFtO-PFiIH,F'hS

1 PkOGFiAH Proyecto-Terrinal; 2 3 CONST 4 5 B-OPEN = O; 6 B-INSERT = 2; 7 B-UPBATE = 3; 8 P-DEL = 4; 9 B-FIND = 5;

10 BEEP = t7; 11 Bs = #8; 12 RET = t13; 13 ESC = #27; 14 HOJA = t12; C Forr Feed o Salto de Hoja, 3 15 LIH-HOJA = 64; C Nurero de renglones B ocupar por hoja, 3 16 PKEGxEXA = 20; C Nurero de preguntas por examen, 3 17 18 TYPE 19 20 CAD-D4 = strinqC43; C Cadena de longitud 3 para conversion, 1 21 ARREGLO = string[ 73 3; C Reg, para la rutina de capturrl (lectura),) 22 TIPR-L = packed array 21,,733 of char; C Tipo de reg, para el renglon mas largo, 3 23 TIPR-H = packed army E1,,703 o f char; C Tipo de reg, para renqlon de l o n g , redia,) 24 TIPR-C = packed array C1,,653 o f char; C Tipo de reg+ para el rwrqlon bas corto, 3 25 TIPR-HI = packed arwy C1+,403 o f char; C Tipo de reg, para a l Descripcion del Tera? 26 TIPOSI = packed army C1,,1281 o f BYTE; C TIPOSI y TIPVhL son necesarios para e l 3 27 TIF'VAL = packed array 11, ,161 of char; C uso de Btrieve, 3 28 CONJCAK = set of chor; C Conjunto de caracteres usados en el S i s , 1

Ya9, 1

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54

56 57

ce 3J

5a

REACTIVO-REG = record

1 : ( M E R O : Elfo; m : T-F'REG t

T-RESP 1

CASE integer OF

T-REBl : 2 : ( START :

€ND;

TERh-REC = record

1 : N I " : MSGRi :

2 : ( STMT :

CASE integer OF

END;

PKE-COR-REC = record

1 : NWR : P-R-1 :

2 : ( STMT :

CASE integer OF

END;

PRE-HED-REC = record

1: (m : P-R-2 :

CASE integer OF

INTEGER; BooLEnN; INTEGER;

CMR 1; INTEGER )

INTEGER; TIPR-HI 1; INTEGER 1

INTEGER; TIPR-L 1; INTEGER 1

INTEGER; TIPR-L 1 ;

C keg, que guarda la informacion referente 3 C a un reuctivo o pregunta, 3 C Nurero del Rwctivo, 3 C Se ha elegido o no, 3 C Tew del keactivo, 3 C Tipo de l a Pregunta ( l o n g i t u d 1, 3 C Tipo de la Respuesta ( longitud ), 3 C Tipo de l a Referencia b i b l , t longitud 1,) C Carptj utilizado por Btrieve, 3

C Reg, que guardo la descripcion del Tesa 3 C del Reactivo, 3 C Identificador del Tipo de T W Ü , 1 C Descripcion del tipo de Tera, 3 C Carpo utilizada por Btrieve, 1

C Reg, que guarda un renglon de l a Preq, 3

C Nurero del Reactivo, 3

C Carpo utilizado por Btrieve, 3

C Reg, que guarda e l siguiente renglon de 1 C la Pregunta, 1 C Nurero del Reactivo, 3

Page 95: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Pag, 2

59 60 61 62 63 M 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 BO 81 82 83 04 85 86 87 88 Bp 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

2 : ( SThFiT : INTEGER 1 END;

REPI-COR-REC = recorti CASE integer OF

1 : ( M-RE : INTEGER;

2 : ( START : INTEGER 1 RBI-Rl: TIPR-H 1 ;

END;

C Campo utilizadcl por btrieve, 2,

C Reg, que guarda otros dos renglones de 3 C la Pregunta, 1 C Nurero del Reoctivp, 3

C Carpo utilizado por Btrieve, 3

C Reg, que guarda hasta cinco renglones de 3 C ras s i l a Preg, es ruy largo, 3 C Nurero del Reactivo, 3

C Carp0 utilizado por Btrieve, 3

C Rey, que guarda un Renglon del Conjunto 3 C de Respuestas ( 1 Correc, Y 4 Incorrec, 1) C Numero del Rwctivo, 3 C R-Fi-1 es e l Priber renglon de la Res, Co,) C Prireros Renglones de las Respuestas In- 3 C correctas, 3

C Campo utilizado por Btr iwe, 3

C Reg, que guardo un Renglon mas para e l 3 C grupo de Respuestas del Reactivo, 3 I Numero del Rwctivo, 1 C Segundos Renqlones utilizados para las 1 C Respuestas, 3

C Carp0 utilizitdo por Btrieve, 1

C Reg, que guardli un Renglon de l a Referen 3 C cia Biblioqrafica, 3 C. Nuaero del Reitctivo, 1

C Campo utilizadu por Btrieve, 3

C Reg, que guarda otro Renglcrn de l a Ref I 3

C Nurero del Reactivo, 3

C C ~ r p o utilizado por Btrieve, 3

Page 96: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\F'F;O-PRlN,PAS

117 REM-GRA-REC = record { keg, que tiene otros dos Renglones por si) 118 CASE inteqer OF i l a Referencia biblioqrafica los necesita,) 119 1 : ( NU-REAL: INTEGER; C Numero del Reactivo, 1 120 REBI -R3 I

121 REBI-R4: TIPR H 1 ; 122 2 : ( STMT 123 END; 124 125 LLAVE-REAC = record 126 CASE integer OF 127 1 : ( NUKBEF! 128 2 : ( START 129 END; 130 131 LLAVE-TEM = record 132 CASE integer OF 133 1 : ( NMBER 134 2 : ( START 135 END; 136 137 LLAVE-Y = record 138 CASE integer OF 139 1 ; ( NUHBER 140 2 : ( START 141 END; 142 143 LLAVE-R = record 144 CASE integer OF 145 1 : ( NUHBER 146 2 : START 147 END; 148 149 LMUE-RB = record 150 CASE integer OF 151 1 : ( NWBER 152 2 : ( START 153 END; 154 155 PDSICIDN = record 156 CASE integer OF 157 1 : ( STAKT

159 END; 160 161 FILE-NhK = record 162 CASE integer GF 163 1 : ( VALUE 164 2 : ( START 165 END; 166 167 168 UAR 169 170 strl,

15a 2 : ( BLK

: lNTEiEk 1

: INTEGER 1; : integer 1

: INTEGER 1; : inteqer 1

: INTEGER 1; : integer 1

! INTEGER )I : integer 1

: INTEGER 1: : integer 1

: integer 1; : TIPOSI 1

: TIPVAL 1; : inteqer 1

171 s t r2 : cnu-Ds; 172 cad1 : ARREGLO; 173 mc-buf : REACTIVO-REC; 174 tera-buf : TEHA-REC;

C Carpo utilizado por Btrieve, 1

C Reg, que sirve para poder desplegar l a 1 C inforracion referente a l nurero de pre- 1 C qunta que se haya dado, 1

C Reg, que sirve para poder desplegar l a 1 i inforaacion referente a l nurero de tera > C que se haya dado, 1

i Reg, que sirve para poder desplegar l a > i inforltacion de Preguntas, 1

C Reg, que sirve para poder desplegur l a > C inforracion de kespuestas, )

Reg, que sirve para poder desplegar l a 1 C inforracion de Referencias, 1

C Reg, necesl~ricr para el lsanejo de archivos) C en Btrieve, 1

{ Keg, necesaricr para e l manejo de archivos) i en Ptrieve, 1

C Para conwrtir de Cadena a WUrero, 1 i hrreqlo terporal para la capturo de lee, 3 C Guarda toda l a inf, de un reactivo, 1 C Guinda e l Ident, y l a liescrip, del Tera, 1

Page 97: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

175 176 177 178 179 180 181 182 183 184 185 186 187 lb8 189 190 191 192 193 194 195 196 197 198 199 200 20 1 202 203 204 205 206 207 208 209 210 21 1 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 23 1 232

con t auxi total

banderrl : boolean; ArchTerp : Text; C Fi le 3

status : integer;

C Guarda el Prirer Renqlon de la Pregunta, > C Ciuarda e l Segundo Reltglon de la Pregunta.) C Guarda e l Tercer Y Cuarto Renqlon (Preq1.3 C Guurda si son necesarios otros 5 Rengs, 3 C Gurlrdo el Prirer Renqlon de las R~sc's, 3 C Guardu e l Segundo henglon de las Resp's, 1 C Guarda e l Prirer- fienqlon de la Ref, Bib, 3 C Guarda e l Segundo Renglon de l a Ref, Bib,) C Guardo e l Tercer y Cuarto renq, s i se usa1 C Vuriable usada por Eirieve, 1

C Sirve para buscar un Tipo de Tema dado, 3

C Sirve para buscar un reactivo dado, 1

i Fcesuitado de aplicar la funcion randor, 1

C Numero de Renglones impresos en Listado, 1 C Contador de Nurero de Hoja. > C Contador de Preguntas, 1 C Contudor de Renglones, 1 C Contador de Exarenes. 1 C Sirve para conocer e l Status del Archivo 1 C de Tmas de los Reactivos, 1 C Sirve COLO apuntador dentro de un orray, 3 C Pararetro de la funcion VAL de Turbo, 3 t Ver, para el Nuhero de Exarenes o Irpr, 1 C Sirve para conater e l status de Btriew, 3 < Para detectar preguntas repetidas, 3 C Archivo Temporal donde se quardan los 1

Page 98: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

233 234 235 band : boolean; 234 es, 237 tera , 238 LOV1, 239 bOV2r

240 resp, 241 caso, 242 nurb, 243 disp, 244 nueva, 245 sigue, 246 correcto, 247 continua : char; 248 s i , 249 no, 250 nuberos, 251 dato-valido : CONJCAR; 252 253 254 {SI A:TUT;XFACE+PAS 1 255 254

258 259 260

262 263 264 265 266 267 PROCEDURE abre-archivo; 268 C 269 hbre todos los Archiws que se van a utilizar HI el Proceso, Esto5 se encuen- 270 tran residentes en otro diskette, 271 1 272 BEGIN

257 C ~ I n : P k o - L x w n s 1

261 {$I h:PRO-LECT,PAS 1

C incisos de Resp, Correc, y Eiblio, de 1 C l a mim, de cada exaren, 1 { Bandera de opcion de salida, 1 i Respuesta s i es e l renqlon a rodificar, 3 C Respuesta si e5 e l Tipo de Tmaa correcto,) C Opcion leida del renu principal. 1 E Option leida del menu de reoctivos, 1 C Respuesta Q hctualizacion y bajo, 1 C Respuesta a que parte se va a Actualizar,) C Respuesta a que Resp, Inc, se vo u Actua,) C Respuesta del dispositivo para consultas,) C Respuesta en caso de T i p o de P r e g . Nuevo,) C Respuesta para seguir dentro del mov, 1 C kespuesto si sal io colocada l a hoja i m p , > < Sirve para saber si estan bien los dutosJ C Conjunto que contiene las letras S y s t ) I Conjunto que contiene las letras N y n, 1 C Conjunto que contiene del O a l 9 , > C Caracteres validos para la captura, 1

C Interface de Etriwe con Turbo PQ5Cale 1

C Archivo donde se encuentran las Rutinas: 1 C lirpia-buffs-parte1 ,likpia-buffs_parteO ,3 C limpia-buffs, l irpia, 1

C Archivo donde se encuentran las Rutinas: 1 C pantalla-1, pantalla0, error0, lee-fun-) C c i o n 0 , v a l i d a 0 , l e e 0 , borragreq, 1 C preqtlnto() , 1

273 27 4 275 276 27 7 278 279 2b0 281 282 283 284 205 286 287 280 289 290

fnme1,value := 'B:REAC,bTR status := BTF(IEVE(b_OPiHtrpai-po;,SThRTIr.erlc_buf ,START,fnarel,STAfiTIOf; IF status C 0 THEN

I t t

writeln(' No 5e pudo abrir e l archivcr REhC,BTFi, Status = ' ,status);

fnaae2,value := 'E:FREC,BTR status := bTRlEW.!B-OPEN,precgos,SThKT,prec_btlf ,STAKT,fnare2,STAfT,O)~ IF status O O THEN

I , I

uriteln(' No se pudo abrir el archivo FREC,ETR, Status = ',stcltus);

fname3,value := 'E:PREH,PTk stutus := BTHIEUE(E_OFEN,pre~_pos,SThF(Trprer_buf ,START,fnare3,STAFcTI0); IF status U O THEN

I t T

uritelnl' No se pude abrir e l archivo PREH,BTR, Status = ' ,status);

fnabe4~~alue := 'B:PRtL*BTR status := BTRIEU€(P~OFEH,prel~pos~START,prel~buf *START,fnase4*START10); IF status 'U O THEN

I * t

Page 99: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

29 1 292 293 29 4 295 29 6 29 7 298 29 9 300 30 1 30 2 303 304 305 306 307 308 309 310 31 1 312 313 314 315 316 317 318 319 320 32 1 322 323 324 325 326

A~\PRO-PF;IN~FhS

writeln(' No se pudo abrir el archivo PREL,BTR, Status = ' ,status);

fnare5,value := 'b:PkEG,bTR status := bTfrIEVE(B_OPEN,preggos,SThfiTrpreg_buf ,SThfiT,fnareS,STAFtT,O); IF status 0 0 THEN

writelnl' No 5r pudo abrir el archivo PRECtbTKI Status = ' ,status);

I * 1

fnare6,value := 'E:RESC,BTk status := BTF(IEUE(B_OPEN,resc_pos,START,resc-buf .SThRT,fnuneb,STAhT,O); IF status <> O THEN

writeln(' No 5e pudo abrir el archivo RESC,BTR, Status = ' ,status);

I * I

fnaae7,value := 'B:RESL,BTR status := BTRIEUE(b~OPENIresl~pos,SThRTrresl~buf tSTAkT,fnane7*SThFtT,0); IF status <> O THEN

writeln(' No se pudo abrir el archivo RESL*BTh, Status = ' ,status);

I * I

fnoreB+value := 'B:REFC,BTR status := BTRIEVE(B-OPUl,refcgostSThRT,refc_buf *SThRTrfnare8,SThRT,0); IF status G O THEN

writeln0 No se pudo abrir el archivo REFC,ETR, Status = ' ,status);

I * t

fnare9,value := 'B:REFH,BTR status := bTRIEVE(P-OPEN,refn_pos,SThfiT,refn-buf .START,fnare9,STAhTIO); IF status <> O THEN

uriteln0 No se pudo abrir el archivo HEFH,ETK, Status = ' ,status);

I * ?

fnarel0,value := 'B:REFG,BTH status := BThIEVE(B_OPEHIrefg_pos,STh~T,refg~buf~STh~TIfnanelO~STAFtT,O~; IF status O O THEN

writelrl(' No se pudo abrir el archivo REFLETR, Status = ' ,status);

I * ?

fnarellbvulue := 'B:TE#hBTH status := BTRIEWE(b_OPEN,terrl_pos~SThRT,telaa_buf,STAFtT,fnanell~START,O); IF status <> O THEN

writeln(' No SP pudo abrir el archivo TEM*BTR, Status = ',status)

I * P

327 328 END; C rlbre archivo, 1 329 330 331 PROCEDURE copia( nub, long : integer ); 332 C 333 Como cadl Y las vrlriables utilizadas son distintas ( string v5 packed n_rroy 1, 334 se necesita copiarlas de carclcter en caracter* 335 3 336 WAR 337 code, 338 c : integer; 339 BEGIN 340 c := O ; 341 CASE nun OF 342 O : BEGIN 343 val( cadl,reac-bufeNUHEROlcode) 344 END ; 345 1 : BEGIN 346 rwc_buf*tgreq := 'CI; 347 FOfl E := 1 TO long DO 348 prec-buf+P_R-l Ccl := cadl Ecl;

6

Page 100: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

349 350 35 1 352 353 354 35; 356 357 358 359 360 361 362 363 364 565 366 367 368 369 370 371 372 373 374 375 374 377 378 379 380 381 382 383 384 385 386 387 308 389 390 39 1 392 393 394 375 394 397 398 399 400 401 402 403 404 405 406

prec-buf .NUHER := reac-buf ,NUtERO END;

2 : I F cad1 0 " THEN BEGIN

reac-buflt-preg := 'W; FOR c := 1 TO long DD

prea-b~f~P-R-2 Ecl := cad1 I c l ; prk-bÜf lNUKi i= rear-buf .NUMERO

END ; 3 : IF cadl 0 " THEN

BEGIN reac-buf It-preg := 'L' i FOR c := 1 TO long DO

prel-buf ,HUH := reac-buf.NUHER0 prel-buf.P-R-3 tcl := cud1 Ccl;

END;

FOR c := 1 TO long DO 4 : IF cad l <> " THEN

pre l -b~f~P-R-4 Ec l := cadl Ccl; 5 : I F cadl 0 " THEN

BEGIN rwc-buf t t -preg := 'G' i FOR c := 1 TO long DO

p r e g j u f .NU := reac-buf .NUHERO preg-b~f~P-Fi-5 E c l := cadl Ccli

END i

FOR c := 1 TO long DO 6 : IF cad l <> " THEN

preq-buf,P-R-6 Ccl := cadl E c l ; 7 : IF cadl <> " THEN

FOR c := 1 TO long DO preg-b~f~P-R-7 Ecl := rad1 t c l ;

8 : I F cadl 0 " THEN FOR c := 1 TO long DO

preg-buftP-R-8 Cc l := cadl Ec3; 9 : I F cadl O I' THEN

FOR c := 1 TO long DO preg-b~f~Y-R-9 Ecl := cadl IC];

11 : BEGIN reac-buf .t-resp := 'C'; FOR c := 1 TO lonq DO

resc-buf+R_R-l Ctl := cadl Ccl; resc-buftNO-RE := reac-buf .NUHERO

EN11 ; 12 : I F cadl I,> I' THEN

PEGIN reac-buf It-resp := 'L'; FOR c := 1 TO long DO

resl-buf,R-R-2 Ecl := cadl Ccl; resl-buf tNO-REA := reac-buf ,NUMERO

END ;

resc-bufAIl-Rl Cc l := cadl Ccl;

BEGIN

14 : FOR c := 1 TO long DO

15 : IF cad l <> ' ' THEN

rear-buf (t-resp := 'L'; FOR c := 1 TO long DO

resl-buf.RIl-R2 E d := cad1 Ecl;

Page 101: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

407 408 409 410 41 1 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437

439 44Q 44 1 442 443 444 445 446 447 448 449 450 45 1 452 453 454 455 456 457 458 455, 460 461 462 463 464

438

A:\F'h@-F'i8iN,PP,S

resl-buf , N O-REh := reac-but ,NL~EF.O END;

resc-buf,RI2-R1 Ccl := codl IC]; 17 : FOR c := 1 TO long DO

18 : IF cadl (? " THEN BEGIN .

reac-buf +t-resp := 'L'; FOR c := 1 TO lonq DO

resl-buf*RI2-R2 Ccl := cad1 ELI; red-buf +NO-REA := reQc-buf,NUnfFtO

END;

rcsc-buftR13-Rl Ccl := cadi [cl;

B€GIN

20 : FOR c := 1 T O long DO

21 : IF cadl C) " THEN

rerlc-buf*t-resp := 'L'; FDR c := 1 TO long DO

resl-buf+Rl3-R2 Ccl := cadl Ccl; resl-buf +NO-REh := reac-tuf , # M E R O

END;

rescbbuf,R14-k1 Ccl := cad1 Ccl; 23 : FOR c := 1 TO long DO

24 : IF cadl <> " THEN

26 :

21 :

2e :

29:

31 : 33 :

34 :

BEGIN reac-buf*t-resp := 'L'; FOR c := 1 TO lonq DO

resl-buf,RI4-R2 IC] := cadl Ccl; red-but +NO-k€h := reac-buf ,NWRO

EWD ; BEGIN

reac-buf,t-rebi := 'C'; FOR c := 1 TO long DO

refc-buf ,NU-RE := rerlc-buf +NUHERO refc-buf+REEI-kl Ccl := codl Ccl;

END; IF

IF

IF

cad1 <> ' I THEN BEGIN

rel~c-but ,t-rebi := 'H' ; FOR c := 1 TO long DO

refs-buf,REBI-RZ Ccl := cadl Ccl;

cadl .:> " THEN BEGIN

reac-buf ,t-rebi := 'G'; FOR c := 1 TO long DO

refg-buf+REBI-R3 [cl := cadl LEI; refq-buf +NU-REAC := reac-buf +NUHERO

END ; cad1 O " THEN FOR c := 1 TO long DO

refq-buftREb1-R4 Csl := cadl Ccl; val( cadl, reac-key.HUHBER, code ); BEGIN

val( cadlr reac-buf +TEhAr code 1; tera-buf .nurter := reac-buf +tera;

END ; FC#i c:= 1 TO long DO

Page 102: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

465 t e r i r - b ~ f ~ d ~ s c r i Ccl := cadlCc3 466 END C CASE 3 467 END; { copio > 468 469 470 {$I A:YhCr-ALTA+PAS 1 C Archivo donde se encuentran las hut inus: 1 47 1 C altQs, altu-lee-datos, 1 472 473 474 PROKDUTIE l laves; 475 C 476 hsigoa todas la5 l laves correspondientes a 105 Archivos del Sisteha, 477 1 478 BEGIN 479 prec-keymrber := reclc-buf ,numero; 480 r e x - k e y m r b e r := reac-buf,nurero; 481 refc-key,nurber := reoc-buf +nurero; 482 status := BTRIEVE ( B_FIND,prec_pos+START,prec-buftSTNiT,prec_key+STAHT,O); 483 status := BTRIEVE ( B~FIND,re~cgos,START,rew~buf+START,resc~key~ST~HTrO); 484 status := BTRIEUE B-FINlr1refc_pos,SThRT,refc-buftST~RKTtrefc-key+S~hRT,U); 485 CASE reac-buf .t-preg OF 486 'ti' : BEGIN

488 stotus := kTKlEK ( B-FIND,pres_pos,SThRT,prer_buf,SThFtT,prer_~ey,SThRT,O)

490 49 1 p rea -keymr te r := reac-but ,nubem; 492 prel-key,nurber := reuc-buf,nurero;

487 prem_key,nurber := reac-but ,numero;

489 END; ' I t L * BEGIN

493 s ta tus := BThIEVE ( B_FIND,prer_pos,START,pres-buf,START,prrr_key,START,O); 494 status := BTRIEUE ( B_FiND,prel_postST~T,pr~l_buf+STAF;T,prel~keytSTART,O) 495 END; 496 'G' : BEGIN 497 prem-keymaber := rerlc-buftnurero; 498 prel-keytnurber := reuc_buf,nurero; - . . 499 preq_kw+nurber := reac-buf ,nuhero; 500 status := BTkIEUE ( b_FIND,pr~-pos+STAFTtpre~-buftSTAFtT,prer_key,SThRT,O); 501 status := BTRIEUE E_FIND,prel~pos~START,prel~buf+START,prel_key,START,O); 502 503 504 505 506 507 50e 509 510 511 512 513 514 515 516 517

END ;

CASE reac-buf * t _ reb i OF It!' : BEGIN

refr_key,nurber := reac-buf+nurero; s ta tus := BTRIEUE ( k_FINDtrefr-postSThFiT1refa-buf,SThRT,refe_key,STAkT,O)

END ; S18 519 re f r -keymaber := reat-buf,nurero;

521 status := BTRIEVE B_FIND,refr_pos,STARTtrefs_buf,START,refr_key,STARTT,O);

' I * G t BEGIN

S20 refq-key,nuaber := reac-buf,nurero;

522 status := BTRlEVE B_FIHD,refq_pas,START?refg_buf,SThRT,refg-key,SThRTt0)

Page 103: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 10

523 END 524 END; 5?5 t e w - b u f m l t e a := reac-buf ,tema; 526 tema-keymrber := reac-buf, tera; 527 s ta t := ETRIEVE t E_FIND,te~a_yos,STAFtT,temapuf,STAhT,tema_Kev~STttRT~O)~ S2E IF stat <> O THEN 529 BEG1 N 530 qotoxy(10,20); 531 write 1'Wo se encontro l a Descr, del Tema correspondiente,'); 532 delav(1500) 533 END 534 END; < llaves, 1 535 536 537 PROCEDURE escribe-datos; 538 C 539 Se posiciona en cada carpo y escribe l a inforhacion correspondiente, S40 1 541 BEGIN 542 lee( 3, 1,18, 5); 543 IF cad1 = ' ' THEN 544 band := true C Hubo opcion de salidat 1 545 ELSE 546 BEGIN 547 copia( 0,3 1; 548 reac-key ,number := reac-buf ,nuhero; 549 status := BTRIEUE (b~FIND,rear_po~,~ST~FtT,reac~buf ,STAHT,rwc-kev,STbkT,O); 550 IF status O O THEN 5 3 BEGIN 552 qQtOXy(30,24) ; 553 write( BEEP 1; 554 write('N0 EXISTE LA PREGUNTh DADA, ' ) ; 555 delay (2500) 1 556 qotoX~(30r24); 557 write(' '1 550 END 559 ELSE 560 BEGIN 56 1 llaves; 562 puntallo( 1 )i 563 qotoxv(l8, 7); write (tera-b~f~nurteb); 564 qotox~(24, 7 ) ; urite ('lrescrt :'); 565 qotoxv(34, 7 ) ) urite (teeia-buf'descri); 566 g o t o w ( 4,141; urite (prec-buf+P-R-l); 567 gotoev( 4,151; write (prem-tuf ,P-R-'L); 568 qotoxri 4 , l b ) i write (prel-b~f~P-k-3);

570 qotoxvl 4,lE); write (preq-buf,P-R-5); 57 1 qotoxv( 4,191; urite (preg-buf ,P-R-6); 572 qotoxv( 4,201; write (preq-buf,P-R-7);

563 gotow( 4,171; urite (prel-buf ,P-R-4);

573 gotoxy( 4,211; write (preg-buf,P-h-8); 574 gotow( 4,22); write (preq-buf,P-R-9) 575 END 576 END 577 END; { escribe datos, 3 578 579 580 PROCEDURE bajas;

Page 104: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Pagt 11

581 i 582 healiill o no l u Baja dol Heactivo que se l e p i d Q a 583 3

585 i : integer; %A PEGIH 507 sique := 'S ' ; 588 WHILE sique IN si DO 589 BEGIN 590 sigue := 'N'; S9 1 lihpia-buffs; 592 clrscr; 593 gotoxY(30t 2 ) ; 594 uriteln ('BAJA DE REISCTIVOS'); 595 FOR i := 1 TO 80 DO 596 write('-'); 597 pantalla-1; 598 escribe-datos; 599 IF NOT band THEN 600 BEGIN 60 1 IF status = O THEN 602 BEGIN 603 prequntrl.( 8 ) I 604 I F resp IN si THEN bo5 BEGIN 606 607 i Baja del registro 1 608

610 IF status O O THEN 61 1 writeln ('No se pudo realizar la Baja en HEISC, Status = ',status); 612 613 prec-keyanumber := reac-buf.numero; 614 status := BTRIEUE (B_DEL,prec_posaSThRTtprrc_bufaST~TIprec_key,STAFtTt0); 615 IF status <> O THEN 616 writeln ('No se pudo realizar la Baja en PREC, St-atus = ',status); bi7 CASE rea-buf ,tgreg OF 618 'N' : status := BTRIEVE (B_DEL,prer_posaSThKTtprer_buf ,START,prea-

620 'L' : PEGIH 621 status := BThIEVE (b_~EL,prer-pos,STARTRT ,prer_buf ,START , p rm 622 -key,SThHT,O); 623 status := BTFIEVE (E_DE?,F'r.ef_Cos,STA~T,prei-buf,STAR'T,p~el 624 -key.STARTrO) 625 END; 626 'G' : BEGIN 627 status := ETK'IEVE (B_DELtpreac-pas,STttRTrpr.em_tuftSTnRT,pror 628 -kev.SThRT,O); 629 status := BTRIEUE (B-I~EL,prel_postSThRT,prrl_buf,STARTtprel 630 _kev.SThRT , O ) ; 63 1 status := BTRIEUE (E_DELtpreg_postSThRT,preg_buf,STARTtpreg 632 -key ,START , O ) 633 END 634 END ; 635 636 rex-key mmber := reac-buf ,numew;

638 IF status <> O THEN

5 ~ 4 vnb

609 status := BTRIEUE (P_DEL,~.uc-pus,STAHT,reac_buf ,START,reac_keytSThRT,O);

619 keYaSTARTr0);

b37 status := BTRIEUE (B_DELlresc_pos.STARiT,resc_bufaST~Ttresc-keyaSTISRTt~);

Page 105: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Paq, 12

uriteln ('No se pudo realizar la Baja en FiESC, Status = ' , s tatus) ;

status ;= ETRIEUE (B_DELrresl_pos,ST~RT,rcrsl_buf ,STAkT,re5l-keytSThRT,O); IF reac-buf I t-resp = 'L' THEN

refc-key,nukber := reac-buf ,rlumeroi status := BTRIEUE (6-~~EL,refc_postSTRFiT,refc_buf,SThfiT,refc_key,START,O); IF status O O THEN

writeln ('No se pudo realizar la baja en REFC, Status = ' ,status); CASE reac-buf ,t-rebi OF

'H' : status := 6TRIEVE (B-DEL,refr_pos,STAHT,refr-buftSThRT,refa_

'G' ; BEGIN status := BTRIEVE (B_DELlrefr_pos,SThRTrrefr_buftSl~RT,refa

status := BTRIEVE (B_DEL,refg_po.j,START,refq_buf,SThf(T,refg

END

639 6 40 64 1 642 643 644 645 646 647 648 649 key,STARTtO); 650 651 652 -key+SThHT,O); 653 654 -key+SThRT,O) 655 656 END 657 658 END 659 END; C stotus = O 1 660 pregunta( 9 1 661 END 662 END 663 END; { baja, 1 664 665 666 PROCEDURE encobemdo( IIUR : inteqer 1; 667 < 668 Encabezados pura cada unb de 105 Pantallas de Hodificacian de Reoctivos, 669 > 670 BEGIN 671 limpia; 672 qotoXy( 1, 7 ) ; 673 ChSE nub OF 674 1 : BEGIN 675 urite ('Tipo de Pregunta '1; 676 qotoxy(25, 7); 677 write ('Descr, ; '); 678 qotoxy (29,121 ; 679 . urite ('Enunciado de l a Pregunta,'); 680 END; 68 1 2 : urite ('Enunciado de l a Respuesta correttu, ' ) ; 682 3 ; urite ('Respuesto Incorrecta No, 1, ' ) ; 683 4 : write ('Respuesta Incorrecta No, 2,'); 684 5 : write ('Respuesto Incorrecto No, 3,'); 605 6 : write ('Respuesta Incorrecta No, 4,');

682 8 : BEGIN 680 urite ('Tipo de Pregunta '1;

690 urite ('Descr, : ' 69 1 END; 692 9 : BEGIN 693 gotoxY(29,12); 694 urite ('Enunciado de la Pregunta,') 695 R I D 696 END { CASE >

606 7 ; write ('Referencia bibliografica,');

689 gotoxY(251 7);

Page 106: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

F a y , 13

677 END; { encabezado, 3 . 698 699

701 C Caabiast 1 702 703 704 PROCEDURE cabe& 705 .C 7 0 t Imprime e l encabezado de cada hoja del ecaaen* 707 3 708 BEGIN 709 nun-hoja := nur-hoja t 1; 710 writeln (1st);

712 ; 713 writeln(lst1; 714 conk-renq := 4 715 END; cabezat 1 716 717 718 PROCEDURE verifica-renglon; 719 C 720 Da o no el Salto de hojat 721 1 722 BEGIN 723 IF cont-reng > LIn-HOJh THEN 724 BEGIN 725 write(ldtHOJ4); 726 cabeza 727 END 728 ELSE 729 cont-rey := cont-renq t 1 730 END; C verifica renglon. 1 733. 732 733 FUNCTION v a c i d t ipo : integer 1: boolean; 734 c 735 Funcion que ertcueritra o no vacio el registro. 736 1 737 BEGIN 738 vacio := false; 739 CASE t ipo OF 740 1 : IF red-buf *r-r-2 = ' 741 vacio := true; 742 2 : I F resl-buftril-r2 = ' 743 vrlcio := true; 744 3 ; IF red-buf ,ri2-r2 = ' 745 vacio := true; 746 4 : I F resl-buf.ri3-r? = ' 747 vacio := true; 740 5 : IF red -buf 'ri4-r2 = ' 749 vacio := true; 750 6 : IF prel-buf.p-r-4 = ' 751 ' THEN 752 vacio := true;

754 ' THEN

700 CbI h:PRO-ChtW.PhS 3 C hrrhivo en el que se encuentra la Rutina : 1

711 writeln(l5tl' NonBRE ____________________________ Nu+ de Ex+',cont_exar:3,' No, de Ho,ja+'lnur-ho,ja:3)

753 7 : IF preg-buf.p-r-6 = '

' THEN

' THEN

' THEN

' THEN

' THEN

Page 107: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

755 vacio := true; 756 8 : IF preg-buf,p-r-7 = 757 ' THEN T& vacicr := true; 759 9 : IF preg-buf,p-r-8 = ' 760 THEN 761 vacio := true; 7 62 10 : IF preg-buf+p-r-9 = ' 763 ' THEN 764 vacia := true;

766 THEN 767 vacio := true 768 ENQ { CASE 3 769 END; C vacio, 3 770 771 772 C$I A:PRO-SINCtPAS 1 773 774 775 776 777 C1I h:PRO-INCI,P& 3 778 779 780 781 C$I A:FkO-EXAH,PAS 1 782 783 784 785 786 787 788 <$I A:PRO-COlI,Pffi 3 789 79 O 791 792 CSI h~PkO-~ENU~MS 3 793 794 795 794 797 PROCLDURE verif-driv; 798 C 799 Verifica que en e l Drive B se encuentre e l Iiiskette con los Archivosb 800 1 801 Vf% SO? ok : boolean; 893 carctr : char; 804 BEGIN

EO6 write ( ' EASE DE DATOS PARA LA ELAEDRhCION DE EXAHEHES DE CERTIFICACIOW'):

808 write ('Introduzca en e l Drive B el Diskette con 105 ttRCHIVOS del Sisterti,');

810 write ( ' Teclee < L > cuando este listo,'); 811 REPEAT 812 carctr := ' ';

765 11 : IF refg-buf ,rebi-r4 = '

805 gotoxrl 7 , 5);

807 qOtOXy( 7711);

809 q o t 0 ~ ~ ( 1 0 , 1 4 ) ;

C Archivo en e l que se encuentran las Rutinas: 3 C tipo-ref, t i p o - b i b l , r c 0 , i l 0 , i 2 0 , i 3 0 , 1 C i 4 0 , 3

C Archivo en e l que se encuentra l a Rutina : 3 C incisos, 1

C Archivo en e l que se encuentran las Rutinas: 1 { lirpia-variables, precauciones, prueba-irpre-1 C sion, presmtacion, encabezado, verifica-ren-3 I qlon, escribe-preguntar prepara-terporal, ir-) C prire-respuesta, todos-falsos, 1

C Archivo en e l que se encuentran las Ruiinos: 3 I reacgant, reac-irpr, consult^^^, 1

C Archivo en e l que se encuentran las Rutinas: 1 I alqun-tera, consul-tera, cosul-reac, consul- 1 C tas , re~c t ivos , menu-prin, 3

I

Page 108: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

' );

813 REPEAT 814 read(KBD,cur.ctr) 815 UNTIL upcasetcorctr) = 'L';

817 urite 0 818 hSSIGN(Archlempr'b:RESP,EXA'); 819 <$I-3 FiESET(4rchTery) {SI+) ; 820 ok := (Ilrresult = O ) ; 821 IF NOT ok THEN 822 BEGIN 623 write ( BEEF 1 ; 824 qotoxY(l0,20); 825 write ('ERROR EN LA UNIDAD B, VERIFIQUE POR FAVOR QUE EN EL DRIVE R'); 826 qotoxy(10,2?); 827 write ( ' SE ENCUENTREN LOS hF;CHIUOS DEL SISTEHA, ' 1; 828 gotoxy(10,24); 829 write ( ' Teclee < L > cuando este listo, ') 830 END 831 M I L ok 832 END; C verif driv, 1 833 834 835 836 BEGIN C Comienza Prograru Principol, 1 837 s i := C'S','s'l; 838 no := E'N'r'n'I; 839 nuBero5 := C'O',,'Yr' ' I ;

841 nureros; 842 clrscr ; 843 verif-driv; 844 clrscr;

846 uritelnl 'Un momento por Favor , , Preparando Archivos, '1 ; 847 abre-archivo;

849 limpia-buffs; 850 renu-prin 851 UNTIL r o v l = ESC; 852 c l r m

854

816 q 0 t 0 ~ ~ ( 1 0 ~ 1 4 ) ;

840 d,3to_vt3lido := ~'Q',+'~'~'A',,'~'~';'~'~'~','~',','?','-'~' '?'$'~"'',lt','='r'/','~',' ',",'!'p'*','#'] +

845 qotoxvli5r15);

848 REPEAT

853 END, C Termiha Progrura Principal, 3

Page 109: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

A:\PKO-SItiC,PhS

1 PROCEDURE t ipo- re f ; 2 c 3 Da la l l a v e de los Archivos de Referencia E ib l ioqraf ica segun seu e l 4 CUSO,

5 3 6 BEGIN 7 CASE reac-buf ,t-rebi OF 8 9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 20 29 30 31 32 33 34 3s 36 37 38 39 40 41 42 43 44 EKE C CASE 1 45 ENb; C t i p o r e f I 46 47 48 PROCEDURE t ipo-b ib l ; 49 c

‘C’ : kEGIN refc-buf ,nu-re := reoc-buf +numero; refc-key,nurber := reac-buf,numero; status. := BTRIEVE (E_FIND,refc-pos,SThRTtr~fc_tuf ,STAKT,refc-key,START,O); IF status <> O THEN

u r i t e 0 N o se encontro l a REFC,‘) END ;

/ / , H e BEGIN refc-buf ,nuere := reoc-buf +numero; refc-key,nurber := rwc-buf ,numero; status := BTRIEUE (B-FINIltrefc-pos,SThRTtrefc_buftSTMITtrefc-key,STAF\Tt0); IF s ta tus 0 O THEN

re f r -bu f ,nu-reci := r e x - b u f ,numero; refr-keytnunber := reuc-buf,numero; s ta tus := BTRIEUE (E-FINBtrefa_pos,STAKT,refm_buftSTAhT,refr-key,STAKTt0);

write(’No se encontro la REFC,’);

- - IF status <> O THEN

urite(’No se encontro l a REFH,‘) END ;

‘ I , G t BEGIN refc-buf m - r e := reac-buf,numero; r e f c - k e y m r b e r := rwc-bu f ,numero; s t a t u s := BTKIEUE (E-FINDtrefc_pos,STAKTtrefc_buf,STMiTt IF s ta tus 0 O THEN

ref r -buf ,nu-rea := reac-buf ,rluaero; refr_key,nulbber := reuc-bufanumero; s ta tus := ETRIEUE (E-FINBtrefs-pos,STAFtT,refu-buf ,SThKTt IF stcltus <> O THEN

wi te ( ’No se encontro l a HEFHt’); refg-buf,nu-reac := reac-buf macro; refq-kry+number := r e a c - h f ,numero;

w r i t e 0 N o se encontro l a REFC,’);

strltus := BTKIEUE (B-FIND,refq-pos,SThHT,refq_buf,STMtTtrefg_kev.STnKT,O); I F s t a t u s 0 O THEN

write(’No se encontro la REFH,’) EN!’

50 Segun e l t i p o de l ong i tud que tengrl la EiB l iogra f ia , se escribe en el 51 Archivo temporal , 52 1 53 BEGIN 54 CASE reac-buf,t-rebi OF

56 55 ‘C’ : ur i te ln(ArchTerpt ’ ‘ t refc-buf,rebi-r l ) ;

57 w r i t e l n MrchTemp , ’ ’trefc-buf,rebi-rl); 58 writeln(ArchTemp ’ ‘ t re f~-buf ‘ , reb i - r2)

‘ 1 , H * BEGIN

Page 110: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

59 END ; 60 'G' ; BEGIN 61 writeln(hrchleplpr' 'rrefc-buf,rebi-rl)f 62 writeln(ArchTebpr' ',refa_buf,rebi_r2); 63 writeln(hrchTeapr' ',refg_buf,rebi_r3); 64 IF NOT vacid 11 THEN 65 writeln(ArchTebp,' ',refq-buf ,rebi-r4) 66 END 67 END 68 END; C tipü bibl, 3 69 70 71 PkOCWURE r d x : char 1; 72 C 73 La respuesta correcta 5e encuentra en el inciso X, 74 3 75 BEGIN 76 uriteln(ArchTer~,cont_preg:3,'( Jpxp'*'); 77 tipo-bibl; 78 wrif ica-renqlon; 79 writeln(lst,' ',x,') ( 1 ',resc-buf+r-r-l); 00 IF NOT vucid 1 1 THEN a1 BEGIN 02 verifica-renglon; 83 writeln(lst,' ',resl-buf+r-r-2) 04 END 85 END; I r c 0 , 1 06

88 PHOCEDUkE il( x : char t ; 89 C 90 La respuesta incorrecta 1 se encuentra en el inciso x t 91 3 92 BEGIN 93 verifica-renqlon; 94 writeln(lst,' 'ix,') ( 1 ',resc-buf+ril-rl); 95 IF NOT vacio( 2 1 =EN 96 BEGIN

90 writeln(lst,' ',resl-buf.ril-r2) 99 END

100 END; i l 0 3 101 102 103 PROCED1IKE i2( x ; char 1; 104 C 105 La respuesta incorrect11 2 se encuentra en el inciso x, 106 3 107 BEGIN 108 verifica-renqlon; 109 writeln(lst,' 'ixr') ( ) 'rresc-buftri2-rl); 110 IF NOT vacid 3 f THEN 111 BEGIN 112 verifica-renqlon; 113 uriteln(lstiJ ' , red-buf e ri2-r2) 114 END 115 END: C i2 a b 3 I16

a7

37 verifica-renqlon;

Page 111: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

117 118 PROCEEIURE i3( x : char 1; 119 C 120 La respuesta incorrrctu 3 se encuentra en el inciso x, 121 1 122 BEGIN 123 verifica-renqlon; 124 writeln(lst,’ ’,x,’) ( 1 ’,resc-buf*riJ-rl); 125 IF NClT vacio( 4 1 THEN 126 BEGIN 127 verifica-renqlon; 128 uriteltdlst,’ ’,resl-buf ,ri3-r2) 129 END 130 END; C i 3 0 , 3 131 132 133 PROCEDWE i4( x : char 1: 134 C 135 La respuesta incorrecta 4 se encuentro en el inciso x, 136 3 137 BEGIN 138 verif ica-renqlon: 139 writeln(lst,’ ’,x,’) ( 1 ’rresc-buf,ri4-rl); 140 IF NOT vacio( 5 1 THEN 141 BE61 N 142 verif ica-tenqlon; 143 writeln(lstr’ ’ ,resl-buf ,ri4-r21 144 END 145 END; C i 4 0 4 1 146

Page 112: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 113: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

P i e n s o q u e 1 os r e s u l t a d o s o b t e n i d o s e n 1 a el a b o r a c i 6 n d e l sistema se cumplieron , ya que todos 1 os objetivos p l a n t e a d o s p o r los a s e s o r e s se l o g r a r o n .

C a b e h a c e r n o t a r q u e e n P r o y e c t o I hubo muchos problemas en l a o b t e n c i 6 n de l a i n f o r m a c i 6 n C se p e r d i 6 mucho tiempo 3 y problemas en l a f a m i l i a r i z a c i 6 n c o n el u s o d e Turbo Pascal y B t r i e v e - X t r i e v e p o r los p r o b l e m a s s u r g i d o s d u r a n t e el d e s a r r o l l o d e l mismo.

E s t a si t u a c i 6 n todavl a se p r e s e n t 6 al f i n a l d e l P r o y e c t o I1 por q u e el NQmero d e Reactivo l o h a b l a d e f i n i d o de t i p o c a r a c t e r d a d o q u e ya t e n l a l a r u t i n a de l e c t u r a y a c t u a l izaci 6n. El problema l o n o t & h a s t a c u a n d o q u i s e " c o r r e r 'I 1 as G l ti mas p a r t e s C 1 i stado g e n e r a l y l i s t a d o de temas 3 y a q u e e n & s t a s p a r t e s , n e c e s i t a b a q u e e s t u v i e r a n los A r c h i v o s s o r t e a d o s como yo pensaba. en forma a s c e n d e n t e , pero e n l a rutina da l e c t u r a c o n c a r a c t e r e s , yo l e af'iado el c a r a c t e r O C chrCO3 3 y l a forma en que me l o ordenaba B t r i e v e e r a 1 , l O , l l , 1 2 , . . . , 19 ,8 ,20 ,21 D 2 2 . . . . ,30,4,5,6,7,8.0, q u e n o e r a l o que yo n e c e s i t a b a .

El problema se s o l u c i o n 6 d e f i n i e n d o e n todos 1 os Archi vos el NQmero de R e a c t i v o como e n t e r o y e n mi r u t i n a de l e c t u r a q u e despu&s de val I dar el c a r a c t e r n u d r i c o , lo c o n v i r t i e r a e n nQmero.

En c u a n t o a i n v e s t i g a c i 6 n B el Si stem maneja un t i p o d e i n t e r r u p c i 6 n a l si stem o p e r a t i v o d e Entrada/Sal i d a p a r a s a b e r si el D i s k e t t e d e A r c h i v o s d e l Sistema, se e n c u e n t r a e n l a unidad correspondiente. Quise tambi&n manejar los p o s i b l e s e r r o r . e s q u e s u r g i e r a n d e l Sistema O p e r a t i v o DO6. como s e r l a n , el que el d r i v e n o e s t u v i e r a l i s t o p a r a l e e r el diskette 6 que l a impresora t u v i e r a p a p e l y q u e e s t u v i e r a e n 11 nea , p e r o d e 1 o poco que me d i 6 tiempo d e i n v e s t i g a r , no l o p u d e e n c o n t r a r .

Tambi&n n e c e s i t o h a c e r n o t a r q u e me hubiera gustado poder termi nar el sistema h a s t a los objetivos q u e yo deseaba C y a h a b i e n d o c u b i e r t o los d e los a s e s o r e s 3 , pero esto no se pudo 1 l e v a r a cabo por dos r a z o n e s : E l d e d i c a r nds t iempo del p r o y e c t o a 1 a e x p o s i c i 6 n del p r o y e c t o y a l a f a l t a d e c a p a c i d a d de memoria d e al ndquina C 256 K 3 , y a q u e como se e n c u e n t r a el c6digo objeto a h o r i t a , es casi l a ndxima c a p a c i d a d d e c6digo a l a que me dej6 t r a b a j a r 1 a mAqui na.

14

Page 114: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

CONCLUSIONES.

El Sistema se pudo lograr gracias a un buen Analí sis y Di seKo del Si stem en papel primero y , 1 uego vi endo l o s problemas que surgieron, modificAndolo sobre l a marcha.

Este Sistema sirve para realizar cualquier t ipo d e Examen parecido a los requerimientos del € A m e n d e C e r t i f i c a c i 6 n . Ya que t r a t & d e optimizar y c l a r i f i c a r todo el cbdigo pensando e n l a posibilidad de utilizarlo para otros tipos de eamenes. Los cambios que habrl a que hacer no son muy complicados y vi endo el c6di go son senci 1 1 os.

Casi todos los procedimientos estan bien documentados para s u f k l l l e c t u r a y comprensibn por l o que hace al Sistema mas accesí bl e y f 1 exí bl e.

15

Page 115: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

BI BLI OGRAFI A.

- Btrieve. Version 3.O.September 1984. User’s Guide. pp. 2 . 4 a 2.Q, 3 . 3 a 3.5, 4 . 1 3 , cap. S, appendix B.

- Xtrieve. Version l . OO. September 1884. User * S Guide. section 3, section 4 , s e c t i o n S, appendix E.

- Turbopascal Reference Manual. Borl and. pp. Chap. 1 , Chap. 14 , Chap. 16, appendix C . appendix G.

- Notas del curso: Analisis y d i seKo de Sistemas d e Computaci6n.

PAQUETES UTI L1-a

- GEM. Para l a elaboraci6n d e d i a g r a m s , t a b l a s y figuras.

- CHIWRITER. Para la elnboraci6n del Manual.

- STOaYBOARD. Para l a p a n t a l l a d e presentaci6n y fin del Proyecto.

16

Page 116: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 117: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 118: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.
Page 119: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

MANUAL DEL USUARIO

Page 120: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

MANUAL DEL USUARIO

NOMBRE PROGRAMA.

B a s e d e D a t o s p a r a l a el a b o r a c i 6 n d e e x a m e n e s d e C e r t i f i c a c i 6 n d e l C o n s e j o Naci o n a l d e Neumo.1 ogi a .

DESCRI PC1 ON.

E s t e Sistema r e a l i z a l a m a y o r l a d e los p r o c e d i m i e n t o s p a r a l l e v a r a cabo l a e l a b o r a c i 6 n d e los ExAmenes d e C e r t i f i c a c í 6 n d e l C o n s e j o N a c i o n a l d e N e u m o l o g l a , tales como s o n :

- P r o c e d í m i e n t o d e j u n t a r 1 as p r e g u n t a s r e a l i z a d a s p o r cada uno d e 1 os m i e m b r o s d e l C o n s e j o C Alta d e p r e g u n t a s > .

- M o d i f i c a c i 6 n d e p r e g u n t a s C M o d i f i c a c i d n y C o n s u l t a d e p r e g u n t a s 3 .

- Rechazo d e p r e g u n t a s q u e n o s i r v a n p o r p a r t e d e l C o n s e j o C B a j a d e p r e g u n t a s p r e v i a c o n s u l t a y a p r o b a c i 6 n >.

- ~ l a b o r a c i d n d e ExAmenes C c o n menor p a r t i c i p a c i d n por p a r t e d e p e r s o n a s 3 .

- No existe l a n e c e s i d a d d e r e v i s a r l a c o r r e s p o n d e n c i a d e l a p r e g u n t a c o n l a r e s p u e s t a c o r r e c t a , el sistema d a r & l a r e s p u e s t a c o r r e c t a si &Sta f u e d a d a d e a l t a c o r r e c t a m e n t e e n el proceso d e al t a .

SUPOSICIONES HECHAS POR E L PROGRAMA.

P a r a el b u e n f u n c i o n a m i e n t o d e l Sistema, se n e c e s i t a mas q u e nada un m a n e j o norma2 y n o p e n s a r q u e es una cosa muy d í f f c i l , a l c o n t r a r i o , el Sistema se h i z o c o n el f i n d e f a c i l i t a r s u u s o y d e p r e v e e r todos 1 os casos p o s i h l e s posibles d e e r r o r p e q u e K o s .

E l Sistema c u e n t a p a r a s u f i c i l u s o c o n u n a s e r i e d e menús q u e s i m p l i f i c a n s u u s o y una s e r i e d e avisos d e s e g u i m i e n t o y d e p r e c a u c i 6 n p a r a e v i t a r dol ores de cabeza a l u s u a r i o f i n a l .

Una d e l a s cosas q u e ya d e b e n e s t a r l istas para poder manejar por p r i m e r a vez el Sistema es q u e ya se t e n g a n t o d o s los REACTIVOS C e n t i e n d a s e p o r Reacti vo a l c o n j u n t o f o r m a d o p o r el E n u n c í a d o d e 1 a P r e g u n t a , el e n u n c i a d o d e c a d a u n a d e l a s r e s p u e s t a s - una c o r r e c t a y c u a t r o i n c o r r e c t a s -, l a r e f e r e n c i a b i b l i o g r a f i c a d e l a p r e g u n t a y el tema al q u e p e r t e n e c e d i c h a p r e g u n t a > numerados, es d e c i r , q u e a c a d a p r e g u n t a le c o r r e s p o n d a un nrimero y q u e c o n t e n g a toda l a i n f o r m a c i 6 n q u e d e b a t e n e r . Sí no es as1 , el Sistema l e m a n d a r d m e n s a j e s d e e r r o r p o r n o h a b e r p r e v i s t o estas s i t u a c i o n e s c o n a n t e r i o r i d a d .

2

Page 121: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

ENTRADAS.

En esta p a r t e t r a t a r & d e dar un s e g u i m i e n t o g e n e r a l d e l S i s t e m a manejando l a s p a n t a l 1 a s q u e a p r e c e r í a n e n l a mayorí a d e los c a s o s .

Para el P r o c e s o d e reactivos :

a) Opci6n d e e n t r a d a a cada uno de los M6dulos c o r r e s p o n d i e n t e s C A l t a s . B a j a s , C a m b i o s 6 C o n s u l t a s > 1 a cual puede ser Numerica C 1 , 2, 3 6 4 3 .

Para el s u b - p r o c e s o d e a l t a d e reactlvos t

a >

b >

c . ?

d >

Número d e Reactivo a dar d e Al t a . E s t e nClmero es el que v a s e r v i r como f d e n t i f i c a d o r por el sistema para conocer q u e p r e g u n t a , r e s p u e s t a s , r e f e r e n c i a y tema l e c o r r e s p o n d e . E l mAxIm0 nQmero que se permi ti ría s e r í a 899 y el m í n i m o l.

NClmero d e Tema a l q u e p e r t e n e c e el R e a c t i v o . Si el ti PO d e tema es un tema nuevo, tambibn se dar& como e n t r a d a , l a d e s c r i p c i 6 n d e l Tema nuevo.

E l e n u n c i a d o d e l a pregunta, que puede constar hasta de 657 c a r a c t e r e s . SI no se l l e g a n a usar todos los r e n g l o n e s q u e se d e f i n i e r o n c o n este prop6sIt.0, se o p r i m i r & l a t e c l a ESC para que sea un r e n g l 6 n v a c l o .

E l e n u n c i a d o d e l a r e s p u e s t a , q u e p u e d e c o n s t a r h a s t a d e 130 c a r a c t e r e s r e p a r t i d o s e n dos r e n g l o n e s .

e 3 E l e n u n c i a d o d e l a R e f e r e n c i a B i b l i o g r i f i c a , el c u a l p u e d e c o n s t a r h a s t a d e 280 c a r a c t e r e s r e p a r t i d o s e n c u a t r o r e n g l o n e s .

f .? Opci6n d e s e g u i r d e n t r o d e l sub-proceso.

Para el sub-proceso de baja de reactivos :

a .? E l Número d e R e a c t i v o a dar d e b a j a , y j u n t o , o p c i 6 n de a s e g u r a m i e n t o d e s e r el r e a c t i v o a dar d e b a j a .

b 3 Opci6n d e s e g u i r d e n t r o d e l sub-proceso.

Para el sub-proceso d e m d l f i c a c l 6 n d e r e a c t l v o s :

a >

b.?

E l Número de Reactivo a m o d i f i c a r a d e d s d e l a o p c i 6 n de cuA1 es l a par t e que se q u i e r e m o d i f i c a r d e l Reacti vo y , s e g ú n s e a el caso, c a p t u r a d e l a modif i c a c i d n d e un modo casi i d e n t i c o a l sub-proceso de a l t a s C e n t r a r í a n e n &Sta p a r t e todos los parametros d e Entrada que hubo en el s u b - p r o c e s o d e a l t a d e r a c t i v o s 3 .

Opci6n d e s e g u i r adentro del sub-proceso.

3

Page 122: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Para el sub-proceso d e c o n s u l t a dw r e a c t i v o s :

Q > El Número d e R e a c t i v o a c o n s u l t a r .

b > O p c i 6 n d e modo d e s a l i da C p a n t a l 1 a o impresora D.

c 3 O p c i d n d e s e g u i r d e n t r o d e l s u b - p r o c e s o .

P a r a el p r o c e s o d e Elaboracibn de Examenes :

a 3 N6mero d e ExAmenes a r e a l i z a r C e n t r e 1 y 89 3 .

P a r a el p r o c e s o d e L i s t a d o de Temas :

a > V e r i f i c a c i d n de l a orden dada.

P a r a el p r o c e s o d e L i s t a d o General :

a > V e r i f i c a c i d n d e l a orden dada.

NOTA : Toda opci6n de entrada de daton, t ieno una opci6n & oaLida, que generaLmente eo oprimiendo La LocLa < EsC > e n caso de que no se deoee roaLizar Lo que ne h a b l a pedido. Esto no es para crqu&LLoo campos en Loo c u a ~ o c ae n e c e s i t a tener informaci6n necesariamente, como es, el tipo d e tema do La pregunta, al primer rengL6n deL enunciado do L a pregunta, eL primer- rengL6n de La cada una do L a s respuestas, 01 primer rongt6n de La referencia bibLiogrAfica y, e n s u CMO, La doscripcibn de un tipo de tema de pregunta nuevo.

A c o n t i n u a c i 6 n se mostraran a l gunas d e 1 as p a n t a l las m& i mpor t a n t e s d e n t r o del Si stema.

Los s i g u i e n t e s l e t r e r o s a p a r e c e r a n c u a n d o el S i s t e m a a u t o - c a r g u e el Manejador d e I n f o r m a c i h u s a d o p o r el Sistema.

A: b t r i eve

Btr i eve Record Manager

V e r s i o n 3 . 1 4 C o p y r i g h t Cc3 1 9 8 2 , 8 3 , 8 4 S o f t c r a f t , I n c .

1981 7 bytes used

4

Page 123: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

La primer p a n t a l l a en la q u e i n t e r a r t ú a el u s u s a r i o es en 1 a si g u i e n t e :

BASE DE DATOS PARA LA ELABOKACION DE EXAMENES DE CERTIFICACION

I n t r o d u z c a e n el D r i v e B el D i s k e t t e c o n los ARCHIVOS d e l Sistema.

T e c l e e < L > cuando este l i s t o .

E l u s u a r i o d e b e r & i n s e r t a r e n el D r i v e B el d i s k e t t e q u e d i c e ARCHIVOS PARA EXAMENES, el c u a l c o n t i e n e los Archi vos p a r a el manejo d e r e a c t i v o s por el Sistema.

Si no hubo problemas, el Sistema responder& con el s i g u i e n t e

l e t r e r o :

Un momento por Favor . . . Preparando Archivos.

Page 124: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

En s e g u i d a aparecerA la s i a u l ente pantalla, 1 a cual es la principal de todo el Sistema :

Si stem d e B a s e d e Datos r e f e r e n t e a l examen d e C e r t i f i c a c i o n d e l

C o n s e j o Naci a n a l d e Neumol ogi a .

Se1 e c c i o n e l a opci on deseada : -

1 3 C a t a 1 ogo d e Reacti vos.

2 3 El a b o r a c l on de Examenes.

3 3 L i s t a d o d e los Temas.

4 3 L i s t a d o d e todos los R e a c t i v o s .

Oprima <ESC> para terminar.

Page 125: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Dependiendo d e l a opci 61-1 e l e g i d a , aparecerAn otras p a n t a l l a s . Si 1 o q u e se el igi6 f u& el Cata1 ogo de Reacti vos, a p a r e c e r a l a si gui ente pantal 1 a :

CATALOGO DE REACTIVOS.

S e l e c c i o n e l a opcion deseada : -

1 3 A l t a de Reactivos.

2 3 Baja d e Reactivos.

3 > ModificacAon de Reactivos.

4 3 Consulta de Reacti vos.

Oprima <ESC> para terminar.

7

Page 126: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

De este submenú seguirdn las si g u í e n t e p a n t a l las para cada

caso:

Para la Alta de Reacti vos :

ALTA DE REACTIVOS ~~~

Pregunta Numero C - 3

T e c l e e el dato pedido. < E X > para dato n u l o .

8

Page 127: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Para la B ~ J - de reactivos :

BAJA E REACTIVOS

Pregunta Numero t - 3

Teclee el dato pedido. <ESC> para dato n u l o.

Page 128: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

P a r a 12. Modif i c a c i b n d e Reacti vos :

MODI FI CACI ON DE REACTI. VOS

~~ ~

P r e g u n t a Numero I - I

T e c l e e el dato pedido. < E X > para d a t o n u l o .

10

Page 129: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

CONSULTA DE REACTIVOS

Pregunta Numero C - I

Teclee el dato pedido. < E X > para dato nul o.

Page 130: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

ELABORACI ON DE EXAMENES

Cuantos examenes se van a elaborar ? C - 3

Teclee el dato pedido. <ESO para dato n u l o.

12

Page 131: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

ELABORACI ON DE EXAMENES

- A s e g u r e s e d e q u e l a I m p r e s o r a este e n c e n d i d a y e n l i n e a .

Oprima < L > c u a n d o este l isto.

Y d e s p Q e s el sigui e n t e 1 e t r e r o :

- A s e g u r e s e d e q u a exista el papel s u f i c i e n t e p a r a i m p r i m i r l a

c a n t i d a d d e e x a m e n e s q u e se p i d i o .

1 3

Page 132: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

LISTADO DE TEMAS

Verifique q u e l a Impresora este l i s t a .

Oprima <C> para continuar. Cualquier otra para regresar.

14

Page 133: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

LISTADO DE TODaS LOS REACTIVOS

V e r i f i q u e q u e l a I m p r e s o r a este l i s t a .

Oprima <C> para cont.inuar . Cual qui er o t r a p a r a r e g r e s a r .

E s t a s f u e r o n 1 as p r i n c i p a l es p a n t a l 1 as q u e se p r e s e n t a n a t r a v & s

d e l u s o d e l sistema.

15

Page 134: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

En r e s p u e s t a a los d a t o s d a d o s d e E n t r a d a u d e l p r o c e s o q u e se est& r e a l i z a n d o , el s i s t e m a p r e s e n t a d i s t i n t a s s a l i d a s :

- En los s u b - p r o c e s o s d e A l t a , B a j a , M o d i f i c a c i 6 n y C o n s u l t a s d e R e a c t i v o s , p r e g u n t a r a p o r l a r e p e t i c i b n del p r o c e s o p a r a o t r o Reactivo, lo c u a l i n d i c a , q u e se o b t u v o & x i to e n l a o p e r a c i b n r e a l i z a d a .

- En los p r o c e s o s d e l i s t a d o s , los l istados mismos.

CONDI CI ONES DA ERROR.

En g e n e r a l , 1 as c o n d i c i o n e s d e e r r o r s o n p o c a s . En un p r i n c i p i o uno d e 1 os m e n s a j e s d e e r r o r q u e a p a r e c e n e n el sistema es :

ERROR EN LA UN1 DAD B. VERIFIQUE POR FAVOR QUE EN EL DRIVE B

SE ENCUENTREN LOS ARCH1 V O S DEL S I S T E M A .

Teclee < L > c u a n d o este l i s t o .

E s t e e r r o r se or i g i n a d e b i d o a q u e e n el D r i v e B NO SE ENCUENTRA EL DISKETTE QUE CONTIENE ARCHIVOS CON EXTENSION . BTR QUE SON LOS QUE UI T L I ZA EL SISTEMA, ADEMAS DE UNO TERMI NACI ON . EXA.

D e s p e e s ya sdlo h a b r i e r r o r e s e n l a c a p t u r a d e i n f o r m a c i h . d e 1 os c u a l e s los mAs comunes son :

SOLO CADENAS NUMERICAS

el c u a l se d a r & e n caso d e q u e e n l a c a p t u r a d e un número, se c a p t u r e a l g ú n otro c a r a c t e r .

SOLO CADENAS ALFABETICAS

q u e se d a r & s i , e n un r e n g l 6 n vacio se tecl e6 l a t e c l a <ENTER> e n l u g a r d e o p r i m i r l a t e c l a <ESO p a r a dato n u l o .

16

Page 135: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

Para a c c e s a r el Si s t e m a d e Base de Datos p a r a 1 a e l a b o r a c i h d e ExAmenes d e C e r t i f i c a c i 6 n d e l C o n s e j o ' N a c í o n a l d e N e u m o l o g i a , se d e b e r A i n s e r t a r e n el D r i v e A el D i s k e t t e c o n el Nombre Sistema p a r a E x i m e n e s d e C e r t i f i c a c i h n . y e n el D r i v e B el D i s k e t t e nombrado A r c h i v o s d e l Sistema p a r a ExAmenes d e C e r t i f l c a c i 6 n .

V e r i f i c a n d o q u e se e n c u e n t r e n c o r r e c t a m e n t e los D i s k e t t e s e n 1 os Dri ves , el Si stema podr a a c c e s a r se d e d o s m a n e r a s , 1 a p r i m e r a d i g i t a n d o 1 a p a l a b r a PRESENTA 1 a c u a l d a r & u n a p a n t a l 1 a de p r e s e n t a c l d n y u n a d e t e r m i n a c i 6 n e n el u s o d e l Sistema. L a o t r a f o r m a d e a c c e s a r a l Sistema s e r A d i g i t a n d o l a p a l a b r a EXAMENES, c o n l a cuA1 se e n t r a r a d i r e c t a m e n t e a l Sistema.

DespI3es d e d i gi t a r l a pal a b r a segI3n el caso q u e se d e s e e , se o p r i m i r A l a T e c l a < ENTER >.

Las f o r mas d e s a l i r d e l Sistema y d e s u s p r o c e s o s , 1 as dan 1 os mismos p r o c e s o s y el mismo Sistema.

1 7

Page 136: Dr. Lorenzo Phe2 FernAndez. Dr. Fernando Prieto NernAndez.

MANTEN1 MI ENTO D& PROGRAMA.

Para mayor i n f o r m a c i 6 n a c e r c a d e l uso d e l Sistema, la m o d i f i c a c i 6 n q u e se l e d e s e e h a c e r a l c 6 d i g o o d u d a s s o b r e el mi smo, c o m u n i c a r s e c o n :

Robles Garcia Javier A. Av. Observatorio 299 Col. COVE, Tacubaya. Tel. 5 1 5-67-67.

O b i e n :

An.&& Bello 45, noveno piso. Depto. AnAlisis e Informacidn. Banamex. Tel. 203-íO-94. E x t . l l í 13 1112.

revisi6n no. 1 .