182
DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL LENGUAJE DE PROGRAMACION COBOL. ING.' VICTOR M. LEYVA ALATRISTE SERVICIO POSTAL MEXICANO GERENTE DE DESARROLLO POSTAL NEZAHUALCOYOTL 109 PISO 8 COL. CENTRO . C.P. 06080·MEXICO, D.F. TEL: 709-93-10 ING. ARTURO SANDOVAL ARRIAGA ASESOR INDEPENDIENTE ING. LAURA SANDOVAL MONTAÑO CENTRO DE CALCULO FACULTAD DE INGENIERIA, UNAM JEFE DEPTO. FORMACION Y ACTUALIZACION ACADEMICA CIUDAD UNIVERSITARIA MEX I CO, D. F. TEL: 550-57-34 17 DE MARZO AL 7 DE ABRIL DE 1992 (COORDINADOR) RETORNO 59 # 40 COL: AVANTE C.P. 04460 MEXICO, D.F. TEL: 677-61-85 (DOMICILIO PARTICULAR)

DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL LENGUAJE DE PROGRAMACION COBOL.

ING.' VICTOR M. LEYVA ALATRISTE SERVICIO POSTAL MEXICANO GERENTE DE DESARROLLO POSTAL NEZAHUALCOYOTL 109 PISO 8 COL. CENTRO

. C.P. 06080·MEXICO, D.F. TEL: 709-93-10

ING. ARTURO SANDOVAL ARRIAGA ASESOR INDEPENDIENTE

ING. LAURA SANDOVAL MONTAÑO CENTRO DE CALCULO FACULTAD DE INGENIERIA, UNAM JEFE DEPTO. FORMACION Y ACTUALIZACION ACADEMICA CIUDAD UNIVERSITARIA MEX I CO, D. F. TEL: 550-57-34

17 DE MARZO AL 7 DE ABRIL DE 1992

(COORDINADOR)

RETORNO 59 # 40 COL: AVANTE C.P. 04460 MEXICO, D.F. TEL: 677-61-85 (DOMICILIO PARTICULAR)

~

Page 2: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

•· ••

. .

E V A L U A C I O N D E L PERSONA L. 1

D O C. E N T E

5: 1:'1 z ~ H

1:'1 ClHZ . :>< "l :.0()8 CURSO: INTRODUCCION AL LENGUAJE DE ><H 0:.01:'1

PROGRAMAéiON 1992. c::n - nz

COBOL ' t:1 Cl H. HH o :.Oto:l "lO :S: "" :;:: tnZ :.OZH e: "" H () () to:l z :u z :J><H H()Z 8 o H e: :.o ~g(5 e: :;:: o Cl :>< to:l

Hto:l Cl . t' t:1 t:1 oz :.oso H H to:l <: Cl to:l Cl o t' Hto:l tnt' :>< .

FECHA: 17 de marzo al 7 de. abril tn t'. Cl . Cl 8 e: to:I:J><H

martes y jueves de 17 ·a 21 hrs. to:l :.oc: tnZ sabados.de 10 14 hrs.

:;:: t'tn to:IH8 a :>< to:IO Xtnto:l . tn . 't18:<l Cl :Uto:lto:l to:l t':!Ztn

tn8 Hto:l

.. o m . . z .

.· e o N F E R E N e I S T A

• ING~ VICTOR M. LEYVA ALA TRISTE

2. ~. ING. LAURA SANDOVAL MONTAÑO

3.~ ING. ARTURO SANDOVAL ARRI.AGA .· . . .

.. . . 4.~

..

5.~ ..

.

' . . . . • . .

. ·. . . · . . . . ··~·.· .

.

.

.

. . . '.

'

EVALUACION TOTAL

. :

Page 3: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

.,

E V A L U Á C I O N DE LA E N S E~ A.N Z A 2

e o .8 ::0 G'l H

. G'l G'l t:-<s:!

t:"' CURSO: INTRODUCCION AL LENGUAJE :.- 8$! H

z o o o DE PROGRAMACION COBOL, 1992. H G'lO G'lO :.-

N s;!O .· $! o o :.-O() 00. Ot>J 'ti 'ti t>JH Ot>J o $! ::0 t:-<0 :.- o

' :z: t>l'tl t>J() (} :<: 8 z::o Z>-3 >-3 t>J t>J><: o e H o :<: t>l"l . t>J :.- (} H :.- o. t-<e t"t-< :.- o

FECHA: 17 de marzo al 7 de abril t>J :z: H (/l >-30 >-3N o

martes y jueves de 17 a 21 hrs. :.- l:'lH t>J:OO 1>1 ::0 :<:o ;<:() !:"· sábados de 10 a 14 hrs. ::0 ;..:.- :OOH

--( .• o o o 8-

!:"· :z: 1>1

b :<: ) ;..

. . .

T E M A · .

. .

1 - INTRODUCCION AL PROCESO

ELECTRONICO DE DATOS . .

2 . INTRODUCCION A LA MICROCOMPUTACION .

.. . ' 3.- INTRODlJCCION AL LE;NGUAJE. COBOL .

· . .·

. . . . .. 4.- ELEMENTOS 'DEJ;..LENGUAJE COBOL .

. 5. EJEMPLOS DE APLICACION . .

.. -,- . ___,

.. .. . -. . .

' . . . .

• ·. . . . . . . ··.· ..

-e -,-

.. . : .

.. . . . · ..

~- - .

• ·. . . . .. .

. ' . .

EVALUACION TOTAL

ESCALA DE EVALUÁCIÓN: 1 A ÜÍ

Page 4: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

3

EVALUACION DEL CURSO

)•

e o N e E P T O

l.~ APLICACION INMEDIATA DE LOS CONCEPTOS EXPUESTOS

~

2.- CLARIDAD CON QUE SE EXPUSIERON LOS TEMAS .

3 • .,. . GRADO DE ACTUALIZACION LOGRADO EN EL CUR(>O -

4.- CUMPLIMIENTO DE LOS OBJETÍVOS DEL CURSO ..

1 • . )

... . . .

5.- CONTINUIDAD EN LOS TEMAS DEL CURSO 1 .. ' .

6.- CALIDAD DE LAS NOTAS DEL CURSO .

7.- GRADO DE MOTIVACION LOGRADO EN EL CURSO . .

. .

EVALUACION. TOTAL '

ESCALA DE EVALUACION: 1 A 10

-

Page 5: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

4

1 .- ¿gué le pareció el ambiente en la Divisi6n de Educaci6n Continua?

~!U Y AGRADABLE AGRADABLE DESAGRADABLE

( ) [ . J [· J 2.- Medio de comunicación por él que se enteró del curso:

PERIODICO EXCELSIOR PERIODICO NOVEDADES ANUNCIO TITULADO DI ANUNCIO TITULADO DI·· FOLLETO DEL CURSO - -VISION DE EDUCACION VISION DE EDUCACION CONTINUA CONTINUA

( l ' ( ] [ ] CARTEL MENSUAL RADIO UNIVERSIDAD COMUNICA.CION CARTA,

TELEFONO, VERBAL, ETC.

D D D ·REVISTAS TECNICAS FOLLETO ANUAL CARTELERA UNllM ''LOS GACETA

UNIVERSITARIOS HOY" UNP.M

e ' ( ) ( J D J .

-.

3. -. t1edio de transporte utilizado para· venir al Palacio de M.ineríil: ..

AUTOMOVIL METRO OTRO 11EDIO PARTICULAR e ) ( J l J

4.- ¿Qué cambios haría en el programa para tratar de perfeccionar el curso?

.

personas? ( ) ( ) NO 5.- ¿Recomendaría el curso a otras SI

'1 5. a. ¿Qué. periódico lee con mayor frecuencia? -

Page 6: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

• 5

. . .

•• 6.- GQUe cursos le gustaría que ofreciera 'la División de Educaci6n_Continua?

7.- La coordinación académica fué:

EXCELENTE BUENA REGULAR MALA

1 1

1 1 1 1 1 1 1

1

8.'- Si está interesado en tomar algún curso INTENSIVO ¿cual es el horario más ~onVeniente para usted?

LUNES A VIERNES LUNES A LUNES A MIERCOLES MARTES y JUEVES DE 9 a 13 H. y VIERNES DE Y VIERNES DE DE 18 A 21 H. DE . 14 A 18 H . 17 a 21 H. 18 A 21 H. (CON COMIDAD)

¡--¡ 1 j e-l CJ

VIERNES DE 17 A 21 H. VIERNES DE 17 A 21 H. -OTRO S ABADOS DE 9 A 14 H. SABADOS DE 9 A 13 H.

DE 14 A 18 H. -'-

1 1 1 1 l 1 .. .!

9.- ¿Qué servicios adicionales desearr.a. que ·tuviese la División de Educación Continua, para los asistentes?·

10.- Otras :sqgerencias:

.

.

-

Page 7: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' ....

DIRECTORIO DE ASISTENTES Al CURSO: INTROOUCCION AL LENGUAJE DE PROGRAMACION COBOL

DEL 17 DE MARZO Al 7 DE ABRIL DE 1992

1.·0SCAR BAYARDI ORTIZ PETRICIOLI SUPERVISOR DE SISTEMAS ANTERA, S.A. DE C.V.

PITAGORAS NO. 577 NARVARTE BENITO JUAREZ 03020 MEXICO, O. F. TEL. 543·4255

2.-ROGELIO DOMINGUEZ PACHECO AUTDRIZADOR DE OPERACIONES BANCO DE MEXICO

AV. 5 DE MAYO NO. 2 CENTRO CUAUHTEMOC 06000 MEXICO, D.F. TEL. 709·0044 EXT-2186

3. -ALFONSO GALAN GARCIA JEFE DE OFICINA DE INGENIERIA CIVIL S. C. T.

PROVIDENCIA NO. 807, 3o. P. DEL VALLE BENITO JUAREZ 03100 MEXICO, D.F. TEL. 523·4651

4.·GABRIELA GARDU~D BERMUDEZ S. C. T.

/

5.-YARETSET GOMEZ ACOSTA PERSONAL CALIF EN P. BOTONES SUPERIORES

CALLE NORTE 45 NO. 633 INDUSTRIAL VALLEJO AZCAPOTZALCO 0230D MEXICO, D.F.

6.·MERCEDES RAMIREZ MAROUEZ

S. C. T.

LUZ SAVI~ON 1363-A INT-1 NARVARTE BENITO·JUAREZ 03020 MEXICO, O.F. TEL. 543·4984

EDIF-67 ENT·L OEPT0-104 UNIDAD LINDAVISTA VALLEJO MEXICO, D.F. TEL. 5677-D194

GUSTAVO E. CAMPA NO. 58 VALLEJO MEXICO, D.F. TEL. 537·2743

AV. MEXICO NO. 72 5A. SEC. JARDINES DE MORELOS MEXICO, D.F.

Page 8: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

7.-JOSE REYES CONTRERAS JEFE DE SI S TEMAS

INDUSTRIAL PAPELERA NACIONAL, S.A.C.V.

CALZ. ROJO GOMEZ NO. 1201 IZTAPALAPA MEXICO, O.F. TEL. 6860022

8.-RAQUEL ROCHA ROORIGUEZ

S. C. T.

9.-MAURJCIO APOLONIO RODRIGUEZ GARCIA JEFE OE OEPTO. S. C. T.

CUAUHTEMOC NO. 614 SAN ANTONIO

MEXICO, D.F. TEL. 519-2636

ALFONSO CAPETILLO NO. 129 AMPL. SN PEDRO XALPA MEXICO, D.F.

TEL. 352-2895

CIRCUITO RIO DEL ORO NO. 72 N PASEOS DE CHURUBUSCO IZTAPALAPA 09030 MEXICO, O. F. TEL. 654-4784

Page 9: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

FACULTAD DE DIVISION DE El:?UCACION CONTIN.UA

-.,~ -

IllffiiODIICCIOII Al LDIIiWIJE DE PROGRWICIIJLII

COBOL

..

·'

MRZO-ABRIL, 1992.

Palacio de Mine<la Calle de Tacuba 5 Primer piso Deleg. Cuauhlémoc 06000 México, D.F. tel.: 521·40-20 Apdo. Postal M-2285

Page 10: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

' /

*** COBOL ***

ADVERTENCIA

Est~s notas de COBOL fueron elaboradas e~r~ ~••rso~ de COBOL ime~rtldo• ~n el Centro de Cblculo du lil Fi1c:ult~d de Iri~enieria Y en niri~ón momento ~~~tltu~en llhros sobre el len~uaJe CO~Ol. uo •••~ •~t~nd~rd o de aldón eauJ.•)u tHl f.'tH.)Hcial, ,.~~ J'Ul' ·t..lflt,a ntif(~tt·.>a••.lu con5.uli·,;ar libros de lenduaJe COBOL Y m~nuales de consult~. referencia o erodramaci6n del eauien ~ emelear! .e.tos estan discrilos en 1~ ~lbllo~r~ffa. Aunaue COBOL e~ un lon~.H1a.ju UH,t~iHl\i~rr:i ~>d4t,nn Vtlr\,:u~ion~fi. al ~auafH"'t,\l de imelement~r•e en ~~~ón .sistema de c6meuto• ~• recomienda C()fi:Hsli~al'. los. m::f.rtl.trJlt·~~ dul \.hJU~Pil 1"'4tol'll i.dP.nt .. :i.fictf.r q~t.Rs

can>bios.

/

Page 11: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

~--

u

u

CHAPTER 1

INTRODUCCION A COBOL

COBOL es un lensuaJe de ~roaraaación de com~utadora& realizer ~recesos administrativos. F.ste lwndu~Je im~lementado en la ma~orfe de los centros de cóm~utor &6

tentar el lenauaJe mawor difundido en el ambiente de cóm~uto,

1.1 HISTORIA DF. COBOL

PHra está ~or

El lensuaJe COBOL ( COmmon Bussi~ess Oriented L~nsuase)· fué diBe~ado Pera us~rse en Procesos de informac(ón m~rcantil•••

Hi•tóricamente el lensuaJe fu~ concebido Por el Pentádono en mewo de 1959. En él intervinieron rePre~entantes del sobierno de los E.E.u.u,, usuariosr fjbricantes de &ouiPo de cómPuto decidiendo ·la creación de un lens~aJe de alto nivel oue Pudiera Procesar información mercantil.

1 1 La Primera versión de COBOL aPareció en diciembre de 1959,. F.n

1961 se d~ó la versión COBOL-61 el cual.fiJó les estructuras de les Posteriores versiones. l.a slsuiente versión apareció en 1965r pero no fué sino hasta edoato de 1968 cu~ndo el lenauaJe se estandarizó Por el American National Standerd Jnstitute (ANSI), Esta versión estén~ar · fué revisada en 1974 lmelement~ndosele meJores oue cada fabricante e in~talación ha creído Pertinentes.

1.2 HODULOS DE COBOL

Los modules de COBOL son . aouellos oue componen al l~nduaJe

COBOL w estos son mostrados en ~l aPendice. La instalación oue tensa el comPilador COROL r.uenta siemPre con el n6cleo del lenduaJe w un¡ o todos lo~ dem~s modules. Existen sistea~~ oue adicion~r' &JI)~ ~c,ri~ de r~1tinrl~ o Proc~stl~ Para realiz~r •Jifer~ntes OPeraciones• como son J~ interrelación con bases de datosr maneJo de Pantalleo etc,, ~iendo e•tas operaciones no n~turales dP- COBOL• Por \u ~~'"' "~ n&ce~ario sabur c•JeltlS ,~c,n la~ instr,Jccione$ estandard del lenaueJe w ~uales son 1-6 oue aporta el siste•a. f.n estas notas se eKPlicara sol~ l~s inatruccion&G dDl COBOL estsndsrd,

Page 12: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

U* COBOL *** CARACTf.RISTICAS

1.3 CARACTERISTICAS

A continuación se Presentan. lPs cPracteristicP~ de COBOL!

1. f:nt<H'odlblu. Ya a•.111 ~~ l~n!luB,lc! ~IIIPllla orecion<l!l• en inSlés• aue indiean las oPeraeiones a rePlizar.

2. Autodocumentado. Por la caracteristica de eodificaci6n se elabora un documento aue Por si solo define lo aue se esté realizando.

3, TransPortable. F.sto significa aue cualauier ln~tplación

de e6DPuto aue cuente con el sistema Co~ol Podr~ correr cualauier Prosrama escrito en COBOL.

Q¡•hmtBd•> a información

los ne!loeios, Por la •ran c;onLidad de maneJada con referencia a la admini~traciónl

este lenduaJe fué orientado a emPlearse en las e~Presas.

5.. l..ar'l!h.la.Ju aue reouiera de un contP.i 1Bdu•· ·uue tr;::tdu,~~ rlel lensuaJe COBOL a lensuaJe de méauina de la comPut~dora.

1.4 ELEMENTOS DE COBOL

Los elementos de COBOL son aauellos características Para Prosramar en COBOL.

DESARROL.~.O DE SISfEMAS 1

El desarrollo de sistemas es inPortPnte al Prodrama de COBOL.

1,4,2 L.ENOIJA.JES DE PROGRAMACION

aue óefin<'

Un lensuaJe de Pro!lranoaci6n se describe eno termines de ,;int<>>:is Y. ~elhant:\ca.. l..:~; c;i.nt~>ds ·.;e rq·fif!¡•e a l<Hio terudn'l CHie forman la estructura del len!luaJel la eruBnticP define lP forma correcta óe definir lAs estr•JcturRs.

APrender el lensuaJe de prosramación COBOL e• aPrender las re!llas de formación sintactica ~ semantica de lPs estructura"' de

V forma aue el comPilador COBOL tradusca· a len!luaJe de már..•_oin;o.

Page 13: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

..._,.

u

u

*** COBOL *** ELEMENTOS DE COBOL

1,4,3 CARACTERES

f'a!le 1-3

Los caracteres son las PlPmentos Primarios d• un Pro~ramk ~ son todo'~ oHIUellns rePNI'hlntudolS en 111 t .. bla de r.ar<~c:tere« ASCII.

En el lensuaJe COBOL los caracteres aue se emPlean son:

lo Caracteres numéricos 1 O a 9,

2. Caracteres alfabéticos 1 A a la ~ ~ ~ C~sPa~io en blanc~ul,

3. Caracteres esPeciales t

1.4,4 PALABRAS

Las Palabras son cadenas d~ caracte~es aue definer• uo elemento del lensuaJe COBOL,

Las Palabras se forman ~on las sisuient~s reslasl

1. Lon~l~ud menor a 30 w maYar aue c~aro.

2. Sólo pueden contener sub~uiont~s.

letras, n(Jmeros,

3, Deben contener por lo menos una letra.

4, El Suión o subSuión no debe comenzar ni pal<lbl''ll,

Las Palabras Por su definición se clasifican en:

!::luiontt9> o

finaliz;or la

t. Pdldbra~ ra~ervada~. palabraG a•Je ,lefinen ~n forma seneral al lensuaJe, <HOVE, ENVIRONMENT• ADD• DlVIHlONo et~.l. E•t .. s P~labras no •e PUed~n emPlH~r ~"re otro fin diferente Para el cual estsn ~a definidas, La li5ta de las Palabras reservadas se muestran en el aPéndice.

Page 14: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

u

*** COBOL *** ELEMENTOS DE COROL

2. Palabras del siste~a. pala~ras: d~finidas por la aáoui~a do~dQ r~stde. <SYS.OUTPUT, BYS.INPtJr, HTHtRANDOHo elcl.

·~

!: 3. Palabras del usuario. nve son todas aouellas oue ea~l~a

el usuario en la solución alsorit~ica de su problema (HoJao nómero-de-cuenta, etcl.

Las Palabras POr sv función se dividen ent

3. No~bre de resi~tro.

4, Nombre de a~chivo.

5. Nombre de condición.

6. Claósula.

. ' 7. Verbo,

e. Instrucción <Oración).

9, Nombre de Procedimiento 6 Párrafo,

10. Nombre de sección • •

11. Nombre de división.

La definición de nombres d~ dato• ~ruPo• resistro• condición se indicaran en los sisuientes ~apitulos.

\ ¡

~rchivo v

Page 15: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*C* COBOL *** ELEMENTOS OE CO~OL

~ 1,4,5 CLAUSULAS

u

u

Una cl6usula es la Parte de una instrucción dond• ~· defin•n caracteristicaa de la propia instrucción o d• lo~ operandos au~ la confo •·ra.,.n.

1.4,6 .VERBOS

Las oraciones estén comPuestas con verbos, los una acción. El len~uaJe COBOL ProPorcion~ una cuwa sintaxis w función se encuentra wa definida.

cuales o~denan

serie de ver·l:>os

Alsunos verbos oPeran con campos de información w otros definen el orden en aue se eJecutarén las instrucciones.

Con l o,r¡ ve rbu,r¡ u e PIJtf<le hBCif r 1

1. Hovimientos de información.

2, OPeraciones aritméticas.

3. 0?Hracion~~ de entrada w salida,

4, ComParaciones Para tomas decisiones.

6, Control de fluJo,

1,4,7 ORAClONES

Las oraciones re~resent~n las jnslru~ciones dPl py·~~r~m¡,, ~

si@mPre C<)mi~rlzan con tJn verb,l~ l.ris o••acion\~~ Pt.l~tlf'n t"rminar con un punto• Pero en seneral ~~ ~~ostumbra terminarl~~ con f·unto ~i

~s aue la ~intaxis no mara•Je .lo contr~rio.

1.4.8 PARRAFOS

Las oraciones se asruPan en Pérrafos. F'or lo CIUP• Pl Parrafo se compone de un nombre de •PArrafo• una serie de oracipne~, donde la 6ltima termina con un Punto.

Page 16: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

')

*** COBOL *** ELEMENTOS OE COBOL

1.4.9 SECCIONES

Los ~•rrafos forman ~e~ciones.

1.4,10 DIVISIONES

Las secciones form~n divisiones.

1.5 ESTRUCTIJRA OE UN PROGRAMA COBOL

Pase 1-6

Un Programa COBOL .esta estructurado en cuatro divisiones d<>nde se dafii\H :

1. La identificación del ~rograma.

2. La asociación al ~ro•rama de los dispositivos externos Por los cuales ~& obtendrén. los datos de entr~d~ ~ •• emitirbn los resultados.

3. La descriPción de la información oue se Proces~r~.

4, Los algoritmos de procesamiento de 1~ información.

En.~l lenguaJe COBOL, a diferencia de oLros lenguaJes, es necesario entender 1~ función de cada una de las. divisiones· P~ra Poder desarrollar algón Programa.

1.6 CONVENCION ftl. DEFINIR LAS ESTRUCTIJRAS EN COBOL

La interPretación de los formatos oue defien~n

instrucciones COBOL son :

1. Las Palabras en HAYUSCULAS RESALTADAS 6 subr~~~d~s son Palabra~ definid~s P<>r el le1••••aJe d~b~n ••sarse al definir una instruccion.

2. Las Palabras en HAYUSCULAS NO RESALTADAS son P~~~~ras

definid~s Por el leí)~llaJe Pueden us~rse ~i !¡e d~saa al definir una instrucción y son para dPnotar m~Yor

fel~srid~d.

Page 17: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** Palie 1-7 CONVENCION AL DEFINIR LAS ESTRUCTURAS ~N COBOL

Las Palabre~ en minósculas son las aue dPfinen .una Palabra COBOL del u~uario w su valor dePende de •u ProPia definición.

4. Lo encerrado en {) lmPlica aue haw aue e~coser alsun~ da la~ Pal~bras o frases definidas.

5, Lo.encerrado en [ J es oPcional.

6.. l.ll':.:;. PIJI\t.o» • •. indican tHI& el concePto pue~.te '''!PE"ti rse tantas veces sea necesarlo.

7. IMaq. coma e;. (,) y l~os P•Jnt,ls y coaaa (;) PU,,d~_n ~l&Di ti r5e en las declaracionesl na asi el Punto(,),

1,7 REGLAS DE PllNTUACION

Toda Palabra en COBOL se li~ita a la derecha POr lo m~no~ un espjcto ~n blanco.

Dos o más nombres de dato e~critos en una li~ta Pueden saPB)'dr~~ P<lr tJn eq.pacio en blai\CO• o P<•r Ulla co~~ ~e~•Jida de un esPacio en blanco.

1.8 CODIFXCACION

E>dsten dos formas de codifiéar (e~cribir> Prosramas COBOLI

1 • Formato ANSI. Princ~p\o ~:~

columnas. E"n

uso

• Hn.ia: Renslón:

F~ta forma se desarrolló ~ usó desde el ~e b~~a un 1~ tarJet.a p~rfor~da tle 80 ella se definen las siS~ientes ~oluaha~l

COLU~INAS

1-3 4-6

• Carácter esPecial: 7 8-11 12-72 73-80

• Artfa A: • Area :a: • Identificación!

Page 18: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

')

')

na COBOL *** CODtFIC:ACtON

La hoJa, ranslon a ld~ntificación son oPcionales ~1

codificar un Prosrama Cobol.

2. For~ato Terminal. E~'~ forma se introdu.io ~1 codificarse al Prosrama directamente en la terminal,

1. *

uso

, CarActer especial: .. Area Ai'· • Area B:

Ccua~ntario ..

COLU11NAS

1 t-4 5-256

2. Continuación da instrucción,

i. 1 Al imPrimir un listado de un Prosrama comPilado• salta la imPresion ~ la $iSuienta hoJa,

Las Palabras dentro de 1~ codificación se dividan en:

1. Palabras aue se cDiocan ~Partir del Area A.

1. Nombre d'e división-.

2. Nombre da sección,

3. Nombre de Párrafo,

4, Definición de archivo.

S, Definición de reSistro.

Page 19: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** Pa~e 1-9 CODIFICACtON

6. D~finición de dato.

2. Palabra• QUG ae colocan • ~•rtir del are• B.

1. Declaracionea.

2. Definición de ~ruPo.

J, Definición de dato.

4, In•trucciones (Or~cionesl.

1.9 DIVISIONES DE LOS PROGRAHAS COBOL

Todoa loa ~roaremea en COBOL ae eatructuren divi~iono~• la~ cuele~ v~n en ~1 ~i•uiRnt~ ord~nl

1, IDENTIFICATION DJ~ISION,

2, F.NVIRONMENT DIVISION,

3, DATA DIVISION,

4, PROCEDURE DIVISION,

1.9.1 IDENTIFICATION DIVISION

~n cuatro

Consta de unas ·cuantas llneaso donde se indica: ~1 nombr~ del Pro~rameo el autor• 1~ instelacción donde se eJ~cuta el Proarama• etc.

1.9.2 ENVIRONMENT DJVISION

En esta división se define :

Page 20: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

........ \

/

'_)

$U COBOL *** Pase 1-10

OIVtStONfS UE LOS PROORAHAS COBOL

1 • Especificar las comPutador~~ oue SP utiliz~n. tant~ ~~•a

la comPilación del Prosrama• como Para su eJecución.

2. A~l~nar nombre a los disPositivos d~ entrada salida oue se emplearén en el Prosrama.

J, Definir al•unas caracteristicas de los archivos.

1,9,3 DATA DIVISION

Se emPlea,Para definir la~ caracteristicas de la información aue se maneJaré en el Prosrama. En esta divi~ión •• realizarat

1, Desc.r.iP-c.i.6n __ de las caracteristicas dP los ar<'hivoso (et"itnm~aso ;ltrib•Jto>'lo no111l,..._ de los r<.><;t\,;tr<H;),

2, DescriPción de los resistros de entrada/~~lid~• <~amPos

en oue se dividen ~~~ resistros• caracteristicas dp los C8CDPU~•) •

3. DescriPción de los resistros o

1,9,4 PROCEDURE OIVISION

En esta división se define la forma en oue información aue maneJaré el prosrama. constituida Por Parrafos. La pJpcución del desde el P~imer parrafo de esta división.

auxili111res •

se Procesaré la La· divisilln Psta prOSrama coaienza

Page 21: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'j

(.)

CHAPHR 2

DIVISIONES DE COBOL

Un Pro•rama escrito en Cobol se comPone de cuatro divisiones.

2,1 lDF.HTIFIC:ATlON DlVlSION

Consta de unas cuantas lineas, AUe identifir.an. Pl Nombre del Pro•ram•• autor• instalacci6n utilizada• creación w comPilación,

2.1.1 FORMATO IOENTIFIC:ATION DlVISON

f'l·ostr·ama. f•cha de

El formato de psta división se comPone de .los sidui•ntes parrafo~ los cual&$ $On en esLe ard~n:

IDENTIFICATION DJVISIQN, PROGRAI1- Y [1,

C AUTHOR, C INSTALLATlON, [ DATE-WRITTE'N, C DATE-C:OI1PH.Efl, [ SECURITY,

2,1,2 PRORRAH-ID

nombre-de-pro!! rema~ 1

[ comentario , l J [ comentario , J J C comentario , J J C comentario 1 J t comentario , J J

Parrafo aue define el nombre lósico del Prosrama; PStP nombre es rqfer~nciado 1al hacer us~ de esLe Proc~s'l ~1 El nombre-de-prosrama este dPfinido baJo construccion de Palabras COBOL,

2, 1 , .~ AUTHOR

~i~leRa oPerativo. lns re~l~s de

Parrafo aue indica el Prosramador o institución aue realiza el pro~ra~a. ~1 comentario es de$arrollado baJ<> las normas de documentación de la institución.

Page 22: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

DIVISIONES DE COBOL IDENTIFtCnTION DlVISlON

2.1,4 INSTALLATION

Psrrafo aue •uastra el slsta•a de cómPuto donde se i~Ple•anta

el Pro~ra•••

2,1,5 DATE-WRITTEN

2.1.6 DATE-COHPILED

Parrafo aue indica la fechP en aue fué coompilado el Pro~rama• en sldunn~ »i~teaa~ e~t~ coaontario a~ puesLo Pnr ~1 ProPio sistema W mostrado al imPrimJr·un• listado de cOmPilación,

2.1,7 SECIJRITY

Parrsfo aue relaciona les caracteristicas del Proceso• ~us

derechos sobre la •laboración y notas comPlementarias a la documantación.

1 ) 2.2 ENVIRONM~HT DIVlSION

En la sedunda división da un Pro•rama en COBOL. Se ••r·le~ PRrB definir los disPositivos Periféricos aue s& van a utilizar• asidnandoles un nombre da archivo para su maneJo, También Para definir ciertas caracteristicas de los archivos• asi co•o Para darle~ nc,•b¡·~ a ciert••~ f•Jncion~s de Bl~uno~ <lisPasitivos.

2.2.1 FORHATO ENVIROHHENT DIVISION

Esta división se comPone da los siduiantes secciones y Psrrafosl

Page 23: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

DIVISIONES DE COBOL ENVIRONHF.NT DIVISION

ENVIRONHENT DIVISION. CCONFIGURATION SECTION. CSOURCE-COHPUTER,J CCo~entario.J COBJECT-COMPIJTER,J CComentarlooJ CSPECIAL-NAHES,J CNombres-especiales.J C INPUT-OUTPUT SECTtON, CFILE-CONTROL,

CFILE-CONTROl.-DfSCRIPTJON,,,JJ

Nombre IS Definición-de-funciono

FILE-CONTROL-»ESCRIPTION,

Pas&e 2-3

SELECT No•bre-archivo-lo~lco ASSI~N TO disPositivo-perlfetlco.

2.2.2 COHFIOlJRATION SECTION

En esta sección se define la comPutadora donde se codificó ~1

Pro~rama fuente w donde ~e encuentra el códi~o eJecutable! asi como de dufinir funciones para los disPositl~os d• entr~da ~elida.

( · 2.2,2,1 SOURCE-COHPUTER J

En este.Parrafo se indi~a el nombre ·de la comPut~dor~ o ~i&tema de có~Puto donde.se codificó el fuente del Prosra~a.·

2.2.2,2 OBJECT-COHPIJTFR

Parrafo oue indica el nom~re de la comPutadora o si~t••~ de cómPuto donde esta el codiso eJ~cut~ble del p•o~r~ma.

2.2,2,3 SPECIAL-NAHES

En este parrafo se definen indicAn funciones del sistem~ salida,

los nombres Por los cua)ps se Para los disPositivo• de entr~da

2.2,3 INPUT-OUTPUT SECTION

En esta •sección se decl.ran todos ~1 Proceso Par medio de archiv<IS,

1

' los disPositivos r:onect¡odos

Los Parrafos de esta sección se desctibiran ~1 momento de deflni r "on<:9J>tu~. rel .. clonadus con es.t••s P<lrr.~f<l5•

Page 24: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

')

DIVISIONES DE COBOL DATA OtUtSION

2.3 DATA DIUISION

ra~e 2·-4

La tercera división de un Pr~srama COBOL e~ la DATA DJVJgioN • . Permite la descriPción de las caracteristicas de los ~r~hivo~ de entr~~a ~/o selidao tales son:

1. Etiouetas.

2. Temano de blooue.

3. Tamano de resistro.

4. Nombre• tamano w tiPo de los campos en oue e~t~ dividido un re~istro.

5. DescriPción de resistros o campos auxiliares como son contndoreao vncebezedo~, lineas de d~L~lle <•te.

2,3,1 FORMATO DATA DIUISION

La DATA DIVISION se comPone de los si~uiente~ sPccionP~ w Parrafost

Page 25: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

(j

DIVISIONES DE COBOL DATA DtVHlXON

DATA DIVISION, [FILF. SF.CTtON,

[FILE-DESCRIPTJDN tRF.CORD-DESCRIPTIONJ ,,,] ,,,]

tWORKING-STORAGE SECTION, tELEHENTARY-DATA-DESCRIPTtONJ tRECORD-DESCRIPTIONJ ••• J

FILE-DF.SCRIPTION,.

FD Nombre-de-archivo LABEL RECORD ARF. < OHtTTF.D >

< STANDARD }

•••

DATA RECORD XS Nombre-de-resi~tro.

RECORD-DESCRIPTION.

01 Nombre-de-reSistro, DEFINICION Df GRUPOS O DATO,

DEFtNICION DE ORUPO,

[NUMERO DE NIVEL <> OlJ NDHBRE ~F. BRUPO, DEFIHICION DE ORUPOS O DATO,

ELEHENTARY-DATA-DESCRIPTION •.

77 DF.FINICION DE DATO,

Pase 2-5

DEFINICION DE DATO, < NOMBRE DE DATO < FILLER

} < PJCTUF:E } { PIC

> < A } CI.AUSULAS. > < X >

{ 9 }

Todos los concePtos de esta división se describiran al aoaento de definir concePtos relacionados con esta división.

En .esta división-se define la forma en oue información oue maneJaré el ProS~ama.

constituida Por Pérrafos. La eJecución del desde el Primer Pérrafo de esta division.

2.4.1 FORMATO PROCEDURF. OIVIStON

SE' Prl:'ces¡oré la La división P&ts Prosrama co•ienza

La división de procedimient"s se compone de los si•ui~ntes sacctonfls ~ ~Brrsfos:

Page 26: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l )

()

DIVISIONES DE COBOL PROCEDURF. DlVISION,

PROCEDURE DIVISION, [Nombre de sección SECTION,J <Noabr~ dA P~rrafo,

Cinstruceionl .. , J )., ,

2,4,2 ALOORtTMO D~ PROC~SO

P~se 2-6

El alsoritmo de Proces~ d& la información la comPonen una serie de instrucaiunu~ denoainada~ ora~lones. au~ ne or~~n1zan en foraa lósica Para obtener los resultados deseados.

2,4,3 DEFIHICION DE PARRAFO

La Proeedure division ~ont•ndré Por lo menos un Pérrafo •. Este Pérr~fo •• nombrado con un n~mbre de pérrafo cu~a c~n~tru~~l.ón sisue las normas de la definición de nombres COBOL, es reco1limdable definh•-nomb res~de~acuerdo-a.o,l·a•.,función oue real iza,

Page 27: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

e

u

CHAPTF.R 3

DEFINICION Y MANEJO DE INFORHACION

La definición w el •aneJo de 1~ infor•ación dentro d~l Proce~o

COBOL es una de las Partes més i•Portantes wa aue se involu~ran el contenido de la informacion en la solución aldorit•ica del Problema ~ obJetivo.

3.1 DEFINICION DE INFORHACION

Le definición de informaciión tiene ~omo o~Jetivo de descri~ir todo~ u cada uno de los dato~ e e•Plearo los cuala~ describen ceracteristicas de la. información.

3,1,1 DESCRIPCION OE LA INFORHACtON

Para definir le información en un Prosre•a COBOL• tanto de entrad~• C<l~<l de salida e tnter~adi3 ~e e•Plean los concePtos Je ce•po de dato, redistro w archivo.

3,\,2 CAMP(IS DF. DATOS

Los camPos de datos definen 6reas de almacenamiento de información en el Prodreme. A cede cemPo de dPto hAbré aue definirle el n6mero de caracteres aue puede contener <lon~itud de campo) w el tiPo de inform~ci6n aue Podré almacenar <sea alfabético• nu•érico 6 alfanumérico), Por eJemPlo, el C8mPo P8ra almacenar el n6mero de cuenta de un alum~o de la UNAH• tendré uroa lonsitud de 8 caracteres numéricos.

3.1,3 NOMaRE DE DATO

Es el nombre asociado ~ un c8mPo de infor~ación• para hacerle referencia dentro del prodrama COBOL. Un.nombre de dAto es un nombre .stmbolico aue direcciona loc3lldadHs de mamorla donde se duardan valores aue varian 8 lo lerdo del Proceso. E~tos nombres se asocia cc1n ~1 tipo de. dato a ~u~rd¡or u su lon~ltud.

Page 28: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

. ·-...

l)

*** COBOL *** Pal!le 3-::? DEFlNIClON DE lNFORHACION

3,1,4 REGISTRO

Un redistro es un conJunto d• edrupan w se referencien· P.n re!listró>.

c~~POS de información oue se conJunto eon un no~bre (noabre de

3,1,5 ARCHIVO

Un archivo es un conJunt~ de re!listros au• tienes el ais~o tlPo de información. A los archivos s• l•s ~si!lna un noabre Para heeerlan r~ferRneta dentro dol pro~raaa (Nombre de archivo>.

Los archivos siempre se relacionan con disPOsitivos exLernos al Prodramar conocidos coao eauipos Periféricos.

A través de los archivos se hace la entrada ~ salida de la información de cualauier Pro!lrama COBOL.

3,2 REPRF.SF.NTAC!ON DE DATOS

Los datos se rePresentan t~dos v cada uno Por lor.alidades de mamaria M e1¡tc1~ ~ob declarados ün le DATA D!VISION •.

3.2.1 INTRODUCCION

La DATA DIVISIONr es la parte donde se declaran L~das Y cada una de las variables v constantes aue s~ usar~n en el PrDceso all!loritmico de solución. Ya sean Provenientes d•l •xterior por medio de archivos• entrada-salida esténdarr o locales al Proceso.

Se define como dato al Puede ser o no modificada de datos se llaaa sruPo reolistro.

érea donde. se !luarda información aue (c~nstantes v variables), l.a a~ruPaeión

v al eopJunto de aruPos define un

La dascriPcion-da-dato en COBOL esta dada por l

<Nombre-de-dato> <PICTURE> riSJ definici6n~de-dato { FILLER } < PlC )

3 • 2 • 2 CONSTRUCCION DF. IDF.NTIFrCADORES

El identificador 6 nombre-de-dato esté re~ido Por la definición de Palabras en COBOL.

Page 29: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l '

IJ

----------------~~---,

*** COBOL *** REPRESENTAC10N UE DATOS

Pase 3-3

Esta definición de no~br•-de-dato d•be de ir acorde al concePto aue representa (lineas• nombre-archivo-maestro• balanc~• PaSos• etc.>. Si dentro de la d•finición de datos éste no se· auiere nombr~• se utili~a la Pelabra FILLER.

3,2,3 DEFINICION DF DATO

La clausula PICTURE sirve para definir el dato •h tiPo <nu•érico [9], alfab•tico rAl• ó alfanu~•rico CXJ) w el \aaanNo (de care~teren), Si es un camPo numerico, sirve pera~ indicar ~i

tiene si•no<+ ó -> w si tiene deci~al. En la WORKING-STORAGE SECTION Permite edi~ar la información Para su i~Presión.

La definición de resistro esta dado Por :

tiPo-d~-dato < lonslt<ld ) C calificador~s J

El tiPo-de-dato esta dado Por la naturaleza d•l dato w sonl

1. ~ara datos numéricos 9,

z, Para datos alfabéticos A.

3, Para datos alfanuméricos X,

La lon~ttud ~sta dada PQr la cantidad de caracteres rePres•ntados Por el n6mero asociado a la londitudl o Por la cantidad de 9's• A's o X's definidos. lln dato numérico en forma estandard contiene hPsta 18 dfsitos• w un dato alfabético o alfanumérico contiene hasta 255 caracteres.

3,2,4 NIVEL 77

El nivel 77 nos indica D\IR el dato representa unP variabl• ~••e tomaré valores durante •l. transcursb del Pr~ceso. Estos d~tos se defin~n con nl nivel 77• el nombre del dato. CNuri~a 5e u~a el nombre FILLER>• tipo w lonsitud Ctama~o),

A S 77 DESCRIPCION-DE-DATO,

1

Page 30: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

)

1 )

*** COBOL *** REPRF.SENTACIOH DE OATOS

Pa!le 3-A

La caracteristica de estos datos es aue son flJo~ ~ n~ pueden subdivid.i r·.•e.

• EJemPlos.

77 CONT-HOJA PICTURE 9(02>. 77 LIN~A-AUX PtCTURE X<132), 77 HULTIPLICANDO-AUX Pl~TURE 9<03),

Al d~finir daLos se indica la cantidad w tis•a de caracteres asociado! ~si si se define 1

77 BALANCE PICTURE IS 9<03)

se reuuiernn localidades de me111oria refernncladas Por ~1 no111bre simbolice BALANCE cuwo contenido son caPactere~ numéricos en un total de Lre•• Oe esta forma so define el ran~o de valores aue Pondra contener la érea de memoria es de O a 999.

Area de memoria de lon!litud 3 de tiPo numérico •

. --------------------. BALANCE -> , ____________________ ,

3,3 INSTRUCCIONES

Las instrucciones son oPeraciones aue involucr~n un verho ~

oPeradores Para ~ealizar acciones Para la saluci~n al!loritmica del Problelllao

3.3.1 INSTRUCCION STOP RUN

La instrucción STOP RUN es la instrucción aue. Pone fin ~1 proceso. Esta instrucción va en el lu!lar .donde el al!loritao marca el fin~l· del Procqso.

PROCEDURE DIVISION, INICtO,

••• STOF• RUN,

Page 31: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

i "

)

*** COBOL *** 1 NSTRIJCe tONES

3.3.2 INSTRUCCION ACCEPT

Pase 3-5

La instrucción ACCEPT to~a el valor dPl dato de 1~ entrada !teclado),. este movimiento de información se aJusta a las caracteristicas del eauipo, en forma seneral se h~ce por movimientos alfanuméricos, los cuales indica aue PI dato de entrada siempre es aifanumérico• (indePendiente dPI tiPO d~ datol. Huchc1s eauipos realtzan una conversion de tiros aJu~t&ndo••e la información da entrada al tiPo de dato leido. Es por Psto aue un blan~o no es cero a\ •omen~o da \ear<loo En a\~~nas ocacionas estos movimientos no son marcad~~ c~mo ~rror Por el ~~~t•••• pero al definirse una OPeración aritmética con datos donde sa encuPntra blancos u otros caractaras no numéricos as donde indica el error.

PROCEDURf. OIVISION, INICIO,

••• ACCEPT OPCION, • • • ACCEPT NO-CTA. STOP RllN.

3,3,3 INSTRUCCION DISPLAY

La instrucción DISPLAY despliega el contenido de la v~riablP a la se\ida dul ststem.JJ en furma Jlan•ral la 'OB\\da r.e indi•'• en pantalla.

Alsunos sistemas de cómputo se usa la instrucción DISPLAY como modo de comunicación con el OPerador,

En imPlementaciones de COBOL en sistemas Peauenos ~ aPdianos las instrucción DISPLAY ~ ACCEPT son u~uadas con .•aneJo de Pantalla Rn P!ocesos de caPtura.

PROCEDURE DIVISION, INICIO,

••• DISPLAY 'DAHE LA OPCIONl', ACC:f:PT llPGION • • 1 •.

DISPLAY 'NUHERO DE CUENTA:•, ACCf.PT NO-CTA • • • • DISPLAY 'EL REGISTRO CONTIENE l.A INFORHACIONl' REO-NOMINA. STOP RUN,

Page 32: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

)

1)

CHAPTER 4

.. DEFINICION DE REGISTROS Y MOVIMIENTO DE INFORMACION

Los resistros son la estructura de información mawor ••~leada

dentro del manejo d~ información. El redistro slem~r• esta asociado e le ••ru~eción de dato•• w la entrada w salida do información de un archivo.

4.1 DEFIHICION DE REGISTRO

El re•istro es la unid~d ~aslca ~•r~ el ~rocaso d~ infnr•ación. Un re•istro esta d~finido Por un n6mero de nivel 01 w diferentes druPos de ~~tus.

4,1.1 NIVELES 01,,49

Los niveles 01 al 49 sirven para definir resistroso datos asruPad<lS w d,lt.•l'> 01n una ~;~structu1•a aue ·.;~;~ dP.nordn" .J ... •·.ar.auicao en donde se indica la asociación de datos bajo un nombra ~• sea de srupo o ·~~iatro. Los resistros se dvfinen en la DAfA DIVISION. Los resistros aue son de entrada al sistema se definen en Ja FILE SECTIONo H los ProPios ~el prosra111a en la WORKtNfl-lHORAIIE SEC.TtON.

4,1,2 REPRESENTACION JERARQUICA PE LOS DATOS <REGISTROS>

01 NOHBRF.-DE-REGISTRO, < nómero de nivel > NOMBRE-DE-GRUPO,

< n6mero de nivel > PESCRJPCION-DE-DATO,

La· definición de reSistros se hace con la finalidad de t.enPr un ConJunt .. u dH c.!llaP\.l·.;. re\acionadocs P~1·a ~er 11.~ne~in.do·:¡. cGao una entidad ProPia. El resistro se d~fine con un nlvel 01 en el área A w un nombre da resistro. fste nnmbre de resistro está asociado a la descriPción de archivos si es aue se usa en un ar~hivo; en un re~istrn de Rnc~Jb&%ado, subencabHzado o detalle.

Page 33: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

i .

¡

1 )

8U COBOL *** DEFINICtON UE R~OISTRO

Pase 4-2

La s&idnaciOn de nómeros de nivele& se hace dePendiendo del usuario. Es conveniente establecer una re~la w es l~ de usar sOlo nómero& imPares para definir el redistro. QruPo o dato. Por redla de COBOL el redistro esté definido POr un nivel 01. Los sruPos o datos POr nivele& 03, 05, etc. sedón &ea necesario <el máximo nivel para la descriPción de drUP~S o datos as 49), La asisna~ión de nómeros imPares tiene por obJeto Permtir• dado al ~aso• la asruPación de ~atos.

La definición del tipo w londitud de dato sOlo definición de dato• no asi en la definición da subdividido• a menos oua la definición de dato definición da redistro.

DATA DIVISION • • • • 01 REGISTRO-MAESTRO,

03 NOMBRE PIC X<JO), 03 DIRECCIONo

05 CALLE PIC X<10), 05 NUMERO PIC X(04), 05 COl.ONIA PIC IS X<20l, 05 CIUDAD PIC IS X<20), 05 CODIOO-POSTAL PIC IS 9(06),

03 SEXO PIC X<01l, 03 ESTAOO-CIVtL PIC X<Otl,

as Puesta en la re~istro o ~ruPo sea la PrOPia

Los dato& prOPios dE'l Pro~eso• esto es• a"uellos '"'v ne> Provien~n dol ~xLerior por medio de archiv~s• deb~n ser decl~redos en la WORKING-STORAGE SEtTION dE' la DATA PJVISION,

DATA Ot.VtSION, WORKING-STORAGE SECTION. 77 HO.JAS p·xc 9<02l, ••• 01 FIN-DE-ARCHIVO PIC X<02),

Cuando alduna área de memoria no no ser relevante su defini~ión

constanLH ~s marcada con la Palabr~

se de~ea nombrarla• ~a se~

ó por constituirse Pe>r FILLER,

01 ReQistro-Entrada. 03 Nombrl'!-F.mPlea<io PICTURE X<3'2l, 03 FILLER PICTURE X<:?.Bl, 03 su .. ldo PICTURE 9(06), 03 FILLER PICTURE X<l2l,

I"Cir

una

Page 34: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

)

)

*** COBOL *** DEFIN1C10N »E REGISTRO

. 4,1,3 DEFINICION DF TIPOS <Vo s, Pl

Pase 4-3

Dentro de loa tiPo& da d~toa numérico& aa Puedan amPlaar 1~•

si~uientoa earecteres:

1. 8 Pera definir aua el nómaro es aisnado.

2. V Para definir oue el dato es no entero o real (punto virtual),

3, P Para definir oue al valor es e$~alado a una P~tencia.de 10.

Estos caracteres no aon c~ntabilizados dentro del tamafto .del camPo a menos aue se esPecifiaue lo contrario. l.a definición de numeros sisnados es imPortante cuando se reouiere de datos oue definan camtidades numericas con sisno. El Punto virtual define cantidados n•tmericas con Parte untara~ Part~ decimal. Los datos con valor escalado a Potencia$ de 10 e$ emPleado al u~ilirer valores un milus o millones ~ donde solo ne r~Presantan las cifras sisnificativas Pero internamente a meneJa a estas escalas.

4.1,4 CLAUSULA VALUE

Una de las clausulas más imPortantes es 1~ clausula VALUE d~nde a la Vdrii•ble o constantq se le a~i~na un valor '!n t?l tteaPo de comPilación. Estos valorea iniciales estan dad~s POr lita~ales

numéricas• alfanuméricas o P~r constantes fisurativas. E~tas iniciali~acinnus solo son validas en le Workin~-storaue Section.

VALUE is <literal-numérica } <literal-nonumérica} <cnnst~nte-fisurativa}

4,1,4.1 LITERAI.ES

La literal es un elemento del lensuaje COBOL• aue rePresenta un valor constante <alfabético. alfanumérico o numérico) dentro de un Pro9rama. E>:i,;tun dos tiPos de lite.ralt'!,;, aue son! las literales numéricas ~ las literales no numéri~as.

Page 35: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

,r

( 1 ~

(,)

*** COBOL *** DEFINICtON DE REGISTRO

4,1,4,2 LITERALES NUHERICAS

La literal num4riea aa divide en entera w no ant•ra ~ r•~l. La literal entera es aaualla aue e~tb eo~~ueats sólo d• di~itos w los aidnos + ó -1 w la literal nu•6riea no enterP Por una pprte enter;o, P•m~.u Y una parte deei•all .. 1 P•Jnto no P\lede iniciar ni terminar la literal. El n6•ero máximo de diditos de una literal numériea entera es de 23,

4,1,4,3 LITERALES NO NUHERICAS

La literal no numérica es un elemento formado ~or cuPlouiera de los earacterea oue maneJa el lenduaJe COBOL incluwendo el e~Pacio en blanco. E5taa literales ~ebun enc~rrarse entre comilla~ (') w el valor de la literal no numerica los constiruwen los earacteres dentru de lns c'naillan• Cualo\linr P'!lr de e•1111illas < '' > ruPrltser.t.a una aim~le eoailla, lo aue ~ermite ineluirse ero las literales no numerica~. El numero de car1aeteres nu de&e excedur de 2~6

· caracteres.

DATA DIVISION, ••• 03 BALANCE PJC 9(021P!031V9!021 VALUE O, 06 SllHA-nCUHULADA PIC S9!101V9(021 VALlJE O. 05 FILLER PIC X!071 VALUE 'HOJA : ' 06 CONTADOR-HOJAS PIC 9!031 VALUE O, 06 ASTERISCO PIC X<011 VALUE ''• 04 FILLER PlC X<141 VALUE 'NOMINITA, S.A,'

4,1,4,4 CONSTANTES FIGURATIVAS

La constante fisurativa es un• PalabrP COBOL predefinida. Estas cunstantus se PUa~en .. mplear .. n cualouier P~rte ~onde se Pueda emPlear una literal. Son ·constantes fisurativas:

1. z~rc,, zero~, zeroes. <RePresentan el valor de cero),

2. SPace, sPaces. <RePresentan al espacio).

4, Hish-value• hish-values.

Page 36: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

)

( ' )

*** COBOL *** DEFINICtON DE RfGtBTRO

s. Low-veluer low-valu~•·

Pa!!P 4-5

(define el menor v~lor),

6. All <literal no numeric~>· <RePresenta la rePetición de la literal no numérica),

DATA DIVISION, •••

01 CONTADOR-LINEAS 03 FILLER 03 BAI.ANCE 06 SUHA-ACUHULADA 05 FIL.l.ER Oó CONTADOR-HOJAS Oó ASTERISCOS

4,2 INSTRllCClON HOVE

PJC 9<02) VALUE ZF.ROf.S, PIC X(10l VALUE ALL ''• PIC 9<02lP(0JlV9<02l ZEROF.S, PIC S9(10lV9(02l VAL.UE ZEROF.S. PIC X(40l VALUE SPACf.S, PJC 9<03) VALUE o. PIC X<132l VALUF. ALL ••

La inatruccion HOVE reali~a el movimiento de información entre l~h~iid~des (1& mqmoria rRferenciAdAs por un nombre de dAtar sruPo o resiatro.

4,2.1 ASIGNACION DE DATOS

La modificación de valores dentro de v~riables ~e h~ce Por medio de la asisr.ación de valores a los r.ombres de datos •. F.:c.ta asisnación se hace POr medio de la instrucción mnve.

HOVF. {identificador} TO identificador (o identificador] < literal }

E J.emp 1 o~ :

Procedure division. Psrrefo-IJno.

HOVE 25,85 TO Precio. HOVF. zernRs TO totalo subtotal. HOVE sPaces TO reSistro. HOVE 'EJemplo' TO encabezado.

...

El movimiento de información entre datos enteros se realiza de dervcha a i~a,lierda• rellenando de ceros si fl1 camPo recePtor es ma~or o trun~ando si es menor. P~ra datos n~ ~r.teros <nuaéricos con P•Jnt .. o virt .. ual> la Psr+ .. H ·@rtt.era ~>e~ realiza. d~ ~..1@rttcha. B

izauierda ~ la Parte fraccionada d~ izouierd~ ~ d~recha. Para datos alfanuméricos el movimiento de inforruación sP re~lizR de. izouierda a d~r~ch~ truncando si nl camPo receptor n~ \le lon~itud

Page 37: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

*** COBOL *** INSTRUCCtON HOVE

menor o rellenando de espacios si el campo e~ ma~or.

Cualouier instrucción oue como OPeración final sea 1~ dR eov&r un resllltado 11 •m11 variable contiene cliiUslllas t1ue choca el error de tame~o <ON SIZE ERROR) PPra datos nuo.ricos 6 (ON OVERFI.OW) Pera datos alfabtticos ó alfanumtricosl no a~i la instrucción HOVE por lo· tanto se Perderan disitos o caracteres PI anver información.

CHAPTER S

HANEJO DE.ARCHIVOS SECUENCIALES

Un archivo os disPositivo fisico

un conJunto de reststros asociados en un (cinta• disco. tarJetas• etc.) el cual Pntran

el proceso. De forme SPneral el erchivo contiene inforaación. definida de cierta forma .donde SI' definP información Para representar car~cteristices unicas.

Un archivo secuencial es eouel donde el Pcceso a .cualouier resistro os naceaario Pasar Por los rasistros anteriores.

ARCHIVO SECUENCIAL

.-----------------------------------------. --> 1

+-------------~~------------~-------------+ --> 1 1

+-----------------------~-----------------+ 1 1

·-----------~-----------------------------+ 1 1 +-----------------------------------------+ 1 1

+-----------------------------------------+ 1 1

+-------------------~--~------------------+ --> 1 1

'--------------------------------~--------'

Los datos son referenciados en operaciones de PntradP s~lid~ P~ un archivo secuencial de acuerdo a su pOsición fisica.

5.1 EBQIIEMA GENERAL PARA EL HANEJO OE ARCHIVOS SECUENCIALES

La estructura en COBOL Para el maneJo dP archivos secuenci~les

es la st~uiente.

Page 38: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** ESOUEMA nENfRAL PARA EL HAN~.10 DE ARCHIVOS SECIJEMCIAL.ES

ENVIRONHENT DIVISION, INPUT-OUTPIJT SECTION, FILE CONTROL,

SELECT archivo-lodico ASSIAN To srchivo-fisico [1 ORGANIZATJDN Is SEQUENTIAL l [1 ACCESS Hade Is SEQUENTlAL l [1 File STATUS Is dPto-x l •

DATA DtVIStON, FILE SECTION, FD archivo-lo~tco

[ BLOCK C~nlPins numero { RF.CORDS > l [ < CHARACTERS } J

[ RECORD Contains numer~ { CHARACTERS > J

LABEL ( RECORD Xs > STANDARD < RECORDS ArP >

[DATA Rf.CORO h resistro-srchivo J,

01 resistro-•rchivo. 03 •••

PRbCEDURE DIVISION, ) PsrrBfo-inicial •

1 )

• • • < INPUT > < OUTf'lJT >

OPEN < I-0 > •rchivo-lo~ico < EXTEHO >

CLOSE erchivo-losico

READ archivo-lodico [Record] [ INTO re~istro-x l [1 Al END in~lrucción l

WRITE recú .. tro-archivo [FROH re!'lislro.:xJ,,

REWRITE reeislro-archivo rFROH resistro-xl.

Pa!!e 5-2

Page 39: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 '

1 )

*** COBOL *** ENVIRONHF.NT OIVISION

5.2 ENVIRONHENT DIVISION

P~se 5-3

En eata division •• define al archivo l~dica el ~uAl •• maneJado durante el ~roceao e un archiva flalcor eata d~flnición de~endd dul &D\Ii~o de com~uto donde reaide o\ ~roceaar ~ •• en oate diviaion donde se modific•n loa ~rodram~a ~Rr• 1• aalsnación de dicposttiv~• fl$ico. Cuando un Prosrama se Pasa d~ un eo<oipo a otro es en esta division donde •• reali~an los cambio~ ade~u~d~s Para su c~rr~cto funcionamiento. Por lo anterior ne dice oue Rl lensuaJe COBOL es eatandard.

ENVIRONHF.NT DIVISION,. INPUT-OUTPUT SECTION. FILE CONTROL,

SELECT archivo-losico ASSIBN To archivo-fisico [1 ORGANIZATION Is SEQUENTIAL J [1 .ACCF.SS Hade Is SF.QUF.NTlAL J [1 File STATUS Is dato-x J ,

5.2.1 INPUT-OllTPllT SECTION

Esta seccion se define lR entrada y salida d~l Pr~cesó.

5,2.1.1 FILE-CONTROL

En este Parrafo se definen los atributos Y el cantr~l de l~s

archivos.

5,2,1.1.1 INSTRUCCION SELECT

En esta instrucción se define la.lisa del archivo lasi~a can archivo fisico. El nombre de archivo-losico es el nombre Par el cual se iden,iric• ~1 archivo en ~1 Prodrama. F.st~ nombre de archivo es usuad~ en .instrucciones de entrada salida.

Existe una inootroJccion SEl.ECT Por cnda archivo utilizado en el proceso.

5,2.1.1.1.1 ASSIGN

La clausula ASSIGN define el di~Positivo al aue se referlra el archivo lósico. Esta definición es una lisa entre el archivo losico w el archivo fisico.

Page 40: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'..J

{)

***-COBOL*** ENVIRONHF.NT DlVXSXON

5,2,1.1,1.2 ORGANIZATION

Pase 5-4

La clausula ORGANIZATION indica al tiPo da or~~nlzación del archivoo si esta clausula se omite• la or~anización del archivo se considera !!htc~uenc:i.al,

5,2.1.1,1,3 ACCESS

La clausula ACCESS HODE esPecifica el modo de acceso al archivo, si. esta •• omite se c:on~i.dera de tiPo secuencial.

5,2,1.1.1.4 FILE STATUS

Esta clausuia indica la variable la cual contendra el valor alfanumericn do1 resultad~ de cualauier oparac:lnn de entrada/salida a •~te archivo. La variable •~t~ definida eh la· WORKING-STORAGE SECTION de tiPo alfanumerico de tama~o dos, Los códisos astan definidos par el sistamal en forma senara! el codl!lo '00' as para definir una OPeración correcta de entrada salida.

S •. 3_ DA.T.A-D-I.V.lSI.O.N ___ ..

La definición de los resistros asociados a los archivos se definen en este ~ivision.

DATA DIVISION, FILE SECTlllN, FD archivo-losico

r BLOCK Contains numero ( RFCORDS } J r < CHARACTERS } J

r RECORD Contains numero < CHARACTERS } J

LASEL < RECORD Is } STANDARD < RFCORDS Are }

tDATA RECORD ls

01 resistro-archivo, 03 .....

5,3,1 FILE SECTION

resistro-srchivo ],

Esta sección define los archivos l6Sicos del proceso.

Page 41: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

)

1 )

U$ COBOL *** [lATA DIVYSYON

5,3,1.1 PARRAFO FD

Este Parrafo indica l~s c~racteristicas del archivo. tantc)S FD'4 cc,mo SEl.ECT's de la ENVIRONHENT DIVISION,

5,3,1,1.1 BLOCK CONTAINS

Existen

Esta clausula define la cantid~d de redistros o ~ara~tercs Aue van a s~r tr~nsferidos al realiz~r oPeracione4 de entr~da salida. Esta cantidad esta de acuerdo a las caracterist;ca~ del archivo fisicoo a la cantidad de redis~rns de\ ~rchivo ~ a\ tiPo de disPositivo. Si asta clausula no e indicada se considera el bl~ck contai"s de u" re~i4tro.

5,3,1.1.2 RECORD CONTAINS

El nó~ero de asta clausula •~ idual a_la cantidad de car~~teres aue define r.l redi4~ro,

5,3,1.1,3 LABEL RECORDS

Esta conforme omitirse.

clausula define aue l~s redistros astan etiauet~dos a la definisión del sistema• si esta clausula no puede

5.3i1.1.4 DATA RECORD

En esta clausula se d~fine el definición de archivo.

5,3,1,2 DEFtNICtON DE REGISTRO

re~istro asociado ~ ecta

Para cada archivo ~• le d~fine un redistro (cnn nivel Oll asociada• este re~istra indica las datos au~ s~ r~\~cian~ran en alduna operación de entrada salida,

5,4 PROCii:J)IJRE LltVIStON

En esta division se realizan todas la&~ ~Perac;~ne~ ~o~re l~s

archivo~ sRc•Jellciales.

5.4.1 INSTRUCCION OF'EN

la instrucción OF'EN abre un archivo.

Page 42: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** PROCEOIJRE DIVISlON

< JNPUT } < OUTPUT }

OPEN < I-0 > archivo-lo~ico < I:':XTENll }

Pa~e S-6

El archivo se abre P~ra l•er <INPUT>• e~cribir <OUTPUTlo asredar información <EXTENDl o Para ac~ualizar información <I-Q), El erchivo nie>mPre debe es~ar abier~o al realizar:<<> Cll:>luuier ~iPo. de oPeración. Ses6n ~•a el modo de abrir el ~rchivc ~e pueden realizar OPP.raciones de en~rada salida:

Hodo de abrir el archivo Ins~rucción +--------~-~-~--~---------------+

1 INPUT 1 OUTPUT 1 I-0 1 EXTEND 1

READ o o

WRITE o o

REWRITE 1 1 1 O 1 1

----------------------------------------------+ l) 5.4.?. INSTRUCCtON CI.OSE

(j

La ins~rucci6n cierra un archive.

CLOSE ~rchivo-lcsicc

Cuando se cierra un archivo wa no se PUede leer o escribir sobre el archivo. Be Pierde la liSa en~re el nombre 16sico w fisico.

5,4,3 INSTRUCCION READ

La ins~rucció~ READ lee del ~rchivo un reSis~ro.

REhD archivo-lo~ico CR~ccrdJ C tNTO re~istro-x J Cl At END ina~rucción J

La clau!lula AT END se activa resistrc del archivo. Si se usa se dePositara ~n el resis~ro-x.

cuando no se encontra otro la clausula JNTO la inforaación

Page 43: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

$U COBOL *** PROCEDURF. OlVtStON

ARCHIVO SECUENCIAL

.-----------------------------------------. --> 1

> < +-----------------------------------------+

--> 1 1 ' _______________________ ..;. _______ . _________ . ._,

Pall• :1-7

••> A\ a~erer acceser es~e ro!ll~tro <aue no •xiste> Para leer se Petiva la clpusule AT END.

5,4,4 tNSTRUCCION WRlTE

Le instrucción WRITE escribe un rellistro en el archivo.

WRITE rnsistro-archivo CFROH re!listro-xl.

La instrucción indice aue le referenciP el erehivo s• reBliza Por medi~ dal r•si~tro asociado a ese archivo• e diforencla del READ au• la in~trucción marca aue .. la l•ctura se hace Por el nnmhr• del archivo-lnsico.

~ Si se usa la clausula FROH 1• información viene del rellistro

1 •

.)

indicado. Esta cla~sula es i~ual si mnvieramos Pri•ero del rellistro-x a relli~tro-prchivo ~ desPues RrPhamos el rellistro-archivo.

5,4,5 INSTRUCCION REWRITE

La instrucción REWRITE reemPlaza un rellistro por uno nuevo en el archivo <actualización de rellistro),

R~WRITE reYi~tro-archivo CFROH rellistro-xl.

La instrucción indica aue la referer.cia al ·arehivo &e r .. aliza por mP.din dt1l re!listro esociBdo a. ese Brchiv<>• ·a .. diferencta··del READ aue la instrucción marca aue la lectura se haee por el nombre del archivo-lo!lico,

Si se usa la clausula FROH lP información viene del re!listro indicado. E~ta cla\ISUla ns igu~l si movieri•mt)S ~rimero d~l re!listro-x a rellistro-archivo ~ desPues !lrahamo~ Pl rellistro-archivo.

Page 44: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

_,-,

$U COBOL $U PROCEDURE DIVtStON

IDENTIFICATION DIVISION, PROGRAN- l D, CONTRill., ENVtRONHENT DIVISION. INPUT-OIJTPUT SECTION. FILE CONTROL,

A88IGN Ar~hivo-Entrada ASSIGN lo DISK, DATA DtVtSION. FILE SECTION. FD Ar~hivo-F.ntrada

LABEL Re~ord& are STANPARD DATE Record is R••iatro-entrede.

01 R••iatro-Entrado. 03 ....

WORKING-STORAGE SECTION, 77 Eot PtCTURF. Xa X<02) VALUE 'NO' PROCEDURE DIVISION, Inicio,

OPEN INPUT Ar~hivo-Entrada, REAO Archivo-Entre~a AT END HOVE 'SI' TO F.ot. PERFORH Realiza UNTIL Eot • 'SI'• CLOSE Ar~hivo-Entrada. STOP RUN. ..;

Realiza. .,. . . . .. .. ~..~ READ Arc,hivo-Entr_ada AT END HOVE 'SI' TO F.ot.

·***COBOL*** PROCEDURE DXVISION

.--------. 1 Inteio 1 , ________ ,

Pase 5-9

Pan 5-10

Eof • 'NO~ ~or inizialización en elauaula value, .-------------------------------.

OPEN INPUT a rchi vo-ant re.da 1 REAO Arahivo-F.ntroda 1 Al END HOVE 'SI' TO F.ot. '-------------------------------'

1 V PERFORH Realizo UNTIL Eof·~ 'SI' 1

0{------------------+ 1 1 Perrafo realiza 1 .• -------------------------------. 1 •••

1 READ Ar~hivo-Entrada 1 AT END HOVF. 'SI' TO F.ot.

'-------------------------------' 1 \

1 1 \ no 1 \ 1-----------------+

\ 1 1 ;t• Fof • 'SI' V 1 "i

1 V

.-------------------------------. 1 CLOR[ ar~hivo-entrade

'---------------------·---------' .-----. 1 Fin 1 , _____ ,

Page 45: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'.

1 )

( )

*** COBOL *** PROCEDUR~ DIV!StON

Pa!le s-e

Para reescribir un reslistro 1111 daba da abrir al archivo con oPción I-0• leer al ra~istro con la instruccion RfAD• •ltPrnr el contenido del rasistro w reescribirlo con et~~t6 instrucción,

5,4,6 INSTRUCCION PERFORH UNTIL

La instrucción PERFORH sirve Para transferir. o eJPcutar una instrucción o conJunto de instrucciones baJo cierta condirlón da terminación! al finalizar su acción el Proceso continua en la sisuiente instrucción del Prosrama.

La instrucción PERFORH en el formato UNTIL lleva el control de Proceso en· .la eJecución ·de un parrafo hat~~ta definirse una condición Po·r· el UNTIL, et~~ta condición es evaluada antes . de eJec•Jtar el Pnrrnfol baJo la si~uiente estructura.

Estructura da rePetición <PERFORH UNTILl,

V 1

. o<---------------------+ 1 1

1 .---------. 1 1 PArrafo 1 , _________ ,

1 \ ~

1 1 \ no 1

\ 1--------------~-----+ \ 1

V 1 si. 1 V

5.4,6,\ OPERADOR DE RELACION •

El oPerador • es verdadero cuando lo, oPerando• ~on i~11alet~~• en el meo1aJo de Archivo~ ~• usa cuando el indicAdor de fin de archivo es activado Por la clausula AT END .w el control de Procet~~o tprmina cuando se r~fiere a e~a condiclan,

5,4,7 CONTROL DE FLUJO

Una de las estructuras de control dp fluJo para archivos es aaue\ l.t dondn SE ,1efine una fUPC'UfiPn~~ia de in~tru,-;ocionfts ba.io &1 control de los re!listros del archiva ( DO WHILE Ha~-Datos), Esta estructura se basa en la clausul~ AT END de la instiucción READo de la in,.tr1oceian de control P~RFORH tlNTIL 'd de la relAcion =•

Page 46: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

.-..

( 1 ..L

'J

CHAPTER 6

CONTROL DE FLUJO

El control de FluJo es el mecanismo Por al cual los al~orimos

definen la solución de los Problemas de cómPuto. El contrnl de fluJo derende de ci~rtas condiciones definidas en el contenido de la información en los nombres de dato. druPo o redistro.

6.1 INSTRUCCIONES DE CONTROL

Son instrucciones de control aauellas oue-.dePendiPndo de alguna condicion transfieren la secu~ncia da eJecución a cierto Punto del prodrama COBOL~ Con resPecto a la Prodra•ación estructurada• se reconocen como ~structuras de control la eatructura de XF Y la de DOWHILE, Estas estructuras dePendiendo de su acoPla•ianto Y variación se cohvierten en DOUNTIL w CASE,

COBOL tien~ construidas la estructura de IF Y una da raPetlcion lla•adll PERFORH UNTIL. (Gua ,;e <le!'leribio "n el ee,.it,<llo anteritH), Ada•ás cuanta de una ·estructura da repetición de una cierta cantided <PERFORK TIKESl.

6,2 INSTRUCCION PERFORK. CPARRAFOJ

La instrucción PERFORK indica aue el control descriLo 11 al termlnar~e el Parr~fo ·vuelva instrucci.on.

PROCEDURE niVISION, INICIO,

••• PERFORK BLANGUEA-REG, •••

BL.ANGUEA-REG, HOVE SPAC~S TO REG•

vaYB al ,.arrafo a la sidulente

Page 47: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** INSTRUCCION PERFORH TIHES

6.3 INSTRUCCION PF.RFORH TIHES

Le inatrucción PERFORH indica oue el control deacrita ~ nl terminar~• el PBrrafo v~elva

ve"a al a lB

Pase 6-2

PBJ·raf'o ~lflulente

inatrucción deaPuea de paaar tantas veces como el valor asociado a TIHF.S indioue.

PROCEDURE DIVISION, INICIO •

• • • PERFORH LINEAS-BLANCAS 24 TIHES,

••• LINEAS-BLANCAS,

HOVF. SPACF.S TO REO-SAL, DISPLAY REG-SAL.

6,4 INSTRUCCION IF

La instrucción IF es la base Para el control d~ fluJo. F~ta

instrucción lleva el control hacia una serie dft instrurclones cuando le condición es verdadera " a otra si es falsa. F.~tas condiciones Pueden ser simPles o romPleJas. La condición simPle esta definida Por alflunos de l~s condiciones de~cri~il~ en los Parrefos sifluientes. La c~ndición comPleJa esté com~uesta d• dos o mas eondicionQs simPl~s relaclonad;os Por los operadoras lo~icos

AND 6 OR,

6.4.1 ESTRUCTURA IF

La Pro•ramación eatructurad• contemPl• le desición <IF) baJo la si•uiente fiflur•l

Estructura de desici6n <IF THEN ELSE>.

V

falso 1 \ verdadero +----------1 1 \-~------~-+ 1 \ 1 1 1 \ 1 1 1 V J V V . ---------. .--------- .

1 hloaue Al 1 blo<.we B 1 "---------'

, _________ ,

1 1

+----------->o<-----------+ 1 V

•~~ot rtic t.ura

Page 48: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

i ')

' ·, .;

*** COBOL *** INSTRI.J!'!CION IF

l"afle 6··3

Al evaluarse 1 condicón <?>1 si es verdadera se eJe~utA el bloa••• B w si ,¡" falsa ,,. eJecuta el bloalle A.

6.4.2 FORMATO INSTRUCION IF

La instrucción IF tiene la si~uiente estructura: '

IF condición < instruccion ••• )-

< NEXT SENTENCE )-

ELSE < instruccion ••• )-

< NEXT SENTENCE },

Cuañdo la cond-i·e·i·ón-es~-ve-r.dade,r.a~e.JP.c.u.tca: .. liiJ! i nst ruee.i one" coue se encul!ntrlln unt·re· la si,.uien.t..e doL_.XF _,,¡_ <1nt.e<1 <lul EUif• ~l terminar con la 6ltima instruccion el fluJo continua •~ la sifluientu instruccion ~asPuus del Punto aue cierra ol lFI si ln condición es falsa se eJecutaran las instruc~iones aue estan desPues del ELSE hasta la 6ltima oue termina con Punto •. Cuando se e•Plea la clausula NEXT SENTENCE "oJo es PUesta en al~6n blbaue del IF. Es cnnveniente invocar Parraf~s (c~n PERFORH> l~s cuales contiene instrucciones ave por "u definicion tienen cl~usulas con invocación a otras instrucciones Para evitar cnlocar Pu"ntos aue· terminar\Rn el tF.

EJemPlO t

HOVE 'SI' TO Continua ACCE:PT C"Pt.urar IF CaPturar m 'SI'

PERFORH CaPtura UNTIL Continua • 'NO' ELSE

NEXT SENTENCf, DISPLAY 'Fin de caPtura.•

6.5 CONDICIONES DF. RELACION

Las condiciones de relación comParan dos oPer~ndos Par~ defini_r un estRdo lo~ico verdadero o f11lso dePendiendo ~el ~Perador de relación.

6.5.1 OPERADORES DE RELACION

Los oPeradores de relación evaluan los oPerandos a comParar ~

resr~s~n ~In y¡•lor ver<tsdero o f¡•1so dePendiRndo dc1l oPer~(1or.

Page 49: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' '-

V

tU COBOL *** CONDICtONf.S OF. RF.LACION

<IS CNOTl

Pase 6-4

BREATER THAN> {identificadnr-1} <IS CNOTl I.ESS THAN ) {ident:if\cador-2> <lihral-1 ) <IS CNOTl E"QUAL TO ) <literal-2 > <eKI'-ar:it-1 '} <IS CNOTl > } <eKP~arlt-2 >

<IS CNOTl < )

<IS CNOTl .. )

6,6 CONDtCIONf.S DE CLASE

Las condiciones de clase ~ua ae :illdiaa ~ define dePendiendo del ol'erador de

nos dice si al OPerando R~ del tiPO un estado losieo verdadero o falso clase.

6.6.1 OPERADOR DE CLASE

Loa O Pe radores-de-c·lasa- da-ter11inan., el-.tiP..o. de: d"to.

<IS CNOTl NUMF.RtC> <identificador~1> <IS CNOTl ALFANUHERIC>

6.7 CONDICIONF.S DE SIGNO

Las condiciones de si~no indica si el oPerando e~ Po•ilivor nesativo o c~r(l ~ define un ustado to~tcn v~rdad~ro o ratso dePendiendo del oPerador de siSino.

6.7.1 OPERADOR DE SIGNO

Los oPeradores de sisno indican si el dato numérico as zeror Positivo o nas~tivo.

<IS CNOTl. POSITIVE> < identiricadnr-1 > <YS CNOTl NF.OATlVE>· < expresion-aritmatica > ~IS CNOTl ZERO ~

6.8 CONDICIONF.S LOGICAS,

Las condicionas loSicas indica 1" condición o dos condiciones se cumPle la relación losica ~ los\en vardad~ro n falso dePandiendo d~l nP~r~dnr

6,8,1 OPERADORES LOGICOS

la relación de defina un a"tado lo:H,~o,

Los operadores losicos evalurt.d••s.

relacionan C'Ondiciones bool<><>r•~s

Page 50: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\. ;

( )

¡)

*** COBOL *** CONDtCtONF.S LOOICAS.

condición' <AND condición <OR

6.9 NIVEL 88

[NOTJ condición [NOTJ condición > [NOTJ condición >

Pase 6-5

Este nivel es emPleado Para definir vPria~les loSi~ps auo~iadas a datos donde sa eval~an Bl tomar valor el dBto• la venaJa de su uso radica en lP simPlificación de instrucciones w definiciones de condiciono Uno de sus emPleos e~ en la validación de informacion• Por su valor o ran~o de valore~. Este tipo de vartablus cuando deftnen ran~o de valores de~arr~llan de una f~~m• illual o une condición comPuesta con OPeradores lósicos ORo

6,9,1 HOMBRES CONDICIONALES DE DATOS

·Los n·ombres condicionales s" us .. n PBra definir ló!ilica01ente el valor verdadero del contenido de una variable. Esto es empleado en el control de fluJo dwl .. Proceso w 11eneral01enete ~u11ndo se valida la información,

EJemPlo 1

DATA DIVISION, ••• 01 FIN-DE-ARCHIVO PIC X(02) VALUE 'NO',

88 FlN-DE-ARCHtVO-OK VALUE 'SI'• •••

·03 CARRERA-DE-INGENIERJA PIC 9<02),. 88.C~RRERA-CORRECTA VALlJE 21 THRU 29• 31, 32. 88 CARRERA-INGENIERIA-CIVIL VALUE 21 • • • • 88 CARRERA-INGENIERIA-COHPUTACION VALUE 32. • • •

PROCEDURE DIVISION, INtCtO,

••• PERFORH LEE-ARCHI~O, PERFORH EHITE-REPORTE UNTIL FIN-DE-ARCHIVO-OK, ••• STOP RUN

·LEE-ARCHIVO, READ ARCHIVO-DATOS

AT END HOVE 'SI' TO FIN-PE-ARCHIVO, EMITE-REPORTE,

••• IF CARRERA-CORRECTA

PERFORH REPORTE-SEGUN-CARRERA ELSE

PERFORH ERROR-EN-CARRERA, •••

Page 51: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'J

l.)

*** COBOL '** NIVEL 88

REPORTE-SEGUN-CARRERA, ••• IF CARRERA-INGENIERIA-CIVIL

PERFORH RF.PORTE-CIVtLES, ELSE

IF CARRERA-INGENIERA-OEOLOGA • • • ¡

ELSE IF CARRERA-INGENIERIA-COHPUTACION PERFORH RF.PORTE-COHPUTACION,

Esta nivel define variable~ lo~icas aue asociad~s a toDan valor ~urdadero o fal~o al tomar valor ul dato. l.a asociada al nivel 88 toma al valor de verdadero ~l tQmar al valor •~~•ciricedo ~or al nivel,

01 FIN-DE-ARCHIVO PIC X(02) VALUE 'NO', 88 FIN-OF.-ARCHlVO-OK VALilE •st•,

6,10 VARIACIONES A LA INSTRUCCJON IF

Pase 6-6

un dnto vartable al d;¡to

La instrucción IF puede conte~er otras instruccione~ JF ~omo CODPOnent~~ d•l bloaue THF.N o ELSE <IF anldeddo~), Al eDplqer instrucciones IF dentro de otras instrucciones IF •~ ne~esario saber donde esta la influencia de cada instrucción IF• Pare ello es usOJada la c.l.~o¡sula NEXT SF.NTF.:HCE Pare r&llenao• los hloau2s AUe no se emPleen Para claridad de la instruccion Y ~ontrol d~ ~ada instrucción IF.

EJemPlo :

IF CARRERA-INGENIERIA-CIVIL IF ALtJ11NO-CORRECTO

PERFORH EVALUA-AVANCE ELSE

PERFORH REPORTA-ERROR ELSE

IF CARRERA-INGENIERIA-BEOLOGA ••• ELSE

IF CARRERA-INGENIERIA-COHPUTACION PERFORH RF.PORTF.-COHPUTAClllN ,·

6.1\ COHSTRUCCIIlN DE ESTRUCTURA CASE

La estructura CASE es una a~ruPacion dr. vario~ JF's en ca~cada los cualer;. d.:~f'ienen de una t;erie liP. cond:i,~iont=!'t& un bloaue a eJecuta·r,

Page 52: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

(.)

*** COBOL *** CONSTRUCCION DE ESTRUCTURA CASE

6,11o1 ESTRUCTURA CASE

La e5tructura CASE sisue la sisuiente fisura!

Estructura de desición <CASE),

y

1

1 \

+------------+-----1 ? \-------+---------------+ 1 1 \ 1 1 1 1 1 \ 1 1 1 1 1 y 1 1 V V V V . ---------. .. ---------. .---------. .. --------- ..

1 blooue Al 1 blooue Bl •• • 1 blooue Yl 1 t>looue Zl , _________ , \ _________ , , _________ , , _________ ,

1 1 1 1

+------------+----------->o<---+<----------~---+ 1 V

f'Ue 6-7

DePendiendo de la condición <?> se eJecutara el blooue A, ~.

••• ó Yl en esta estructura se tiene unP sección <Blooue Z> oue se e.Jecutar~ cu~ndo . no se cumPla ninguna de 1~•• con~iciones <OTHERWISE ó ELSE),

Como se indico esta estructura CASE e~ imPlementPda con Jr's anidados de la forma sisuientel

Page 53: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

. 1 )

i )

U$ COBOL *** CONSTRlJCClON OE fSTRUCTURA CASE

Estructura de desici6n CASE im~lementada con IF's anidad~•·

y

T 1 \ .F +-----1 ?1\-----+ 1 \ 1 1 1 \ 1 1 1 y ~

y T 1 \ F .--------. +-----1 ?2\-----+ 1 b 1 oc.> u e Al 1 \ 1 1

·--------· y \ 1 1 .--------. V

, ________ , T 1 \ F , +-----1 ?3\-----+ 1 \ 1 ......

y \ 1

.. -----:----· V

1 l 1 1

1 1 1 1 1 1 1 1 1 1 1

lblooue Cl ,, ________ , T 1 \ F +-----1 ?n\-----+ 1 \ 1 1 y \ 1 y

1 1 1 1

. -------- . y .--------. lb\ocuce Yl lblooue Zl , ________ , , ________ ,

1 y y y y y

+-------+-------+- ••• -+---------------+

6.11.2 CASE EN COBOL

1 y

la estructura case e~ i~Ple•~ntade en conol cnn Jf'g anidados de \a st~ueinte forma:

Estructure case con IF's en COBOL

IF condición-1 PERFORH BLOQUE-A

ELSE IF condici6n-2

PERFORH BLOQUE B ELSE

••• IF eondici6n-N

PERFORH BLOQUE-Y ELSE

PERFORH BLOOUE-Z,

Page 54: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

¡)

')

tU COBOL Ut CONSTRUCCION DE ESTRUCTURA CASE

EJemPlo 1

IF CARRERA-JNOENJERJA-CJVJL PERFORK Rf.PORTA-ALUKNO-CIVIL

ELSE JF CARRERA-JNllENJERJA-OEOl.OllA

PF.RFORK REPORTA-GF.Ol.OGA ••• ELSE

JF CARRERA-JNllENIERJA-COKPUTACJON PERFORK RF.PORTE-COKPUTACION

ELSE PERFORK ERROR-EN-CARRERA,

CHAPTF.R 7

INSTRUCCIONES ARITHETICAS

f'a!le 6-9

Los Procesos de cómPuto realizan célculos mateaáti~os en la solución de ciertos partes de la Pro!lraaación. Estos cálculos van desde un~ si11Pl~ su11a hasta compleJas evaluacionHso

7.1 JNTRODUCCION

Las instrucciones aritmeticaa son descritas w empleadas en la PROCEDURE DIVISION por ser está la .division donde sa realizan instruectnnas aJncutebles. F.stas instru~eionns raa•Ji&r<>n da dos oPerandos! en al!lunos formatoa uno da los OPerandos ea un nombre de dato donde se dePosita al resultado de le 6Peración arit&6ti~a. Casi todas las operaciones h•~•n uso de una ó més clausulas.

7,1,1 CLAUSULA ROUNDED

Esta clausula sie&Pre esta descrita a un no&br• d~ dato donde se d~Posita el valor final• a asta valnr fin~l os redondHado • la cifra de 111enor Gi!lnificancial esto •• al valor fina"! se lP ~u•• un aadio de la 111enor cifra si!lnifica~iva,

7,1,2· CLAUSULA ON SIZE ERROR

Esta ·clausula indica aue si el valor final de la oPeración realizada es &awor en tama~o a la definici6n del nombre da dato donde se !luardara al resuLtado entonces se eJecute la in•trucci6n aue describe nsta cla•••••la• da form ~eneral esta instruccion ~• un PERFORH donde el control v~ a un Parrafo dond• sr rc3lizaran l•s inatruccion•• adecuada& Para controlar el ••ror d• tama~o.

7.2 IHSTRUCCIOHF.S ARITKF.TICAS

En todo Proceso comPutacional se realizan OPera~ionP.s arita&tinaso P.n COBOL se defin~n las instrucciones 3rttmetlc~s en for•a Sleneral a las de r•aliza~i6n basica• <sumao restar

··ultiPlicación w division>• aai como se define la instru~cl~n aue relaciona forall1as <COHPUTE> au~ ·~i f¡e realizan con funciones basicas se necesitan de variables inter~ediPs ~ instrur.cjones arit~etic3s bA~tcas.

Page 55: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

.)

'.)

U* COBOL tU INSTRUCCION~S ARITHETtCAS

7,2,1 INSTRUeCION ADD

Pa!le 7-2

La o~eraci6n •as realizada as la suma• en esta instruc~ión se suman dos o~arenrlos o •1n o~arundo w la suma ~areial da dos o •as oPerandos.

7,2,1.1 VERBO ADD

El verbo ADD realiza la oPeración de suma baJo los ~i!luientes formatos:

Formato 11

<identificador-1)[, ADD <ltteral-1 ~c.

TO identificador-•

<idantificador-2)] < litaral-2)] . >l

CRClliNDF.IIl [oidantificador~n CROUNDEDl ,,, Cf ON SIZE ERROR in~trucciónl

Si se tiene la instrucción.

ADD A 8 TO C

••• •••

el resultado de A+ 8 +e w.A + B + D as Suardado en C w D resPectivamente.

Forupat.o 2:

<idantificador-1)[o<identificador-2)J ADD <literal-1 Ho< literlll-2>l >l

GIVING identificador-m CROUNIIF.DJ Coidenttficador-n CROUNDE01 ••• [ 1 ON SIZE ERROR ins.truceiónJ

Si la instrucción es

ADD A B GIVINB C D

••• •••

el resultado de A+ Bes Suardado en e w D._

Las Palabras TO w BIVINB no pueden u~arse amba~ en la mi~ma

oración.

Page 56: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'..)

*** COBOL *** INSTRUCCIONES ARtTKETICAS

Pa~e 7-3

Para Poder usar este verbo en una oración es necesario contar Por lo menos. con dos oPerandos num4ricost el o los sumandos ~ el oPerando sobre el aue se almacenaré el resultado.

Si la oPción esco•ida usa la palabra ro: se sum~rén ~1 valor orisina\ los valores a su•ar.

Si la ·opción escosida usa la Palabra GIVING1 .eJ resultado de la suma sustituiré el contenido orl•inal del campo,

EJemPlo:

ADD Area TO ManeJo,

Si en el resultado de la oPeración el n6mero de di~itos deciaal'on llKCI'fdl! Bl &sPacio disPonible en o? l.. CMIIPO d'l>illlnado al resultado• éste se truncaré• a menos aue se use selll~ido da la palabra ROUNDED (aue redondear~ la cifra al espacio esPecificado),

EJemPlo:

ADD Area TO HaneJo ROUNDED

Si el n6mero total de cifras de. la part& entera eKcede ~~

esPaci~ diup~nible en el . camPo-dato asisnado a\ result•do• ocurrira' un truncamiento de los dilllitos mbs si~nificativos.. La oPción ON SIZE ERROR Permite man&Jar esta condición.

EJemP\ot ·

ADD A~••• HaneJo• CaJa GlVING Total ROUNDED• ~ ON StZE ERROR PERFORK Rutina-O.

Cuando se desean sumar dos o més cantidades w hacer allll6n otro campo de datos t~ual a la suma, se u5a GIVtHG,

7.2.2 INSTRUCCION SUBTRACT,

Esta in•trucción realiza.restas de oPerandos• o resta dD un oPerando ~ \a suma de varios OPerandos.

Page 57: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** INSTRUCCION~S ARITH~TICAS

~ 1.2.2.1 VERBO SUBTRAeT

Pasle 7-4

El Y&rbo SUBTRAeT realiza la oP&raci6n de resta baJo IDs sisluientes for•atosl

FORMATO 11

<identificador-1)[,{identificador-2>J SUBTRACT <liter~l-1 )[,{ literal-2)1 )1

FROH identificador-• CROUNDEDJ C•identificador-n CROUNDEDJ •••

[1 ON SIZE ERROR instrucción]

En lB instrucción!

SUBTRAeT A B FROH e D

••• •••

el result~do de e- <A+ B> ~D.- (A+ B> ea suardado Rn e w D resPectivamente.

FORMATO 2: <identificador-1)[,{id•ntlficador-2)J

SUBTRACT <llter~l-1 >C•< literal-2>J }1 FROH <identificador>

<literal } GIVJNG identificador-m rROUND~DJ

C•identificador-n CROUNOEDl Cl ON SJZE ERROR instrucción]

En la instrucción:

•••

SUBTRAeT ~ B FROH e GIVJNG D E

••• •••

el resultad<> da C - <A + 9) ~~~ suardado en D w E.

Si se desea ·restar un camPo de datos d~ otro w ~uardar 1~ diferencia en un tercer camPo• de~e usarse la oPción GIVING.

Todos los oPer~ndos antes de la palabra FROH son sumado~ Y el resultad~ de esta suma es restado del oPerando _de 1~ dere~ha d~ la Palabra FROHo

Page 58: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** INSTRlJCeiONES ARITMETieAS

EJeiiiPlol

SUBTRACT AtBt FROM e GIVING p,

ANTES DESPUES

A B e D 1 3 5 29 1 3 5 01

Pasae 7-5

Si no se usa GIVINGt el r&$ultado de la diferencia reemPlázar6 al ~inuendo dvl ca111ro oue sislue a la ~alabra FRUH,

EJelll'lO 1

SUBTRACT AREA-1t AREA-2t ARE.-3 FROH_AREA-4 ROUNDEDt ON 817.F. ERROR PF.RFORH RUTtNA-3,

7,2,3 INSTRUCCION HULTIPLY ·

La su111a rel'atida de un oPerando es una multiPlicaciont •n COBOL la oPeración multiPlicación .l'uede involucrar al oPerando ~~1110

variable au~ contendra al resultado de la multlPlicacion. La instrucción HULTIPLY calcula el producto de Pares de n~aeros v

t) sauarda al resultado en un d~to·esPecifico,

7,2,3,1 VF.RBO HULTIPLY

El verbo HULTIPLY realiza la oPeración de multiPlicación ~aJo los si~uientew for111atosl

FORHATO 11

HUL TIPl. Y /

{identificador-1} Cliteral-1 } BY identificado.r-m ·· [ROUNPE-D·l. ·

'/ C • identifi'cador-n'• CROIJNIIEOJ • , •. Cl ON SIZE ERRO~ instrucción]

En la instrucción:

HULTIPLY A BY 8 e

ol resoJltadu de B M e V e M A ~B slllard~do en B w e re•,.ectivamante.

Page 59: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'- ..... ,

$U COBOL $$$

INSTRUCCIONF.S ARtTHF.TtCAS

FORKATO 21

<identiticedor-1> HUI. TIPL.Y <Ht.ral-1. >

{identiticador-1> BY {literal-1 > GIVINB identificador-m CROUNDEDl

C•identiftcarlor-n CROUNDEDl ,,, [1 ON SIZE ERROR instrucción]

·En la instrucción!

KULTIPLY A BY B .IVINB C D

el resultado de 8 X A es •uardado en e ~ D.

Palie 7-6

NOTA! Si no se usa BIVING• seré reemplazado el Producto en el aulti~llcando, <ses~ndo factor)

, , Este verbo aritmético eultiPlica dos cantidades Y !luard~ el ' } ~ Producto ~n la se!lunda o tercera variable.

( 1 ~

EJemPlo! ' 1

KULTIPLY Piezas BY Costo GIVING 1 Precio

ANTES DESPliF.S

PIEZI\S 23 23

COSTO 147 147

7,2,4 INSTRUCCION DJVIDE

1 PRECIO 4444444 ' 0003381 i

El numero de veces aue un valor contiene otro ~• le ll~ma divisian• ~n v11r.ias ocaeiones a'!lte no es un numero e>!acto de vec&s Por lo aue se usan datos numericos no en\eros. La instrucción DIVIDE divide un nómero entre otro v suarda el cociente Y residuo en nombres de dato.

7,2,4,1 VERBO DIVIDE

El verbo DIVIDE realiza la oPeración de división b~Jo l~s

silluientP.'il formatos:

. '1

Page 60: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

8U COBOL *** INSTRUCCIONES ftRITM~TtCAS

FORI1ATO 11

{identificador-1> DIVIDE {lit&rRl-1 >

INTO identificlldor-m r.ROUNDEDl [Jidentificador.-n CROUNDEDl , " [1 ON SIZE ERROR instrucción]

'·•

En la instrucción!

' DIVIDE A INTO B e

Pli!IIP 7-·7

,._, El eoe'ianto de 11/A · w C/A es lluar'dado on B w C reo;pectivaeante •

. :.

FORMATO 21 . '

· ' ·. (identifi~ador71> DIVID.~_{literRl-1 ,. >.

I~TO <identificador-m> < H.te.r al--1. >- · ..,.

GIVING identificador-m rROUNDEDl [•idantificedor-n CROUNDEDJ ,,, [1 ON SIZE ERROR instrucción]

En la instrucción!

DIVIDE A INTO B GIVING e D

el coetonte B/A es su~rdado ~n e w D.

FORI1ATO 31

<identificador-1> DIVIDE {liL~r¡ll-1 >

BY <identificad~r-m>

<literel-1 > ~

GIVING identificador-m [ROUNDEDJ [,iñentificador-n CROUNDEDl ,,, [1 ON SIZE ERROR instrucción]

En la instrucción!

DIVIDE A BY B GIVING e D

Page 61: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** INSTRUCeYONFS ARITHETieAS

el cociente A/9 es •u~rdado en e w D.

FORHATO 41

<identificador-1> DIVIDE <litnral-1 }

INTO <identificador-a> {literal-1 >

GIVING identificador-a rROUNDEDl REHAINDFR identificador-r

[1 ON SIZE ERROR instrucción]

En la ·instrucción:

DIVIDE A INTO 9 GIVING e REHANIDER D

el ~oct~nte B/A es suardadn ~n e w el res~duo un D.

FORMATO 5l

Pase 7-8

\_) <identificador-1}

u

DIVIDE <literal-1 } DY {identificador-a>

{literal~l > GIVING identificador-m CROUNDEDl REMAINDER identificidor-r

[1 ON SIZE ERROR instrucción]

En la instrucción:

DIVIDE A ~y D GIVING e REHANJDER D

ei cocianLe A/B us suardado un e y el residuo en D.

NOTA: Si no se usa GIVING, será reemPla:~do el cociente en el dividendo Por lo t~nto• este óltimo oPerando no Podrá ~er una literal.

DIVIDE A INTO D GIVING e ROUNDFD• ON SI?.E F.RROR PERFORH RUTYNA-4

!Divide D entre A• dando e redondeado• en caso de error. de tama"o ir a rutina-4),

Page 62: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

lj

l J .;

*** COBOL *** INSTRUCCIONES ARtTMETICAS

Existe un error cuando el diYisior es isual a cero.

7.2.5 INSTRUCCION COMPUTE.

Pa~e 7-9

Cuando ea reauiere de eYaluar una formula es Preferihle utilizar la instrucción COMPUTE el cual asruPa yariae oPeraciones besicas.

7.2.5.1 VERBO COMPUTE

El Yerba COMPUTE realiza la oPeración de eYaluaci6n de foraulas baJo el ~lsui~n~e formato:

COMPUTE nom-dato-1 CROUNDEDl r.nom-dato-2 tROUNDEDl ••• • fo~aula CION SIZE ERROR instrucción]

Este Yerbo ofrece una forma mucho más coapacta de esPecificar OPeraciones aritméticas.

En la exPresión aritmetical

1. Se pueden usar las constantes fi~uratiyas ZERO• ZEROSo ZEROES• una literal numórica o un nombre de d~to

numérico.

2. Los nombres de dato w las literales son relacionadas POr OPQradora• aritmeticos~

3, Una exPresión aritmetica PUede ser presedida por el operad~r uMuario <->.

4. Las e~Presiones aritmeticas Pueden ~Pr a~ruPadas por parentests.

COMPUTE X = A t· lB * C)

6 también:

COMPUTE X ROUNDED ~ A t lB * C> ON SJZE ERROR PERFORM RUTINA-1

Page 63: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 .,.

¡ )

*** COBOL *** INSTRUCCIONES AR!THF.TYCAS

7,2,5,2 OPERADORES ARITHETICOS BINARIOS

Lo~ orerador~~ aritaetic~~ es una conveslon Pilra definir oPeraciones aritmeticas con dos oPerandos s~n:

1 , + SUIIIil •

2. - Reata:.

J, * HultiPlicacion;

4, 1 Division.

S, · ** Potenciación.

El valor exponente eri la Potenciación debe ser una c¡ontidad nume r i~a ent,e ra.

7,2,5,3 OPERADORES ARITHETICOS UNUARIOS

Lo~ operador~~ aritaeticn~ ~s una c~nve~ion Pora definir oPeraciones aritmeticas con dos oPerandos s~nl

1. + Es identico a multiPlicar POr +1 ar:\t..a~t,ica~

Es identico a multiPlicar POr -1 arit.JrJ~?tica.

la PXPresión

la

La~ exPresiones aritm~ticas sisuen las reslas de Jerarouia ~

eJecución son las mismas oue el ~lsebra comón.

·1, 'Evaluación de Par<tntesis •.

Page 64: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

*** COBOL *** INSTRIJCC IONES ARITMETICAS

3, MultiPlicación ~ división.

Si se tienen oPeraciones con mismo nivel de Presedenci~ e~tas

se av~luaran de izauierda a derecha.

En la ewPresiónl

la evaluación es:

A= B + << C t D

1 1 1 1 1 1

1 1 t- 1 -·+

1 +---

* 2l 1 E - F ** G 1 1 1

2 ---+

+--·- 4 1

1 ··--+

1 1 +- 3

1 1 1

1 1

-+

t--------- 5 ---·-·--·--+ 1 1 1

+··----·---·· ó ---------+

Page 65: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' .1

1 )

CHAPTf:R 8

REPORTES

Los reportes son la salida nor&al de todo si~tema de Un rePorte es información formateada en PaPel•

· ~icrafil~• ~'~'!• Je for~a aue pueda ~er int~rPretada

usuarios de sistemas. de cómPuto.

8.1 FORHACION DEL REPORTE

CÓIIPUt.o.

Pantalla• Por los

Formar el reporte es disenar la salida de información. Al presentnr lln rr.Pllrt.e Para 51.1 anr.lisis o· P.st'Sdio uor; neceor;ario formar une imasen de la información facil de leer ~ analizar.

~----~·-----------------------------------------. xxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxx xxxx xxxxxxxxxxxxxx

'-----·--------·----··------------------------'

··-·------------------------------------------. 1

1 xxxxx 1

xxxxxx XXX XXX XX XXX

'------------------·---·----------------------'

.----·---------------------------------------~.

XX XX XX

xxxxxxxxxxx xxxxxxxxxx xxxxxxxxx xxxxxxxxxxx xxxxxxxxxx xxxxxxxxx xxxxxxxxxxx xxxxxxxxxx xxxxxxxxx

, ______________________ : ____________________ ,

Encabezado de reP\H·te

Encabezado de , .. ~tJsina

Lineas Je rl01talle·

Page 66: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l 1 ~·

' j

*** COBOL *** FORHACION DEL REPORTE

.---------------~--------------------------.

Pa!le 8-·2

xxxxx XX XXX xxxxx Pie de Pé!lina

'------------------------------------------'

.------------------------------------------. 1 1 1 xxxxxxxxxxxxxxxxxxxx 1

XX XXX XXX XX 1 Pie de reporte 1

\------------------------------------------'

El encabezado de rePorte es el PrinciPio de un reporte ~

!leneralmente tiene tituloso fecha e información referente al tiPo de report .. e ..

El cuerpo del rePorte consiste en una o més Pé!linas. Cada Pé!lina dePende de las condiciones fisicas del dispositivo oue contendra el rePorte. Una Pé!lina se divide en: encabezado de Pé!linao lineas de detalle ~ Pi~ de Pé!lina. El encabez~do de Pé!lina inclu~e loa definición del rePorte aai como 1~ inforaación de la numeriación de hoJ• w concePtos Por columna. L.aR lineas de detalle muestran la información del rePorte en uno ó mis formatea. En el Pie de Pá!lina se muestran datos oue exPliou~n lo~ conceptos descritos en la Pá!linao la descriPción de claves utilizadas, sumas Parciales Por hoJa e avance w numeración alterna de las hoJas.

El Pie de repnri~e HS \a Part~ rino:t-1 d~~1 l'ef'\lrte y ~~H aa•Je'stran las conclusiones finales con referencia a la información mostrada.

El diseNo de salida de información es la técnica dP de ima!len de salida ~ cálculos de camPo• para encabezados• subencabezados ~ lineas de detalle.

8.2 ARCHIVOS DE IH~RESION

usrtr hoJas rePreser,tar

La estructura en CO~OL Para el maneJe de archivos do lruPresión es C:::Jiii .idHnt:,c.t par-1 el mnne . .Jo de arch.\v,'l~S. !~P.cuenciales y iou €•structura es la si~uiente:

ENVIRONHENT DIVISION. INPUT-OUTPUT SECTION. FILE CONTROL.

BELECT archivo-lc!lico ASSIGN To disPositivo-dP-imPresión 6 archivo~fisico Cl File STATlJS ts dato-x l ,

Page 67: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

,./

)

*** COBOL *** ARCHIVOS DE IMPRESION

DATA DIVISION, FILE SF:C:TXON, FD archivo-losico

LAf<F:L < RECORD Is } OHITTED < RECORDS Are >

CDATA RECORD h r&Si~tro-archivo J,

01 resistro-archivo ,,,

PROCEDURE OIVIBION, •••

· WRITE no~bre-de-resi~tro [ FROH re<li~tro J [ {f<EFORE> { Exp-arit l.INE > [ <AFTF.R } ADVANCING ( N•J~-ent I.INF.S} [ { PABE >

CLOSE ;;¡rch\vo-lo!l\co

0.3 DEFINICION DE ARCHIVO DF. RF.PORTF.S

Pase B-3

J J J

La definición de un archivo de rePorte e• ldentic~ ~ la definición de un archivo secuencial con la dif•renci~ en aue el resistro asociado solo es un resistro elfanumeri~o• sin división de dato~. E~tos archivos ~nn aslsnado~ al disP<lsitivo de in1F-resion.

ENVIRONMENT DIVISION, INPUT ··OilTPIJT SF.CT ION, FILE CONTROL,

SELECT archivo-losico ASSIGN To disPositivo-de-imPresión 6 archivo-fisico [; Fih STATUS Is dato->: J ,

DATA [IIVISION, FILE SECTION, FD archivo-lo~lco

LAEt[L { RECORD Is } OHJTTED { Rf.COF:ttS Are }

CDATA RECORD Is resistro-archivo J,

••• •••

Page 68: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l)

#U COBOL *** DEFINICION PE ARCHIVO PE REPORTES

EJemPlo:

ENVIRONHENT DtVISION, INPUT-OUTPUT SECTION, FILE-CONTROL,

••• SELECT ARCHIVO-IMPRESION ASSIGN TO PRINTF.R,

DATA DIVISION, • • FD ARCHIVO-IMPRESION

LABEL RECORPS ARE OMITTED DATA RECORD IS REGISTRO-IMPRF.SION.

01 REGISTRO-IMPRESION PICTURE IS XC132),

Pase 8-4

El tama~o del redistro dePende del dispositivo de iiDPr~sión w del tiPo de rePorte. F.l resisiro es de tiPo alfanumérico Poroue es en este rosisiro asociado al·.archivo de imPresión w el redistro destinO- de t.od<lH las IDOviAaientos ele rn•.lktr<H• <lo;¡ •!nc;¡bezerlor subencabazador detaller etc, Todos estos rasistros son des~riios en la WORKING-STORAOE SF.CTION de la DATA DIVISION.

9,4 REGISTRO DE REPORTE

Se llaman resistros de reporte las resistros de en~eb~zadn w Pie de reporte; los resistros de encabezado w Pie de P•sina w los resi~tros de det~llR. Estas resistros son de~critas en la WORKING-STORAGE SFCTION w formados con cantantes alfanumeri~~s w odición de datos.

8,5 EDICION DE DATOS

Si se rePresenta la información en PBP&l tal como se describe en ld r.ou.P11ta<1or~ Be veri•r• todos. los. C8raclaros aue l.:l dP. .. criben .. La edición de salida de información forma a los datos de imPresión una forma lnsible de interPretar.

Los caracteres de edición son caracteres aue d~finen las caracteristicds de salida de los datos, los Cll~les defin~n for~as de imPresión de valores. Estos caracteres ~on descrito5 ~n r·esistros en la WORKING-STORAOE SECTION,

La función de las datos editados irivolucra el cambio de forma da ·los d.:;to:.;.... Por &>Jenu~·lo• se puedP.n c;IJPri.mir los ceros no sl~nificativos de los datos numericos (los auP s~ encuentr~n ~1 PrinciPio del dato numérico), el uso de comas p~ra la sePar~ci6n de cifras Para una lectura lesible de las c~ntidades nu~éricas• la insercion de caracteres Para denotar cantidades contables.

Page 69: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

--~

)

1 )

*** COBOL *** EDICION DE DATOS

8.5.1 CARACTERES DF. F.niCION

Palie B-5

Los caracteres de edición son el tiPo de caracteres aue pueden usarse Junto a la cláusula Picture Para de.finir caracteristica de salida de la información.

1. z Indica supresión de ceros no sisnificet.ivos en un CBIIIPO

numerico. So contabiliza en el tematlo del cael'o <se colo,~a il la i:o:Ciuierd~t), F.l carecter Z P.s u .. ado pera reemPlazar ceros al PrinciPio de una c~ntidad nueerica• es~o ~s 1¡e Pondra un bl~tnco de izauierda a derecha hasta encontrar cualauier dillito diferente de cer~.

2. O <Cero> Indiea Clue we coloe~uen.~aracte~••s ceros. sin auo se Pierd~n caracteres del dato fuente. Re contablliz~ en el tomatlo del camPO•

3, <Punto> Indica aue se coloaue un Punto decimal• tomando en cuenta la colocación del punto virtual. Al moverse un da~o e~t~ se alinea con resPecto a l~ Parte @ntera y decimal de la información.

4. IC11~a) tndica aue se coloau~n com~• en el lu!lsr correspondiente. sin aue se Pierdan caracteres del c~mPo fuente. Se contabiliza en el tamatlo del campo. F.ste cBracter ~s emPleado para sePar•r cifrJs eo•o en las cantidades contables <unidades. miles• millones>. Al us<Jar~e Junto con el caracter flotante ($, -, t> • el caracter coma (,) es reemPlazado P~r este caract~r al indic~rne tellqrse disit~s no ~t~ntfic¡~tivos.

S. $ Indica aue se debe poner __ un sisno t en el •:~mPo

numerica editado. Se coloca a la izauierda ~ se conta~iliza en el tama~o del camPO• Cuando se usa el caracter t este se coloca en la posición indicada. Este si1no ~olo Pll&de ~~r descrito ~n. diuitos si~nificati~os.

El si~no t se dice aue fl~ta. cuando se Ponen das o mas si:;~no~~ $ .Juntos ~:~ sut;t.itti~En óe i~01Jif1r..:la a dnre~h.1 los diaitos no si~nificativos POr blancos hasta ter•inar su influencia o encontrarse con el silluiente disito sisrdficnt~ivo.

6. - <Bisno menos> Indica aue se Pon!la un sillno men~s <-> si t?l valor del campo P~ ne~at.iv~::u ~ si r.o St:' pondrá un espa,:io ~n blanco. Se p,Jede col(•car ~ la izauierda o derecha del dato y se contabiliza en el tama~o del campo, Este s.imbolo al isual alJe sisnO $ flota c;i se le colo,·:o a la izauierda del camPo.

Page 70: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

,--.

u

*** COBOL *** EDICION DE DATOS Pase B-6

7 • + <Sisno más) Funciona iSual aue el siSno nenos. Si el val~)r (1~1 camPo es ''e~ativo 5e in~~·rta ~1 ~i1nQ ~~nos. En alsunos sistemas de comPuto se indica con un simbolo + las cantidadas Po~itiYilS o bla11co en o~ros ~ist~•as.

s. CR Indica aue se coloaue este Par de letras a la derecha del camPO• siemPre aue el valor sea nesativo• sino deJari esPa<:io en blanco.

9, DD Indica aue se coloaue este Par de letras a la derecha del camPo• siemPre aue el valor sea nesativoo sino deJari &$Pa~io 9n blanco.

10. * <Asterisco) Proteccion. Indica aue se c~loouen

11. D Indica aue se coloaue esPacios en blanco• sin aue se Pierdan caracteres del camPo fuenLe. Se c~ntdbili~a en el tama~o del campo, Este caracter es emPleado P~ra saltar PrRformas d~scritas en lo~ rePort~s o Para ~e1)arar. partes de una información.

12. 1 In~lica ~ue se coloaue un ~lssh. Se contRbiliz.a en el tama~o del camPo. Este caracter ee PmPleado Par~ seParar partes de la información.

Los caracteres de edición son asociados a resistros enc3bezados ~~ detsll~s los <:ual~s ~nn ~l~fin.Ldns

división Por medio de la wo~kins-•torase section.

tJemPlo:

DATA DIVISION, WORKIND-STORADE SECTION, 01 fNCADEZADO,

03 FILLER PIC X<10l VALUE SPACES,

aue definen ~n ls dQta

03 FILLER Pit X<27l VALIJE 'DEPARTAMENTO DE. HATEHATICAS', 03 FILLER PIC X<iOl VALUF SPACES. OJ FII.I.ER PIC X<09l VALIJE. 'PAGINA : • 03 PAGINA-SALIDA PIC Z<03l,

Page 71: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** [DICION DE DATOS

"- 01 I•ETALLE··SALIDA. 03 FILLER PIC XC031 VALUE SPACES,

. 03 NlJM-CTA-HAL PIC 9108), 03 FILLER PIC XC021 VALUE SPACES. 03 NOM-RAL PIC XC40l, 03 FILLER PIC XC201 VALUE SpACES. 03 CAL-FINAL-SAL PIC 9103),9(021,

8.6 INSTRUCCION ACCEPT

La instrucción ACCEPT introduce la fecha• dia Y hora a d~tos

numertco~ o alranu~erico~ dePendiendo d~l conc~pto ~ del form~to emPleado por el sistema de c~mPuto. Estos datos son em~leados en los rePortes ~ara indicar feche• dia w hora de elpbaración.

< DATE } ACCEPT i~entificsdor FROH < DAY }

< TIHE >

Asi la instrucción:

ACCEPT Fecha-e FROH DATE

suerda la f~cha en el nombre de dato Fecha-e con Rl formato ~Ymmdd; donde ~~ los doj diaitas de la derecha del aftoo m• el mes " dd el dia,

En la instrucción:

ACCEPT Dia-e FROM DAY

suarda ni dta en el nombre de dato Dia-e con el formato wwddd; donde ww rePres~nta los disitos derechos del afto w ddd el n6mero de di a del a~o en ·cu~stion.

La instrucción:

ACCEPT Hora-e FROH TIME

su~r~ld 1~ ¡,ora an el nombr~ ·dü dato Hora-e cnn 0l formato hhmmsstt; donde hh rePresenta las hDras oue h~n transcurrido dPsde

) la. mfldi;:,.r,ochll! \:ont.ada como c~~ro, nam los minc.1t,o'S-r sS los ·.:;·e~unr:h,s. ~ tt las decimas de sesundo.

Page 72: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1

""'

(.)

*** COBOL *** INSTRUCCION ACCEPT

Para todos estos eJemPlos son en· una forma esPPcifica• para su sistema cnn~\Jlto el m~ntJ~l de referenctB (tel ~UlliPO•

n.7 INSTRUCION WRITE <CON CONTROL nE LINEA Y PAAINAI

La instrucción WRITE con control de linea ~ P~Sina es utilizada para Pa!linar e imPrimir lineas en blanco antes o desPués de escribir .lo& re~istro de salida,

WRITE nombre-de-resistro [ FROH re!listro J e { } J [ <BEFORE>. { Exp-srit LINE } J e <AFTER } ADVANCING { N•Jm-ent · LI N F. S> l [ { PMF. } l

La r.l.HJ&llla FROH resistro especifica !!l .re!lio;t,ro a imPri•ir u es identico a mover el re!listra al re!listro de salid~ u lueso imPrimir Rn al ~rchivo de salida, La clausula BEFORF. u AFTER ADVANCING especifican 1~ acción e realizar antes o des~ues de escribir re~Pectivamente. El avance puede ser ~or una linea <1 LINEio varias lineas <n LINESI o salto a la sisuiente ~•~ina. <PA!JEI,

PROCEDURE DIVISION . . . . OPEN OUTPUT ARCHIVO-IHPRESION. ACCEPT FECHA FORH DATE. HOVE FECIIA TD FECHA-SAL, PERFORH ENCABEZADO. f•ERFORH LEE-ESCRIBE UNTIL EOFo ... CLOSE ARCHIVO-IMPRESIONo

ENC~•BI':ZAIJO .. WRITE REDISTRO-IMPRESION FROH ENCABEZADO

AFTER ADVANCXNG PAAE, WRITE REGISTRO-IHPRESION FROH SUFENCABEzADO·

AFTER ADVANCING 2 LlNF.S, LEE--ESCRIBE • . . .

IF LINEAS > 58 PERFORM ENCABEZADO.

Wr~ITE REGISTRO··IMPRESION FROH REGISTRO_;DETALLE AFTER ADVANCING 1 LlNE •

• • •

Page 73: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** lNSfkUCION WRIJE <CON CONTROL DE LINEA Y PAOINAl

'- Este tiPo de elaboración de rePortes necesita el c~ntrol de im~resióh de liNeas de pégina Para su control¡ la i~Pre~i6n se lleva tambien baJo un control de la información• asio si la imP~esi~n se .lleva Por c~~cePto al cambio d~ cada c~ncePto se deben realizar las acciones encaminadas Para ~u definición.

CflAPTER 9

CARACTERISTICAS DE LOS DATOS

A los .datos se les dPfine caracteristicas relacion;sd"~ con alsunas d~ .,,s ProPi~dadus en la DATA DlVlSlON, E~tas ciaracteristicas rePresentan cualidades de la información Ya .sea de forma· interna o en su maneJo.

9.1 DLANK WHEN ZERO

' Se usa e~ts clAusula Para denotar aue si el dato tiPne cnmo

( )

valor cero en la impresión se denotar~ con blancos ind~Pendientemente del formato de edición num~ri~o emPleado.

!lATA [llVISION • . . . 03 RESIILTADO PIC ZZ9.99 BLANK WHEN ZE~O.

9, 2 C:tJRRENCY Alt[l J:IECIM:'IL-POINT 1

Con esta clausula se dice aue sisn~ reemPlaza al dolar CSl w al punto decimal en los formatos numéricos.

EJemPlo : S2J15.45 como F3345o45

Se debe sesuir la si~uiente formé Para su definició~. ENUIRONMENT DlVlSION. CONFIGURATION BECTION. SPECIAL NAHES,

CURRENCY SIGN IS 'F' DECIMAL POINT IS COHHA.

Page 74: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l ! ./

l )

*** COBOL *** f'a!le 9-2 USAI1E IS < COMPUTACIONAL., COMP, DISPLAY, INOEX J

'1,3 USAGE IS .< COMF•UTACIONALo COMP•. DISPLAY• INDEX >

La representación de diferentes maneras. Este m.flauina. En forma esténdar

loa dato& numéricos Puede rePresentación dePende del

se tienen dos tiPo& oue sonl

••r de . tiPO de

- DISPLAY es del modo carécter (oPción Por omisión), COMPUTACIONAL ea el modo numérico.

EJemplo :

I•ATA I•IVISION, •••

03 ESTADI.S.UCAS PIC 99 USA_GE COHPUTACION~L. 03 SUELDO PIC ~9 USAGE DISPLAY,

9,4 < RYNCHRONIZED• SYNC > < LEFTo RIGTH >

Cuando se usa la cl6usula UBAGE se incremente la eficienci• dnl proarumao ~~r~ comPletar a~ta efectivt~ado debe ser usada le clbusula SYNCHRONJZED.

EJemPlo :

l!ATA DIVISION, ••• 03 VALOR-INVENTARIO PIC 9(02)

USAGE CÓMPUiACIONAL ~YNCHRONJZE~ LEFTo

'1.5 < .HJSTlFIED, .JUST } RlflHT

Esta OPCión solamente es infornceción al efectuará de efectua.

DATA Dt<JISTON, •••

usada Para camPO$ ~lfabéticos o emPleada· Para definir el modo de camPo• e indica aue la inserción dP. derecha a izauierda• contrariamente

03 ATENCION-USUARIO PIC X<20> JUSTIFIED RIGTH.

alfanuaéric-os . in,;erciór• de contenido se

iO COIIO 68

Page 75: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** SIGN 18 { l.EADJNG, TRAILIHG } SEPARATE CHARACTER

'- 9.6 SIGN IS { LEAtoiNG, TRAILIN~ } SEPARATE CHARACTf.R

Esta oPción se usa Pare indicar aue el aiano del nó~ero •~ un carácter aue va al Princi~io <~EADING> a al final <TRAILIHO> d»l nómaro.

EJemPlo 1

DATA DIVISION,

• • • 03 SUHA-ACUHULADA PICTURE IS 59(071

SIOH IS LEADINO SEPARATE CHARACTER.

9,7 RENOMBRADO DE AREA DE DATbS

El renombrar el área de datos se utiliza para Proporcionar ~1

Proceso la ca~acidad de reasrupar 1nfor~aci6n de los datos. A excePción del REDEFINES (Se vera en u~ punto Posterior) nue redefine un brea• este renombramiento se realiza Por Posición de la información,

Cti~o se notará en ~1 eJemPlo sisuiente• el área de información co~Prendida entre aPellidos w paso-educacion• se ll•m• ~ambi~n fi~ha-paso-hacianda. Adem&s, se emPlea un nOmero de nivel nuevo (óó) w la cl6usula RENAHES,

EJemPlo !

DATA DIVISION, ... 01 PEGISTRO-DE-IHPUESTOS,

05 NUHERO-DE-SOC!O P!C X<09), 05 NOMBRE.

09 PRIHER-NOHBRE PIC X<lOI. 09 SfGtiNDO-~OHBRE PIC X(101, 09 APELLIDOS PIC X<25),

05 XMPtlfRTOS, 09 PAGO-PERSONAL PJC 9(06), 09 PAGO-EDUCACION PIC 9(06), 09 PAGO-IHSS PIC 9(061. 09 PAGO-PREDIO-CASA PlC 9(06),

66 FICflA-PAGO-HACIEHDA RENAHES APELLIDOS THRU PAGO-EDUCACION • . . .

PT·occdure division. Inicio •

• • • Read causantes-emPresa into reSistro-de-imPu~stos ~t end •••• Write Pa•ú~-~-llac1enda frc,m fieha-?~~o-haci~r,da. · ••• StoP run.

Page 76: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

-*** COBOL *** Pase 9-4 MULTIDEFINICIDN DE.NOHBRE DE DATOS

9.8 HULTIDEFINICION DE NOHBRE DF. DATOS

Le multiPle definición de nombres de datos• o el uso de nombr~ de datos repetidos solo es P~rmitido en nombres de d~tos ó da¡b• asruPado~ baJo ~n nombre ~e sru~o• w sirve P~ra oPtimizar el movimiento de datos. <No aai en no~bres d~ resistros ni nivel 77, óóniflfl),

instrucciones oue información <HOVE

Al definir nombres rePetidos existe~ tres relacionan este tiPo de definicion, mover CORRF.SPONOING),. s•Jmar <ADD CORRF.SPONDINGl ~

CORRESPONDINGll si se desea maneJar alsun camPo srupo 1:n1l nn~b~·~ it1~ntieo en otro ~~~istr~ e~~e función del redistro esPecificao en la formal

6

nombre-de-dato IN res~~tro

1

nombre-dP-dato OFF resiatro

resta <SUBTRACT d~ un rP~istro o

en

el modo de invocar dePende del sistema de cómPuto.

DATA DIIJISIOU •. 01 r~:!~-·.{tJ~: ..

02 norubre Pie- xC32). O 2 e~ r r '2 r· <:). F i c ); (O 2) .. . . .

01 re.r~·~a.nt. ~

02 no~b1·e Pie i:<32). 02 car•·era Pie xC02) .. . . .

FROCEDURE DIVISION • . . . . . . IF carrer~ IN rea-ant <> carrera JN res-aux ...

HOVE CORRESFbNDING

Se ocupa par~ mover un re~istro (emisor) a otr~ <recePtor), los subniveles rec~Ptores oue se modificarbn son ónicamenle los ~ue tensan el mismo nombre, los aue no cumplan esto auedarán con la ruisma información.

Page 77: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 ""'

*** COBOL *** ' MULTtDFFINICtON UE NOMBRE DE DAfOS

HOVE < CORRESPONDING > identificador-1 TO identifl~ador-2

< CORR >

EJe&Plo :

DATA DIVISION • • • • 01 REGISTRO-MAESTRO.

OS NOMBRE PlC X(40), 0'5 DIRECCIONo

09 CALLE PIC X<lO), ••• 09 CODIGO-POSTAL PIC 9(06),

01 Rf:GISTRt1-I\UXtLIAR. 0'5 NOMBRE PIC X<40), 0'5 DlRFCCit1N.

09 CALLE PIC X(10), ••• 09 CODIGO-POSTAL PIC 9(0b),

••• PROCEDURE DIVISION. INICIO,

•••

Pase 9-5

HOVE CORRESPONlllNG REGISTRO-MAESTRO TO REGISTRO-AUXIl.lt\R, ••• STOP RUN.

Es identico si se tuvieran las sisuiente~ inatrucciones:

HOVE NOMBRE IN REGISTRO-MAESTRO TO NOMBRE IN REGISTRO-AUXILIAR.

HOVE DIRFCClON IN REGISTRO-MAESTRO TO DIRECCION IN REGISTRO-AUXIL~AR •

• • •

9,8,2 ADD CORRESPONDING

La suma con nombres identicoa tiene eJ formato:

ADD < CORRESPONDINO } identificador-1 TO identificador~2

{ CORR )

(ROUNDEDl (ON SIZE ERROR instrucción]

Sea 1~ instrucción:

ADD CORRESPONDING A TO B

Page 78: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

',;

*** COBOL *** Pase 9-6 HULTIDEFINICION DE NOMBRE DE DATOS

con la siSuiente estructura de d~to

DATA OIVISION, ••• 01 A.

02 STOCK PIC 9.(05). 02 AHOUNT PtC 9(06). 02 UNIT-PRICE-A PIC 9',( 05) • 02 S-CODE PtC·~X(06),

01 Et. '

02 S-CO[aE PIC•'.X(06), 02 lJNIT-PRICE-9 PIC 9(05), 02 STOCK PIC 9(05). 02 AHOUNT PIC 9(09).

"· . \~

los elem~ntos subordinados al reSistro A son sum~dos a· lo5 d~ B. ~ el r~sultadn guardado en 9 v ~s identiao at

' r'

: '

' t ADD STOCK. OF A TO STOCK OF 9 Abb Á~hUNT OF A TO AHOUNT OF 9

~.8.3 SUBTRACT CORRESPONDING

La ~•Jma con nombres identicns tiene el for$atot

BUBTRACT < CORRESPONDING } identificador-1 FROH ; i ' < CORR }

identificador-2 [ROUNDEDl [ON SIZE ERROR in~trucciónl

Sea la instrucción!

SUBTRACT CORRESPONDING A FROH 9

.:¡,

Page 79: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** MULTIDEFINICION DE NOMBRE DE DATOS

con la anterior estructure de dato.

los ~le•ento~ s~bordinado5 ~1 resistro A snn re~tadc1~ a los de D Y el resultado suardado en 8 w es ide~tico al

SUBTRACT STOCK OF A FROH STOCK OF 8 .SU8TRACT AMOUNT OF A FROH AHOUNT OF 8

9,9 CLAlJRlJl.A REDEFINES

La redofinici6n de 6rea de datos es usada cuando -~ auiere hacer referencia a una misma 6rea d~ información. Esto es PPr~ite oue una misma 6rea de aemoria <resistror sruPo o campo) ~• PUPda

.reterenciar con més de un nombre. Al us•rse la cl6usula REDEFINES Presenta rewtriccic1ne* mostr~das en el aPendiae. En fnraa ~en~ral Presenta el siduiente formato:

<Nivel> Nombre-de-dato REDEFINES Nombre-de-dato-a-redefinir.

DATA DIVISION • • • • 03 NUMERO-DE-CUENTA PIC 9<08), 03 NUMERO-CUENTA REDEFINES NUMERO-DE-CUENTA PIC X(09l, •••

PROCEDURE DIVISION. INICIO •

• • • ACCEPT NUMERO-CUENTA. IF NUMERO-CUENTA IS NUMERIC

PERFORH NUMERO-DF.-CUENTA-NUMERICO ELSE

PERFORM NUMERO-DF.-CUF.NTA-NO-NUMERICO, ... STOP RUN,

Esta clausula es usuada en forma Seneral tabl~~ can~tantes como nombre~ de estad<,~' aue se analizaran en el caPitulo de tablas.

a la definiclor. de cQdiSos, puqsto~, etc.

Page 80: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

CHAPTF.R 10

MANEJO DE TABLAS DE UNA DIHENSION

Una tabla e~ la colección de datos ~elacionados. EJemPlos de tabla~ snn: 1~ definicion de impuesto4• la~ no•bres e•pleados para diferentes claves (estados, Producto, etc.>• El mbneJo de tabl;¡s "4 >'1 timPleo de la4 t!'lbl"'" rara el mane.lo un los al!loritmos.

10.1 DEFINICION DE TABLAS CINTRODUCCION>

Una tabla es un conJunto de valores al•acenadus en po~iciones

consecutivas y con un solo nom~re de dato. Para hacer rr.ferenr.ia a un elemento.de la tabla• se da e~-~~o•bre Y el sublndice oue identifi~a la Posición de ese elemento en particular. Los elelllentos de Un;¡¡ tabla unidimlólntdonal Slt enumerBn secuencialmente

l.._; 1,2,3,.. hasta el óltimo.

' ' '....1

La clausula OCCURS permite definir tablas w tiene el sisuiente formato funda~Rntal!

<nivel) nombre-de-tabla OCCURS n TJHES PtCTllRf. t:\Po( lonslitud),

DATA DIVISION • • • • 01 tabla-in!lreso-estado.

02 insreso-estado OCCURS 32 TIHES PICTURE 9COó>V9C02),

10.2 HANf.JO DE TABLAS CINTRODUCCION>

El maneJo de las t~blas se hace Por medio de ind:\ces donde el indice indica el lusar donde se erocuentra la información deseada. En un~ tdb\~ (le un~ di&en~ion 5H llece~its solo ~le ~In incli<~e.

Page 81: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

u

l..)

*** COBOL *** Pase 10-2 MANEJO DE TABLAS <INTRODUCCIONI

De la definicion an~erior relacionando el indice con alsuno de los ~4~ados de la reP~bltea llleMicane Ct A~•• 2 ,,,¡ 32 Zas> ~ena1110S ClUII

insreso-astado<t>

denota "n ~~ valor asociddo al tnsreso del Asuascalientes ~

in!lreso-estado<J2>

ostado

denota ol. v~lor asociad~ el insreso del estado de Zacateca&.

~ uno d11 sus usos s11rial

DATA DIVISION, ••• 01 tabla-in!lreso-es~ado.

02 in!lreso-estado OCCURS 32 TIMES PICTURE 9(061V9102), 01 e~tado ~ic 91021,

ea estado-ok value 1 ~hru 32. PROCEDlJRE DIVlSION, •••

• • • DISPLAY 'Clave es~ado l ' ACC:E:PT est .. ~do, PERFORM checa-estado THRU e~tado-ok. DISPLAY 'El in!lreso del e~tado ' ~R~ado ' es •

in!lreso-e~tado(es~ado),

•••

10.3 DEFINICION DE TABLAS CON INFORHACION CONSTANTE

da

Al <lun,ls ·•L~od·~III<>S defien12n .·~ablas con valores const.er.~es co10o sor" los nombres de.'los dias de la.se11anar ·nolllbres de los est¿odosr etc. Es~as tablas son definidas en COBOL haciendo uso de la clausula REDEFINES ~ la ~efinición de tablas.

Page 82: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** Pase· 10-3 DEFINICION DE TABLAS CON INFORHACION CONSTANTE

·.EJemPlo:

DATA DJVISION, ••• WORKING-STORAGE SFCTION. 01 DF.Fl NIC ION-DI AS,

02 FILLER PICTURE X<10l VAl. Uf. 'LUNES', 02 FII.Lf.R PICTURE X<10l V ALIJE 'HARTES', 02 FILLER PICTURE X<10l VAL UE 'HIERCOLES', 02 F IL.Lf.R PICTIJRE X<10l V ALIJE 'JUEVES'• 02 FILLER PICTURE X<10l VAL Uf. 'VJF.RNES', 02 FILLER PlCTURE X<tOl VALUF. 'SABADO', 02 FILLER PICTURE X<10l VALUE 'DOMINGO',

01 TABI.A-DlAS REDF.FIHES DEFIHICibN-DIAS, 02 DIA PICTURE X<10l OCCURS 7 TI HES,

Al evaluar una tabla en una instrucción comol

HOVE Dia(numerol TO die-salida

Mueve el valor de la tabla die indicada ~or el valor de n6mero ~ al camPa rllR-,¡a\ida.

')

10.4 INSTRUCCION PERFORM VARYING

La instrucción PERFORM indica aue el control vawa ~1 ~arrafo

descrito ~~ 31 ter~inar•e el Parrsfo vuwlva a la sid~iente

instrucción desPues de al cum~lirse la condición de salida• esta variación de ~· instrucción PERFORH lleva un valor oue · se incremenLa en ~IHrto valor ai1e fue inicializado antes de.en~rar a iterar w ~ermina al cumPlirse una cond~ción.

PERFORM Procadlmlento THRU Prricedimiento VARiiNG identificador FROM valar-inicial BY valor-incremental UNTXI. candicion-de-salida.

Page 83: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

(..)

*** COBOL *** INSTRlJCCION PERFORH VARYING

Por eJemPlo en el llenado de un~ t8bla de~de un archivo!

ENVIRONHENT DlVISION. INPUT-OUTPUT SECTION, FILF.: CONTR\1L,

SELECT ARCH-FNT ASSION • • • DATA DIVISJON, FD ARCH-ENT ,,, 01 F:EO-ENT.

02 VALOR PJC 9(03), •••

• • • WORKING-STORAOE SECTION. 01 TABLA-X,

•••

02 TA8LA OCCURS SO TJHES PJC X<l'O> O 1 CONT.AJ:IORf.S.

02 CONT-I PIC 9(02), 01 EI1F PIC X<02> VALUE 'NO',

88 EOF-OK .VALUE 'SI' •••

PROCEDURE DIVISION, •••

• • • OPEN INPUT ARCH-ENT, REAO ARCH-ENT nT END HOVE •st• TO F.OF. PERFORM LLENA-TA8LA VARYJNO CONT-I FROH 1 8Y 1 UNTJL

CONT-I > SO OR EOF-OK, •••

LLENA-TAE<LA. HOVE VALOR TO TA8LA<CONT-I> •. f<EAII ARCH-F.:NT AT END HOVE 'SI' ro· f.OF,

10.5 IIEFINICION IIE TA8LA~ FIJAS• VARJA8LES Y CON INDICE

f'a!le 10-4

La cl••us11la OCCURS indica ~1 numero de eiemenlo~ de una tabla con un identici formato! en e~ta definición se indica ai esta referer.Ci'Oda P<lr Un Índice USado 10n Í'l PrOCIO\;O do? lllene.Jo W

bus~ueda de elementos en la tabla <cuwo Proceso ~e re~li%8 en la PROCEIIUE OIVIStONl.

Forn.a.to 1:

numero-de-nivel nombre-de-d~to OCCURS n TIMES ~ INOEXED B~ Cnombre-de-indice),,,J

En este Primer formato se definen tablas con lon!litud.fiJa,

Page 84: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

( i .......

()

*** COBOL *** Pase 1 O-S DEFINICION DE TABLAS FIJAS, VARIABLFB Y CON tNDJCE

EJec.Plo!

~----··--.---------------------------------~-------------. 1 No, En•P 1 1 1

Salarios 1 1 1

POr 1

111811

1 ' 1 . 1

\-------+--~--------------------------------------------' ENE FES HftR ABR HAY JIJN JUL AOS SEP OCT NOV DIC

Su definición seria:

DATA DIVISION, ••• 01 REG-SALARIO.

02 NO-EHP PIC 9106>, 02 SALARIO-HES OCCURS 12 TIMES PXC 9106lV9102),

Formato 2:

numero-de-nivel nombre-de-dato OCCURS n TO 111 TIMES DEPENDING On nolllbre-de-d~to-2 r INDEXED 8~ <nombre-de-indice).~,J

En u•te formato se define una tebl~ vari3ble donde el t~mano

varia de N a MI N representa el minimo nómero de ocurrencias ~ H el maximo nómerol la lonsitud de la ta~la la define la .variable nombr~~dq-dato-·2.

Se define una tabla variable donde se definen. materia~ c~n calificacion de un alu~nti referenciado Por su nómero de cuanta •

. ----------+------------~--+--- • • • --- . !No. C<&ent~INumero HateriasiHateria-calificaeionl '----------+---------------+--- .••• ---.'

Su definición seria!

[tATA IJIVISION, ... 01 Resistro-materias.

02 NlJmero-(le-cuenta. 02.Numero-d~-malerias

02 mllt•~,·ia.s

03 O&ilt<!ria 03 calificacion

Pie 9(08), Pie 9(07), oecur$ 1 to 7 ti~es dePendinS en numero-de-materias. Pie 9(04), Pie >:(01 ¡·,

Page 85: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** ·Pase 10-6 DEFINtCION DE rA»LAS FIJASo VARIABLES Y C!IN XNDICE

La clausula INDEXED BY define el c•Jill su~rda el aPunt~dnr

declarado autométicamente.

al_ nombra-de-indicel e~te indica hacia ••n elem .. nto de la tablo•• es

Asi en las definiciones anteriores Podamos ~sociales un indictt eon: ·

DATA DIVISION, ••• 01 .REO-SALARIO,

02 NO:-EitP 02 SALARIO-HES

01 Resistro-e~terias. 02 Numero-de-cuenta.

PIC 'i'(06>• OCCURS 12 TIMES INitEXED BY X1 PIC 'i'<06lV9<02),

Pie 9(08), 02 Numero-de-materias Pie 9<07), 02 materias occurs 1 to 7 times

dePendins on nu•ero-de-materias indexad bw x2.

03 aatt>ria J>ÍC 9(04), 03 calificacion Pie: x<01>.

l ' .1 10.5.1 11ANf:.JO DE TABLAS

( )

Los elementos dP las tabl~s Pureden refarenciar~e Por medio de un apuntador o 'Jn indi~e~

Cuando se referencia con un ~Pun~ador ~ste puede s~r una literal numérica o un nombre~de-dato. Este valor dPbe sPr maMo o isual a 1 w menor o isual al tamano _maximo de la tabla.

P~ra la~ dnfiniciones:

/ Salario-mes(l)

no~ r~f~rim~G ~1 s~l~rto <1~1 SIDPl&ado. en el mes de Hnerot ~ en:

Salario-mes(N)

noH referimos al •~l~rio del emPleado de un aue es definido por el valor de N [Si N referimo's al <>aL•rio .del mes; de diciemhrel.

~~~ cualauiera ·y es isual ~ 12• nos

Page 86: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** f'a!le 10-7 DEFINICION ~E TABLAS FÍJASo VARIA~LES Y CON INOICE

Si hacemos uso de indices estos asten descritos •1 •~mento de declar~rme ~ S<l su uso esta definido Pnr:

Sslario-'mes<Xl>

el valor de Xl asi~nado POr la instrucción SET ~ la referencia de la tabla.

10.5.1.1 SET

La instrucción SET se util~ze Pare maniPular el indica asisnedo a una tabla <OCCURS INDEXED BY>. El indica de una tabla sólo se Púedé oPerar Por medio de la instrucción SET. Se Puede increm~ntaro dearementar ~.tsual~rso a une constante• v~riabie u otro.indice.

Formato 1 ..

{ ident.ificador-1 } < identificador-2 }

SET < } ••• · Tll { noaibre-indir.e-2 }

< noihbre-indice-1 } < ent.ero-1 )

En es~e formato se le da valor al nombre-de-l~dir.e o sl!lun nombre de dato baJo 1~~ sisuient.es re•lasl

.-------------------------------------------------- .. can•PO c.amPo e mi sor_

1 re~ePt.nr INnmbre-indicelnombre-dat.nl literal 1 l--------------l-------------l---~~------l---------1 lnombre-lndi•·:e 1 valido 1 valido .1 ·valido l l--------------l------~~-----l-----------1---------l 1 norrtb r~ ·-dn l·,o 1 valido 1 no valido lno valido! '--------··----------~-~~----~----------~--~---------1

En la instrucción:·

SET X1 TO N

El vAlnr de N e~ puesto en Xl.

En la instrucción:

SET N TO X1

Page 87: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

()

l )

*** COBOL *** f'a!le 10-8 ~EFINICION Uf TASLAS FI.JARo VARIABLES Y CON INDICE

El valor de.Xl es salvado en la variable N.

For~aato 2.

< UP BY ) < identificador-3 > SET < no•bre-indice-3} ,,,

< DOWN BY ) < entero-2

Esta in .. truccinn nombre-de-indica en nolllbre-do;~'-deto,

En la instrucción!

increaenta o decr~aonta

lo indicado Por une

SET Xl UP BY 3

el valor de Xl ea auaentado Hn tret1 unidades,

w en la instr~ccioOn

SET Xl DOWN BY S

Rl valor con11tante

el valnr d~l tndice Xl .. ~ decremente en S unidedes.

10.5.1.2 MANEJO DE TABLAS CON. INDICES

}

o dd

un

Los indice"' ~u~dun ser maneJador Para referenciar infor~aacion en forma directa o relativa.

EJemplo!

~sneJo de indica en forma directa.

PROC:EDlJRE: JHVISION, •••

HOVE ZERO TO SALARIO-ANUAL HOVE Xl TO 1 PERFORH SUMA-SALARIO UNTIL X1 > 12, ...

SUMA-SALARIO, ADD SALARIO-HES<X1l TO SALARIO-ANUAL. SET X1 UP fJY 1,

Page 88: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

/··--

' -

\._)

*** COBOL *** Pase 10-9 DEFtNICtON DE TA~LAS FIJAS, VARÍA8LfS Y CON INDICE

EJemPlo:

HaneJo de indice en forma relativa.

PROC[DURE DtVISION, •••

HOVE ZERO TO SALARIO-ANUAL HOVE X1 TO 1 PERFORH SUHA-SALARIO UNTIL X1 > 12 • • • •

SUHA-SALARIO, ADD SALARt0-H[S(X1)

SALARIO-HES<Xl + 1) SALARIO-HES<X1 + 2) TO SALARtO-ANlJALo

SET Xl UP BY J,

10.6 BIJSQUEDAS

Al tenerse une tabla se reauiere de buscar información. Se entiende ~or bósaueda el proceso mediante el cuPl •• recorre una tabla cnn obJeto de ·it:lenti.ficar el, o los, ll·lwa.!_nto'ir a11e cumplen con al•una caracteristica~

Un tiPo de bósoueda es la b~saueda lineal donde se barre la tabla ele~ento Por elemento ha~ta encontrase la información o no encontra~e Pnr salirse t:le la tablao este ·tiro de buuaued3 se realiza en una tabla ordenada o ·desordenada, Otro tiPo de busaued¡o O'i la bu~oueda binaria la cual nece~ita o<te la tabla este ordenada por alsuna condic~6n llave.

10.6,1 BUSQIJ~DA DE INFORHACtON LINEAL

La forma manual de buscar i~formaci6n en lineal es h~ciendo u:1o de ~ontrnl de sisuient.e forma:

una tabla en forma fluJo de proc!eso de la

Page 89: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l . ..1

(.)

*** COJlOL·*** l<USCIUEDAS

f'illlll 10-10

Buscar un salario (monto> cualouiera en la tabla d11 aalarios d11l ag¡pleado.

f'ROCEDURE DIVISIONo •••

SET X1 TO 1, DISPLAY 'Salario a buscar' ACC:F.PT S>!l.H\o, PERFORH Jlusca-s~lario

UNTIL Salario-maa<X1> =salario OR X1 > 12.

IF X1 > 12 DISPLAY 'No se ~ncontr~ el ••lario Pedido''

ELSE SET N TCl Xl DISPLAY 'El salario corresponde--al • H- • -mea',

••• BUSCA-SALARIO,

SET X1 IIP BY 1.

10•6.2 BUSQUEDA LINEAL

iA buaaueda lineal indica oua se ra~orrera toda la tAbls h~~ta encontrar la información deseada o referenciar un irodiee ar.yor al tamano de la tabla.

r

< nombre-indice-1 ) SEARC:H identif\cAdor-1 CVARYING < identific~dor-2 >

CAT END instruccion-imPIIrPtiva-ll ,,, WHEN condición < instr~ccion-imPerativa-~ >

< NEXT SENTENCE >

l.a sintaxis--·indi·ca··oue- se>- bu,.ca en la tabla._. (identiflcadur-1) el elemento oue cumPla con la condición aue .aParece de&Pués d11l WHEN. la tabla sobre la cupl se realiza la bósoueda deba tener asociado un indiceo pués es en éste donde ae almacena el elaaento de la tabla oue cumPla con la condición.

Utilizando esta instrucción para el eJemPlo anterior:

Page 90: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** BUSOUEOAS

~ EJ&~Plcl

Pase 10-11

Buacar un salarie <mente) cualouiera en la tabla de aalarics del om~laa~c.

PROCEDURE DIVISION •

• • • SET Xl TO 1; DISPLAY 'Salarie a buscar' ACCEPT Salarie, SEARCH Salarie-mea

VARYINO X1 AT END DISPLAY 'No •• anccntro al salarie ~edidc' WHEN Salario~aas(XI> • salarie

SET N TO X1 DISPLAY 'El aalaric corresPonda al • N • mes•.

10.6.3 BUSOUEDA BtNARIA

La busouede binaria considera una tabla ordenada ~a &ea de forma ascendente e de~cendenteo albuscar· una Información esta tabla es ~arttda a la mitad ~ se com~ara ~sta valor con al valor buscado• si les valores sen idualae estancas termine la busouedao si no son i~unlas entonces ¡¡e toma come limite este elemento u el anLe~enulaLimc elemento referenciado hacia adelante o atras

~ dePendiendo de la comParación~ se vuelve a buscarl si la t~bla.es de un Rol~ alamanto esta t~bla ~a no 5e P<lede dividir ~ termina la busoueda por lo aue el elemento a bu•car nn se encuentra en la tabla.

EJe~Plo:

.Buscar el elemento 10 de la sl~uiente tabla en busoueda binaria~

Tabla •

. --~-·----+----+----+----+----+----+----+----. 1 1 1 4 1 7 1 to 1 t4 1 20 1 35 1 so 1 so 1 '----+----+----+----+----+----+----+----+----'

Primer proceso

.----+----+----+----+----+----+----+----+----. 1 t .1 4 1 7 1 10 1 14 1 20 1 35 1 50 1 so 1 '----+----+----+----+----+----+----+----+----·

Hitad de la tabla. Es al olemHntn b<IScsdo?

~~ NO ; Definir la siduiente tabla y rePetir el procese.

Page 91: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 )

' .;

*** COBOL *** [<USQIJE (<AS

se llurodo Proceso

.----+----+----+----+----. 1 1 1 4 1 7 1. 10 1 14 1

'----+----+----+----+----' Hitad de la tabla.

Es el el~D~nto buac:8do1 NO : Definir la silluiente tabla w rePetir el Pro~eso.

tercer Proceso

.----+----+----. 1 7 1 10 1 14 1

·'----+----+----' Hitad de la tabla.

Es el el~~"nLo b~sca~o1 SI : Fin de la busaueda.

si el elemento ~ buscar fuer~ el 9 se tend~ial

terc:<!r pro~eso

.----+----+----. 7 1 10 1 14 1

\ ---·-+-·---+---- t

Mitad de la tabla. Es el olementu b•Jscado? NO : Definir la silluiente tabla w rePetir el Prn~eao.

r.uarto Proceso

~----+----. 7 1 10 1

"----+----'

Mitad de la tabla. Es el elemento buscado? NO D~finir la silluiente tabla w rePetir el Proceso,

Pase 10-12

Como wa no se .puede definir otra tabla entonces termina la busaueda w no se encontro el elemento.

La busaueda binaria en COBOL considera la silluiente declaración c:on los formatos!

Page 92: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** E<USOUF.OAS

f'a!le 10-13

~ Formato ll

l)

numero-de-nivel nombre-de-dato OCCURS n TIHES < { ASCENDING } KEY lS nombre-de-dato ••• > < < DESCENDING } > e INDEXEO 8~ <noabre-de-indice),,,]

Foraat,o 2:

numero-de-nivel nombre-de-dato OCCURS n TO m TIHES DEPENDING On nombre-de-dato { < ASCENDING ) KEY IS nombre-de-dato ,,, > < < OF.SCENDING } } e INDEXED B~ <nombre-de-indica),,,]

donde la e 1 au·,;u 1 a ASCENOHIG/DF.SCEND tHn KEY de te rllli lllll en o u u forma esta ordenada la información w POr cual llave.

EJemPlo t

Se definen los codiSos w nombres de les deleSaciones del Distrito Feder¡¡¡l,

DATA [IIVISION, WORKINO-STORA6E SECTION, ••• 01 DEF-COD-DEG, ' . , ...

03 FILLER PIC X<34l VALUE 'OlDELEGACION ALVARO ORREGON', ••• 03 FILLER PIC X<34l VALUE 'l6DELEGACION XOCHIHILCO',

01 TA9-0F.F-COD-Df0 REDEFINES O~F-COD-DF.G,

02 DELEGACIONES OCCURS 16 TIHES ASCENDING KF.Y NO-OELEG INDEXED BY NUH-DEG,

03 NO-OELF.O PIC 9(02), 03 NOH-DELEG PIC X<32),

La instrucción de busoueda binaria tiene el formato:

SEARCH ALL identificador-! CAT END instruccion-imPerativa-11 WHEN condición CAND condicionl ,,,

{ instruccion-imP@rativa-2 } { NF.XT SENTENCE }

Page 93: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

V

*** COBOL *** DUSQI.J[[IAS

Las condiciones siemPre son oPereeionea de i~uald~d.

Buscar el nombra de une deleaaeión euvo ~odiso se tiene en la variable cod-dea,

PROCEDURE DIVISION, •••

SEARCH ALL DELEGACIONES AT END DISPLAX 'NO SE ENCONTRO LA.DELEGACION'

• CON CODIGO '. COD-DEG WHEN NO-DELEG<NUH-DF.LEG) • COD~DEG

Paae 10-14

DISPLAY 'LA DELEGACION CON CODtOO ' COD-DEF • ES ' NOH-DELEG<NUH-DF.LEG),

•••

~- .

Page 94: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' )

1 )

CHIIPTER 11

MANEJO DE CADENA DE. CARACTERES

El aan11.l.o de cad11na de caracteres .11 itlual· au11 el aan11Jo d11 cantidades nuaericas es una 'de las actividades aue •• realizan baJo. vari·os Pro.:eso'l Para <teftnir dato"' Este aan11Jo deteraina, 1 as e ara e te ri·st-icas··,de-'l·os··cal'actel'es-·asi.:.·coao·-su uso·,

11.1 DF.FINICIIlN DE CADENA DE CARACTERES

Una cadena de caracteres es un vectol' Ctabla de una dia•n~ian)

dond• se •uardan caracteres.

11¡~ iNiiRÜCCION INSPECT

La instrucción insPect tiene dos actividades oue sonl las de ·riiVis<~r ill, cuntflni•Jo dll la ca.dena <111 Caracteres W la de reeaPlazar intor••~ión de la cad•na.

11.2.1 VERBO INSP~CT .. La v~rbo INSPECT r~aliza la~. ~uniiones de canta~ w .reeP)azar

caract~res e~ ~n Gtrin••

11.2.2 CONTAR-CARACttRES

Para contar cuantos caract•res se •ncu•ntran en un strintl se ti•n• 111 foraato:

INSPECT identificador-1 TALLYJNG ·C ( <. ALL ) < id•nti ticadnr-3 ) ) < identiticador-2 FOR < < LEADJNG ) < literal-1 .) ) < < CHARACTERS )

[ < [ (

·[ {

BEF'ORE ) ------ } INITIAL AF'TER )

< identiticador-4 ) J· ( literal-2 ) 1 ,,,

]

) )

> • • • ) ) )

Page 95: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** INSTRUCCYON YHSPECT

Pa!ie 11-2

Este formato indica aue le cadena de caracteres identifir.ad~r-1 e10 enali:::ada Para contar tm el itientiflcador-2 tod<><> CALL> \os caracteres idueles e identificednr-3 o literel-11 ~ lo~ caracteres aue <;ea~ i~ualos el identiftcedor-3 o li~erel~t w a<oe este uno tras de otro el princiPio <LEADING> de le cedenel o ~odos los cereet-res <CH~RACTERS>f oue este entes <BEFORE> o d~s~1oes <AFTER) del identiticedor-4 o le literal-2.

Hau ou• ~•ner cuidedo d• seber auf! valor ~iene el iden~ificador-2 antes de le instrucción we oue la instruccian suma 1 Por cede cerac~er analizado w cumPle con la condición definidei siemPrfl ~ .. Prflf~rible mover el valor de zero a ente itientiticetior,

·Si se desea saber cuantos sidnos de 'S' ~e encuentran en la cadena ·TEST Poniendo este. valor en la veriel:>le nuoaérica COUIIT-A la instruccion '"" escribiria:

INSPECT TEST TALLYING COUNT-A FOR ALL '$'

Si o•Jaramo<; <>~bar cuantos ceros exi10tan a le tzauterde del o>uroto decimal w cuentos a l;o derecha en los contedorel' COUNT-A w

(....; COUNT-B de la cadena TESTo 10e e1icribi.ri.a:

'.)

INSPECT TF.ST TALLYING COUNT-A FOR ALL COUNT-B FOR ALL

'0' BF.FORE INITIAL '0' AFTER INITIAL

' ' • 1 • ·'

De la cadena de caracteres TEST w sabiendo aue contiene un nocnbre de P\~t·~inna Justificado ;¡¡. la dArt1ch~l.• cual es la lan!litud. del norobrel este valor lo · tendrPmos en la variable COUNT-A haciendo uso de la instrucción:

INSPECT TEST TALLYING COUNT-A FOR CHARACTF.RS AFTER INITIAL ' '

11.2,3. REEMPLAZAR CARACTERES

Para rerraPlazar unos caracteres POr otros se tiene el f"!ra.to:

Page 96: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

[)

1)

*** COBOL *** INSTRUCCtON INSPECT

INSPECT identiticador-1 REPLACING << CHARACTF.RS BY < idontificador-5} << < literal-3 }

« < ALL } ( identificBdnr-á }

« < LEADING } < literal-4 }

« < FlRST } ( --------------- }

( ident'ificBdor-7 BY { literal-5

( ---------------[ < BEFORE } < identificador-e } J }

f• a !le 1l -3

}

}

}} }}

}}

[ { ------ } ·rNITIAL { literal-á } ] • • • } ••• [ < AFTER } ] }

El formeto indiaa ~ue se ree~la%ara An la cad~n• de caracteres identificador-1 todos los caracteres (CHARACTF.RES BY> por el identificBdnr~5 <> la literal-31 o todos los earactere~ <ALL> • o los caracteres aue esten···al .. Princif!.io .dE' la cadena <LEADINlHr o el ~rimer cardctur <FIRSTJ de laca¿ena aue ;ean l~uai~$ a identificador-á o literal-4 Por E'l identificador-7 o literal-51 aue este anLan <BEFOREJ o desPues <AFTER> del identiti~ador-B o le literal-6,

El reemPlazo de todos los espacios aue e~tan al ~rlnciPio de de la cadena·TEST Por ceros se· realiza con la instrucción:

INSPEGT REPLACING I.EADING ' ' f!Y '0',

El reemPlazo de todos los blancos por ceros en la cadena TFST es con la instruccion:

INSPECT REPLACING ALL ' ' BY '0',

El reemPlazo rlel Primer cero por ••n si!lno '+'.se r~aliza con la instrucción:

INSPECT REPLACING FIRST 'O' BY '+',

11,2,4 GONTAR Y REEMPLAZAR CARACTERES

Para contar y reemPlazar caratctPres en un strin~ se tiene Pl sisuiente for~~to:

1

1

Page 97: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

)

*** COBOL *** INSTRUCCtON INRPECT

pase 11-4

INSPECT identificador-1 TALLYING

{ ( { ALL } { i dent \f i e: 11do r- 3 }

{ i dent.i fi cedor-2 FOR { ( LEADING } { 1 it.eral-1 }

( ( CHARACTERS

[ { BEFORE } { identificado r-4 } l. }

[ ( ------ } tNtTIAL { lit.erBl-2 } .1 ••• } ••• [ { AFTER }

REPLACING

<< CHARACTERS BY { identificador-5> << < lit~ra1-3 >

« { ALL ) < i dent i ficador-6 }

« < LF.ADINO } ( 1 i tt,?r B1-4 )

« < FIRST } { --------------- )

J )

< identificador-7 BY < 1 ite ra1-5

< ---------------[ { IIF.FORE } ( identif i ced•n-8 } J )

[ { ------ ) INITIAL { lit.eral-6 ) J ••• ) ••• [ { AFTf.R ) 'J )

}

} }

}

}

)

> }

}} }}

}}

Este formato es una conJunci6n de los anteriores• PO~ lo aue. en la .c:adR~a de caracteres identificador-1 ~s analizada Para contar en el identificador-2 todos <ALL> los caracteres i~ua1es a identlfic:ador-J o literal-11 o los c~ra~t~res a•oe ue~n l~ualu~ al identificad~r-3 o literal-1 w aue e~te uno tras de otro al Princi~io <l.F.ADtNG> de la c:adenal o todos lo~ caracteres <CHARACTERS>; aue este ~ntes <BF.FORE> o despue~ <AFTF.R> del identific:Bd•>r-4. o lB litera1-21 w ~e reoP1azarB ~~ la cadena de caracteres ident.ific:ador-1 lodos los caracteres <CHARACTERf.S BY> por el identlflc:ador-5 o la literBl-31 o todos los c:srac:teres <ALL) , o los c:arac:t.eres aue esten· al Principio de 1~ c:ndena <LEAOtNO>, ,, .,¡ Prilll"r carac:ter <FIRST> de lilc>H1ena o"" s"an iguales. a ident.ificador-6 o litera1-4 eor el identific:ador-7 o literal-51 ~loe este ant"s (l\F.FORE) 11 dHSPUUS (AFTER) del identificador-e o la literal-6.

Contar la cantidad de sisnos ••• en la variable COUMT-A w reemPlazar toct<)S los ca~acteres 't' Por '*' desPliO~ dul ~riaer 't' oue se encuentran en la cadena de carateres TEST se rPaliza c:on la instru~t::iont

IHSPECT TALLIYNG COUNT-A FOR ALL 'S' .REPLACINO ALL 'S' BY '*' AFTF.R INITtAL •••

Page 98: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** INSTRUCClON INSPECT

Pase 11-5

'-· El roumero ero formato libre contenido en li!l · vrorL•ble

\_J

alfanu~ertc~ AaC de ~eis PO~ic!ione' ~ auR tiene blancns al princiPio de la cadena ~ un si!lnoo se desee •aber ~i e~ un n6maro ~ luello convertirlo a numero haciendo uso de la in•trucción move a la variable num•rica S-ABC cuwa definición es S9(06lo enton~ea tin se!lmenLo de Prosraaa sertal

PRDCEDURE DIVISION • • • •

HOVE ZERO TO PLUS-SIGNo INSPEC:T ABC

HINUS-SIGN,

TALLYING PLUS-SIGN FOR ALL '+' HINUS-SIGN FOR ALL '-'

REPLACING LEADING SPACE BY ZERO FIRST 't' BY 7.ERO FIRST '-' BY ZERO.

IF ABC IN NOT NUHERlC PERFORH ERROR-EN-VALOR-NUHERICO

ELSE HOVE ABC TO S-ABC IF HINUS-SIGN HOT EQUAL 6

HULTIPLY -1 BY S-ABC,

Se~ la cadena definida baJo el nombre DIRECCION defihida c6IIIO X<20l " valor 'TOKYO HEXICO SANLUIS' ~ P.l FRf.Q una variable nuffierica con valor i~ual a ceror si se tienPn 1~ si•uientes instruccinnus ~1 valor de FREQ w el de DIRECCION tienen los $iSuientes· valorest

INSPECT DIRECCION TAL.LYlNG FREO FOR LEADING. 'TOKYO' <FRFQ = 1 DIRECC:ION • 'TOKYO MEXIC:O SANLUIS' >

INSPECT DIRECCION TALLYING FREQ FOR ALL SPACE <FREO • J DtRECCION = 'TOKYO HEXICO SANLUIS'>

INSPECT DIRECCION TALLYING FREO FOR CHARACTERS ~EFORE INITtAL SPACE.

<FREO • 8 DIRECCION = 'TOKYO HEXICO SANLUIS'>

INSPECT DlRECCtON TALLYING FREO FOR CHARACTERS BEFORE INITIAL SPACE

<FRFO = B DIRECCION = 'TOKYO HEXICO SANI.UIS'>

INSPECT DIRECCION TALLYING FREO FOR CfiARACTERS AFTER lNITIAL SPACE

~FREO • 22 DIRECCION • 'TOKYO HEXICO SANLUIS'>

Page 99: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'.)

*** COBOL *** INSfRUCCION lNBPECT

INSPECT DIRECCION REPLACING CHARACTERS BY '*' BEFORE INIT.tAL SPACE

<FREQ = 8 DIRECCION = '***** HEXICO SANLUIS'>

INSPECT DIRECCION REPLACINO LEADINO '*****' BY .'OSAKA' <FREQ = 8 DIRECCION • '.OSAKA HEXICO SANLUIS'>

INSP~CT DI~ECCtON REPLACING FIRST SPACE BY '-' · <FREO • 8 DIRECCION • 'OSAKA-HFXICO SANLUIS">

INSPECT DIRECCtON REPLACING FIRST SPACE BY '-" <FREO • 8 DIRECCION • 'OSAKA-HEXlCO-SANLUIS'>

11.3 INSTRUCCION STRING

Pa!le 11-ó

La instrucción STRIN.G ·concatena do~&. o aas cadenas de caracteres en una ~ad~na de c~r~ctar.

11,3.1 VERBO STRING

El verbo STRING concatena dos o Más cadenas una cad~na ·,¡~ .eiJr3ctere~, la -i~ntr~tecinn

for1T1Dto.

STRINO < < identificador-1 > < < llterel-1 )

[IELIHITED I<w { {

{

identificador-2 ) ) literal-2 SIZE

INTO identlficador-3

IWITH POINTER identificsdor-4l

[QN OVERFLOW instrucción]

} } ) )

•••

de car~cter~s en tiRn~ al st!luiente

Se C<)nc~l~nar~ll las c~~e~as de cBriscter ya s~~ en el identificador-1 o literal-1 delialtados POr el caracter o cadena definida por el identificador-2 o la literal-2. o POr su taaa~o

definido <SijE) en la cadena de caractere~ identificador-3 l.levando como aPuntador 1~ variable numérica identificador-4• en caso de aPunt~r a un elemen~o aawni a la ion!litud de la cadena se eJecutara la instrucción definida en le clausula ON OVERFLOW.

Page 100: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\ ' ..,

*** COBOL *** INSTRUCCION STRING

Consideremos oue se tiene ~n nómero de el formato 'x-xx-xx-xx' si se desee pesar alfenumeriee de tams~o 7 ITELEF> sin si•uient~s es~rue~urAsl

DATA DIVISION, ••• 01 TELEFONO.

02 CLAVE-CIUDAD PIC 9101). 02 FILLER PIC XI01> VALUE '-' .. 02 CLAVE-SECTOR PIC 9102), 02 FII.Lf.R PIC XI01> VAL UE '-' 02 CLAVE-ZONA PIC 9102>, 02 Ftl.Lf.R PIC XI01 > VAL UF. '-' .. 02 CLAVE-PUERTO PIC 9102),

01 TELF.F PIC XIOll,

f'ROCEOURF. DIVIS ION, •••

Sl'fi:ING CLAVE-SECTOR CLAVE-ZONA CLAVE-PUERTO INTO TELEF

DELIHITF.n BY SlZE DELIHITED BY StZE DELIHITF.D BY SIZE

f'a~e 11-7

telefono <TF.LEFONO> con e uoa.verieble de tema~o los •-• se tiene los

Si se inserto en una variable <EMPLEADO> a Partir dPl vi~Rsimo

caracter verificando oue no exista une esi•naeión a otro elemento ma~or a la definición!

PROCEDURE DtVÍSION • • • •

HOVE 20 TO APUNTADOR; STRI~O CLAVE-SECTOR DELIHtTED BY ~IZE

CLAVE-ZONA DELIHITF.D BY SIZE CLAVE-PUERTO DF.LIHITF.D BY SJZE. INTO EMPLEADO t.JITH POINTER AP.UNTADOR ON OVERFLOW PERFORH ERROR-FORHA-F.HPLEADO,

••• ERROR-FORHA-EHPLEADO,

DISPLAY 'Error al formar la caden~ EMPLEADO',

11.4 INSTRUCCilJN UNSTRING

Esta .instrucción sePara de una cadena dP caracteres las subcadenas oue lo comporien ~a se~ P~r su tama~o o un delimitador.

Page 101: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

.. --.\

*** COBOL *** INSTRUCCtON llNSTRING

11.4.1 VERBO UNSTRING

Pa!le 11-8

El verbo UNSTRING considera una. cadena de caracteres fuente " varia~ cadenas de caracteres ~est.inoo P'lede ••nalizarse a partir de un elemento baJo el si!luiante formatol

UNSTRtMG ident.ificad~r-1

C DEL.IHITED BY C ALL. J ~ identificador-2 > {. e literal-1 }

C OR C ALL. J C identificador-3 } } e < literal-2 } } •••

INTO < identificador-4· Co DELIHtTF.R IN identificador-5 l

}

) ....

c, COUNT IN identifi~edor-6 l} •••

C WITH POINTF.R C TALLYIN~· C ON OVERFLOW

identificadnr-7J identi f icador.-Bl instrucci6n l

Esta instrucci6n mueve l~s subcadenas de caracteres dHl identiflcadnr-1 delimitadas <DEL.IHITED BY ALL } Por el idanti~icador-2 o la llteral-1 6 <OR ALL> al identificador-3 o la

"' literal··2 en cada una de la11 variable!< ~lfanuaérica11

identiftcadnr-4 donde en la variable alfanua~rica identtficador-5 1e !luardara el delimitador activo de 1~ cadena <DELIHITER IN> " el nómero de caracteres tran11feridos en la v11riable ~ouméric-a

identificador-A (COUNT tN> a Partir del caracter marc~do Pnr la variable numérica ident.ificador-7 <WITH POINTER>I al efectuar. los Dtovindent .. os ~·¡.'? coót.aran cuantos crur.Pos ftJeron llen;g.dos .(identificadores 4'sl en la variable numérica identificador-SI si ewiste un movimiento a al!lun lu!lar ma~or a la definición de taman6s de las cadenas se eJecutara la instruc-ci6n definida en la clausul~ ON OVERFLOW.

Si se tienen las sijuietes estru~turasl

Page 102: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

i

'-'

t.)

*** COBOL *** Pasle 11-9 INSTRIJCCION IINSTRING

DATA DIVISION, ••• 01 REGISTRO-EHISOR PIC X<l32), 01 REOISTRO-EHPLEADO,

03 NOHBRE PIC X<32), 03 DIRF.CCION PIC X<32). 03 COLONIA PIC X<32l. 03 CODIAO-PQSTAL PIC X<06).

01 CONTADORES, 03 NO-NOHBRE PIC 9(02), 03 NO-DtRF.CCION PIC 9(02). 03 NO-COLONIA PIC 9(02). 03 NO-Ctll'ltGO PIC 9(02),

01 DELIHITADORES, 03 DEL-NOHSRE PIC X<Ol>, 03 DEL-DIRECCION PIC X< 01>. 03 DF.L-COLONIA PIC X<.01l. 03 [IEL-CO[IIGO PIC X< 01>.

w el valnr da la variable REBISTRO-EHISOR es

'JÓSE RAHIREZ*CALLE 15 NO. 60*SAN PE:[IRO DE" LOS PJNC1Si031001P'

Par~ seP~ra lns d3tos e introducirlos en RF.GISTRO-EHPLEADO se realiza la sisuiente instrucción:

PROCEDlJRF. DIVISION • . . . UNSTRING

'•

...

REGISTRO-EHISOR PEI.IHITED BY '*' OR 'i' INTO NOHBRE COUNT IN NO~NOHBRE

DELtHITER IN DEL-NOHBRE PIRECCION COUNT IN NO-PIRE"CCION

·•·rtELIHITER IN DF.L-PIRECCtON COLONIA COUNT IN NO-COLONIA

DELIHITER IN DEL-COLONIA CODIGO-POSTAL

COUNT IN NO-CODIGO DELIHITER IN DF.L-CODIGO

TALLYING IN NO-CAHPOS ON OVERFLOW PERFORH ERROR-TRANSFERENCIA,

ERROR-TRANSFERENCIA, DISPLAY 'ERROR Al. SEPARAR LOS DATOS PE ENTRAPA',

Page 103: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

·***COBOL*** INSTRUCCION IINST~ING

los valore~ de las varia~laa aaranl

NOMBRE • 'JOSE RAHIREZ' NO-NOMBRE • 12 DEL-NOMBRE = '*' DIRECCION. • 'CALLE .1S NO o 60' NO-DIRECCION • 15 DEL-DIRECCION = '*' COLONIA • 'SAN PEDRO DE LOS PINOS' NO-COLONIA = 22 DEL-COLONIA = 'i' CODIGO-POSTAL ~- '03100' NO-CODIGO = S DEL-CODIGO • ·~·

P~se 11-10

Page 104: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

CHAPTER 12

ORDENAHIENTO DE DATOS

Huchos Procesos reouieren ou~ la información este ordenada por alduna condición de dato. El ordenamiento de información en cobnl Pue<i& re,.li"""'"' en vectores o archivo~. l." i.nstr<Jccion"~ de ordenamiento en COBOL son sobre archivo.

12.1 ORDENAR l~FORHACION

Es muchos procesos de información es necesario ordenar la información para oue el ~roceso al~oritmico sea correcto• ~u~ntas vecns se Pl,.ntea el ~bJetivo de emitir reporten c~J\ t~l o cual orden <ordenado porl nombrel edadl seKo-nombre) o e8 n~ceserio ordero;nlo Pill'il t,ot,.lizar ciert.o liriJI'O de d"l1111 (di!Part.aaf!nto. cli~hte, sucursal etc.), Ordenar la información es realiza~ un Proces6 de 3cnmodaiento de l~s <iatns <iePen<iiendo <iel crince~>to ~

_..· los datos.

' ' . -"

Por eJemPlo! se tiene la información de los clientes de cierta comPa~la de sesuros aue en forma· r-educida se t.ieane suSl rto•bres' edad 'd· S'i!'HO•

Sea una muestra de esa información~

NOMBRE EDAD S F.: XO .. ·-- ----------- ~--- --------------------+_----+-- --------- ~

1 JOSE MORALES ESCALERA 1 201 1 HASCULlNO 1 HARIA SANCHEZ AGUILERA 1 23 1 FEHENINO JOSE H IGIJF.:L l.OPEZ 1 28 1 MASCULINO JUANITA LOPEZ ESCOBEDO 1 34 1 FEHENINO LAIJRA ORTF.tJA RAHIREZ 1 10 1 FF.:HENINO

'------------------------------~+----+-----------'

'

Page 105: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

.,

*** COBOL *** ORDENAR tNFORHACION

~ La infor~aci6n ordenada ascehdente ~or nombre es:

NOH.llRE EllAll SEXO .-------------------------------+----+-----------. 1 .lOSE HIGIIF.L LOPEZ 1 ';!8 1 MASCULINO 1 1 JOSE MORALES ESCALERA 1 20 1 MASCULINO 1 1 JOANUA l.OPF.Z ESC08EDO 1 34 1 FEMENINO 1 1 LAURA ORTEGA RAMIREZ 1 16 1 FFMENINO 1 1 MARIA S~NCHEZ AOUILERA 1 23 1 FEMENtNO 1

·~--------~----------------~----+----+-----------·

La información ordenada ascendente Por seKo-nombre es:

NOMBRE ·F.OAD BF.XO .-------------------------------+----+-----------. 1· JUANtTA LOPEZ F.SCOBEDO 1 34 1 FEMENINO 1 1 LAURA ORTEGA RAMIREZ 1 10 1 .FEMENINO 1

MARIA SANCHF.Z AGUILERA 1 2J 1 FEMENINO 1 JOSE MIGUEL LOPEZ 1 28 1 MASCULINO 1 JOSF. HORAL(S ESCALERA 1 20 1 MASCULINO 1

·-------------------------------+----+-----------· L~ información ordenada descendente POr edad esl

NOMBRE EDAD SEXO .---- .. --------------------------+----+-----------. 1 JIIANITA l.OF'F.Z ESCOEIEDO 1 34 1 FEMENINO. 1 1 JOSE MIGUEL LOPEZ .1 28 1 MASCULINO 1 1 MARIA SANCHF.Z AGUII.ERA 1 23 1 FEMENINO 1 1 JOSE MORALES ESCALERA 1 20 1 MASCULINO 1 1 LAURA ORTf.llA RAMIREZ ·¡ 10 1 FEMENINtl 1 '---------~---------------------+----+-----------'

12.2 ORDENACION EN COBOL

Pa!le 12-2

,Desde el ProPio ·len!luaJe COBOL se· Puede llevar a cabo el ordena'"i."nt.o de l<lS re.aistros <le· un ar.chivo. Pilra podflr llev"r a cabo el ordenamiento .se ~eaui~~e ~sPecificar un atchivo inlar~ra~Hiio.

. ---------. .-------------- . .---------. 1 ARCHIVO 1 1 ORDENAMIENTO 1 1 ARCHIVO 1 1 ENTRADA 1----->1 1----->1 SALIDA \---------'

\ ______________ , , _________ ,

V

.--------------~----. 1 ARCHtVO DE SORTF.o 1 , ___________________ ,

Page 106: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** ·coeoL·*** ORDENACION EN COBOL

F·ase 12-3

.) '-' Este archivo intermedio debe estar descrit<> en 1;: ENVIRONHENT

DIVISION Por medio de le in~trucción SELECT Y su definicióri de archivo Y resistro en la DATA DJVISION en la ~ección FILE SECTION Por m~~to ~el de~criPtor ~e archivo SD•

Existan· dos modalidades de uso de le instrucción SORT.

1. SORT USING-GIVING. con e~te fora~to uno o aés archivos de entrada desordena~~s resultan en ~n arcl1ivo de ~elida ordenado. El orderiamiento se puede llevar a c~~o ascendente o descendentement.e ~e ac~erdo a lBs llave& esPecificadas.

2. ~ORT INPUT OUTPUT PROCEDURE, Este fo~aato define en el archtv~ de sorteo los re•istr~s a or~ener o~co~tend~los de los archivos de entrada• asi com.o taabien se ,.uede selecionar del árchivo de sorteo alsuno~ resi~tros esPecificosl este tiPO de Proceso permite el ahorro de esPacio Y tiemPo al ordenar ~olo la inforaación necesaria. El archivo se ordenara de acuerdo a las condiciones de ~rdenamiento w las llaves esPecificas.

Aunado a los do~ anteriorvs formeton se Pueden combinar la entrada de uno w la salida del otro o viceversa.

12.3 D~FINICIDN DE ARCHIVOS DE SORTEO

La definición de archivos Para sorteo se manera aue la definición de archivos diferencia aue no ~e ~ifine un PBrrafo FD sorteo sino un Parrafo SD.

ENVIRONHENT DIVtSYON, INPUT-OUTPUT SF.CTION, F ILF.··CONTROL,

•••

lleva de la aisma secuenciales• con la por cada archivo de

SELF.CT archivo-losico ASSIGN To archivo-fi~ico. DATA DYVISION, FILE SECTION • • • SD ~rchivo-losico

[ DATA < RECORD Is, RECORDS Are > resistro-sorteoo res i s t ro·-¡;o r te o, 03 llave-1 Pie x(10), 03 llave~2 Pie 9(02), ••• 03 llave-n Pic a(20),

Page 107: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** f'a!le 12-4. DEFINICION DE ARCHIVOS OE SORTEO

., ' ' \._..' Las llaves de orderoa,.iento estan definidas en ta11allo Y tiPo en

1 '-•

l i ..,.

el re<list.ro a<Lnciado al archivo de '>or'tlfo <llave-lo ll<!Ve-2, ,.,),.

ENUIRONHENT DIVISION, INF'UT-OUTPUT SECTION, FILE CONTROL.

SELECT ARCH-TYX SEl.ECT ARCH-TYY SELECTARCH-SRT

DATA DIVISION, FILE CONTROL, FD ARCH-TYX

ASSIGN ASStGN ASSIGN

TO DISK, TO DISK, TO .DISK,

LABEL RECORD ARE STANDARD, 01 RF.O-X,

03 NOHBRE-X f'IC X<32), 03 EDAD-X PtC.9(02), 03 SEXO-X f'IC X<10),

FD ARCH-TYY LABEL RECORD ARE STANDARD,

01 REO-Y. 03 NOHBRE-Y f'IC X<32), 03 EDAD-Y PIC 9102), 03 SEXO-Y f'IC X<lO),

Frl ARCH-SRT DATA RECORD IS REG-S,

01 REG-S, 03 NOHBRE-S f'IC Xl32), 03 EDAD-S f'IC 9102), 03 SEXO-S f'IC Xl10),

12.4 HISTRIJCCION SORT USINO OtUING

La instrucción SORT c:on la clausula USING OIVING realiz• sDrteo de toda ls información en el archivo de sorteo.

SORT archivo-lo!lico ON { ASCENDING } KEY llsve-x Co llave-y J,,,

{ .OESCENDING } [ ON < ASCENDING } KEY llave-x Co llave-y J,,, ],,, C { Tlf.SCEND I NG > l

USING archivo-entrada-x Co archivo-entrada-y J ••• GIVING archivo-salida.

Ero esta instrucción el contenido del archivo-entrada-xo el archivo~Rntrada-~ etc. ~on ~r¡sbado~ Hn el ~rcl1ivo d• sorteo, ordenandolo conforme al tiPo de sorteo <ASCENDING/DF.SCF.NilJNG> de las llaves esPecificadas (llsve-xo ,,)J para lue~o ~ac:iar el archivo brdenado ero el archiYD de salida,

Page 108: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** IHSTRUCCIOH SORT USIHO GIVIHG

.-) \..._.. EJemPlo •.

Ordenar Por noabre ascendente:

PROCEDlJRE DIVIRtOH,

••• SORT Ar(CH-SRT

OH ASCENDING KEY NOMBRE-S USIHG hRCH-TYX GIVING ARCH-TTY.

·En ~uchaa ocaciones el archivo de salida es i~ual al ~rchiv~ de salid~• c~nfi~urandO!Ie deP~ndiendo del otsteaa ria computo en aue se eJecute el P.rosrama.

Ordenar Por nombre •scendentel

PROCEDlJRE DIVISlON, ••• SOF:T ARCH-SF"H

OH ASCENDINO KEY NOMBRE-S USÍNO ARCH-TYX OIVINO ARCH-TTX.

12.5 IHSTRUCCION SORT INPUT PROCEDURE OUTPUT PROCEDURE

La instrucción SORT con la clausula INPUT PROCEDURE OUTPUT PROCEDURE realiza sorteo de inf~rmación aue es introducida al archivo de sorteo con la instrucción RELEASE y extraida con la instrucción RETURHo el formato de lP instrucción RF.LEA'sr es identico a WRITE del archivo se~uencial ~ el de 1~ instrucción RETURH <>S idoH)tii'o a READ del de un OJrchivo secuP.nci"l• Cuando se hace USO de este tiPO de irostru.cción es necesario . de definir secciones• los cuales cominenzan con la definición de sección <Ho10bo·e SECTXOHl, deb"n tener Por lo menos dos parr.,fo,;, donde el ulti~o ¿ontiene solo la instrucción EXIT,

SORT ar(:htvo-losico OH { ASCEHDIHO } KEY·llave-x r, llPve~Y ~ •••

< Df.SCENDHIO } [ OH { ASCEHDING }·KEY llave-x [o llave-y ] ... [ { DESCEHOIHG } INPUT PROCEDURE 15 nom~re-de~seccion-a

t < THROUOH } nombre-rie-b J [ < THRU } J

OlJTPlJT PROCF.DlJRE tS nombre-de-s&cciun->t [ < THROUGH } nombre-de-y J [ < THRU } J

] ... J

Page 109: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

-

*** COBOL *** INSIRIICCION SORT INPUT PROCEOURE OUTF'UT PROGEtiiJRE

/

nombre-de-seccion-e SECTION, Parr~fo-inici~l-a •

• • •

• • • párrafo final-a.

EXIT, nombre-de-seccion-x SECTION. Parr~fn-inlcl~l-x,

••• RETURN archivo-sorteo Record

[ lnto resistro-x l At END instrucclon • • • •

Parrafo-final-x. EXIT~

EJemPlo:

P1111e 12-6

Sortear solo los client•• d• sexo~ '•••culino'• s~rt•erlos Por noabre w extre~r los oue ti~nun hesta unA. ~dad d• 20 atlosl

PROCEDURE DIVISION, ••• SORT ARCH-SRT

ON ASCENDINO KEY NOMBRE-S INPUT PROC:EDURE 01-MASC-ENT THRU 01-MASC-SAI. OUTPUT PROCEDURE 01-EDAD-ENT THRU 01-EDAD-SAL,

01-MASC-ENT RECTION, 02-ESC-MASC,

OPEN INPUT ARCH-TTX, MOVE.'HO' TO EOF, READ ARCH-TTX AT END HOVE 'SI' TO EOF. PERFORM 03-0RABA-MASC" UNTIL EOF •-'SI'~

CLOSE AF:CH-TTX, OOTO 02-MASC-ENT,

03-0RAE<A-MASC, IF SEXO-X = 'MASCULINO'

RELEASE REO-S FROM REO-X, READ ARCH-TTX AT END HOVE 'SI' TO EOF,

02-MASC-ENT, EXIT;

01-MASC-SAL SECTION, 02-MASC-Sill,

EXIT,

.•

Page 110: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

/ ·-.... *** COBOL *** '-.) .INSTr\UCCION SORT INPUT PROCEDURE OUTPUT F'ROCEDIJRE

01-EDAD-ENT SECTION, 02-F.SC··EOAD,

OPEN OUTPUT ARCH-TTY, HOVF. 'NO' TO EOF. RETURN ARCH-SRT AT END HOVE 'SI' TO EOFi

,,.PERFORM OJ-ORABA-EDAD IINTIL EOF = 'SI'. 'CLOSE ARCH~TTYo '· 'GOTO 02-EDAD-ENT.

03-0RABA-EDAD. IF EDAD-S < 21 . WRITE REG-Y FROH REO-So RETURN ARCH-SRT AT END HOVE 'SI' TO EOF,

02-EDAD-ENT, EXIT

01-EDAD-SAL SECTION, 02-EI•AD-SAL,

EXIT

Pa!le 12-7

Page 111: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

CHAPTER 13

ARCHIVOS RELATIVOS

Los archivos rela~ivos son u~ilizados Par~ rPferenciar resis~ros identific~do~ Por su n6mero de posición dPntro del archivo. E;;tos archiv,os son l!mPlea.dos cuan,io ';e eonoee d" la información datos oue iden~ifiouen al resis~ro dPntro dRI ar~hivo

Por su Posición.

13.1 ARCHIVOS RELATIVOS

Un archivo relativo es aouel archivo un redistro se hace Por médio del re~is~ro Rn el nrehivo. Un Brchivo t~c~encialmente o en forma rela~iva •

el cual P~r• referirse e numero de colocación del

relativo PliRd~ BeeRsarse

. --------.-.:.--·--------""':'--------------. 1 1 . . 1. Primer rPsl.

+-------------------~----------~----+ 2 1 1 sesundo rPs,

·~ .. ------------ .. ·-- ---.---·-- -----------+ ••• • •• +-----------------------~-----------+ 1 1 an~epenultimo r~~;

+-------------------------------~---+ ro 1 ' 1 o.¡ltimo res,

'------------------------------------'

Los archivos usa las direc~ion~s asisnadas a cad~ r~sistro al mo~&nto de ufi.ua.r-:;e el archivo, estAfó. direcciones ~on va\orliPs numéricos de 1 al miximo n6mero asisnado por Pl ~ontrol de archivos, Cada dirección son direccionadas por la llave relativa.

Un archivo de orsanización relativo puede ser maneJado -con un acces9 secuencial• relativo o din&mico (secuencia ~/o relativo>,

Page 112: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** Pa!le 13-2 ESTRUCTURA DE IJN ARCHIVO RELATIVO

,-. '-·~ 13,2 ESTRUCTURA DE UN ARCHIVO RELATIVO

. ,_,

El ~aneJo de archivos relativos considera estructura !lenerall

IDENTIFICATION OtVISION, PROGRAH-ID, ARCHIVOSRELo ENVIRONHEHT DIVISION, INPUT-OUTPUT SF.CTJON, Fil. E CONTROL,

SELECT archivo-lo!lico ASSIGN To archivo-fi$ico OROANIZATION ls RELATIVE Cl ACCESS Hode Is

la

< CSEQUENTIAL> >J < C RANOOH > RELATIVE Kev i~ nnabre-dato-1)]

. C < DYNAHIC > )J e FILE STATUS h noabre-dato-2 l

DATA OtVISION, FILE SECTION, FD archivo-l~~ico

eDATA RECORD IS·re!listro-archivol 01 r~~intro-archlvdo

03 ••• WORKING STOR~GE SECTION, 01. RF.OISTROS-R~LATIVOS,

03 NOHBRE-DAT0-1 PIC 9(06), 03 NOHBRE-DAT0-2 PIC X<02),

PROCEDURE DIVISION, Pa.rra·fa-inic\.:¡1 •

• • • HOVE valor TO nombre-dato-1

< INPUT > OPEN. < OUTPUT > archivo-lo!lico

< I-0 > READ archivo-loaico CNEXTJ Record e INTO re!listro-x l

Cl At END instrucción J READ archivn-lo~ico Record e INTO reBistro-x J

Cl INVALID-KEY .instrucción l WRITE radistro-archivo FROH re~iHtro-x

e; INVALID Kew instrucción J RF.WRITE rewia~ro-archivo FROH re!listro-x

Cl INVALID Kew in~t~ucción J DEL~TE archlo-lo!lico RECORD

Cl INVALID Kew. instrucción l START archivo-lo!lico CKF.Y < IS EQIJAL TO > nombre-dato-1

{ IS a > Cl INVALID' Kew instrucción J

CLOSF. ~rchivo-lo!lico

1

Page 113: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

......

U$ COBOL *** DEFINICION DE ARCHIVO,

13,3 DEFINICION DE ARCHIVO,

f'a!le 13-3

Un archivo relativo sa identifica da ••nara si11ilar al archivo secuanciall se la indicar• su forma da orsanización w su •odo da acca~o• asi co•o als~nas caracterintic~s ~ ~u astruct~ra de dat~~ en el rasistro asociado. Se deba da definir un dnto en la WORKING-STORAOE de tiPo nu•arico donde 5o ~andra al valor del numero da ra!listro a accesar.

13o3o\ DECLARACION DE ARCHIVO

La declaración de archivo se realiza en la ENVIRONHENT DIVISION donde se describa la or!lanización w al modo da accasol asi co•o su a~isnación al medio exter~or.

ENVIRONHENT DIVtSION, INF'UT-OUTF'UT SECTION, FILE CONTROL,

SELECT archivo-lo!lico ASSIGN To archivo-fi~ico OROANtZATION- ts RELATIVE [1 ACCESS Hoda la < <SEOUENTIAL> >J < < RANDOH ) RELATIVE Ka~ ia nnllbra-~ato-t)j < < DYNAHIC. > )J C Ftl.E STATUS is no•bra-dato-2 J

El archivo-lo!lico ea asi!lnado ilt su definición co•o archivo-fisico w aste _no•bre dePende del sistema de c6BPutoo se defiroe su or!lani,aci6n <ORGANIZATION) relativa Y 11odo de ~ceso <ACCESS HODE IS), si no ~e RSPecifica nl modo de acceso se considera secuencial <SEOUENTIAL>• la llave de acceso esta descrita Por ·el nombre-dato-! de tipo numé~ico v el estado al reali,ar una operación de entrada/salida a este archivo en la variable alfanumerica nombre-dato-21 es~a~ variables ~nn deacritas en la WORKING-STORAGE SECTION,

Para el acceso directo <RANDDH> 6 ~ecuéncial~directo <DYNAHIC> as obli~~torio d~finir la ll~va <RELATIVE KEY lSl nombre-dato-l.

El nombre-dato-2 de la clausula FILE STATUS.IS tiene el v~lor de la oPeración de archivo. Si tiene el valor de •oo• se tiene exito en la OPeración de a~chivol si tiene _cualouier otro v~lor se detecto un error Pn la operación de archivo Y e~ necesario realiz~r al~un~s in~trucciones de control,

Page 114: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 ./

*** COBOL *** DEFINICION DE ARCHIVO,

13.3.2 DEFINICION Df. ARCHIVO Y REGISTRO

f'a!le 13-4

Las caracteristicas del archivo asi co•o sus re~istro son definidos en la DATA DIVISION,

DA"TA tllVISION, FILE SECTION, FD archivo-lo!lico

••• [DATA RECORD IS re!listro-archivol

01 re~\stro-archivo.

03 ••• WORKING STORAGE SECTIONo 01 REGISTROS-RELATIVOS,

03 N'OHBRE-DAT0-1 03 NOKBRf.-llAT0-2

PI e· 9·C'o·6·> • PIC X<02),

-.

En la DATA DIVISION se definen cPracteristicas referente~ al archivo relativo• asi co•o el re!listro a~ociadoo el re!li~tro de llave Y de estado son definidos en la WORKÍNG~STORAGf. SECTJON.

ENVIRONHENT DIVISION, JNPUT-OUTPUT SECTIONo Fll.E-CONTROL.

SELECT ARCH-REL ASSIGN TO DISK ORGANIZATION IS RELATIVE ACCESS HODE IS DYNAHIC

RELATIVE KEY XS KEY-REL ·FILE STATUS IS STA-REL,

DATA DIVISIOil. FILE SECTION. FD AF:CH-REL

DATA RECORD JS RFG-REL .• 01 REO-RF.L,

03 NOHBRE-R PIC X<32), 03 EtiAD-R PIC 9<02), 03 SEXO-R PIC X<lO),

WORKING-STORAOE SECTION, 01 REGISTROS-REL,

03 KEY-REL. PIC 9(06), 03 STA-REL PIC X<02),

13.4 MANEJO DE ARCHIVOS RELATIVOS

El maneJo de los archivos relativos es identico al de lDs archivo~ s~c••~nciales con la si!lui~nte caracteri~tica distintiva ~ue es el numero de re!listro a accesaro por lo tanto esta variable asociad~ esta evaluada con el nu•ero de re!listro deseado• las instrucciones de lectura w escritura e~ta acompaftadas de una claus••l~ de INVALID KEY para definir un.Proceso al det~ctarse

. .

Page 115: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** f'il!l& 13-5. HANEJO OE ARCHIVOS RELATIVOS

\......· error en el acceso~

13o4ot ABRIR llN ARCHIVO RELATtVO

Un archivo relativo sa abra ~ara laer w/~ •~cribir,

La instrucción OF'EN abre un a~chivo baJo el si!luianta t~raatot

< INPUT } OF'EN < OUTPUT > archivo~lo!lico

< I-0 }·

Las instrucciones da entra.da sal ida de~enden del 110d~ de abrir el archivo w de aceasar •

. ---------------------------------------------------------. IHODO DE ACCESOI tNSTRUCCION IMODO DE ABRIR EL ARCHIVOI +--------------+-------~--------- ·+ INPUT + OUTPUT + I-0 ti 1 SECU~NCIAL READ O O 1 1 WRlTE O 1 1 REWRITE O 1

"--' 1 DELETE O 1 1. START O O 1

+---~-~-------------------~-------------------------------+ 1 RANDOH READ O O 1

WRITE O O 1 REWRITE O 1 DELETE O 1

1 START 1

+-------------------------------------~-------------------+ 1 DYNAMIC READ O O 1 1 WRITE O O 1 1 RF.WR ITE O 1 1 DELETE O 1 1 . START O O 1 ~---------------------------------------------------------'

13,4.2 CERRAR IJN ARCHIVO RELATtVO

Cuando no se desea utilizar més el archivo relativo as cerrado con·la instrucción:

CLOSE archivo-lo!lico

Page 116: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

(

'--, •

*** COBO_L $U . Pue 13-6 HANEJO DF. ARr.HtVOS RELATIVOS

Al cerrarse el archiva wa na se Puede hacer nin•una oPeración de archiva.

13,4,3 LECTURA Df UN ARCHIVO RELATIVO

Para leer ~n archiva relativa. este debe ser abierto Para leer <INPUT> a leer w escribir· <I-0), DePendiendo del modo de acceso se tienan dns tiPas de lectura.

13.4.3.1 LECTURA SECUENCIAL

Para leer secuencialmente un archiva e~te es cu•ndo el •oda de acce•n ~s ser.uencial (ACCESS HODE IS SEOUENTIAL> w abierto P4ra leer INPUT ó de moda dinamico (ACCESS-HODF.·IS DYNAHIC> ~ abieto Para l~r.tura <INPUT> a lectura escritura <I-0> Para realizar •~ta óltima asi•naci6n se debe tener w• Po~ecionada el r••istro d•sde el eo.Ú'Il tUl lAera secuencial (START->, Este tb,o de ler.t•~ra tiene el formato!

READ archiva-la•ica tNEXTJ Record [ JNTO re•istra-x l ti At END i~strucción l.

~ Como Ge notara tíene el ~i~ao rorm~to aue la laet\lra de un archivo secuencial can la clausula de detección de fin de archiva <AT ENO),

13.4.3.2 LECTURA RELATIVA

Para leer de forma relativa un archiva este es cuando el· modo de Acceso es rnlativo (ACCESS HODE IS RANDOH w abierto Para lee~ INPUT ó de modo dinamica <ACCESS HODE IS DYNAHIC) w abierto. ~¡ora

lectura <XNPtiTl o lectura a'lcri·tura··<I-Oh f.s.t.e t,ipo de leetura tiene el formato!

READ archivo-lo~ico Record [ INTO re~istra-x l ti INVALID KEY instrucción l

Para realizar e~ta función debe de evaluarse el numero de resistro a \eerl si el resistro no existe ~ntoncna oe activa la clausula INVALID KEY eJecutandose la instrucción asociada.

13,4,4 F.SGRIJHR UN REGISTRO

La entrada'de·infarmación a un archivo relativa es una de las funciona5 n~ando se abre Para escriblr <OUTPUTl Para cualouier ti~o de acceso. El formato es al ai~uientel.

Page 117: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** Pa!le 13-7 HANE.IO DF. ARCHIVOS RELATIVOS.

WRITE redistro-archivo FROH re!listro-x [1 INVALID Kew instrucción l

Antes ·efectuar redistro clausula

de drabar se debe evaluar 1~ ~Peración de archivo.

QUe wa existe se eJecutara la de invasión de llave <INVALID

el re~istro donde ce Cuando se QUiere !lrabar

instrucción activada Por KEY>,

13.4.5 ACTUALIZAR UN REGISTRO

Sobre escribir en un redistro QUe wa tiene información en un archivo relativo se realiza con la si!luiente instrucción!

REWRITF. resistro-archivo FROH resictro-x [1 INVALID Kew instrucción l

Par¡¡ ·actualtznr un rellistr·ó ·sé. debe abrir co•o entrada salida <I-0>.. Si··-.l. modo de ·acceso es si!L'.uencial Prillero debe leersl' el re!lis;tro a •odi..ficar. Si el mo<io ·de eée11Bo es reliltivo o dina•ico s;e debe. evaluar ~~imero la llave da ac~es~.antas de realiz~r la oPét~ción de actualización.

So eJecutara la instrucción descrita por la clausula JNVALID KEY si existe un error al mollento de realizar la oPeración o al resis;tro no axiBta.

13.4,6 BORRAR UN RFGISTRG

Borrar un re!listro de un información QUe se encuentra for111atol

DELETE archio-lo!lico RECORD

archivo en el

relativo· es Quitar la archivol con el siduiente

[1 INVALID Kew instrucción l

Par¡¡ borrar un re!listro se <iebe abrir como nntrada . salida <I-0), Si el modo de acceso es seeuencial Primero dehl' lPer~e el re!listro a modificar. Si el modo de acceso es rolativo o dinilmico se de't.;,·· .evalu'ar primero la llave de acce11o .Pntes d10 realizar la oPeración de actualización.

Se eJecutara la instrucción descrita Por la clausula INVAl.ID KEY si existe un error al momento de realizar la OPl'ración o el resistro no existe •.

Page 118: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 . ~

*** COBOL *** P~de 13-9 MANEJO ~E ARCHIVOS RELATIVOS

13,4,7 POSECIOHARSE EH UN REGISTRO

Cuando se laa ~ecuncialDanta un archivo entrada salida <I-Ol ~ Dodo relativo <DYHAHlCl se daba PO~acionar dal radis~ro a laarl baJo al sisuienta toraatol

~uando as abierto Para <RELATJVEl o djn~aico

a Partir da donde ~• va

START archivo-loMico CKEY < IS EOUAL TO > nnDbra-dato-1 < IS a >

Cl IHVALID Kew instrucción l

El &Puntador al redistro se pasecionar6 donde dePositado an nnabre-dato-1 ~ue es la llnve del por lo aue debe estar evaluada antes de realizar

~

~arca eJ valor archivo relatlvol Ja OPeración,

Se eJecutara la instrucción ·desc~ita por la'•cJauaula JNVALID KEY si existe un error al momento de realizar'la OPeración o el resistro no exi~te.

EJemPlo:

PROCEDURE DIVISION, • • •

OPEN I-0 ARCH-REL. DISPLAY 'REGISTRO A OPF.RAR : ' ACCEPT KEY-REL REA~ ARCH-REL

INVALID KEY DISPLAY 'NO EXISTE EL REGISTRO ' . IF STA-RF.L = '00'

•••

DISPLAY 'Los valores deJ redistro sonl ' DISPL~Y ' NOHSRE ' HOHSRE-REL DISPLAY ' EDAD 1 ' EDAD-REL DISPLAY ' SEXO ' SEXO-REL,

Page 119: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

API'EMDIX A

81Bt.IOOUFIA DE C08Cl.

1. lllfllRMATIOII SYSTEIIS THROU6II COBOL.

A, S, PIIII.IPPMIS,

LEORHAII J, WIIIER,

IlC. 6RAII HILL,

2, COBOL ESTRUCTURADO, CON APLICACIOH A LOS NE60CIOS.

A, S. PIIILIPPAICIS.

LEORIIAD J, KIIZHIER.

IlC. GAAV HILL.

3. ADIMHCED COBOL,

A, S, PHiliPPMIS.

LEORNAD J, KAZNIER.

MC. GAAV Hlll.

Page 120: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\( . ·;~ ,¡ ·.

. ' ,.,

AI'PENDIX 9 ,

'¡,. · Los 116dulos Prlnc:biiH - ~~~~~~~~ el lensut.ie COJil. 501\ : ~~ ;"<

' (' 1. llótleo. ·~

J, IIMie.io de archivos secutni:laln.

4, HiniJa dt .archivos rtla~lvos.

5. ManeJa de archivos lndt>:ados.

6. ChÍificaciOn 1 inhrcaiaoiOn do lnforuot&i;

7, O.ntndor do t!Wortn.

9, libn!rhs.

10. DePurador.

11. Coaunlcación entro prosraeas.

12. Coaunitación rntre sisteoas do cóOPuto,

Page 121: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

... tlllll. ...

4, IWIIJAl liE REFERENCIA DE COBOl,

5 , IWfU(¡L DE COHSlll. TA DE COJOI.,

6, ltAHUAI.F.S DE PIIDORAitACIOH DE COBil.

7, TARJETA DE C0HS11. TA RAPIM liE COBm.,

l -

l.

Page 122: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX C

DEIWtROLLO DE BJBTEIIAS

PROGRAKACION,

En la elaboración de cualauier PtO!Iraae en COBOL es noocesario definir.:

1 •. El obJetivo.

2. · Los datos necnarios. <Entradas),

3, Los datos de salida. <Resulhdosl.

4. Los dis~ositlvos de entrada. salida V alaacenlaiento.

s, El a6todo de •olución.

En la definición de la información oue se procesará se especifican las carac:teristicas• de tiPo ·(alfabético·, nuaérico 6 alfanu111éricol Y tauMo <cuantos caracteres abimo· Puede tener un dato l. '.,M .... ,,,.

En todo PrÓira•a e>Ciste cierta intoraaci6n cuvo contenido es definido dentro del Pro~ra•a <tales co•o los encabezados de. los rePortes aue se emitiran> Y otra infor•ación cuwo contenido varia (aés no su caracterhtical y es proporciW~ada al raoraento de la eJecuciÓn del Pro~raea (por . eJeiiPlO• los no111bres de los e•Pludos al elaborar una nóainal, . En este 6lt.imo caso los Pro!lralllas son Pr,cticaratmh indePendientes del contenido de la infor.llación a Procesar

Page 123: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

***COBOL*** l'a~e D-2

11. 9 Inserción de es~acios o. blancos.

12. 1 Inserción de slash Para seParación de. datas.

Car~teres de Puntuaci~n.

1 • ' Caaa.

2. I·Punto w coaa.

3. , Punto.

4.' • Dos Puntos, •

5. 'Coaillas.

.._. - 6. < P~rénte$iS izauierdo •

7. ). Pilr6nteais derecho.

a. ~ EsPacio o blanco.

9. ' APóstrofe,

10. J Paréntesis cuadrado derecho.

11. [ Paréntesis cuadrado izauierdo.

12. 1 Diallonal <Slash),

0Peradol·es arita~ticos.

1. + Suaa. \j

Page 124: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

·-*** COBOL ***

2. - Resta.

3. * Hul~iPlicación.

4. 1 División.

. s. ** ExPonenclación •

Carac~eres de relación.

1. · > HaYor aue,.

2. < Henor aue.

3. = Isual.

APPENDIX E

PALABRAS RESERVADAS DE COBOL

Las Palabras reservadas son definidas por el lensuaJe CD90L para ser utilizadas ., en las instruccionf!S' est.as Pala.bra;s no Pueden !.er ·usod;,s coe~~o noabres de dato Por el usuario.

Page 125: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** .·f'age [··::!

CECAfl

- ACCH'T CHARACTER DE ACCESS CHARACTERS DE9UG-CONTENTS Allll CLGCK-UNITS DEBUG-ÍTEH ADVANCING Cl.OSE DE9UG-LINE AFTER COBOL DEBUG-NAI1E ALL CODE DEBUG-SUB-1 ALPHA9ETIC CODE-SET DEBUG-SUll-2 ALSO COL LATINO DEBUG-SUB-3 ALTER COLUHN DEBUGGING ALTERNATE COHI1A DECI11AL-PIIINT AND COHI1UNICATIGN DECLARA TI VES ARE COHP DELf.TE AREA COHPUTATIONAL DELIHITED ARE AS COHPUTE DELIHITER ASCENDING CONFIGURA TI OH DEPENDING ASSIGN CONTAtNS ltESCENDING AT . CONTROL DESTINA TI OH AUTHOR CONTROL S DETAlL BEFORE COPY DI SABLE liLA NK CORR DISPLAY BLOCK CORRESPOHIIING DIVIDE BOTTOtl COUNT DIVISION BY CURRENCY DOioiN CALL DATA DUPLICA TES CANCEL DATE DYNAI1IC

·' CD DATE-COtiPILElt f.Gl CF DATE-IoiRITTEN ELSE CH DAY EHT

Page 126: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

Ut COBOL na Pa,ae E-3 CECAFI

·_.-

E HABLE KEY PF END I.At!EL PH END·-OF-PAOE LAST PIC EN TER LEADINO PICTURE ENIIIRDNKENT LEFT PLUS EOP LENGTH POINTER EOUAL LESS POSITION ERROR ESI LIKIT POSITIVE EVERY LIKITS PRINTING EXCEPTIOH LINAGE PROCEDURE EXIT LINAGE-COUNTER PROCEDURES EXTEND UNE PROCf:ED FD LINE-COUNTER PROGRAH FILE LINES PROGRAH-ID FILE-CONTROL LINKAGE OUEUE FILLER LOCK QUOTE FINAL LOW-VALUE QUOTES FIRST LOW-VALUES RANPOK FOOTING HEKORY RD FOR HF.RGE READ FROH HESSAGE RECEIVE GENERA TE HODE RECORD llt\ii'Nii MODULES RECORDS GO HOVE REDEFINES

./ C.REATER HUL TIPLE REEL C.ROUP IIUL TIPL Y REFEREtiCES HEA!llNG NA TI VE RELATIVE HIGH-VALUE NEGATtVE RELF.ASE HIGH-VALUES NEXT REHAINDER I-0 NO REHOVAL l-O-CONTROL NOT RENAHES !IIENTIFICATION NUHBER REPLACING IF NUHERIC REPORT IN OBJECT-COHPUTER REPORTING INitEX OCCURS REPORTS IN!lEXE!l OF RERUN INDICATE OFF HE SERVE INITIAL OHHlTED RESH INITIATE ON RETURN INPUT OPEN REVERSED I NF·UT -OUTPUT OPTIOHAL REWIHD INSPECT OR. REWRITE INSTALLATIOH ORGAHIZATION RF INTO OUTPUT RU INVALID OVERFLOW . -RIGHT IS PAGE ROUNDED JUST F'AGE-COUNTER RUH JUSTIFIED PERFORtl SAHE

Page 127: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

""""

\.....-

•n COBUL n• CECAFJ

SD STRJNG UHSTRJNG SEARCH SUB-QIIEUE-1 UHTJL SECTJDN SUli-QUEUE-2 UP SECURITY SUB-OUEUE-3 UPON SEOHENT SUBTRACT USAOE SEDHENT-LJHITED SUH USE BELECT SUPPRESS USJNG SEND SYHBOLIC VAL UE SENTENCE SYNC VALUES SEPARA TE SYNCHRONIZED. VARYING SEQUENCE TABLE IIHEN SEQUENTIAL TALLYING IIITH SET TAPE IIORDS SIGN TERHINAL WORKJNGS-STORAOE . Sil E TERKINATE IIRITE SORT TEXT ZERO SORT-HERGE THAH ZEROES SOURCE THROUGH . ZEROS SOURCE-COKPUTER THRU + SPACE TIHE SPACES TI HES SPECJIIL·NIIHES TO 1 STANDARD TDP STANDIIRD-1 TRAILJNG > START TYPE < STATUS UNJT " STOP

APPENDIX F

PROGRAMA

IDENTIFICATIOH DIVISION, PROGRAH-JD, HOLA, AUTHOR, CURSO COBOL DECFI ,

*

INSTALLATION, I•ECFI, DATE-IIRJTTF.N, 26 HAYO 1987, DATE-COHPILED. 26 HAYO 1987. SECURXTY. NINGUNA.

* . Introduccion • COP.QL, el Pro!lraea 01uestra las divisiones * e instrucciones basic~St

* ENVIRONKEHT DIVISION, CONFJGURATION SECTION, SOURCE-COKPUTER, IBH-PC, OBJECT-COHPUTF.R, I8K-PC. DATA DJVISION, WORKJNG-STORAfiE SECTION. PROCEDURE·DIVISION. JNJCJO,

I•l SPLAY 'HOLA AMIGUITOS , , , , ESTO ES COliOL,,,,', STOP RIJN,

F'""" E-4

Page 128: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

·~·

APPENDIX G

PROGRAMA

IDENTIFICATIOH DIVISION, PROGRAH-ID. SUHA, AUTHOR, CURSO COBOL DECFI , INSTALLATION, DECFI, DATE-WRITTEN, 26 HAYO 1987, DATE-COHPILED, 26 HAYO 1987. SECURITY. NINGUNA,

* * Proarama de introduccion a COBOL• realiza la suma de dos Í cantidades introducidas por teclado. * '

*

ENVIRONMENT DIVISION, CONFIGURATION SECTION, SOURCE-COHPUTER, IBH-PC. OBJECT-COHPUTER. IDH-PC, DATA DIOJISION, WORKING-STORAOE SECTION. 77 ~ATO-UNO PICTURE IS 9<02), 77 DATO-DOS PICTURE !S 9(02), 77 SUHA . PICTURE !S 9(0Jl, PROCEDURE DJIJISlllN, INICIO,

* CaPtura los su•andos.

*

*

DISPLAY 'SUHANDO UNO '• ACCEPT DATO-UNO, DI S PLAY 'SUHAN!tO DOS ' ACCEPT DATO-DOS,

* Realiza la suaa,

* ADD DATO-UNO DATO-DOS GIOJING SUHA,

* * Hu•stra los suaandos ~ el resultado de la suma.

* DISPLAY 'LA SUHA DE ' DATO-UNO ' Y ' DATO-DOS ' ES ' SUHA, ~- ·STOP RUN,

Page 129: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

'· -

IIPPENDlX H

PROGRAMA

lDENTlFICIITION PIVISION, PROGRAH-ID, ETIQUETA, AUTHOR, CURSO COSOL DECFl , lNSTALLATION. DECFI, DIITE-WRITTf.H, 2b HAYO 1987, DIITE-COHPILED. 2b HAYO 1987, SECURITY, NINGUNA,

* * CaPtUra de los datos Para hacer una etiaueta.

* . ENVIRONKENT DIVISION, COHFIOURATION SECT!OH, SOURCE-COHPUTER, 1~1'1-f'C,

O~JECT ~COKPUTER, 1 ~H-PC, DATA !tiVISION. WORKING-STORAGE SECT!ON, 77 NOK~RE PICTURE X<32l, 77 CALLE PlCTURE X!32\, 77 CIUDAD PICTLIRE X<32l, PROCF.PUP.E DIV!Slotl. INICIO, .

* *CaPtura de_dat.ll& de la etiaueta.

*

*

.DISPLAY 'NOIIBRE DEL SOCIO', Af.Cf.PT NOH~RE, DISPLAY 'CALLE Y COLONIA DONDE tJIVE', ACCEPT CAL!. E, DISPLAY 'CIUDAD• ESTADO Y CODIGO POSTAL', ACCEPT CIUDAD,

* For11a la etiaueta coro los datos capturados,

* DISPLAY '+----------~-------------~---------+' DISPLAY '! !' DI~PLAY '! ' NOH~RE' !' DISPLAY '! ! ' DISPLAY '1 'CALLE ' !' DISPLAY '1 ! ' DISPLAY '! ' CIUDAD ' !'

Page 130: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

aaa COBOL aaa CECAFI

DISPLAY '! !' DISPLAY '+----------------------------------+' STOP RUN,

APPENDIX 1

HOVIHIENTO DE INFORHACION

Caracteristicas en el ~oviaiento de inforaaci6n.

1, La •~isnaci6n del identificador-1 lo la literal> al identificador-2• id&nti ficador-3; etc, borra. el valor de, éstos colo~ ando en ellos el valor d&l identificador-lo

:!, El aoviaiento de cantidades no nu01ericas. se realiza de i:ouierda a derecha,

. 3, El ~ovi$iento de cantidades nueericas enteras se realiza de derecha a izouierd¡,

4, El oaovi•iento de cantidades· nuaericas . no-enteras se Ju~tificando ~1 Punto virtual.

realiza

5, Si al realizar los oaovi•ientos el camPO receptor es menor aue el e01isor se Perc1eran cifra.i, d~r lo contrario se llenira de ceros. Par2 los o~•ericos v blancos Para los no numerieOs.

6. Si el de~tino es nuaerico editado el fuente no Puede ser HlGH-VALUEo · LOW-VALUEo SPACE o GUOTE,

7, Si el ori•en-~s de tiPo ALL v el destino es USAGE solo se resPetara una ocurrencíl.

8, No se Per•ite aue el operando sea una área de indice.

9. Si se involucra un elemento de una tabla Primero est~ es evaluada.

Page 131: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL ***

10. Si el destino es no si!lnado solo se aovera el valor absol•Jto.

11. A ~aenos aue se esPecifiaue JUSTIFY RIGTH el aoviaiento entre no nuatlri'c:•as s.era de iznuil'rda e derecha.

Caracteristicas en el ~ovimiento de inforaación en la instrucción ~VE

CORRESPONDING.

1. Los valores a mover deberan comPrender a nombres de resistro o srupo,

2. Se •ueven toldos los caaPos dentro del no•bre 11misor oue tensan el •i .. o noabre-de-dato ·dentro del noabre receptor tal ~ como si estuvieraaos e•crito una ~erie de ~oviDientos sencillos.

Page 132: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX J

PROtlRAMA

IDENTIFICATION DIVISION, PROGRAK-JD, ETIQUETAS. AUTHOR, CURSO CO~OL DECFI. INSTALLATJON, DECFI, DATE-WRITTEN. 26 HAYO 1987, DATE-COHPILED, 26 HAYO 1987, SECUR tTY , N l NtlU~IA ,

* * Formacion ·de Pt.iwJeta~ a Partir de dato.s aue estan en t. e 1 archivo SOC lOS , DA T.

* ENVIROHHENT DIVISin~l.

CONFIGllRAHON SEcrlllN. SOURCE-COHPUTER. HtH-Pr.. OBJECT ··COHPIJTF.R, 1 ~rH'( . ltlf"UT-OUTf'UT SECTIOII. FILE-CONmilL.

SELECT C~l<ltS··IN AS!:IGN TO DISK.

*

DATA [ti'JISION, FILE SECTION. FD CARDS-111

LA~EL RECOR!oS 1\f:E cTAIIliARD VALUE OF Fll.E·Ht !S 'SOCIO!;.DAT' liATA RECOR!I !S CAF:It,

01 CARD, 02 NOHBRE PICTURE X<2ó>. 02 CALLE PICTURE X<2?>. 02 CIUDAD f'ICTURE X<27i.

WORKING-STORAGE SECTIOtl. 01 END-OF-liATA-INDICATOI': f'IClUf:E !S :«03), PROCEDURE DIV!SION, HAIN-LOGIC.

* Abrir el archivo Para leer los dat.os aue for~ar2n t. la etiauela.

* * * *

Of'EN INPUT CARI•S-111, ' . ' .

Se fornoaran eliouetos hastol el fin de archivo, ' '

Page 133: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

Ui COBOL iU · CECAFJ

HOVE 'NO' TO EHr•-OF-DATII-lNI&ICATOR. Pf.RFORM RfAP-A-CARP. f>ERFORM REAI•-PRINT

UNTIL EHD-Of-liATA-INDICATOR IS EOUAL TO 'YES',

• * Cerrar el archivo.de datos y rinde Prosrama.

* CLOSE CARDS-JN, STOP RUN,

.READ-A-CARI&.

* * Lectura del siauiente reaislror si ya no existe otro * r&di;tro la varia~le END-Of-DATA-INDICATOR tendra el valor i de 'YES'·,

• READ CAROS-IN RECORD AT END KOVE 'YES' TO END-DF-DATA-INDICATOR,

READ-PRINT.

* * For•a la etiaueta • ••

DISPLAY • • DISPLAY • +---------:----------------------+ .• DISPLAY • ! ! •

DISPLAY • ! • NOH&RE • ' . DISPLAY • ! ! •

DISPLAY • 1 • CALLE . • ! •

DISPLAY • ! ! • I•ISPLAY • ! • CIUDAD • 1 •

DISPLAY • ! ! •

DISPLAY '+··-------~-----.:--~---"-------+' DISPLAY ' '

. PERFORH READ-A-CAr(I&,

Page 134: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX K

PROGRAMA

IDEHTIFICATIOH DIVISION, . PROGRAIHD, CREA-SOCIOS,

AUTHOR, CURSO COSOL OECFI. INSTALLATION. DECFI, DATE-WRITTF.N,· 26 HAYO 1907, [IATE-CDHPILED, 26 HAYO 19~7, SECURITY. NINGUNA,

* * Ca~tura de datos Para crear oliauehs• muestra la *.la etiaueh :< ~raba los dalo~. en ur. archivo,

* ENVIRONHENT [t!VISIDN. CONF!G!JRATIOH SEC11011. SOURCE-COKF'UT[R, IBM-I'C, 09JECT-COMPUTF.R. !BH-PC. IHrUT-OUTPUT SECTION, F !LE -COIITROL.

EELECT CAF:!tS AS~lliN TO !t!SK, DATA DIVISION. FILE SECTION. FD CAROS

LA9EI. RECOF:!tS fiF:E STAN!IItRft VALUE OF F!LE··llt !~: 'SQCIOS,OitT' DATA RECORD IS CARD.

01 t:ARD, 02. NOHSRE PICTURE X<~6l, 02 CALLE PICTIJRf. X< 27>, 02 C!LIDAD f'ICTURE X<27l.

WORKING-STORAGE SECTION • . 01 HAS-INFORHACION P!CTIJRE If. X<02!,

PROCEDURf D!IJISION, INICIO,

* * Abre el. archivo donde ~e srabo?r.~n lo~ da.t.os.

* OPEN OUTPUT CAROS,

* * lee v sraba los dat.os hasta fin"al.izar t·on la 'Ji?ridble * <le control HAS-IIIFORHACION.

*

Page 135: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

tU COBOL an CECAFI

HOVE 'SI' TO HAS-INfORHACION, PERFORH LEE-CONTROL. PERFORH LEE·Y·GRA~A

UNTIL tiAS-INFORHACION .IS EOUAL TO 'NO',

* Cierra el archivo de datos w fin de Proára~a.

' CLOSE CAROS. STOP RIJN,

LEE-CONTROL DISPLAY 'INTRODUCCIDH DE DATOS <SI• NO) [Sil' ACCEPT HAS-INFORHACION, •

LEE-Y-GRABA,

* * CaPtura· los datos de la eti~ueta ,·

*

*

DISPLAY 'NOHBRE DEL SOCIO', ACCEPT NOI19RE, DISPLAY 'CALLE Y COLONIA DONDE.VIVE', ACCEPT CALLE,

· DISPLAY 'CIU!tAI•• ESTADO Y COD!GO f'OSTAL', ACCEPT CIUDAD,

* Huestra la forma de la eti11ueta.

*

[II SPLAY '+------------------------ -,----+' DISPL~Y '' !' DISPLAY '! NOHBRE ' 1' DISPLAY '! ! ' DISPLAY '1 ' CALLE ' !' DISPLAY '! !' I•ISPLAY '! ' CJU[IAD ' ! ' 'DISPLAY '' 1' O I Sf'LAY '+-------------- ---------------+ '.

* Graba los datos en el archivo C~Ros·.

* WR !TE CAF:!l. PH:FORII LEE-CONTROL,

f'2::~ t'- .,

Page 136: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

-APPENDIX L

E.lEHPLO DE ARCHIVOS SECUENCIALES

IDENTIFICATION DIVISIOH. PROGRAII•ID. SECUENCIAL, (IUTHOR, CECAFI • EHVIRONIIENT DIVISION, CONFIGURATIOH SECTIOH, SOURCE-COIIPUTER, VAX-1\-780, OliJECT-COitPUTER. VAX-11·180. INPUT-OUTPUT SECTION. FILE-CONTROL.

SELECT ARCHI.'I0--1 I.SSIGN TO 'ENTRADA!, t•AT' ORGAIHZATION lS ~EQUENTIAl. ACCESS tiODf Jf. SI'OUENTH•L,

SELECT AF:CHI'.'0-2 ASSII)tl TO 'EtlfRAM'!.MT' ORGANIZAT!ON !S SEOUENTII1L ACCE~S tiODE IS SEOU<IHI>11.,

DATA DIVISION. FILE SECTION. FO ARC.HIIJ0-1

RECO~:tt CONTAINS 40 CHARAC1(RS DATA f(ECORD !S RF.r.-1, .

01 REGCt. 03 CARP.-1 03 NUIICTA-1 03 HOHIIRE-1

FD ARCHIV0-2 RECORD COHTAINS 10 CllARACTERS DATA RECORD !S REG-2.

01 REG-2, 03 CARR-2 03 IIUIICTA .. 2

WORKING-STORAGf SECTION. 77 SUIIA 77 HAY-DArOS f'ROCEltURE. DIVISION. INICIO,

PERFORH ABRE-ARCHIVOS, RF.AD ARCHIVO··! AT END '

PI C. ?<·.J::.~·, t

PIC ':'(03~ ..

PIC X!30l.

rrc.9<02>. P!C 9!'l3l,

PIC 9!03) VAI.liF. ZEROES. PIC A!02l IJALIIE 'S!'.

~ISPLAY 'N<• tiene resis'tros el archivo l' HOVE '110' TQ HAY-MTOS.I

f'ERFORH L(CTURA·I UNTIL HAY-DATOS = '110'.

Page 137: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\. -

***COBOL*** CECAF'I

DISPLAY 'HUllERO DE REGISTROS DEL IIRCIUVO 1 = ' SUM. HOVE ZEROES TO SUHA, MOVE 'SI' TO HAY-VIITOS, REIID ARCHIV0-2 liT END .

PISPLIIY 'No tlttnt~ redistros el archivo 2' IIOVE 'NO' TO HAY-nATOS.

PERFORH LECTURII-2 UNTIL HAY-I•ATOS = 'NO', DISPLAY 'NUHERO PE REGISTROS DEL ARCHIVO 2 = ' SUHA. PERFORH CIERRA-ARCHIVOS, . STOP RUN.

Af.\RE-ARCHIVOS, OPEN INPUT ARCHIIJ0-1

ARCHIV0-2, LECTURA-l.

ADD 1 TO SUHA. READ ARCHIVO-! AT END

DISPLAY 'SE ACAI.\0 EL ARCHIVO 1' HOVE 'ARCHIVO-!' TO ARCHIVO HOVE 'NO' TO fiAY-DATOS.

LECTURA-2, ADD 1 TO SUHA, READ ARCHIV0-2 AT ENll

DISPLAY 'SE ACAI.\0 EL AF.CIÜ 110 2' HOVE 'IIRCfiiVO -~· TO ARCHIVO HO•JE. 'Nll' lO HAY··MTOS,

CIERRA··ARCHIVOS, CLOSE ARCHIVO-!

ARCHIVO ·e.

Page 138: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

"'--- .

APPENDIX 11

EJEMPLO DE ARCHJIJOS SECUENCIALES

·-------------~-~---------------- ---~--------.---------* IDENTIFICATION Dl'JISION ., __ ------------------------- ~-·----------------------IDENTIFICATION DIVISION, PROGRAH-ID. ARCHIVOS-SECUENCIALES, AUTHOR, ASA-JHS, JNSTALLATION, CECAFJ, DATE-URITTEN, 13-HAR~87,

DATE-COHPILED. 13-HAR-87. *- -------------e·--------------··---------------------* ENVIRONMENT DIVISION ¡--- -·----------·-··-. ---·-·-·- --· --:------------- ---·----------ENVIRONHENT DIVISIOII. -* --.-_ .... --------_ ---.. -. __ .. --•-~-------.e. e f. CONFIGURA TI 011 SECTI ON _ _ _ ·-------------------------~--·--··---~--~-----·--CONFIGURATION SECTION, SOURCE-COI'tf'UTER, VAX-11-780, O~JECT·COHF'UlER, . VAX-11_-780, . ., _____________ ; ______ "-------------~~-------* INPliT·OliTI"Ul SECTION ·----·---------------------------------·---INPUT-OUTF'UT SECTION. FILE-CONTROL.

SELECT ALUHilOS

SELECT REPORTF.

ASSIGII TO _ 'ALUHNOS,DAT' ORGANIZ~TION IS SEOUENTIAL ,,CCESS IIODE IS SEOUENTIIoL,

ASSIGN TO 'REPORTEALUhliOS .LIS' ORGANIZATION IS SF.OUEIHIAL ACCESS HO!iE IS SEOUF.II'flo\L,

l--------------------------------·---------------·--·---:1. !lATA IoiVISION f.-----------------------------------------------------DATA [oJVISION,

'1------------------------------------------* -FILE SECTION 1

·--------------------------~--1-~----------F !LE SECTION, rJo ALUMNOS

Page 139: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

... I;UIIIIL nf

CECAFI

RECORP COHTAIHS 4~ CHARACTERS !tATA RE CORO IS REG·ALUHNOS,

01 REG-AlUIItlOS, 03 CARR-ALUIINOS 03 NUIICTA·ALUHNOS 03 HOHI.IRE -A.LUHNOS 03 PROH-ALUIINOS

FD REPORTE RECORD CONTAINS 132 CHARACTERS DATA RECORD tS RF.O-REPORTE,

01 REO-REPORTE

PIC 9<02!, PIC 9<08!. PIC X<JO), PIC 9(02lV9<02l,

PIC X<132l. ·--------~---.- ----------------" ··-··-~-------* WORKING-STORAGE SECTIOH ·--------------------------------~-------·· .. WORKING-STORAGE SECTION. 01 EHCABEZI\DO.

03 FILLER 03 FILLER

. 03 FILLER 03 FILLER 03 FILlER 03 FilLER 03 FILLER 03 FILLER

01 REGISTRO-DETALLADO,

. PIC X(15l VALUE SPACES. . PIC .Y.<OSl VALUE 'CARRERA:', PIC X<13l VALUE SPACES, PIC X<lOl VALIJE 'NUII, CTA.:'. PIC X<27l VALUE SPACES, PIC X<07l VALIJE 'NOHBRE:', PIC X(27l VALUF. SPACES, PIC X!09l VALIJE ··PROHEDIO:'.

03 FILLER PIC X<18l VALUE SPACES. 03 CARR-DET. PIC X(02), 03 FII.LER PIC X<17l VALUE SPACES, 03 NUIICTA-[IET PIC X(08l, 03 FILLER PIC X<17l VALUE Sf'ACES, 03 NOHBRE··DET PIC XOOl, 03 FILLER PIC X(l7l VALUE SF'ACES, OJ PROH-OET f'IC 9(02l ,9(02!,

77 . RAYITAS PIC X(l32l VALUE. ALL '-', l7 FIN-ItE-ARCHIVO PIC A( O:.?> VALIJE '110', *--------·· ------•.. ----------------------------------------------* . PROCEOURE DIVIÍHON * .... -----_____ e ______ ---- •. ---~--~-~~-------~--- .. ------------- ....

f'ROCEDURE DIVISION, INICIA.

PERFORii PARRAFO-INI.CIAL, PERFORH PARRAFO-PRIHCIPAL

UNTIL (fltl-llE-ARCHIVO EQUAL TO 'SI'), PERFORH PARRAFO-FINAL. STOP RUN,

PARRAFO-INICIAL. Of•EN INPUT ALUHNOS

OUTPUT REPORTE. WRITE REG-F:EF'ORTE FROM ENCADEZAr•O. WRITE RF.G-REPORfE F~OI\ P.AYITAS, PERFORii LEE-ARCHIVO.

PARRAFO-PRINCIPAL. HOVE CARR--AlllllllOS TO CARR-DET,

\...) liOVE NUHCTA-ALUHNOS TO NUMCTA .. DET, liOVE NOHBRE-ALUHN!!S TO NOIIBRE ·[t[T, liOVE PROH-ALUI1NOS TO PRÓH-DET,

Page 140: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l "

\_ ./

aaa COBOL tU CECAfl

WRifE REG-REPORTE FROM REGISTRO-DETALLADO, PERFORK LEE-ARCHIVO,

PARRAFO-FIHAL. CLOSE ALUMNOS

REPORTE, LEE-ARCHIVO,

READ ALUMNOS . . . . . AT EHD DISPLAY 'FIN DEL ARCHIVO ALUKNOS.DAT'

KOVf. 'SI' TO FIN-DE-ARCHIVO,

*

APPEHDIX N

PROORAHA

IDENTIFICATION DIVISION, PROGRAH-ID. ·VALIDA-INFORHACION, AUTHOR, CURSO COllOl DECFI , IHSTALLATION, DECFI. MTE-WRITTF.N. 26 HIIYO 1987. DATE-CDHPILED. 26 HAYO 1987, ,; . ·~

' SECURITY, NINGUNA,

* Creacion de '.lrt ~rchivo de d~t.os con ref~?rC~rlcia e los nou1bres * del archivo SOCIOS.IÍATi e<t.a inform~cion ·~ Wllider!o HJr liP<• * Y rango de valores •

• ENVIRONHENT DIVISION. CONf!OURATION SECTION. SOURCE-COKPUTER, l~H-PC,

09JECT-COMI"UTF.R, I~H-·PC, INI'UT -OUIPUT S[CTION, f'ILE-COII'IROL,

SELECT CARDS-!N ASSIGN TO DISK. SElECf CARDS .. OUT ASSIGII TO DISK,

DATA DIVISION •. f'ILE SECTIOII, FD CARDS-IN

LABEL RECORioS ARE. STANDARfo VALUE Of FILE-ID .IS 'SOCIOS.DAT' DATA RECORro IS CARil-JN,

01 CARO-IN, 02 NOMBRE PICTURE X!26l. 02 FILL.F.R F'ÍCfURE X(54l,

fD CARDS-UUT . LABEL RECORD ARE ST ANMRio VALUE Of fiLE-!~ !S. 'CUOTAS.DAJ'. DATA RECORro IS CARio-OUT,

O 1 CARD-OIJT, 02 NOH~RE-DUT PICTURE X!2ó), 02 SEXO-OUT PICTUP.f. Y.(Qll •

. 02 TELErOtiO-OlJT f'ICTURE 1X!!()). 02 RFC-OUT.

03 RFC-L-OUT PICTURE. Y.(()4), 03 RfC-N-OliT f'ICTLIRE 9(0fl.

Page 141: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

l .-

au COBOL na CECAfl

*

02 TIPO-SOCIO-OUT PICTURE 9<01). 02 CUOTA-OUT PICTURE 9(0ó), 02 FILLER PICTURE X<2ó),

WORKING-STORAOF. SECTION, 77 END-OF-DATA-INDICATOR PICTURE IS X<03), 77 OK-INFO-DEF PICTURE IS X<02) VALIJE 'NO'.

88 OK-INFO VALUE 'OK', 01 CARD-KSR,

02 SEXO PICTUF:E X(Ol). 88 SEXO-OK VALUE 'F' 'f' 'M' '&'•

02 TELEFOHO PICTURE X<10), 02 RFC.

03 RFC-LETRAS PICTURE X<04), 03 RFC-NUHEROS P!CTURE X<Ob),

02.TIPO-SOCIO-X PICTURE X(01), 02 TIPO-SOCIO-N PICTURE 9<01),·

88 TIPO-SOCIO-OK VALÍJE 1 THF;U 5. 02 CUOTA-X PICTURE X<Oó), 02 CUOTA-N PICTURE 9<0ó),

80 CUOTA-OK VALUE 10000 THRU 500000, PROCEDURE DIVIS!ON, HAIN-LOGIC.

í: ,'t_' ; '

i ~brir el archivo Para leer los notobresl " ctro crchi•Jo donde se i ~orodra la lnforaacion capturada.

* i

OPEI'I INPUT CARtlS-IH. OPEN OUTPUT C~RDS-OIJT,

t. Se rediran datos hast;; el fin de archivo,

*

HOVE 'NO' TO EN[I-OF-MTA-Ii1IIICATOR, Pf.RFORM RF.AO-A-CARO, PERFORH READ-ACCEPT-WRITE

liHTIL EH[•-OF-DATA··INDIC.ATOF: IS EQLIAL TO 'YES',

'* Cfn·rar lo1. archivos d<e datos~ fin de FroSra.ma.

* CLOSE CAF:I•S-1 N, CLOSE CAP.OS·OUT. STOF· RUN,

P.Ei\D-A-CARD.

* Lectura del !.i!'luiente re!listro' si ~a r1o e;:ist'e olro * resis~ro la varioble EN[I-OF~DATA-ÜWICArCJR lerodra el volor * de 'YES',

* READ CARDS-IN RECORD ~T END MOVE 'YES' TO EN!I-OF-I•IITA-ltl!IICATOR.

READ-ACC.EPT -WR!TE . .. * Huestre el no&br~' c~Ptura la infor~~cicn' la valid2 ~ * ~r•ba en un archivo de s.oli.ó;;h

* DISPLAY ' ' PISPLAY '+--------------------····----~-+'

Page 142: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\.....-'

aaa COBOL aaa CECAFJ

. DISPLAY '! !' DlSPLAY '! ' NOH!lRE ' ! ' DISPLAY '1 1'

DISPLAY '+-----------------------------+' DISPLAY ' ,. PERFORH ACCEPT-AND-CHECK-INFORHATION. WRITE CARD-OUT, PERFORH READ-A-CAR[o,

ACCEPT-AND-CHECK-INFORHATION •

* Entrada de informacion ~ iU Yalidacion,

*

HOVE 'NO' TO OK-INFO-DEF. PF.RFORH ACCEPT-AND-CHECK-SEXO UNTIL OK-INFO, HOVE 'NO' TO OK-IHFO-[oEF, PF.RFORH ACCEPT-AND-CHECK-RFC UNTIL.OK-INFO. HOVE 'NO' TO OK-INFO_;DEF, . PF:RFORH ACCEPT-AND-CHECK-TELEFONO UNTIL OK-INFO, HOVE 'NO' TO OK-INFQ-[oEF, PF.RFORH ACCEPT-AND-CHECK-TIPO-SOCIO UNTIL OK-INFO, HOVE 'NO' TO OK-INFO-DEF; PERFORH ACCEPT-AND-CHECK-.CUOTA UNTIL OK-INFO,

* · Ar11a el re!listro a srabar •

• H011E NOHltRE TO NOHltRE·· OUT, HOVE SF.XO TO SEXO-OUT, HOVE RFC TO RFC-OUT, H011E TELEFONO TO TELEFOIIO-OUT, HOVE Tif'O-SOCIO-N TO Tlf'OcSOCIO-OUT, HOVE CUOTA-N . TO CUOTA-OUT,

ACCEf'T -AND··CHECK-SEXO, [IISPLAY ' ', DISPLAY 'CLAVE SEXO', . ACGEPT SEXO, IF SEXO NOT ALPHABETIC

DISPLAY 'ERF:DR EN TIPO DE DATO EN LA CLAVE [lE SEXO.' ELSE

IF NOT SEXO-OK DISPLAY 'ERF:OR EN VALOR DE flATO, '

'DEBE SER F• r, H o~.· ELSE

HOVE 'OK' TO OK-INFO-[IEF. ACCEF'T-AHO-CHECK-RFC,

DISPLAY ' ', DISPLAY 'VALOR DEL RFC', ACCEf'T RFC, IF RFC-I.ETRAS NOT ALF'IIABETIC

DISPLAY 'ERROR EN LA f'ARTE DE LETRAS DEL RFC,' ELSE

IF RFC-NUKEROS NOT NUHERIC DISPI.AY. 'ERROR EN LA PARTE tiUHERICA OEL RFC.'

ELSE i'tOVE •o~;· TO OK-INFO·[IEF.

ACCEPT -AHD-CijECK-TELEFOHO, [o!SPLAY ' '

'.

Page 143: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*'* COBOL *** CECAFI

DlSf'LAY 'NUMERO TEL.EFONICO', ACCEPT TELEFONO. IF TELEFONO NOT NUHERIC

DISf'LAY 'EL NUMERO IELEFONICO ' 'DHE CONTEtiER SOLO HUllEROS.'

ELSE HOVE '01(' JO OK-INFO-DEF,

ACCEPT-AND-CHF.CK-TIPO-SOCIO, DISf'LAY ' ' , DISPLAY 'TIPO DE SOCIO', ACCEPT TIPO-SOCID-X IF· TIPO-SOCIO-X NOT NUIIERIC

DISPLAY 'EL Tlf'O !lE SOCIO !IE!IE SER NUtiERICO.' ELSE

IIOVE TIPO-SOCIO-X TO TIPO-SOCIO-N IF NOT. TIPO-SOCIO-OK

DISPLAY 'Tif'O !lE SOCIO FUERA DE RANGO• ' 'CONSULTAR TASLA VE VALORES.'

ELSE tiOVE 'OK' TO OK-INFO-DEF.

ACCEPT-AND-CHf.CK-CUOTA. DISPLAY ' '• DISPLAY 'CUOTA I1EL SOCIO', ACCEf'T CUOTA-Y.. IF CLIOTA-X !S tiOT NUIIERIC

DISPLAY 'LA CUOTA l1ESE TENER ' · 'SOLO CARACTERES NUIIEF.ICOS,'

HSE IIOVE CUOTA- X TO CIJOH1-H IF CUOTA-N !S ZERO

D!Sf·LAY 'LA CUOTA l1Ei:E SEF: MAYOF. A ZERO,' ELSE

IF NOT CUOTA-OK DISPL.AY 'LA CUOTA ESTA FUERA [1[ RfoNGO, '

'CON~UL'f!IR IABI.Io fiE CII(Jf,Y.i.' ELSE

HOVE 'OK' TO OK-HifO-IH,

Page 144: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENOIX O

DEFIHICION ~E llf'O DE llATOS

+ --------------------'--------------------------- ----------.. -------- t 1 TiPo de caréct.er Si.tlolo Uso 1 +---------------------"--------------~e---~---------··------ .. ---- -- -+ 1 Definición de 1 9 1 CalliPo· nuau!rico 1 1 tiPo de caaPO· 1 A 1 . CaiiPO al fabét.ico 1 1 ·X 1 Caapo al fanuaérico 1

+-------------~-----~---+---~--------+-----------------------------+ 1 llefinición de tiPO . V 1 . Punto virtual 1 1 nuoaérico evecial P Ajuate potencial 1 ·S Inclusión de· silno 1

1-----------------------+---------~--t----------------------------·+ Caracteres de edición • Sisno dollar .

z

*

o 1 t

SuPresión de ceros Protección de cai!IPOS Ajuste e inserción de P•Jnto. Inserción de coma Inserción de ceros Inserción de slash Sisno t evaluado Si!lno - evaluado Oebe ev-aluado

CR Crédito evaluado 1 ·1 ¡¡ 1 Inserción de blar•co

t--------------------------"---------------c•----------------------1

Page 145: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

V

tU COBOL tU CECAFI

Evaluación de caracter•s de edición.

+------------------------------"-"·------"--------------------+ 1 caráder de edición IJalo.r Positivo IJalor ne!lalivo 1

+--------------------------------------"·-------"-------------· 1 + + 1 1 db db 1 cr cr 1

+-------------------------------------------------------------+ TiPo de datos en COBOL.

+---------------------'---~-------.---------------------------------+ Nu..Oricos· Este' liP.o de datos hace co11binación

1 de los carscteres 9 IJ P S

+------------~--------~--------~-----------------·--------~--------+ 1 Alfabtticos Descrito sólo Por el car6der A 1 +-------·-------------~--------'--~--------------------------------+ 1 Alfanuaéricos Descrito sólo POr el caráder X 1 t ••• - •••• ·•· ---•• ------.-·•• " •• C •••••••.• ••••••••·······------·····t 1 NuDéricos editados Hace uso de los caracteres 1

9 v· P z B 1 o , • + - CR os • * 1

+-----------------,----~---~----------~"-----------------------·---+ i Aífalo4ticos ~ditados Hace uso de los caracteres A B . 1 +---------------- ... --- ·-·----------------------------·--- -- ---------1 1 Al hnu111trieou .editadns Hace uso de lo! earactern A X 9 ~ O 1 1

+-------------------------------------------------------- ·--··---···+

Page 146: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX P

PROORAHA

IDENTIFICATION DIVISION, PROGRAK-ID. ETIQUETAS. AUTHOR, CURSO COBOL DECFI , INSTALLAl'ION, DECFI, DATE-WRITTEN, 26 KAYO 1987, DATE-COHPILEit, 26 HAYO 1987, SECURITY, NINGUNA.

* l Formacion de etiauetas en un archivo a * Partir ~e datos del archivo SOCIOS., {!Al,

* ENVIRONt1ENT DIVISION, CONFIGURATiotl SECT!ON, SOURCE-COKPUTER. IFK-PC. OliJECT -COt1PUTEP., l liH ·PC. ItlPUTCOUTPUT EECTION, FILE-CONTROL,

SELECT CAF~I•S-IN ASSIGtl lO It!SY., SELECT IMPRESORA ASSIGN TO .PRINTER.

DATA DIVISION. FlLE SECT!ON. Fll CI•RDS··IN ·

LA8El RECORDS ARE STAN!tAR!t VALUE OF FILE-ID IS 'SOCIO!;. DAT' !t~TA RECORto IS CARO.

01 CARD, 02 NOKBRE PICTURE Y.(26), 02 CALLE F'ICTURE X!27.l,. 02 CIU!IA!t f'!CTURE X!27 l,

FD IKPF:ESORA LABEL RECORDS ARE OHITTH. DATA RECOP.It IS LINfA.

01 LINEA P!CTUF:E IS X<BO>, WOR~ING-STORAoE SECTION, 01 ENit-OF-ItATA-INDIC.ATOR f'ICTURE IS X(03l, 01 KARC0-1 PICTURE X<31l VALUE

• +------------~---------..:.----~·-- •• 1

01 KARC0-2 PICTURE X(lll VALUE • 1 , .

• .• 1

01 NOH~RE-S,

Page 147: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOl tU CECAFJ

03 FILLER PICTURE X<02) VALUE '! ' 03 NDH9RE-SAL PIC X<2nl. 03 fiLLER PICTURE X<03l VALUE ' ! ',

01 CALLE-S. 03 FILLER PICTURE X<02l VALUE '! ' 03 CALLE-SAL PIC X<27l, 03 FILLER PICTURE X<02l VALUE ' !',

01 CIUDAD-S, 03 FILLER PICTURE X<02l VALUE '! '• 03 CIIJDAD-SAL PIC X<Vl, 03 FILLER PICTURE X<02l VALUE ' 1•,

PRDCEDURF. DIVISION. HAIN-LOGIC,

* * Abrir el archivo Para leer los datos aue formaran * la ~tiouat·a " el uchfvo don<ie se guardaran las ~li.ouetas.

*

OPEN INPUT CAROS-IN. OPEN OUTPUT lllf'RESORA,

* Se formaran Ptiouetas hasta el fin <le archivo.

t

* * *

HOVE 'NO' TO END-OF-DATA-ItfiiiCATOR, Pr.RFORH Rfi\0-A-CARD, PERFORH READ-PRINT .

LINTIL EtiD·OF-PATA-INPICATOR lS EOUAL TO ''fES' •.

Cerrar· el archivo de dat.oa e ia1Presion Y fir1 de F'ro-1.;?-fti?.

CLOSE CAROS-IN. CLOSE.IHPRESORA. STOP RLIN,

READ-A·CAR[r,

* * Lectura del sillui~nte re9istro. si Ya no e>:iste otro t ri>Sistro lo variable END·OF-DATA-IN[IICATliR \.~n<lra el valor

* de 'YEU'.

* Rf A!l CAIU•S··I N RECORD I•T Eifii HOVE 'YES' TO ENP·OF-!IATA·lNDICATOR.

READ-PRINT,

* * Foraa lo eti~ueta Y se Sraba en el archivo de etiauet2s.

* HOVE SPACE TO LINEA. WR 1 TE L HIEA AFTER AD11ANC IIIG 2 L Hl[. WRJTE LINEA FROM HARC0-1 AfTER AliVANCING 1 UNE, WRITE UNfA Fl~OH HAf~CU··2 AFTt:R A~'IAIIC BlG 1 UNE, HOVE NOJi[rf;[' . TO NO!i~Rf ··SAL, URITE LINfA FROM NOH~f;E··S AFTER A11'1ANCJNG 1 UNE, WRITE LINEA fP.OH HARC0-2 AFlER ADVIINCHIG 1 UNE, HOVE CAl. LE TU Ci\LLE··SAL, WRITE LINEA FRO!i CALLE-S AFTER ADVANCING 1 LINE. WRJTE UNEA FF:OH HHP.C0-2. AFTER AO'!ANCHW 1 L!IIL MOVE CJUDA[I ·lO CIUMli-S!IL. Wf.:ITE LINl' A FRill't C IUI•AP-5 AF TER AP'.'A>IC IIIG 1 UIIE.

Page 148: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\ j

Ut COBOl **' CECAFI /

WR!TE LINEA FROH HARCO-~ AFTER ADVANCING 1 LIHE. WRirE UNF.A fRUH HARC0-1 AF"TER A!IIJANCING 1 li~E, f'E.RFORH nEA!l··A-CARD.

APPENDIX O

PROGRAHA

JDENT!r!CATION DJIJJSION. PROGRAH-ID. REPORTE, AUTHOR, CURSO COBOL DECFI , INSTALLATION, !tECI'I, DATE-WR!TTF.N, 26 HAYO 1987, DATE-COHP!LED, 26 HAYO 1987, SECUR!TY, NINGUNA,

* * F.oit~ un re•orte de las cuota• de les socios •

• ENVIRONHENT DIV!SION, CONflGUF:AT!ON SECl ION, SOVRCE-COMf'LI'fEF:, H<M-PC, OIIJECT -COIIPUTfr:, l BI!··PC, IHI'UT··OUff'liT SECTION, fiLE-COI!Tf.:Ol..

SELECT CARDS ASS!GN TO ItlSK, SELECT !Hf'JIESOf~A ASS!GN TO PRIIITER,

DATA !t!VIS!Oil. FILE SECT!tl/1. FO CARDS

.LA~EI. t':f':COR!t ftRE STANDARit 11ALUE OF F!Lf·ID !S 'CliOTAS,{IAT' ltATit F:E~OF:D H; CAR[t,

01 CAR!t, 02 HOMBRE PICIURE X<;:ó),. 02 SEXO PICTURE .Y.<OI), 02 TELEFONO PICTUF:E X< H'•). 02 RFC.

03 RfCcL PICTURE X ( 04 i . 03 RFC-N PICTURE 9(0bl,

02 T lf'tl·-~OCI O f'ICTURE 9(01 1, 89 SOCIO·-! VALIJE l.

·es SOCI0-2 VALUE 2 • 98 SO<:I0-3 .VALUE 3, 88 SOCI0-4 IJALIJE 4. ea sor.ro-:; IJALUE 5.

02 CUOTII PICTUF:E 9< C<,>;,

02 fiLLER PICTLIRF. X< ::,\1 • r[l I HF'RESOF:A

: -.··

Page 149: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAFJ

\._ LABEL RECORDS ARE OHITTEP DATA ~~CORO !S PRINT-LINE.

01 PRIHT··LIHE PICTURE IS X<SO>.

WORKING-STORAnE SECTION, 77 END-OF-DATA-INDICATOR PICTURE IS X(03), 77 HOJA PICTURE !S 9!04> VALUE ZEROES, 77 LINEA PICtURE IS 9(02> VALUE ZEROES. 77 FECHA PICTURE IS 9(06> VALUE lEROES. 77 SUH-CUOTA PICTURE IS 9(09> VALUE ZEROES. 77 SUH-PAGO PICTURE !S 9(09> VALUE ZEROES. 77 SUH-COBRO PICTURE IS 9!09> VALUE ZEROES. 77 CUOTA-SOCIO PICTLIRE !S 9!06) IJALUE ZEROF.S. 77 PAGO PICTURE 15 9!06) VALUE ZmJEf.. 77 COBRO P!CTURE IS 9!06> VALUE zmor:s. 01 HORA,

03 HH PICTURE IS 9!02), 03 HH PICTURE IS 9!02), 03 SS PICTURE IS 9!02), 03 FF PICTURE IS 9(02>, ·

01 ENCABEZADO-l. 02 FILLER PICTURE X!07l VALUE 'FECHA: ' 02 FECHA-SAL PICTURE 9!02)/9!02)/9!02>, 02 FILLER PICTUP.E X!14> VALUE SPACES. 02 F".ILLER PICTURE X!lil VALUE

'FACULTAD DE INGEHIERIA', 02 FILLER PICTURE X!18l IJALUE SP(,f~S.

o;• FILLER PICTURE X!05l 11ALUE 'HOJA:'. 02 HOJA-SAL PlCTURE Z(•J4>, 02 FILLER PICTURE X ( 01 l V:1LUE S PACE,

01 EtiCAaEZM0-'2, 02 FILLER PICTURE X!07l IJitLUE 'HOF:A : • 02 HORA··SAL.

03 H··S PICTURE 9<02), 03 FILLER· PICTURE X!Oll VALUE 1 : • . 03 11-S PICTURE 9(02),

03 FILLER PICTURE X<OI> tJALUE ... • . 03 S-S PICTUF:E 9<02>, 03 FILLER PICTURE X!OI > VALLIE ',', 03 F-S PICTURE 9!02),

02 FILLER PICTURE X<06l VALUE SPACE. 02 FILLER PICTURE X<30l UALUE

'OIVISION DE EDUCACION COHIIHLIA', 02 FILLER PICTUF:E X<24> VALlJE SPIICES,

01 ENCABEZADO-J. 02 FILLER PICTURE X<2Bl VALUE SPACES.

· 02 FILLER PICTUP.E X! 18.1 VALUE 'RELACION OE CUOTAS',

02 fiLLER PICTURE X<34l VALUE SPACES,

01 ENCABEZAI•0-4, 02 fiLLER PICTURE X !12 > VALUE Sf'ACES.

02 FILLER PICTUP.E X<Obl VAUJE 'NOM ORE ' , 02 FILLER PICTURE X !12 l .VALUE SPACES. 02 FILLER PICTURE X!02l IJALUE ~ TS. ~

02 FILLER PICTURE X(Oól VALUE Sf'ACES, 02 FILLER PICTUF:E X<06i IJALUE 'CUOTA'.

Page 150: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAFI

i

* *

*

02 FILLER 02 FILLER 02 FILLER 02 Fll.LER 02 FILLER

01 ENCABEZADO-s; 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 fiLLER 02 FILLER

01 DETALLE,

PICTURE X<lll VALUE SPACES. PICTURE Xl04) 'JALUE 'PAGO',

. PICTURE X <lO> VALUE Sf'ACES, PICTURE X(05> IJALUE 'COBRO', PICTURE X<05) VALUE SPACES.

.PICTURE X<02) VALUE SPACES. PICTURE X<2ó) VALUE ALL '=', PICTURE X< 02) 'IALUE SPACES, PICTURE X<02> VALUE ALL '='; PICTURE X<OJ> VALUE Sf'ACES. PICTURÉ XIII> VALUE ALl '='• PICTURE X<04) VALUE SPACES. PICTURE X<ll) VALUE ALL '"'• PICTURE X<O~) VALUE SPACES, PICTURE XIII> VALUE ALL '•', PICTURE X(04l VALUE SPACES.

. OÍ FILLER . PICTURE X<02> VALUE Sf'ACES, 02 NOHBRE-SAL . PICTURE Xl2ó), 02 FILLER PICTURE X<OJ) VALUE SPACES. 02 TIPO-SOCIO-SAL PICTURE 9(01), 02 FILLER · PICTURE X(03) VALUE SPACES, 02 CUOTA-SAL PICTUR~ IZ<OJ) rZ<OJ> .Z<02l, 02 FILLER PICTLIF:E X<04l VALUE .SPACES. 02 PAilO-SAL .PICTURE H<Ool r Z<03l ,Z<02 l, 02 FILLER PJÓURE X<04) 'IALUE SPI•CES, 02 COSRO-:iAL PICTURE H<03.\rZ(03l.Z<0:1\. 02 FILLEr: PICTURE X< 04 i VALUE SPACE5,

01 SUti-CUOfA-SAI., 02 FILLm f'ICTURE X<20l VAI.UE

'TOTAL fiE t:UOTAS : ' 02 SUH .. CI.IOTA-S f'ICTURE H<O:I>,z<OJlrl<OJl ,OO. 02 Fll.l.ER f' ICTIJF:t X! 4S) IJALIJE Sf'ArlS,

01 SlJH-PAGO-SAL. 02 r!LLEI\ PiCTUI\E XI;'Ol 'IALUE.

'COBf\03 EFEcTUA!•OS : ', 02 SUIH'Af>O-S PICTlii\E tl(03l,l(0:J),Z(O:'.l,•.JO, 02 FILLER PICTURE .V.(4Sl '!ALIJE SPACES,

01 SUK-COIII\Cl-SAL, 02 FILLER F'ICTURE X<20l VALLIE

'CARTERA A COBRAR : '• 02 SUH-COltRO-S PICTURE $Z(03lrZ(03lrZl031 .00,

02 Fll.LEP. PICTlJf:E X(4Sl 'IALIIE Sf'ACES. PROCE!lURE DIVISION, HA UI .. LOGIC,

Abrir el arc-hivo de c•Jot.as y el dP. ia.r·reo;ion,

OPEN INPUT CARI•S. OPEN OUTPIH !HPRESOPA.

t Se l~e la fechl Y hor~ de rePorte del ~i~lema,

Page 151: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

........

i.__,i

au COBOL ua ClCAFI

* *

ACCEPT FECHA FROII !tATE; ACCEPT HORA FROH TillE.

Se evalua los dato4 de fecha del encabezado 1 a w hora del enca~ezado 2.

*

*

HOVE FECHA TO FECHA-SAL. HOVE HH TO H-S, HOVE HH TO H-S, HOVE SS TO S-S, HOVE FF TO F··S,

* Se i•Pri•e el Primer encabezado V subencabezado.

*

*

PERFORH IHPRIHE-ENCABEZADO. PERFORH IHPRIHE-SUBENCABEZADO.

a Be i•Prlllli ran loa redistros dtohlle llevando un * control de hoJ1.

*

* *

HOVE 'NO' TO END-OF-DATA~JNDJCATOR, PFRFORH RF.~O-A-CARD.

· f'ERFORH REAl\-PRINT UNTIL END-OF-DATA-IHDICATOR 15 EQUAL TO 'YES',

Indica las s.u~J~atoria-s con re~~ect.o el est.!do de i cuotss.

PERFORH RESUL TAI•OS-CUOTAS;

* t. Ct~rrar los a.rchiYos- dé datos I:J fin de Pro~ran.i:':.

* CLOSE CARloS, CLOSE lhf'RESORA, SIOP RUN.

READ·-A-CA~ ¡o,

* * Lectur~·· tl\d 'i:lS'Jient.e reS.istro• s:.i ;n no e:dst.e otro i regi~tro la vari"ble EN!•-OF··DA'fA-IND!C.ATOR t~r.dr• ~1 nlor * de 'YES'.

*· READ CARloS RECORD AT Etl!l 11011E 'YES' TO ENI•-OF-MTA-ItiDICATOr..

IHPRIIIE -ENCAl<EZAl•O.

* * lrwresion dP los res:istros de ertcabezedv pare- cada

ADD 1 TO HOJA, HOVE IIO.IA TO tiOJA-SAL, WRITE f·RHIT-LINE FROH ENCAFEZAD0-1 loFTER ATIVANC!tiG f'AGE. WRITE PRIIIT-LHIE HOII ENCAFEZA!I0-2 AFTER AD'JAtiC!tlG 1 LIIIE, WR!TE f'RlNT-LlNE FROH ftiCArEZAri0-3 AFTER l•liVANCliiG 1 LINE. HOVE 4 TO LINEA.

IHPR 1 ti(··SUI<EHC AFE ZA[IO,

1' ··' '.•' t1 1

Page 152: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

***COBOL *** CECAFI

•• t

* I~Hnion de lu linus de .subencabezadn.

WRITE PR!Nl-LINE HOII ENCA~EZAD0-4 AFTER ADVANC.ING 2 LINE. WRITE PRINT-LINE fROH ENCABEZADO-S AFTER AD'JANCII4G 1 LINE. ADD 3 lO LINEA,

READ-PRINT,

* * Ia~rime el rePorte reáuerido.

* * * Control de PUina.

*

*

!F LINEA 15 GREATER 60 PERFORH IHPRIIIE·-ENCA~EZADO

PERFORH IHPRIIIE-SUBENCABEZADO.

* Definicion de cuotas• Pa~os Y cobros.

*

*

HOVE ZEROES TO CUOTA-SOCIO• PA60• CO~RO.

IF SOCIO-! HOVE 200000 TO CUOTA-SOCIO

ELSE IF SOCI0-2

IIOVE 300000 TO CUOTA-SOCIO ELSE

IF SOCIO-:>: HOVE 400000 TO.CUGTA-SOCIO

ELSE IF SGCI0-·4

IIOVE 450000 TO CUOTA-SOCIO ELSE

HOVE 500000 TU CUOTA-SOCIO, liOVE CUOTo\ TO PAGO. SUDTRACT PAGO FROH CUOTA--SOCIO 011/ING. COBRO. AOU t:UOTA-StlCIO TO SUH-CUOTA. Alt[t f•AGO TO SUII-F'I';GO. AOD COBRO TO SUH-COBRO.

il Definicion del re~istro de detalle~ su i~Pre;iur..

* HOVE NOHDRE TO NOMBRE-SAL. liOVE Tlf'O·-SOC!O TO TIPO-SOCIO-SAL HOVE CUOTA-SOCIO TO CUOTA-SAL. HOVE PAGO TO PAGO-SAL. 1i011E COBRO TO COBRO-SAL. . WRITE PRINT-LINE FROH !1ETALLE AFTER Art\WICHIG 1 LltlE. ADO 1 TO LINEA. rlRFORH READ-A-CARD.

RESULTADOS-CUOTAS.

* * Control de Pa9in•.

* IF LINEA !S GREATER óO PERFOf:M lMf'RIM[-EIICASEZA!tQ,

Page 153: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1 ' '-'

' ) '-

aaa COBOL an CECAFI

* laPresion de resultados. i

HOVE SUH-CUOTA TO SUH-CUOTA-5. HOVE SUH-PAGO TO SUH-PAGO-S, HO'JE SUH-CO~RO TO SUH-CO~RO-S • WRITE PRIHT-LINE FROH SUH-CUOTA-SAL AFTER AVVANCJNO 4 LIHES. WRITE PRINT-LlNE FROH SUH-PAGO-SAL AFTER ADVANCING 1 LIHE, WRITE PRIHT-LIHE FROH SUH-COBRO-SAL AFTER ADVAHCING 1 LINE.

APPENDIX R

USO DE LA CLAUSULA REDEFIIIES

f' :.:~:<,: " ...

La efau1ula REDEFINES per•ite definir la 111isaa área de al11acenandento con diferentes no.Ores w tiPo de datos.

l. No SI.' PUtiden redefinir érus a nivel 01 de la FILE SECTION.

2, la redefinici6n de re!listro~ si.' lleva a cabo coro· la 111uHidefinici<lro de re~lstros denols~a Por la clausula DATA RECORDS.

3, se·fueden redertroir todo o Perle de un re!listo·o ~ro la IIOP.Y.ING-STOI'.Al:E Sf..CT ION,

4. El ~re a e redefiní r debe declararse en la defiiüeión de d~\o ?.riterior .a la redefinición.

5, El área a redefiní r " el dato aue defiroe del>ero estar al mi•"'o nivel " tener le 11is11a l~nsituñ.

6. s~ Puede red't!finir mas de una vez el érea, No se Puede redefinil' d&\o: con nivel óó u SS.

7. Si se r~define 11ás de una vez !Jna 'rea esta ser~ referenci'-'da s.i~wre

a.l •is•o no•bre w de tor11a s.e~uida.

o, L• r.lau•uh IJALUE solo es parmilid• ero el canoPO oue ori~in•l .. .,n~e so rederine.

9. Uro re~islro 01 nue eDo~lea la clausula OCCURS roo det>e contener la clau•ula REDEFII!ES.

Page 154: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

na UIBUL 111

APPENlllX S

USO DE LA CLAUSULA OCCURS

La clausula OCCURS Per~ite definir tablas. Sisuiendo ias ~iSuientes reslos:

' 1, Los indices deben-ser nú~eros enteros positivos.

2, El Pri•er indice debe ser •enor al; sesundo !ndice.

3, Los indices llave deben contener valores· 1mtre el lndice ·uno " el indice dos,

4, Los c,.POi aue u ulen co•o !ndice& d~tben contener valoro~ entre er. !ndlce uno Y el !ndlce do1, [¡¡tos índices sor\ encefl'ado• en\ re ~arentQ~i; dl!;rues del no•bre y defiMn el l>lQIOento d11 lo hhl_,,

S, La clausula OCCURS no debe emPlearse er, cam?os oue tensan los nua.~ros

oe nivel 77, M o< as;·

6, La clausula OCCURS P•Jede &ftiPlear>e en cualouier sección d~ 1• dat< .diVi&.iOOt

7, Los índices no deben emPlearse al hacer uso del_verl:lo SEARCH.

B. Cuando se definen hblas de taa.arlo variable el taOI<I\o final debe estar entre los li~ites de la tabla.

9. La OPción_KEY indica Aue la hbh u encuentra ord~nada del modo t~Peciflcada.

Page 155: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

-na COBOL &n

10. la r.l~·J~•Jlr?. {N[l[Xf.[l EcY s.irve p,¡ra asociarle urco o ma!. Hc(Hces a l..:

h~la.

11. Estas do~ ólti•a• clausulas son reauereidao al usar•v •1 ver~o SfARCH.

12. Los noa~res de dato llave son caa~os noa~rados en la definición de la hbla.

13. Cuando sv usar varios caaPos llave estos se describen ·Por orden de Prioridad de ordenaDiento de la tabla.

Page 156: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

"-'!

APPEN~IX T

PROGRAMA

IDENTIFICATION DIVISION; PROGRAJI-l[o , TABLAS,

*

AUTHOR, CURSO COBOL DECFI, INSTALLATIONo DECFI, DATE-WRITTEN, 26 HAYO 1987, DATE-COIIPILED, 26 KAYO 1987, SECURITY. NINOUIIA,

* E~ite un reporte de las cuotas de los socios.

* ENVIRONHENT DIVISION, CONFIGUP.ATIOtl SECTJOI'L f.OURCE -COMf'UTER, IFII-PC, ORJEC T -COhF'tJTER, l ~M-·PC , INPUT-OUTf'lJT ~;E.CTION,

· FILE··CONTRill, SELECT C~RI•S ASSIGN TO DISK, SELECT IMPRESORA ASSIGN TO PR!IITER.

DATA DIVISION. FILE SECTIUII. fit CAR[IS

LAREL RECOI':l• ARE STAN[IAR!t VALUE OF FILE··.IO !S 'CUOfAS.OAT' [t>oTA RECORD !S CAR!t,

01 CARO. 02 NOH~RE PICTLIF:E Xt26l,

02 SEXO PICTURE ~<01),

02 TELEFONO PICTURE X<10'•, 02 RFC.

03 RFC-L PICTURE X<04), 03 RFC-N . P!CTURE 9(06),

02 TIPO-SOCIO PICTURE 9< Oll, 89 soc l0-.1 ~'ALUE 1. 88 SOCI0-2 .VALUE 2. 98 SOCI0-3 VALLIE 3. 88 SOCI0-4 VALliE 4, 88 SOCIO .. S VALLIE ~.

02 CUOTA P!CTURE 9<%l, 02 FILLER P!CTLIRE .X(~<\.),

FD IHF'RESORA

Page 157: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

~....-.·

*** COBOL *** CECAFI

LAaEL RECORDS ARE OKITTED DATA RECORD !S PRIHT-LIHE,

01 PRINT-LIHE PICTURE ·IS Xl80l. WORKINO-STORAGE SECTION, 77 . END-OF-DATA-INDICATOR F'ICTURE IS Xl03l, 77.. HOJA PICTURE 15 9(04> VALUE ZEROES, 77 LINEA PICTURE IS 9(02) VALUE ZEROES. 77 FECHA PICTUF:E IS 9!0bl VALUE ZEROF.S, 01 HORAr

03 HH PICTURE IS 9(02), 03 HK PICTURE IS 9!02), 03 SS PICTURE IS 9!02lo 03 FF P!CTURE IS 9!0Íl.

01 ENCABEZADO-!,

01

02 FILLER 02 FECHA-SAL 02 FILLER

PICTURE Xl07l VALUE 'FECHAI ' PICTURE 9(02l/9!02l/9(02lo PICTURE Xll4l VALUE SF'IICES.

02 FILLER . PICTURE Xl22l OJALUI: 'FACULTAD DE IHGENIERIA'.

02 F'ILLER PICTURE Xl18l IJALUE SPACES, 02 FILLER PICTURE ._X( OS> VALUE 'HOJA:~'· 02 HOJA-SAL PICTURE Zl04l, 02 FILLER PICTURE Xl01l VALUE SPACE. ENCABEZA00-2. 02 FILLER . PitTURE Xl07l VALUE 'HORA : • 02 HORA-SAL,

03 H-S f'ICTURE 9<02l. 03 FILLER PICTURE X<Oll VALUE ••• . • 03 H-S PICTURE 9!02!. 03 FILLER PICTURE X<Oil IJI!LllE ... • • o3 s-s PI~TURE 9!02>, 03 fiLLER PICTUF:E X<OI l 'iALUE • • • • 03 F··S PICTURE 9l{l?l,

02 FILLER PICTURE Xl06) 'iALUE SPACE. 02 FILLER PICTURE Xl30l VALUE

'[t!VIS!ON t•E ECtUCACillN CONTlrlUI•', 02 F!U.H f'ICTURE Xi24l VAUIE SF'ACES,

01 EIICAr<EZA[I0-3. 02 FILLE~· PICTURE X<2BI '!ALUE SPACf.S, 02 FILLER PICTURE ~(201 ~'ALUE

'IIIRECTORIO [lE SOCIOS', 02 FILLER PICTliRE X<J2l IJALUE SPAC:ES,

01 ENCABEZAD0-4.

01

02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER 02 FILLER

. 02 FILLER EIICABf.ZADO-S. 02 FILLER 02 FILLER 02 FILLER Oc tll.LER

PICTURE X<22i VALUE SPACES. PICTURE X!O.S> VAl.I!E 'tiOiiSRE', PICTURE Xll2i VALUE SPACES. PICTUF:E X< lO) 'JALLIF. 'TIPO SOClO', PICTURE X<C•6l VALLIE SPIICES. PICTURE Xl061 IJALL'f. 'CUOTA', PICTÜRE X<l9) VALUE SPACES,

PICTURE X<l2l VAl.UE óPACES. PICTliP.E X<26l VALUE ALL ';''. PICTURE Xl02l 'IALUE SPACEB, PICTURE X!IOI VftLUf ALI. '•',

Page 158: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

. \._)

***COBOL*** CECAFJ

02 FILLER 02 FILLER 02 FILLER

01 DETALLE,

PICTURE X<03l VALUE SPACES, PICTURE X<11l 'IALUE ALL ~=·.

·PICTURE X<lól VALUE SPACES,

02 FILLER PICTURE.X<l2l VALUE SPACES, 02 NOH8RF.-SAL PICTURE X<2ól, 02 FILLER PICTURE X<02l VALUE SPACES. 02 TIPO-SOCIO-SAL PICTURE X<IO), 02 FILLER PICTURE X<03l VALUE SPACES, 02 CUOTA-SAL PICTURE •z<03l•Z<Oll.Z<02l. 02 FILLER PICTURE X<3ól VALUE SPACES.

01 DEF-SOCIOS, 02 FILLER PICTURE X<10l VALUE 'VITALICIO ' 02 FILLER PICTURE X<lOl VALIJE 'HONORARIO ' 02 FILLER PICTÚRE X<lOl VALUE 'CONSEJERO ' 02 FILLER PICTURE X<10l VALIJE 'DONADOR 02 FILLER PICTURE X<lOl VALUE 'NORHAL

01 fA-SOCIOS REDEFINES PEF":SOC.JOS, - ,, 02 TAB-SOCIOS PICTURE X<lOl OCCURS S TIHES.

PROCEDURE DIVISION~ . HAIN-LOGIC,

* t (¡brir el archiVO de CUOhS W el de imPresiono

*

*

OPEN INPUT CARIIS. OPEN OUTf'UT IMPRESORA,

* Ge l~e lo fecha ~ hora de re~orle del sisleaa.

*

*

ACCEPT FECHA FROH DATE. ACCEPT HORA . FF:Oit TIME.

* Se evalua los datos de fecha <:!el encal:lezado 1 t y horD del encabezado 2.

*

*

HOVE FECHA TO FECHA-SAL. MOVE HH TO H-S. I'IQ\'E Hit TO M~S, MOVE SS TO S-S, HOIJE rr TO F -S.

* Se i&Pti&e el f'rill)er encabezado ~ sobencabezado.

*

*

f'ERFORH lMf'RIHE-ENCABtzAIIO¡ F'ERFORH IHPRIHE-SUBI':NCAIIGAOO.

* s~ i~Pri•i ran los resislrfJ~ rlct.•lle llevando un * control de hoja, t

HOVE 'NO' TO fND-OF-DATA-INlilCATOR. PFRFORII RfflD··A-CAR~, FHFORH READ-PRINT

Llti!IL Eti!I-OF-OATA··IN!t!CATOR IS lOUAL lO ''tE:-'.

Page 159: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\_)

***COBOL*** CECAfl

* * Cerrar lo• archi•1os de datos " fin de Protraaa •

CLOSE CAROS. CLOSE IMPRESORA, STOP RUN.

READ-A·CAR(I,

* Lectura del sisuiente resistroo si "" no existe otro * re~lstro la variable END-OF-DATA-INOICATOR tendra el valor *de 'YES',

• • READ CAROS RECORD

liT END HOVE 'YES' TO END-OF-llATA"lNioiCATOR, IHPRIHE-ENCAPEZADO.

* I•Prtslon de los reslstros de encabezado Para cad3 * P&Sina.

*

••

ADD 1 TO HOJA, HOVE HOJA TO HOJA-SAL. WRITE PRJNT-LINE FROH ENCABEZAD0-1 IIFTER IIDVANCING PAGE. WRITE PRINT-LINE FROH ENCABEZAD0-2 AFTER ADVANCING 1 l!NE. WRITE PRINT-LINE FROH ENCAPEZAD0-3 AFTER ADVANCING 1 LltiE. HOVE 4 TÓ.LINEA,

IHPRIHE-SUBENCABEZADO,

i l~Presion de las lineas de subenca~ezado.

* WRITE f'RINT -LINE FROH ENCAflEZA!o0-4 AFTER ADVANCitlG 2 LltiE. IJRITE PRINT-LINE FROII EIICAilEZAD0-5 .~FTER AI•'IAI~CHI!l 1 LINE. A[oD 3 TO LINEA,

READ ·PF:INT,

* l~Pri~e el rePorte reauerido,

• * * Control de PaSiroa •.

*

IF LINfA lS GREATER 60 .. PERFOf~ll IHPRIHE-ENCABEZADÓ PERFliRH lllf'RJH[ ·SUioENCADEZADO,

t [lefinicion del resistrCI de det-alle s '3U imPresion.

* IIOVE NOHBRE TO NOHBRE-SAL, ltOVE TAB-SOCIOS<TIPO-SOC!Ol TO TIPO··SOCIO-SAL. HOVE CUOTA TO CUOTA-SAL. WRITE PRINT"LIIlE FROH PETALLE Afl[R AIOVANC!UG 1 l.INF. ADD 1 IO LINEA. PERFORit REA!I-A-CARfo,

r· .:~\.~ 1 · 1

Page 160: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

• '~·

APPENDIX U

EJEHPLO DE BUSQUEDAS

El si!luiente eJeaPlo ilus.tra b manera en aue se Pueden nacer b<Js.auedas sobre un• hbla. La tabla .<llaaada TABLA en el PrO~ra01al J>o•ee dos llaves. d" ordenaaiento <codiao" noabrel · "·un lndice <Il, El lndice al1>aceroará la Policlbn del ele•ento buscado ·<después del SEARCH>, · El Pro!lraraa Pre!lunla un n<J•ero de c6dido a buscar. En caso de ser exitosa· la bósoueda se desPlie~a el noabre de la estación• de lo contrarió se desPlieda un aensaJe de error.

IDENTIFICATION DIVISION, PROGRAH-ID, BUSOUEDAS, O~TA .~IVISION, . UORK1NG~STORAGE-SECTION7

77 CODÍGO-LECTURA f'IC •¡ 103), oí TABLA-l.

02 FILLER f'lC :« IBl 'IAI.liE 'IO!iOUERETARO', 02 FILLER P!C .Y. ( 1 :J.I '.'ALIJE '106CELAYA', 02 FILLER PIC XIIC' 'IALllE '1071RAF'LIATO'. 02 FILLFf< PlC .x<tS.\ 'lt)lllf '10'?:lALAHANCA', 02 FILLER PIC Xll~l VALIJE '11 OAiliiASCAl.l Etll [~i' , 02 FILLf.R PIC Xll3l IJAU!E '200AGUAS.CAL lftiTf.'~ •, 02 FILLtR PIC XIIO) IJI•LUE '.203AGLIASCALI ENTf.S' , 02 FILLER PlC XllOl VA LilE '204l.AGOS' , 02 FILLER PIC X1181 VALU[ '209ZIICATECAS' , 02 FILLER P!C Xl13) UALUE '31HH:EStl Ill.ll' • 02 FILLER f'IC XI 18) IJALUE '302CHIHLI!dlUfo', 02 FlLLEf: PIC XI 1Sl '!ALIJE '308Jl!AF:EZ',

01 TA~LA 02 f!llloCION OCCURS 1Z Tli'\ES ASCI::NI.llNG KEY COTilGO ASCENI•ltlG KEY 03 CO~IGO

03 NOHP.RE PROCEOUP.E DIVISJON, f'f;HIC!f'AL.

NOH!<f'E ItiiiEXED IIY I, f'IC 9(03). f'IC X115),

DISF'LAY 'Oue codi!lo de<eas buscar 9(0:1> ' WITH UO irD'IANCH!G, ACCEPT CQ[o!GO-LEC [LIRA. PERFOF;H l<USOUEl•A-SECliENC !AL. F'ERFORH l<USOUf:[oA .. ~ WAid A. STOf' RUN,

~USOUEJIA .. SECUENCIAL. SET 1 TO 1. SEARCil ESf~CION

AT (lJ[o (11 Sf'l. AY

Page 161: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX o¡

EJERCICIO CON LA INSTRUCCION INSPECT

·.noa-c••~o-datos literol-1

INSPECT no•-caapo-datos TALLYING literal-1 FOR LEADING 'L'

INSPECT no•-ca•Po-datos TALLYING literal-1 FOR ALL 'L'

INSPECT noa-campo-datos REPL.ACING ALL 'H' BY 'P'

INSPECT noa-caapo-datos TALLYING literal-! FOR CHARACTERS AFTER 'S' REPLACING ALL '1' BY '0'

INSF'ECT noa-caapo-datos REPLACING ALL '1' BY 'O' ALL 'S' BY 'Z' AFTER 'HIS'

*** COBOL *** CECAFI

antes desPués

LULU HOLA LLORA

LULU HOLA LLORA

HAHA HAHUT

HISSISSIPI HISTORIA

LULU HOLA LLORA

LULU HOLA LLORA

PAPA PAPUT

HOSSDSSOPO HOSTOROA

HISSISSIPI HOSZOZZOPO HEHISFERIO HEHOSFEROO

1 o 2

2 1 2

2

7 5

'No existe estacion con codiso • CODIGO-LECTURA IJHEN CODIGiH 1 l = COPIGO-LECTURA PF.RFÓRH EXITO.

BUSOUEDA-BINARIA, . SEARCH All ESTACION

AT END DISPLAY 'No existe estacion con codiso

WHF.N NOHBRE<Il = 'AGUASCALIENTES' CODWO<I> = COOIGO-LECTURA

EXHO. DISPLAY CODIGO(Il ' ' NOHPRE<Il,

' CODIGO-LECTURA ANO PERFDRH EXITO.

Pase U-2

Page 162: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' '-

APPENDJX W

PROGRAHA

InENTJFlCATJON DIVISIOH, PROGRAH-ID, PRUEPA. AUTHOR, DECFI , INSTALLATION. IBH-PC, DATE-WRITTEN, 10 JUNIO 87. DATE-COHPILED. 10 JUNIO 87, SECURITY, NINGUNA, ENVIRONHENT D!V!SION. CONFIGURAT!Otl SECT!ON, SOURCE-COHPUTER, VAX-11-780, ÍIBJECT-COHPUTF.R, 'IAX-11-780, JNPUT-OUTPUT SECTJON. FILE-CONTROL,

SEL(CT !tATOS ASS!GN DIS~, .SELECT NOHYRFC ASS!GN DISK,

!lATA ltlVlSION. FILE SECTION, H DAIOS

RECORI• CONTA!NS 36 CHARACTERS LABEL RECOR!I !S STANDARD VALUE OF 1!1 !S 'DATOS.DAT' !lATA RECORD !S REGISTRO-DATOS.

01 REGISTRO-!tATOS, 03 NOHBRE 03 DIA 03 HES 03 ANO

F!1 NOHYRFC RECORD CONTAINS 40 CHARACTERS LABEL RECORD IS STANDARD

PIC X<30>, PIC 99, f'IC 99. PIC 99,

VALUE OF ID IS 'NOHYRFC,DAT' DATA RECORD IS REOISTRO-NOHYRFC,

01 REGISTRO-NOHYRFC. 03 NOHORE.

OS ACOMODADO 03 LETRAS 03 ANO 03 HES 03 OlA

WORKING-STORAilE SECTION,

OCCURS 30 TIHES PIC XI01l. PIC A(04), PIC 99, PIC 99. PIC 99,

Page 163: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

. ......_,

\ .,/'

8U COBOL aaa CECAFI

77 BLANCOS 77 PUNTO-Y-COMA-1 77 PUNTO-Y-COKA-2 77 ENCOHTRAR

88 YA-LO-ENCONTRE 77I 77 J 77 DATOS-STATUS

88 FIN-ARCHIVO-DATOS 77 VOCALES

88 VOCAL 01 NOKBRES,

,

PIC 99 VALUE ZEROES, PIC 99 VALUE ZEROES, PIC 99 VALUE ZEROES, PIC X<02l VALUE 'NO', VALUE 'SI'• PIC 99 VALUE ZEROES, PIC 99 VALUE ZEROES, PIC X<02) VALUE 'NO', VALUE '51', PICA VALUE '8', VALUE 'A'• 'E'• 'l'• •o•, •u•.

03 INDICE OCCURS 30 TIKES PIC X<OI), 01 LETRAB-RFC,

03 INDICE-LETRA OCCURS 4 TillES PIC A<01), PROCEDURE DIVISION, INICIO,

PERFORK PROCESO~INICIAL, PERFORK PROCESO-PRINCIPAL UNTIL FIN-ARCHIVO-DATOS, PF.RFORK PROCESO-FINAL. STOP RUN,

PROCESO-INICIAL. OPEN INPUT DATOS, OPEN OUTPUT NOKYRFC,·

PROCESO-FINAL, CLOSE DATOS, CLOSE NOHYRFC,

PROCESO-PRINCIPAL. READ DATOS AT END

KOVE .'SI' TO DATOS-STATUS, HOVE ZEROF.S TO PUNTO-Y-COHA-1

F'UtlTO-Y -COHA-2 BLANCOS J,

IIOVE 1 TO I HOVE 'NO' TO ENCONTRAR. lf' NOT FIN-ARCHIVO-I•ATOS

1 PERF'ORH INSPECCIONA THRU IHPRIHE. INSPECCIONA.

HOVE NOHBRE IN REGISTRO-DATOS TO tlOHP.RES. HOVE IHDICE<Il TO INDICE-LETRA<l), PERFORH ENCUENTRA-VOCAL UNTIL YA-LO-ENCDilTRE, HOVE VOCALES TO INDICE-LETRA<2), INSPECT NOHIIRES REPLACING ALL ' ' BY ' IIEFORE INITIAL ';', INSPECT NOHBRF.S TALLYING PUNTO-Y-COHA-1 FOR CIIAP.ACTEP.S

BEF'ORE INITIAL •;• ADD 2 TO PUNTO-Y-CUHA-1 HOVE INiliCE<PUNTO~Y-COHA-1) TO INI•ICE-LETRA(3), INSPECT NOHBRES REPI.ACING FIRST ';' DY ' · INSPECT NOHBRES REPLACING ALL ' ' BY '!IEF'ORE INITIAL •;•, INSPEr.T NOHRRF.S TALLYING PUNTO-Y-COHA-2·f'OR CHARAf.lERS

IIEF'ORE INITIAL ¡ 1' REF'LÁCING FIF:ST 'i' 9Y ' ADD 2 TO PUNTO-Y-COHA-2. HOVE INDICE<PUNTO-Y-COHA-2) TO INDICE-LEJRA(4), HO~'E CORR REGISTRO-DATOS TO REGISTRO-NOtffRFC HOVE LETF:AS-RF'C TO LETRAS IN REGISTRO-NOHYRFC

PaSle LJ-2

Page 164: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

-

1 ~-

aaa COBOL aaa CECAfl

,

IN~ECT HOHBRES TAlLYIHG PLANCOS FOR CHARACTERS BEFORE INITIAL • '

ADD 2 TO BLANCOS , IF BLANCOS > 30

HOVE 30 TO BLANCOS. PERFORH ACOHODA-NOHPRE VARYING I FROH PUNTO-Y-COKA-2 BY 1

UHTIL I = BLANCOS, PERFORH ACOHODA-NOHPRE VARYING I FROH 1 BY 1

UNTIL I • PUNTO-f-COHA-2. INSPECT NOHBRE IN REGISTRO-HOHYRFC REPLACING ALL ' BY ' '•

IHPRIHE, WRITE REGISTRO-HOHYRFC,

ENCUENTRA-VOCAl. ADD 1 TO I, HOVE INDICE<I> TO VOCALES, IF VOCAl

HOVE •s¡•-ro· ENCONTRAR;···"~~ ACOHODA,NOitBRE,

ADD 1 TO J, HOVE INDICE<I> TD ACOHODADO(J),

P•se W-3

Page 165: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

....... , ...

\

APPEHDIX X

PROGRAHA . ~ ,_

ldentlflcatlon dlvision.

****************************************************************************** Prolr••-id. strini01,

********************************************************************'********* * * Este pro•rama usa la instruccion unstrin~ Para transferir un dato caPturado * en ter11tnal ·,. Puesto· en un archivo de salida. Ta11bien es usado la * tnstruccion strini Para la tra•sferencia de datos

* ****************************************************************************** environaent dtviston.

**i**'************************************************************************ inPut-outPut section. file-control.·

select namo-master assisn to 'naaellst.dat•, seleet Print-file asstsn to 'astlst.li~'.

data division.

********************'*****************************************************'**' file seetlon, fd na•e-•aster

lal>el recOJ·ds ne <>hndard, 01 na•e-record.

03 n-number Pie x<OS), 03 n-n••e Pie x<2S). 03 n-address-1 Pie ><<25), 03 n-addre~s-2 Pie x(25>. 03 n-eitY Pie ><<20). 03 n-state Pie l!(02). :.,..

03 n-ziP Pie X(05) • fd Print-file

label reeords are o~itted. 01 Print-reeord Pie x<132), wor~.iM-storase section. 01 error-sw Pie >:(01) value 'n'. 01 current-dlte.

03 c-v,¡ Pie 9<02), 03 e-•• Pie 9<02), 03 c-dd Pie 9<0'2).

01 the-counters usase co~p. 03 Pa!le-et Pie 9(03) value •eroes. 03 line-et Pie 9(03) value· zeroes.

Page 166: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' "-- ..

***COBOL*** CECAf'J •

. 03 na•e~c.t .. Pie 9(031 v1lue zeroes. · · ··· 03·au-iiub l'ic 9C02l value zeron •

. 03 sub·coDPare PiC 9(02) YIJU& zeroes; 01 terDinal-inPut Pie x<113l •

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• * * El re•istro terainal-inPutC113l contiene en lon•itud al r•distro * na•e·recordC107l a3s 6 deliaitadores aue ~~~ introducen •

• .............................................................................. 01 head-a.

Pie xC35l value sPaees. 03 filler .03 filler 03 filler 03 filler 03 h-date.

Pie xC16l value 'na&e aaster list•, Pie x<20l value sPaces.·

05 h-.. 05 filler 05 h-dd 05 filler 05 h-v!l

03 filler 03 filler 03 h-Pade-ta

01 hf>ad-b. 03 fill•r 03 filler 03 filler 03 filler 03 filler 03 filler 03 filler 03 filler

Pie xC06l value 'as of '

Pie zC02), l'le xCOll value '/', Pie zC02l, Pie »<Oll value '/', PÍe z(Q2), Pie xC31l value spaces. Pie xCOSl velue 'Pade '• Pie z<02l9C01h

Pie xC13l value ' na111e Pie >:C20l valul! sPaces, Pie >:<13) value ' address Pie" xC12) value ;paces. Pie xCOSl value ' eit11 Pie x< 12l value sPao:u.

· Pie x< 15) value ' state . ziP Pie x<03l valui! spaees.

• . .

Proeedure division. UUU*UiU*UUtltU*****************UiUinUiUU*nUUfiUUUUiUitU 000-b.Sin. ·

OPen out•ut nlml!·master. oPen o•JlFut Print-flle. z.c:eePl current-date fro~ o:latt. move c-•m lo h·ftlftl, move e-dd to h-dd. move c-yy to h-y~.

010-l"rint-headiMs. add 1 to Pa~a-et. ~>o''" Pase-el, to h-Pase-ts. ur i te Frint-record fro& head-a atter PaSe •. write Prinl-record fro~ head-b after advaneins 2 lines. move s?aces to Print-record. wrile Prirot-reeord after advaneiml 1 line. Mve 4 to line-et.

020-set.-terrainal-inPut, disPla~ 'enter data in this for~at : [End 99999 in roumberJ', di ;p 1•" 'nu•bec/na•eladdress-1/address-2/c! t\1/stat.e/ziP'. i!c.·ceF- t terminal- inPut, urostriM ter~Dinal-inPut

c.h1lir.,iled b~ '1'

Page 167: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

-

./

\ /

*** COBOL tU CECAF"I

,

into n-nun.ber n-name count in r1arae-ct n·-addre<s-1 n-addreu-2 n ~ci t~ n··stale n-ziP.

if n-r.umber ~ '99999' then !!o to 999-eo . .i.

030-validate-det.a. if n-nuaber is not nu~eric then

move ·~· to error-sw disPla~ 'non-nu~eric nuaber'.

if n-na~~ = sPacP.~ lhen IIO'~'C' • ~· t.o error-e.u disPla~ 'name is missins•.

ir name-cl sreater than 25 then move 'y' t.o error-sw disPl"a~ 'name is slreater thcm 25 charactera' •

if n·-addr&ss-1 = ~Pacet> lh•n 1110ve ·~· t.o error-s.w disPlaY 'address-1 missini'•

1 f n-z.ddress-2 : sPaces then. move 'H' to error-sw di srla~- • address-2 mis~in~·.

if n-cil":J = s?ac'?s then n•ove •v• to error-sw ~isPlaY 'citv missins•.

if n·Mst.ate ::: !ir•a.ces then ll'•oJVe ''-J' t.o <,rror-sw di!;:·l.?.'.J •s.tde adssins&'.

i f n·;:ir- i.z not ncuneric then ruo•J~;., • .. ~· t.o P.r ror·-sw di'irl~~ '<!if· cede is non-numeric•~

if error··~w ~ 'w' then ~r.ove 'n' t.o error-sw di:rl¡;;~.; 'lrans.action rejected • ter&inBl-input >o to 020-set·-terminal-inPut.

040 tuild-line-1. if 1 ine-ct sreater than 56 then

?erform 010-print-headinss~ ::..trifiS ' • n-ne.fbe 1 1 n-address-2 • ' n-ci t.!:l 1 1 n-state

' n-ziP dRliaited b~ si:e into Print-record. ~>Hite Print-record· ~fter advancinS 1 lines. ,;dd 1 to line·-ct, write n~~e-record. il'IO'.'e sPaces t.o nza~e-record.

ruo~~ sP~cet to Print-record. n:•v·:e .;..:1HOPt to name-ct. =!-.J te 1):?0-jel-termina.l-ir•P"IJl.

9'}?· ._:oj. clase n~m~-m~eter. ·~lose Prinl-fil~.

di:.rl::'!- 'énd of F·rogram ' ;tor- r•Jn.

· fa11e X·-3

Page 168: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

,

APPEHDIX Y

EJEMPLO DE ORDENAMIENTO

IDENTIFICATION DIVISION. PI\OGRAH·ID, ORDENADOR, EtNIP.ONHF.NT OIIJIS.!OII, COIIFIGURATION SECTION •

. SOUF:CE-COMPUTER. VAX-11-780, Olt.JECT -COHPUTEF:, VAX-11-780, INPUT -OUTPUT SECTION, FILE -COtiTROL.

GELECT ARCil-EtiT ASSIGN TO 'AORDENARóDAT', SELECT ARCH-ORD ASSIGN TO 'ORDENADO.DAJ', SEllCT ARCH-INT ASSIGN TO 'INTER.DAT',

liMA OI<.'lSION. FILE ~.tCTION,

F[t

01 F' [1

l,lt

S{l

lj 1

Ar.:CH-·ENT. REG··DIT ARCft·-ORO. F:Ef>-ORD AF:m- HIT • f:[G- ItiTER • O~ FILLER •j~ COOIGO-CLIENTE 02 TOTAL-Vi:NTAS

PIC X<13),

PIC X<13>.

PIC X<O~h PIC X<OJ), PIC 9(06),

l·'f~OGEDURE 1<1'1 !S ION, ORDENA.

SORT ARCH-INT ON ASCENDING KEY CODIGO-CLIENTE DF.SCENDING KEY TOTAL-VENTAS USING ARCH-EIIT GII.'ING ARCH··ORD,

STOP P.IJN,

Page 169: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX Z

ORDEHAHIF.NTO EHPLEANDO INPUT-OUTPUT PROCEDURE

IDENTIFICATION DIVISION, PROGRAH-ID, INPUT-OUTPUT-PROCEDURE. ENV IRONHEHT DI•JISION, INF'UT-OUTPUT SECTION, FILE-CONTROL.

SELECT ENTRADA ASSIGN TO 'CLIENTES.DAT', SELECT SALIDA ASSIGN TO 'SALIDA.DAT', S[LECT SORTEO ASSIGN TO 'SORTEO,SOR',

DATA [IJVISIOII, i·ILE SECTION, FD Et/TRA!I~

f:[CORio CONTAINS 67 CHARACTERS MTA RECO?.DS ARE REG-ENT-1, REG-EIÍT-2.

01 F:EG-·ENT··1. 03 CLA1JE -ENT 03 ·i/OhDRE-EiiT . 03 [llf:ECCION-ENT C•3 C~ED!fO·ENT

01 REG··Et/T-2, 03 CP.EO··H!JX··ENT 03 f JLLER

H• SAL!Dil f(ECOR[I CONTAINS 67 CHARACTERS.

PIC 9(04), PIC X<32), PIC X<30l, PIC 9(01),

PIC 9<06)V9<02), PIC XI 59),

I•ATA RECOf<DS ARE REG-SAL-1• REG-SAL-2, 01 REG-SAL-1•

0:! CLAVE-SAL 03 NOMBRE-SAL 03 [I!F:ECCION-SAL 03CREOITO-SAL

01 F:EG-SAL-2, 03 CRED-MAX-SAL 03 FILLER

S!l SORTEO RECORto CONTAINS 75 CHARACTERS DATA RECORD IS REG-SOR.

01 REG··SOR, 03 CLAVE-SOR 03 NOMBRE-SOR 03 [o!RECCioti-SOR

PIC 9104), PIC X(32), PIC X!30), PIC 9<01>,

·prc 9<06lV9<02>. PIC X<59l,

PIC 9(04), PIC X<32), PIC X<30),

Page 170: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' '--''

au COBOL Ul CECAFI

03 CREDITO-SOR 03 CRED-IIAX-SOR

WORKING-STORAGE SECTION. 77 TALLY 77 HAY-DATOS-ENT

BB HAY-DATOS-ENT-OK 77 HAY-DATOS~SAL

OB HAY-DATOS-SAL-OK PROCEPURE DIVISION, PRINCIPAL SECHON, INICIO,

PERFORK ABRE-ARCHIVOS.

PIC 9(01), PIC 9<08),

PIC 9(02) VALUE ZEROES, PIC X(02l VALUE 'SI',

VALUE 'NO', PIC X<02) VALUE 'SI'•

VALUE 'NO',

SORT SORTEO ON ASCENDING KEY CLAVE-SOR INPUT PROCEDURE ENTRADA-SORTEO OUTPUT PROCEDURE SALIDA-SORTEO.

PERFORH CIERRA-ARCHIVOS, STOP RUN,

ABRE-ARCHIVOS SECTION. ADRE·

OPEN INPUT ENTRADA OUTPUT SALIDA,

ENTRADA-SORTEO SECTION, ENTRADA·SORT,

READ ENTRADA AT END DISPLAY 'ERROR FATAL ,,,, NO HAY DATOS PE ENTRADA' HOVE 'NO' TO HAY-DATOS-ENT,

PERFORH LEE-ENTRADA UNTIL HAY-DATOS-ENT-OK •. U: E -ENTRADA SECTION, lEE.

HOVE CLAVE-ENT TO CLAVE-SOR HOVE NOHBRE-ENT TO NOHBRE-SOR HOVE DIRECCION·ENT TO DIRECCION-SOR HOVE CREDITO-ENT TO CREPITO-SOR IF CREDITO-ENT IS EOUAL 1

READ ENTRADA AT END HOV~ 'NO' TO HAY-DATOS-ENT

.END·READ HOVE r.REI•·HAX··ENT TO CRED-KAX-SOR

ELSE MOVE ZEROES TO CRED-HAX-SOR

RELEASE REG·SOR READ ENTRADA AT EHD

HOVE 'llO' TO HAY-DATOS-ENT, SALiroA·SORTf.O SECTIOil, SALII•A-SORT,

RETURN SORTEO Al END HOVE 'NO' TO HAY-DATOS-SAL, PERFORH IHP-SALIDA UNTIL HAY-DATOS-SAL-OK,

lMP··ZALH•A SECTION, IHP;

INSf'ECT NOKBRE-SOR TALLYING TALLY FOR LEADING 'A' IF TALLY m NOT EQUAL ZERO

IIOVE CLA~'E-SOR TO CLAVE-SAL HOVE NOHFRE-SOR TO NOHFRE-SAL tiOVE DIRECCION-SOR TO DIRECCION-SAL hOVE CREDITO-SOR TO CREDITO-SAL WP.ITE REG-SAL-1

Page 171: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAFI

IF CREDITO-SOR IS EQUAL 1 HOVE CRED-HAX-SOR TO CRED-KAX-SAL WRITE REG-SAL~2.

RETURN SORTEO AT END HOVE 'NO' TO HAY-DATOS-SAL.

CIERRA·-ARCHIVOS SECHON, CIERRA.

CLOSE ENTRADA SALIDA.

APPENDIX AA

PROGRAMA

IDEtiTIF"ICATION DIVISION. PRDGRAH-ID. SORTEO. AUTHOR. CURSO CO!IOL DECFI, IHSTALLATION. !IECFI. DATE-WRITTF.N. 26 MAYO 1987, DATE-COHPILED. 26 HAYO 1987. SECURITY. NINGUNA,

* * Sortear un archivo dv datos Por noabre.

* ENVIRONHENT DIVISION, CONFIGURATIOII SECTIOH. SOURCE-COMPUTER. It.H-PC. OBJECT-COMPUTF.R. IBK-PC, INPUT-OUTPUT SECTION. FILE-CONTRPL,

· SELECT CARIIS ASSIGN TO DISK, SELECT SORTING-FILE ASSIGN TO DISK •.

DAT!l DIV1SION, FILE SEc.TIOII, f[l CAROS

LAFEL RECORD ARE STANDARD VALUE OF FILE-ID IS NOKIIRE-DE-ARCHIVO DAlA RECORD !S CARD.

01 CARD. 02 NOHIIRE PICTURE Xl26) • 02 fiLLER PICTURE XI 54),

SD SORTING-FILE DATA RECORD IS SORT-CARD.

01 SORT-CARD. 02 NOHBRE-SORT 02 FILLER

PICTURE Xl26), PICTURE X<54lo

UORKING-STORAGE SECTION, 01 IIOHBRE-!IE-ARCHIVO PICTURE IS Xl13l, 01 Tlf'O-SORT PICTURE IS XIOll VALUE SPACE.

88 TIPO-SORT-OK VALUE 'A'• 'll'o 'D'• 'r.l', CB Tlf'O-SORT-A VALUE 'A' • 'a'. 88 TIPO-SORT-D VALUE 'D'o 'd',·

PROCEDURE DIVISION. 11AHI-LOGIC,

Pa!le l-3

Page 172: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

U& COBOL in ·CECAFI

* t Pide el ·archivo a sortear o¡ lo ordena Por el noabre en i for~a Indicada. ~

DISPLAY 'NOHBRE DEL.ARCHIVO A SORTEAR' ACCEPT NOH8RF.-DE-ARCHIVQ, PERFORH PIDE-OPCION-DE-SORTEO UNTIL TIPO-SORT-OK, IF TIPO-SORT -A

SORT SDRTING-FILE DN ASCENDING KEY NDH9RE-SDRT USING CAROS GIVING CAROS

ELSE SORT SORTING-FILE ON DESCENDING KEY NOH9RE-SORT

USING CARDS GIVING CARDS, STOP RUN,

PIDE-DPCIDN-DE-SDRTEO,

* * Pide la oPc:ion de sorteo.

*

Paae AA-2

DISPLAY 'TIPO DE ORDENAHIENTO <ASCENDENTE/DESCENDENTE> [A/Dl' ACCEPT TIPO-SORT.

Page 173: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

1; -

APPENDIX AB

EJEKPLO DE ARCHIVOS RELATIVOS

IDENTIFICATION DIVISION, PROGRAK-ID, ARCHIVO-RELATIVO, AUTHOR, CECAF I, ENVIRONtiENT DIVISION, COilFIGURATiotl SECTION, . SOURCE-COHPUTER, VAX-11-780, ODJECT-COHPUTER, VAX-11-780, INPUT-OUTPUT SECTION, FILE··CONTROL.

SELECT LISTA ASSIGN TO DISK ORGANIZATION IS RELATIVE I1CCESS HODE IS DYNAHIC RELATIIJE KEY IS R-CLAVE FILE STATUS IS FS-LISTA-Xo

DATA DI 1!ISION, FILE SECTION. FD LISTA

RECORD CONTAINS 32 CHARACTERS l.ABEL RECORD IS STANDARD '!I,LUE OF ID IS 'RLISTA.OAT' DATA RECORD IS REGISTRO-LISTA,

01 REGISTRO-LISTA, 03 llOHE:RE PICTURE IS X<32l,

\JORK 11/G-STORAilE SECTION, 17 TOTAL-DE-LISTA PICTURE IS 9(02), 77 FINAL-I•E-DATOS PICTURE X<OIJ.

88 FIN-DE-DATOS VALUE 'N' 'n', 77 IJAY··ERROF: PICTURE IS X<OIJ,

80 ERROR-OK VALUE 'S' ·~·. 77 OPCION PICTURE IS X<OI l,

88 OPCION··SI VALUE 'S' 's', SS TERMINAR IJALUE 'F' 'f',

77 FS-LISTA-X PICTURE IS X(02), 77 F:-CLI.VE PICTURE IS 9(03>, PROCEDURE DIVISION, IIHCIO.

PERFORtl INICIO-PROCESO, F'ERFORH PROCESO UNTIL TERIIINAR, STOP RUN,

Page 174: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAfJ

JIIICIO-PROCESO, HOVE ' ' TO OPCION, HOVE ZEROES TO TOTAL-DE-LISTA. OPEN I-0 LISTA,

PROCESO. DISPLAY ' '• DISPLAY 'OPCIONES 1 '• I•ISPLAY ' ', DISPLAY 'Al ALTAS,', DISPLAY 'BI BAJAs,•, DISPLAY 'CI CONSULTA,'• DISPLAY 'MI HODIFICACJON,', DISPLAY 'FI FJN,' DISPLAY ' ' ACCEP'f OPCION, HOVE ' ' TO FINAL-DE-DATOS, lF OPCION EQUAL 'A' OR EQUAL 'e'

PERfORH f·ROCESO-AL TAS

ELSE UNTIL FIN-DE-DATOS

If OPCION EOUAL 'B' OR EQUAL 'b' PERFORH PROCESO-BAJAS

UNTIL FIN-DE-DATOS ELSE

JF OPCION EQUAL 'C' OR EOUAL 'e' PERFORH PROCESO-tONSULTA

UNTIL FIN-DE-DATOS ELSE

IF OPCION EOUAL 'H' OR.EOUAL 'a' PERFORH PROCESO-HODIFICACIONES

UNTIL FIN-DE-DATOS, PROCESO-ALTAS.

HOVE 'S' TO FINAL-DE-DATOS, PERFORH LEE-DATOS,

LEE-MTOS, DISPLAY ' ' IIISI'LA'f 'CAPTURA DE INFORHACION !s/n) 1 ', ACCEPT FINAL-DE~DATOS, IF FIN-DE-DATOS

•IIEXT SENTENCE ELSE

f'ERFORH PROCESA-ALTAS, PfiOCf.SA-AL TAS,

PERFORH LEE-CLAVE, HOVE ' ' TO HAY-ERROR, REAl• LISTA RECORD

INVALID KEY HOVE 'S' TO HAY-ERRÓR, IF ERROR-OK

PERfORH LEE-DATOS-LISTA URITE REGISTRO-LISTA INVALID KEY

DISPLAY 'IIRITE 1 REGISTRO EXISTENTE,' ELSE

DISPLAY ' ' !tiSPLAY 'REGISTRO EXISTENTE,' PERfORH ESCRISE-DATOS-LISTfi,

LE[- !lATOS-LISTA, ·

Paie AS-2

Page 175: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAfJ

DISPLAY ' ' DISPLAY 'NOMBRE 1 ' IICCEPT NOHBRE,

LEE-CLAVE, DISPLAY ' ' DISPLAY 'NUKERO DE REGISTRO 9(031', ACCEPT R·CI.AVE,

PROCESO-BAJAS, HOVE 'S' TO FINAL-DE-DATOS, PERFORH BORRA-DATOS UHTIL FIN-DE-DATOS,

BORRA-DATOS· DISPLAY ' ' DISPLAY 'BORRADO DE INFORHACION IS/Nl 1 '• ACCEPT FINAL-DE-DATOS, IF FIN-DE-DATOS

NEXT SENTENCE ELSE

PERFOP.H BAJAS-DATOS-LISTA. BAJAS-DATOS-LISTA,

PERFORH LEE-CLAVE. HOVE ' ' TO HAY-ERROR. P.EA!I LISTA RECORD

INVALID KEY HOVE 'S' TO HAY-ERROR, IF ERROR-OK

DISPLIIY ' ' DISPLAY 'NO EXISTE EL REGISTRO'

ELSE PERFORH ESCRIBE-DATOS-LISTA f'ERFORM SE-BORRA.

SE-BORRA, DISPLAY ' '• I•ISPLAY 'SE DESEA BORRAR INFORMACION IS/Nl ?', ACCEPT Of'CI0/1. If OPCION-SI

DELETE LISTA RECORD INVALID KEY .DISPLAY 'NO SE PUEDE BORRAR,',

ESCRIBE-DATOS-LISTA, DISPLAY ' ' DISPLAY 'INFORMACION DEL REGISTRO LISTA,' DISPLAY ' '• DISPLAY 'CLAVE : ' R-CLAVE, DISPLAY 'NOHBRE : ' NOHBRE.

F'ROCF.SO-CONSULTA, HOVE 'S' TO FINAL-DE-DATOS. PERFORM CONSULTA-DATOS UNTIL FIN-DE-DATOS.

CONSULTA-DATOS, DISF·LAY ' ' DISPLAY 'CONSULTA OE INFORMACIDN (S/Nl ? '• ACCEPT FINAL-DE-DATOS. IF FIN-OE-OATOS

.NEXT SENTENCE ELSE

PERFDRH CONSULTA-DATOS-LISTA. CONSULTA-DATOS-LISTA,

PERFORM LEE-CLAVE. 110'JE ' ' TO HAY-ERROR,

Pase AB-3

Page 176: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAFI

READ LISTA RECORD INVALID KEY KOVE 'S' TO HAY-ERROR,

IF ERROR-DI< DISPLAY ' ' DISPLAY 'NO EXISTE EL REGISTRO'

ELSE PERFORH ESCRIBE-DATOS-LISTA.

PROCESO-HQDIFICACIONES, HOVE '8' TO FINAL-DE-DATOS, PERFORH HODIFICA-DATOS UNTIL FIN-DE-DATOS,

IIODIFICII-DIITOS, DISPLAY ' ' DISPLIIY 'IIODIFICACION DE·INFORHIICION~<SINl_?_ '•

·ACCEPT FINAL-DE-DATOS. IF FIN-DE-DATOS

NEXT SENTENCE ELSE

PERFORH HODIFICA-DATOS-LISTA. HODIFICA-DATnS-LISTAo

f'ERFORH LEE-CLAVE, HOVE ' ' TO HAY-ERROR. P.EAD LISTA RECORD

INVALID KEY ~VE 'S' TO HAY-ERROR, IF ERROR-OK

DISF'LIIY ' ' DISPLIIY 'NO EXISTE EL REGISTRO'

EL3E PERFORII ESCRIBE-DIITOB-LISTII PERFORH SE-CIIH81Ao

SE-CAH~IA,

DISPLAY ' '• DISPLAY 'SE CAHlliA Lll INFORHIICION (5/Nl ? '• ACCEPT OPCiotl, IF OF'CION-Sl

PERFORH LEE-DATOS-LISTA REioiRITE REGISTRO-LISTA

INVALID KEY DISPLAY-'NO_SE_P.UEDE HODIFI~AR',

Paae All-4

Page 177: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

APPENDIX AC

PROGRAIIA

IDENTIFICATION DIVISION, PROGRAH-ID, ARCHIVO-RELATIVO, AUTHOR, CURSO COBOL DECFI. I NST ALLA TI ON, DECFI, DATE-WRITTEN. 1 JUNIO 1987, DATE-COHPILED. 1 JUNIO 1987. ·•. SECURITY, NINGUNA,

* * HeneJo de archivos r•lativoa.

* ENUIRONKENT DIUISION, ...... CONFIOURATION SECTION, SOURCE-COMPUTER, IBK-PC, OBJECT-COMPUTER, IBH-PC, INPUT-OUTPUT SECTION, FILE-CONTROL, SEl.F.CT LISTA ASSIGN TO DISK

ORGANIZATION IS RELATIVE ~CCESS HODE IS DYNAHIC f:F.LATIVE KEY IS R-CLAVE FILE STATUS IS FS-LISTA-X,

!tATA DIVISION, FILE StCTION, FD LISTA

RECORD CONTAINS 32 CHARACTERS LABEL RECORD IS STANDARD VALUE OF FILE-ID IS 'RLISTA.DAT'. DATA RECORD IS REGISTRO-LISTA,

01 REGISTRO-LISTA, Ol NOMBRE PICTURE IS Xl32l,

UORKING-STORAGE SECTION, Tl TOTAL-DE-LISTA PICTURE IS 9(02!, 77 FINAL-DE-DATOS PICTURE X<Oil,

flB FIN-I•E-DATOS VALUE 'N' 'n', 7~' HAY-ERROR P!CTURE IS X<01lo

88 ERROR-OK VALUE 'S' 's', ,_.. 77 OPCION PICTURE !S X<01l. 88 OPCION-SI VALUE 'S' 's', 88 TERHINAR VALUE 'F' 't',

77 FS-LISTA-X PICTURE IS X<02l,

Page 178: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

·.._

*** COBOL *** CECAFI

77 R-CLAVE PICTURE IS 9!03), ·PROCEDURE DIVISION, INICIO,

i * Procuo .baJo control POr ......, d4t oPcioMS• i

*

PERFORH INICIO-PRDCESO. PERFORH PROCESO UNTIL TERHINAR. PERFORH FIN-PROCESO. STOP RUN,

INICIO-PROCESO,

t Define las condiciones iniciales del Proceso.

* PERFORH REVISA-ARCHIVO .• HOVE ' ' TO OPCION. HOVE ZEROES TO TOTAL-DE-LISTA. OPF.N I-0 LISTA,

REVISA-ARCHIVO,

* * El archivo a usar debe de existir en el di~co de '* otro aodo no se Podra accenr la inforucion;--Pbr lo * tanto debe .revisarse su existencia con FB-LISTA-X• si el * valor es '00' es aue el archivo wa existe en el disco * si es idual a '30' no exhte el erchivo.

* OPEN 1-0 LISTA. IF FS-LISTA-X = '30'

CLOSE LISTA OPEN OUTPUT LISTA CLOSE LISTA

ELSE CLOSE LISTA,

PROCESO,

* * Proceso controlado POr este aenu de oPciones sobre * el archivo relativo, 'i

DISPLAY !tiSPLAY [tlSPLAY DISPLAY

• • 'OPCIONES • • • 'A: ALTAS•'•

!liSPLAY '111 IIAJAS.', ./ DISPLAY •e: CONSULTA,', ltlSPLAY 'Hl HODIFICACION,', !tiSPl.AY 'F: FJH,' !tiSPLAY ' ' ACCEPT OPC!ON, HOVE ' ' TO FINAL-DE-DATOS, !F OPC!ON EQUAL 'A' OR EOUAL 'a'

PERFORH PROCESO-ALTAS UNTIL FIN-DE-DATOS ELSE

!F OPCION EQUAL '8' OR EOUAL 'b' PERFORH PROCESO-BAJAS UNTIL FIN-DE-DATOS

ELSE IF OPCJON EOUAL 'C' OR EOUAL 'e'

Pa~e AC-2

Page 179: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

*** COBOL *** CECAFI

PERFORH PROCESO-CONSULTA UNTIL FIN-DE-DATOS ELSE

IF OPCJON EOUAL 'H' OR EOUAL 'a' PERFORH PROCESO-MODIFICACIONES

UNTIL FIN-DE-DATOS ELSE

lf TERMINAR DISPLAY 'FIN DE PROCESO'

ELSE DISPLAY 'ERROR EN DPCION,',

FIN-PROCESO,

* * Cerrar el archivo relativo.

* CLOSE LISTA, PROCESO-ALTAS,

• * Proceso de altas al archivo relativo.

*

*

HOVE 'S' TO FINAL-DE-DATOS, PF.RFORH LEE-DATOS,

LEE-!IATOS.

* Lectura de datos Para dar de alta.

* DISPLAY ' ' IIISPLAY 'CAPTURA DE INFORHACION (S/Nl tSl?', ACC.Ef'T FlllfiL-OE-DATOS, IF Flll-DE-DATOS

NEXr SENTEtiCE EL~E

f'ERfOF:H PROCESA-ALTAS, f'ROCF.SA··AL TAS,

* .~ Se do de alta la inforaacion.

*

*

f'CRFORH LEE-CLAVE, HOVE ' ' TO HAY-ERROR, . F:CAI• LISTA RECORD

IN'IALID KEY HOVE 'S' TO HAY-ERROR, IF ERROR-OK

PEP.FORH LEE-DATOS-LISTA ~RITE REGISTRO-LISTA INVALID KEY

DISPLAY 'WRITE : REGISTRO EXISTENTE,' ELSE

!IISPLAY ' ' !IISPLAY 'REGISTRO EXISTENTE,' PERFORH ESCRI~E-DATOS-LISTA.

LEE-IIATOS-LISTA,

* Informacion reauerida Para el archivo.

* DiSPLAY • •, . 111 SPLAY 'NOtiBRE ? '

ACCEPT NOHI<RE, LEE-CL~VL

f'a!le AC-3

Page 180: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\_ ..

' '

***COBOL.*** Pase AC-4 CECAFI

* * Se define la clave del archivo relativo• esta clav• * valo do 000 a 999.

*

*

DISPLAY ' ' DISPLAY 'NUMERO DE REGISTRO 9(03)', ACCF.PT R-CLAVE,

* Proceso ~e baJas.

* PROCESO-BAJAS. HOVE 'S' TO FINAL-DE-DATOS, PERFORH BORRA-DATOS UNTIL FIN-DE-DATOS,

BORRA-DATOS.

* * Intoraacion neceuria Para el Proceso de baJu,

*

*

DISPLAY ' ' DISPLAY 'BORRADO DE INFORHACION (S/N) tSl? ' ACCEPT FltiAL-OE-DATOS. IF FIN-DE-DATOS

NEXT SENTENCE EL:~

PERFORH BAJAS-DATOS-LISTA, BAJAS-DATOS-LISTA.

* Se define la inforaacion Para dar de baJao con control i de inforaadon.

* PERFORK LEE-CLAVE, HOVE ' ' TO HAY-ERROR. f':E A[l LISTA RECORD

INVALID KEY HOVE 'S' TO HAY-ERROR. IF ERROF.-OK

DISPLAY ' ' I•ISPLAY 'NO EXISTE EL REGISTRO'

ELSE F'ERFORH ESCRIBE-DATOS-LISTA PF.RFORH SE-BORRA.

SE ·<BORRA, ;¡: t Proceso de verificacion Para el borrado de inforaacion.

*

*

DISPLAY ' '• DISPLAY 'SE DESEA BORRAR INFORHACIOH (S/N) [Nl?', ACCEPT OPCION. IF OF'CION-SI

DELETE LISTA RECORD INVALID KEY DISPLAY 'NO SE PUEDE BORRAR.',

ESCRIBE-DATOS-LISTA.

* DesPlesado de inforeacion oue se encuentra en el archivo.

* DISPLAY ' ' DISPLAY 'INFORHACION DEL REGISTRO LISTA,' DISPLAY ' .,

Page 181: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

' '

*** COBOL *** CECAFI

*

DISPLAY 'CLAVE : ' R-CLAVE, DI~PLAY 'NOK8RE : ' NOMBRE.

i Proceso de consulta ~1. archivo relativo.

* PROCESO-CONSULTil, HOVE 'S' TO FINiiL-DE-DATOS, PERFORK CONSULTA-DATOS UNTIL FIN-DE-DATOS.

CONSULTii-DiiTOS,

* * Consulta de intoraecion ~1 1rchivo r•lativo.

* DISPLAY ' ' DISPLAY 'CONSULTA DE INFORKACION (8/Nl CSJ?· '• ACCEPT FINAL-DE-DATOS, IF FIN-DE-DATOS

NEXT SENTENCE ELSE ,

PERFORK CONSULTA-DATOS-LISTA, CONSULTii-DATOS-LtSTA,

* * Lectura de clave relativa Y verificecion ~ inforaacion.

* PERFORK LEE-CLAVE, MOVE ' ' TO HAY-ERROR. r:EAD LISTA RECORD

INVALID KEY KOVE 'S' TO HAY-ERROR, IF ERROR-OK

I•ISF'LAY ' ' DISPLnY 'NO EXISTE EL REGISTRO'

EL5E f'ERFORI'I ESCRIBE-DATOS-LISTA,

* Proceso de Jllodificacion.

* PROCESO-MODIFICACIONES. NOVE 'S' TO FINAL-DE-DATOS, , PERFORH KOI•IFICii-DATOS UNTIL FIN-DE-DATOS.

HODIFICA-[IATOS,

* . * Hodificacion al archivo relativo.

*

* * *

DISPLnY ' ' DISPLAY 'HODIFICACION DE INFORKACION (S/Nl CSl?', ACCEPT FINAL-DE-DATOS, IF FIN-DE-DATOS

NEXT SENTEIICE ELS[

f'ERFORII MODIFICA-DATOS-LISTA, IIOII!F ICA -TJA TOS-LISTA,

[lefinicion de chv11 e inforaacion a aoditicar.

PERFORII LEE-CLiiVE, IIOIJE ' ' TO HAY-ERROR, F:EI1D LISTA RECORD

Pase AC-5

•. .. .''·

Page 182: DIRECTORIO DE PROEFESORES DEL CURSO: lNTRODUCCION AL

\ ....

) \11

*** COBOL *** CECAFI

*

INVALID KEY HOVE 'S' .. TO HAY-ERROR, lf ERROR-OK

DISPLAY.' ' DISPLAY 'HO EXISTE EL REGISTRO'

ELSE PERFORM ESCRIBE-DATOS-LISTA PF.RFORK SE-CAMBIA,

SE-CAHBIA,

* Verifieecian de aodifieecion di infaraacion.

* DISPLAY' '• DISPLAY 'SE CAHBIA LA INFORHACION (8/Nl [Nl?', ACCEPT OPCION, IF OPCION-SI

PERFORH LEE-DATOS-LISTA· REWRITE REGISTRO-LISTA

INVALID KEY DISPLAY 'NO SE PUEDE MODIFICAR',