• No se han encontrado resultados

Manual de programacion Cobol

N/A
N/A
Protected

Academic year: 2021

Share "Manual de programacion Cobol"

Copied!
88
0
0

Texto completo

(1)

Introducción

Introducción

La orientación del curso / manual la

La orientación del curso / manual la enfocaré a mi entorno de trabajo, es decir RM bajo UNIX, peroenfocaré a mi entorno de trabajo, es decir RM bajo UNIX, pero como os he dicho antes, no hay muchas

como os he dicho antes, no hay muchas diferenciasdiferencias !l pensar en

!l pensar en "obol como len#uaje de pro#ramación debemos de tener presente $ue nos "obol como len#uaje de pro#ramación debemos de tener presente $ue nos referimos areferimos a un len#uaje dedicado a #estión de datos con una

un len#uaje dedicado a #estión de datos con una ma#n%fica transportma#n%fica transportabilidad entre los distintosabilidad entre los distintos sistemas, yo he ejecutado el mismo pro#rama en M&'()& y UNIX sin modificar ni una

sistemas, yo he ejecutado el mismo pro#rama en M&'()& y UNIX sin modificar ni una linea de códi#olinea de códi#o y copiando solo el

y copiando solo el objetoobjeto &i se le

&i se le llaman len#uajes de pro#ramación, es por$ue realmente se llaman len#uajes de pro#ramación, es por$ue realmente se consideraconsideran como cual$uier idioma,n como cual$uier idioma, es decir tiene su #ram*tica, sus +erbos, sus frases, sus p*rrafos y el cobol adem*s tiene una #ran es decir tiene su #ram*tica, sus +erbos, sus frases, sus p*rrafos y el cobol adem*s tiene una #ran similitud con el in#lés, ya $ue

similitud con el in#lés, ya $ue todo su entorno est* sacado de éste idioma "obol adem*s es untodo su entorno est* sacado de éste idioma "obol adem*s es un len#uaje estructurado y sus partes se

len#uaje estructurado y sus partes se diferencias claramente en (i+isionesdiferencias claramente en (i+isiones stas son -, son obli#atorias y cada una

stas son -, son obli#atorias y cada una de ellas tiene una misión de ellas tiene una misión diferente dentro de cada pro#ramdiferente dentro de cada pro#ramaa como +eremos a continuación

como +eremos a continuación

l pro#rama cobol se escribe secuencialmen

l pro#rama cobol se escribe secuencialmente en l%neas de te en l%neas de . caracteres o menos con la si#uiente. caracteres o menos con la si#uiente di+isión0

di+isión0

La parte 123 comprende las columnas de la

La parte 123 comprende las columnas de la 2 a la 4 2 a la 4 ambas inclusi+e y se utili5a para numerar lasambas inclusi+e y se utili5a para numerar las l%neas, aun$ue hoy en d%a pr*cticamente no se

l%neas, aun$ue hoy en d%a pr*cticamente no se utili5anutili5an

La parte 163 comprende la columna 7 y en ella podemos encontrar, un #uión 1'3 $ue nos indica $ue La parte 163 comprende la columna 7 y en ella podemos encontrar, un #uión 1'3 $ue nos indica $ue esta l%nea es continuación de la

esta l%nea es continuación de la anterior pero $ue por su tama8o ocupa mas de una anterior pero $ue por su tama8o ocupa mas de una l%nea, un asteristol%nea, un asteristo 193 $ue nos indica $ue el

193 $ue nos indica $ue el te:to $ue +iene a continuación es un te:to $ue +iene a continuación es un comentario y por lo tanto $ue elcomentario y por lo tanto $ue el compilador lo i#nore, o bien

compilador lo i#nore, o bien puede ser+ir dependiendo de los compiladores para indicaciones delpuede ser+ir dependiendo de los compiladores para indicaciones del debu#

debu#

La parte 1;3 se le llama

La parte 1;3 se le llama Area A Area A comprende las columnas . a 22 ambas inclusi+e y  comprende las columnas . a 22 ambas inclusi+e y a$u% es donde sea$u% es donde se escriben los nombre de las di+isiones, de las secciones, de los p*rrafos, los indicadores de <( 1<ile escriben los nombre de las di+isiones, de las secciones, de los p*rrafos, los indicadores de <( 1<ile (escription3 y los ni+eles de +ariables 2 y 77

(escription3 y los ni+eles de +ariables 2 y 77 La parte 1-3 llamada

La parte 1-3 llamada Area B Area B comprende desde la columna 26 a la  comprende desde la columna 26 a la 76 y en ellas se 76 y en ellas se incluir*n todas lasincluir*n todas las instrucciones del pro#rama, las lineas de

instrucciones del pro#rama, las lineas de las secciones y los las secciones y los ni+eles de +ariables mayores a 2ni+eles de +ariables mayores a 2 La parte 1=3 de la columna 7; a la . no se utili5a y por lo tanto es i#norada por el compilador La parte 1=3 de la columna 7; a la . no se utili5a y por lo tanto es i#norada por el compilador

l punto es un si#no de +ital importancia en cobol ya $ue nos indica el final de una linea, en el han de l punto es un si#no de +ital importancia en cobol ya $ue nos indica el final de una linea, en el han de terminar todas las secciones, di+isiones y p*rrafos

terminar todas las secciones, di+isiones y p*rrafos &i al  &i al final de una linea final de una linea el compilador no encuentrael compilador no encuentra el punto, interpretar* $ue la instrucción contin>a hasta $ue apare5ca el

el punto, interpretar* $ue la instrucción contin>a hasta $ue apare5ca el punto de fin de lineapunto de fin de linea !l i#ual $ue en otros len#uajes, el

!l i#ual $ue en otros len#uajes, el cobol dispone de palabracobol dispone de palabras reser+adas $ue no debemos de utili5ars reser+adas $ue no debemos de utili5ar como nombres de +ariables o de p*rrafos, adem*s éstos no deben de e:ceder de ; caracteres como nombres de +ariables o de p*rrafos, adem*s éstos no deben de e:ceder de ; caracteres 1depende del

1depende del compiladorcompilador33

Las +ariables y constantes $ue se pueden utili5ar son numéricas, alfabéticas o alfanuméricas Las Las +ariables y constantes $ue se pueden utili5ar son numéricas, alfabéticas o alfanuméricas Las numéricas al contrario de la mayor%a de los len#uajes actuales o las

numéricas al contrario de la mayor%a de los len#uajes actuales o las bases de datos no miden subases de datos no miden su tama8o por bytes sino por d%#itos, es decir, $ue una +ariable de 4 d%#itos podr* contener n>meros tama8o por bytes sino por d%#itos, es decir, $ue una +ariable de 4 d%#itos podr* contener n>meros desde  hasta ?????? si es de +alor absoluto o incluyendo los ne#ati+os si lle+a si#no @ara las desde  hasta ?????? si es de +alor absoluto o incluyendo los ne#ati+os si lle+a si#no @ara las alfanuméricas en cambio no hay cambio al#una y su tama8o

(2)
(3)

caracteres $ue ocupa caracteres $ue ocupa

:isten adem*s en cobol unas +ariables $ue +ienen con un +alor propio y $ue se pueden utili5ar :isten adem*s en cobol unas +ariables $ue +ienen con un +alor propio y $ue se pueden utili5ar libremente, también llamadas

libremente, también llamadas "onstantes <i#urati+a"onstantes <i#urati+as, como s, como AR), &@!", L)B'CAR), &@!", L)B'C!LU&, DIED'!LU&, DIED' C!LU&, etc

C!LU&, etc

Fuisiera respetar para todo el manual las

Fuisiera respetar para todo el manual las mismas pautas, color !marillo para las mismas pautas, color !marillo para las palabras reser+palabras reser+adasadas cobol, subraya

cobol, subrayado para do para las obli#atorias, enlas obli#atorias, en cursivacursiva los comentarios y en normal el restolos comentarios y en normal el resto

Nota final: Nota final:

s ob+io $ue cada manual estar* orientado a la

s ob+io $ue cada manual estar* orientado a la manera de trabajar de $uien lo escribe, con ello $uieromanera de trabajar de $uien lo escribe, con ello $uiero decir $ue habr* cosas $ue no e:plicaré mucho o incluso otras $ue omitiré por$ue yo no las

decir $ue habr* cosas $ue no e:plicaré mucho o incluso otras $ue omitiré por$ue yo no las hayahaya utili5ado nunca

utili5ado nunca

Una e:plicación perfectamente detallad

Una e:plicación perfectamente detallada deber* +enir en los manuales de a deber* +enir en los manuales de cada uno de loscada uno de los compilador

compiladores $ue del es $ue del len#uaje "obol e:isten hoy en len#uaje "obol e:isten hoy en diadia

spero $ue podais comprender ésto, eso si, os puedo ase#urar $ue todos mis pro#ramas utili5an solo spero $ue podais comprender ésto, eso si, os puedo ase#urar $ue todos mis pro#ramas utili5an solo lo $ue a$ui +oy a e:poner y nin#uno nunca

(4)

Identification Division

Identification Division

1;26 palabras totales en este te:to3 1;26 palabras totales en este te:to3 1?;7; Lecturas3

1?;7; Lecturas3

sta es la primera linea de

sta es la primera linea de todo pro#ratodo pro#rama "obol e identifica a la ma "obol e identifica a la primera di+isión donde se especifiprimera di+isión donde se especificaca el nombre del pro#rama, el del autor y dem*s datos, su

el nombre del pro#rama, el del autor y dem*s datos, su sinta:is ser%a la si#uiente0sinta:is ser%a la si#uiente0 I(NGI<I"!GI)N (ICI&I)N

I(NGI<I"!GI)N (ICI&I)N @R)ER!M'I(

@R)ER!M'I(Nombre del programa.Nombre del programa. !UGD)R

!UGD)R Nombre del autor.Nombre del autor. IN&G!LL!GI)N

IN&G!LL!GI)NLugar donde está instalado.Lugar donde está instalado. (!G'BRIGGN

(!G'BRIGGNFecha de creación.Fecha de creación. (!G'")M@IL(

(!G'")M@IL( Fecha de compilación.Fecha de compilación. RM!RH&

RM!RH&Comentarios.Comentarios. Cemo

Cemos $ue el s $ue el >nico p*rrafo obli#atorio adem*s del nombre de di+isión es >nico p*rrafo obli#atorio adem*s del nombre de di+isión es el $ue hace el $ue hace referencia alreferencia al nombre del pro#rama, los dem*s nombre de autor, lu#ar de instalación, fechas de creación y nombre del pro#rama, los dem*s nombre de autor, lu#ar de instalación, fechas de creación y compilación y comentarios son opcionales

compilación y comentarios son opcionales, eso si, si , eso si, si se incluyen se deben de poner cumpliendo lasse incluyen se deben de poner cumpliendo las normas

normas

@odemos incluir adem*s todos los comentarios o e:plicaciones $ue creamos oportunas incluyendo en @odemos incluir adem*s todos los comentarios o e:plicaciones $ue creamos oportunas incluyendo en la columna 7 un

la columna 7 un asterisco 193 $ue nos indica $ue el asterisco 193 $ue nos indica $ue el compilador har* caso omiso de lo $ue +en#a acompilador har* caso omiso de lo $ue +en#a a continuación, por ejemplo

continuación, por ejemplo

* /////// Este programa es para hacer algo ///////  * /////// Este programa es para hacer algo ///////  * // atención a la

* // atención a la sección de la echa //// sección de la echa //// 

Ejemplo: Ejemplo: I(NGI<I"!GI)N (ICI&I)N I(NGI<I"!GI)N (ICI&I)N @R)ER!M'I( M!N"LI @R)ER!M'I( M!N"LI !UGD)R !N(R& M)NG& !UGD)R !N(R& M)NG& IN&G!LL!GI)N BBB IN&G!LL!GI)N BBB RM!RH&

RM!RH&. !rograma para mantenimiento de ichero d. !rograma para mantenimiento de ichero d e clientes.e clientes.

Nota final: Nota final:

@oco mas podemos decir de ésta di+ision, ob+iamente las dem*s no son tan pe$ue8as, sin embar#o @oco mas podemos decir de ésta di+ision, ob+iamente las dem*s no son tan pe$ue8as, sin embar#o posee dos de las

(5)

Environment Division

Environment Division

p*#ina1s3 0 2/6 p*#ina1s3 0 2/6

12?= palabras totales en este te:to3 12?= palabras totales en este te:to3 1.-=6 Lecturas3

1.-=6 Lecturas3

s la se#unda di+ision por orden de aparición, y en

s la se#unda di+ision por orden de aparición, y en ella se especifican, el ordenador donde se escribióella se especifican, el ordenador donde se escribió y se ejecutar* el pro#rama, asi como la relacion entre los

y se ejecutar* el pro#rama, asi como la relacion entre los ficheros a utili5ar con sus correspondenciasficheros a utili5ar con sus correspondencias e:ternas, es decir con los

e:ternas, es decir con los dispositi+os a los $ue har* dispositi+os a los $ue har* referencia el pro#rama objeto cuando +aya areferencia el pro#rama objeto cuando +aya a establecer comunicación con dicho

establecer comunicación con dicho ficherofichero

(iremos antes de continuar $ue en los primeros cobol hab%a muchas partes $ue eran obli#atorias en (iremos antes de continuar $ue en los primeros cobol hab%a muchas partes $ue eran obli#atorias en cada pro#rama, pero hoy en dia, por ejemplo, ésta di+isión ya no es obli#atoria, asi como nin#una de cada pro#rama, pero hoy en dia, por ejemplo, ésta di+isión ya no es obli#atoria, asi como nin#una de sus partes &u sinta:is ser%a la

sus partes &u sinta:is ser%a la si#uiente0si#uiente0 NCIR)NMNG (ICI&I)N

NCIR)NMNG (ICI&I)N ")N<IEUR!GI)N &"GI)N ")N<IEUR!GI)N &"GI)N &)UR"'")M@UGR

&)UR"'")M@UGR"rdenador donde se escribió el "rdenador donde se escribió el uente.uente. )J"G'")M@UGR

)J"G'")M@UGR "rdenador donde se e#ecuta el o "rdenador donde se e#ecuta el o b#eto.b#eto. &@"I!L'N!M&

&@"I!L'N!M& Cambiar valores para constantes del lengua#e$ pueden variar Cambiar valores para constantes del lengua#e$ pueden variar en cada compilador.en cada compilador. "omo se aprecia en su sinta:is, ésta

"omo se aprecia en su sinta:is, ésta se#unda di+ision se di+ide a su +e5 en dos se#unda di+ision se di+ide a su +e5 en dos secciones, $ue sesecciones, $ue se describen a continuacion0

describen a continuacion0

")N<IEUR!GI)N &"GI)N0 (onde describimos los tipos de ordenadores en $ue se escribio y se ")N<IEUR!GI)N &"GI)N0 (onde describimos los tipos de ordenadores en $ue se escribio y se ejecutar* el pro#rama, o bien

ejecutar* el pro#rama, o bien el nombre del compilador y asi#nación el nombre del compilador y asi#nación de +alores a ciertas constantesde +alores a ciertas constantes utili5adas por el compilador, estos +alores se introducen en sus respecti+as lineas como se +e arriba utili5adas por el compilador, estos +alores se introducen en sus respecti+as lineas como se +e arriba @ara la linea de &@"I!L'N!

@ara la linea de &@"I!L'N!M& el uso mas M& el uso mas habitual es el de cambiar el habitual es el de cambiar el punto decimal usado por lospunto decimal usado por los in#leses por la coma y asi poder especificar los puntos para los miles, su

in#leses por la coma y asi poder especificar los puntos para los miles, su formato ser%a el si#uiente0formato ser%a el si#uiente0 &@"I!L'N!M&

&@"I!L'N!M&

("IM!L'@)ING I& ")MM! ("IM!L'@)ING I& ")MM!

Gambién podriamos cambiar el +alor del s%mbolo de la moneda con0 Gambién podriamos cambiar el +alor del s%mbolo de la moneda con0 "URRN"K &IEN I&

"URRN"K &IEN I& literal literal  , suele ser  , suele ser un solo caracter y no puede coincidir con nin#uno de los $ueun solo caracter y no puede coincidir con nin#uno de los $ue usamos para definir las +ariables, es decir ni !,ni A,ni ?,ni

usamos para definir las +ariables, es decir ni !,ni A,ni ?,ni ',ni ,ni X, ',ni ,ni X, etcetc ) hacer $ue todas las letras introducidas sean may>sculas o min>sculas o $ue

) hacer $ue todas las letras introducidas sean may>sculas o min>sculas o $ue no haya diferenciasno haya diferencias entre ambas con la

entre ambas con la clausula !L@D!Gclausula !L@D!G IN@UG'

IN@UG')UG@UG &"I)N0 s la )UG@UG &"I)N0 s la si#uiente sección dentro de la si#uiente sección dentro de la n+ironment, donde se especificar*nn+ironment, donde se especificar*n todos los ficheros $ue +amos a utili5ar, su tipo, su modo de acceso asi como el medio en $ue estar*n, todos los ficheros $ue +amos a utili5ar, su tipo, su modo de acceso asi como el medio en $ue estar*n, esta sección solo ser* obli#atoria cuando

esta sección solo ser* obli#atoria cuando +aya+ayamos a utili5ar mos a utili5ar ficheros sta tiene dos ficheros sta tiene dos p*rrafop*rrafos <IL's <IL' ")NGR)L e I')'")NGR)L ")NGR)L e I')'")NGR)L 26;-=47.?26 26;-=47.?26 !  !  IN@UG')UG@UG &"GI)N IN@UG')UG@UG &"GI)N <IL'")NGR)L <IL'")NGR)L &L"G

&L"G )@GI)N!L Nombre'de'archi+)@GI)N!L Nombre'de'archi+oo !&&IEN G) Gipo'de'dispositi+o

!&&IEN G) Gipo'de'dispositi+o

)RE!NIA!GI)N I& Gipo de or#ani5acion )RE!NIA!GI)N I& Gipo de or#ani5acion !""&& M)( I& Mode de acceso al fichero !""&& M)( I& Mode de acceso al fichero R")R( HK I& "la+e del

R")R( HK I& "la+e del re#istrore#istro

!LGRN!G R")R( HK I& "la+es alternati+as re#istro !LGRN!G R")R( HK I& "la+es alternati+as re#istro

(6)

BIGD (U@LI"!G&

<IL &G!GU& I& Cariable de estado del fichero

Camos a e:plicar cada una de las cl*usulas $ue encontramos dentro de la Input')utput &ection "l*usula &L"G es a$ui donde especificamos el nombre ló#ico $ue +a a tener el fichero dentro del pro#rama, suele ser una palabra $ue identifi$ue lo mas claro posible el contenido del fichero, por ejemplo !RGI"UL)&, @R)C()R&, "LING&

"l*usula )@GI)N!L si indicamos esta opción al hacer un )@N I'), si el archi+o no e:iste, se crea "on lo cual nos e+itamos tener $ue abrirlo como )UG@UG y cerrarlo, antes de poder utili5arlo por primera +e5

"l*usula !&&IEN a$ui especificamos el tipo de dispositi+o, si es una impresora @RINGR, si es un fichero sobre el $ue +amos a #rabar R!N()M o (I&", se pueden utili5ar otros como IN@UG, IN@UG' )UG@UG, "!&&GG, M!ENGI"'G!@, pero sin duda los mas utili5ados son los dos primeros para identificar si el fichero utili5ar* una salida impresa o se utili5ar* sobre disco @ara identificar ficheros utili5ados para clasificar utili5aremos &)RG

"l*usula )RE!NIA!GI)N a$ui indicamos la or#ani5ación de los re#istros de nuestro fichero, podr* ser &FUNGI!L, RL!GIC o IN(X(, si nuestro archi+o fuera secuencial se podr%an emitir ésta clausula asi como las restantes

(e ésta or#ani5ación se deri+a el formato del fichero, &FUNGI!L si los re#istros se #raban

secuencialmente conforme se dan entrada sin importar si est*n o no repetidos, un ejemplo claro son los archi+os de impresora, todos los listados son secuenciales

RL!GIC, si cada re#istro es identificado por un +alor entero con su posición relati+a 1practicamente no se utili5a3

IN(X( es la mas utili5ada e identifica a ficheros $ue sus re#istros son accesibles mediante una cla+e unica e irrepetible o por +arias $ue pueden estar duplicadas, cual$uier fichero de mantenimiento, por ejemplo de !RGI"UL)&, podr%a ser IN(X(, y cada códi#o ser* >nico para cada art%culo y con el nos iremos a su posición y podremos +er todos los demas datos $ue ha#an referencia al re#istro :iste también para los archi+os de te:to, tipo !UG)X"!G la posibilidad de asi#narlos

directamente especificando LIN &FUNGI!L en ésta clausula

"l*usula !""&& M)( indica el modo de acceso al fichero, puede ser &FUNGI!L, R!N()M o (KN!MI", si no se especifica nin#uno o si el fichero es &FUNGI!L entiende $ue el modo ser* &FUNGI!L

R!N()M indica $ue accederemos a el aleatoriamente por su cla+e y (KN!MI" 1la mas utili5ada3 con la $ue podremos acceder al fichero en el modo $ue $ueramos dentro del pro#rama, unas +eces

secuencialmente, si nos interesa, otras +eces por su cla+e

"l*usula R")R( HK se utili5a solo si el fichero es inde:ado y en el decimos cual es el nombre de la cla+e por la cual accederemos a los re#istros sta deber* ser alfan>merica y tendr* $ue estar

especificada en la <( del fichero &i el archi+o fuera RL!GIC, esta clausula se sustituir%a por RL!GIC HK e indicar* el n>mero de re#istro del fichero, deber* estar declarado en la B)RHINE' &G)R!E &"GI)N como una +ariable numérica sin si#no

"l*usula !LGRN!G R")R( HK solo para ficheros inde:ados e identifican una o mas cla+es

alternadas para nuestros re#istros, por ejemplo en un fichero de clientes cuya cla+e principal ser%a el códi#o, podr%amos asi#nar como cla+e alternati+a el NI<, y podr%amos acceder a el por las dos cla+es, bien por códi#o o bien por NI<, ser* también alfanumérico y deber* también estar declarado en la <( &i aparece BIGD (U@LI"!G&, indica $ue ésta cla+e alternati+a pudiera estar duplicada, por ejemplo si hubieramos esco#ido como cla+e alternada adem*s del NI<, el Nombre del cliente, podr%a darse el caso de $ue dos clientes tu+ieran el mismo nombre

"l*usula <IL &G!GU& a$ui damos un nombre de una +ariable $ue especificaremos en la B)RHINE como un campo alfanumérico de dos caracteres donde el pro#rama depositar* el códi#o de error $ue ocurra en el fichero, dependiendo del +alor nosotros podremos operar o hacer al#una acción en concreto

(7)

l p*rrafo I') ")NGR)L se utili5a par indicarle al pro#rama cuantos archi+os +an a utili5ar el mismo area de memoria para trabajar, os puedo decir poco mas de éste p*rrafo por$ue yo no lo he utili5ado nunca 1lo $ue no $uiere decir $ue no sea >til3

Ejemplo:

NCIR)NMNG (ICI&I)N ")N<IEUR!GI)N &"GI)N &)UR"'")M@UGR RM"))L )J"G'")M@UGR RM"))L

&@"I!L'N!M& ("IM!L'@)ING I& ")MM! IN@UG')UG@UG &"GI)N

<IL'")NGR)L

&L"G "LING& !&&IEN G) R!N()M O"0(!G)&"LING&(!GO )RE!NIA!GI)N IN(X(

!""&& (KN!MI" R")R( HK HK'"LING !LGRN!G R")R( HK' "LING2 <IL &G!GU& &G!"LI

&L"G IM@R&)R! !&&IEN G) @RING O@RINGRO

Demos declarado el archi+o "LING& como inde:ado con dos cla+es, una principal HK'"LING y otra alternati+a HK'"LING2 y hemos asi#nado una +ariable para #uardar los posibles códi#os de error para cuando operemos con éste fichero &G!"LI !l indicarle el acceso din*mico le decimos $ue una +e5 dentro del pro#rama podremos

acceder al fichero secuencialmente o bien directacmente al re#istro $ue $ueramos por cual$uiera de las cla+es

"omo el fichero IM@R&)R! es secuencial no es necesario nin#una aclaración, al darle el nombre @RINGR cojer* la impresora $ue ten#amos por defecto, si le damos cual$uier otro nombre $ue no identificara a nin#una impresora, el resultado ser%a #rabar todo lo $ue deber%a salir por la impresora en un archi+o con ese nombre

Nota final:

"reo $ue es una de las partes mas interesantes de la pro#ramación cobol y $ue cuando he utili5ado al#uno de éstos nue+os len#uajes orientados a objetos y $ue utili5an bases de datos, siempre he echado en falta @ara mi siempre es #rato diri#irme a la n+ironment de cual$uier pro#rama y saber con e:actitud todos los ficheros $ue se +an a utili5ar en ese pro#rama

!preciar $ue para cada especificación de fichero en la &elect solo se pone el punto al final de todas las clausulas del p*rrafo

!l asi#nar la impresora, si asi#namos el nombre @RINGR, éste hace referencia a la impresora por defecto pero tambien podr%amos utili5ar un nombre para especificar una impresora de red, por ejemplo, si en nuestra red e:iste una impresora $ue esta en @NGIUMD@L!&R, podemos identificar un nombre en el !utoe:ecbat para asi#nar ese +alor a una +ariable de entorno como0

IM@RPO@NGIUMD@L!&RO y lue#o en el pro#rama especificar como nombre de dispositi+o de la impresora IM@R, &L"G IM@R&)R! !&&IEN G) @RING IM@R

n realidad haciendo ésto >ltimo podemos asi#nar cual$uier archi+o $ue esté en cual$uier dirección de la red, ya $ue el nombre $ue damos es ló#ico y su asi#nación la podemos definir con una +ariable de entorno donde $ueramos

(8)

Data Division

p*#ina1s3 0

2/-1== palabras totales en este te:to3 17=4 Lecturas3

s la tercera di+ision por orden de aparición, y es donde se declaran absolutamente todos los nombres de campos, re#istros, +ariables, es decir donde nombramos cada dato $ue +ayamos a utili5ar en

nuestro pro#rama @ara almacenar todos estos nombres de datos, ésta (ICI&I)N se di+ide en +arias secciones, cada una de ellas orientada a un tipo de datos diferente

• FILE SECTION. !$ui describiremos todos los campos $ue componen los re#istros de todos los archi+os $ue +ayamos a utili5ar, $ue pre+iamente habremos declarado en la IN@UG')UG@UG &"GI)N dentro de la NCIR)NMNG (ICI&I)N

• O!"IN#$STO!%#E SECTION n ella declararemos todas las +ariables no referentes a archi+os, pero $ue durante la ejecución del pro#rama +ayamos a utili5ar

• LIN"%#E SECTION. sta es la sección donde se re#istrar*n las +ariables $ue nos ser+ir*n para enla5ar el pro#rama principal con el $ue llamemos mediante la orden "!LL

• CO&&'NIC%TION SECTION. 1No la he utili5ado nunca3

• SC!EEN SECTION. n ésta sección podremos describir los atributos y campos a utili5ar en las pantallas

!l i#ual $ue en la anterior (ICI&I)N nin#una de sus partes es obli#atoria, pero si +amos a utili5ar al#una +ariable, aun$ue solo sea una, tendremos $ue incluirla en la B)RHINE'&G)R!E &"GI)N y esto nos obli#ar* tambien a definir la (!G! (ICI&I)N @asemos a continuación a e:plicar mas a fondo cada una de ellas

FILE SECTION.

n esta sección describiremos los campos $ue +an a componer el re#istro de cada uno de los archi+os con los $ue +amos a trabajar, ésta ser%a su sinta:is0

FDNombre del ichero.

(LOC" CONT%INS Numero de registros por blo%ue !ECO!DS

!ECO!D CONT%INS N&mero de caracteres por registro C)%!%CTE!S L%(EL !ECO!D Eti%ueta de registro

D%T% !ECO!D Nombre del registro.

Camos a e:plicar un poco mas detalladamente cada cl*usula de la <IL &"GI)N Fuiero dejar claro $ue ésta es mas amplia, pero $ue como en el resto del manual +oy a e:plicar lo $ue creo $ue es mas importante y en definiti+a lo $ue mas se utili5a

"l*usulaFDnombre del fichero $ue pre+iamente habiamos descrito en la cl*usula &L"G de la

IN@UG')UG@UG &"GI)N en la NCIR)NMNG (ICI&I)N

"l*usula(LOC" CONT%INS cuando $ueremos $ue por cada blo$ue en disco se #raben mas de un

re#istro, a$ui especificamos el n>mero de ellos $ue +a a contener cada blo$ue, 1=26, 26-3, si no se especifica se supone $ue cada re#istro +a a ocupar un blo$ue de memoria, o bien ser* el propio compilador el $ue ha#a el c*lculo mas apropiado

"l*usula!ECO!D CONT%INS el n>mero de caracteres $ue tiene el re#istro sumando todos sus

campos, puede ser fija o +ariable &i es fija utili5amos un +alor y si es +ariable un ran#o desde hasta, si no se espicifica ser* el propio compilador $uien la determine

"l*usulaL%(EL !ECO!D puede tener dos +alores &G!N(!R( u )MIGG( , el primer caso indica $ue

cada +e5 $ue se accede a un re#istro el compilador har* las comprobaciones estandares descritas por el propio compilador y en el se#undo éstas ser*n omitidas @ara el caso de los ficheros de datos en

(9)

disco se suele poner &G!N(!R( y cuando el fichero es de impresora se indica )MIGG(

"l*usulaD%T% !ECO!D debido a $ue un mismo fichero puede tener +arias descripciones de re#istro,

a$ui indicamos los nombre de éstas $ue deber*n estar descritas a ni+el 2 Normalmente no se utili5a y casi siempre se suele utili5ar una sola descripción por fichero, por lo $ue no suele aparecer en casi nin#>n pro#rama

! continuación +endr%a la descripción de todos los campos $ue comprenden el re#istro, pero antes de +er ésto es aconsejable tener claro como se define una +ariable con todas sus opciones ya $ue a fin de cuentas, los campos de un re#istro no son mas $ue eso, +ariables, con la >nica condición de $ue al formar parte de un re#istro la información $ue contiene nos identifica los datos $ue se #uardar*n en el medio en $ue esté el fichero 1disco, impresora3

!ntes de se#uir adelante $uisiera decir $ue siendo el cobol un len#uaje orientado casi e:clusi+amente al manejo de ficheros de datos, es sin duda, ésta parte $ue hemos +isto la mas importante Un buen an*lisis de los ficheros a utili5ar antes de empe5ar es fundamental y nos e+itar* muchos

calentamientos de cabe5a, tener claro cuales +an a ser sus cla+es tanto la principal como las

alternati+as, definir bien todos sus campos y dejar espacio libre para un posible aumento de datos sto lo di#o por$ue si creamos un fichero con . caracteres por re#istro y al cabo de un tiempo debemos de introducir un nue+o campo $ue no habiamos pre+eido, tendremos $ue modificar toda su estructura rehaciendo el fichero y recompilando todos los pro#ramas a los $ue afecte, si en cambio dejamos un poco de espacio nos e+itaremos la reestructuración del archi+o, ésto se consi#ue

utili5ando el nombre de +ariable <ILLR como +eremos un poco mas abajo

O!"IN#$STO!%#E SECTION. LIN"%#E SECTION.

CO&&'NIC%TION SECTION SC!EEN SECTION

@ara la B)RHINE y la LINH!E las normas son las mismas, asi $ue las +eremos conjuntamente Las otras dos secciones, ")MMUNI"!GI)N y &"RN no las +eremos en el manual

N>mero de Ni+el  Nombre de campo  @I", C!LU, R(<IN&, )""UR&, JU&G, &IEN, &KN" "ada campo declarado debe de lle+ar un n>mero de ni+el $ue le informe al compilador del tipo de campo $ue es0

l ni+el 2, identifica la primera entrada de un re#istro o la primera entrada de un campo $ue se +a a subdi+idir

l ni+el 77, identifica a una +ariable $ue no se +a a subdi+idir y $ue no forma parte de nin#>n re#istro l ni+el .., identifica los posibles +alores condicionales de una +ariable pre+iamente definida

Los ni+eles 6 al -? indicar*n las distintas subdi+isiones de un campo cuya primera entrada ha sido definida a ni+el 2 Los ni+eles 2 y 77 deber*n de ir siempre en el !rea ! 1"ol .3 el resto es

independiente

! continuación pondremos el nombre del campo, $ue no podr* ser nin#una palabra cobol ni lle+ar nin#>n car*cter e:tra8o, principalmente se utili5ar*n letras y n>meros o #uiones s posible $ue al#>n campo $ue definamos nunca +aya a ser usado por el pro#rama pero si en cambio es necesario $ue e:ista para $ue nos reser+e el espacio, le llamaremos <ILLR

K finalmente podr*n +enir una serie de cl*usulas como0

*ICT'!E + *IC esta palabra es la $ue utili5amos para identificar el tipo de datos $ue +a a contener la

(10)

( "!M@)&

? ' @ara campos numéricos ! ' @ara campos alfabéticos X ' @ara campos alfanuméricos & ' Indica +ariable con si#no C ' Indica punto decimal ( (I"IQN

 ' Representa la aparición del si#no  delante del campo numérico  ' Indica separación de miles

, ' Indica punto decimal 1estas dos pueden +ariar se#>n hayamos especificado en &@"I!L'N!M& ("IM!L'@)ING I& ")MM!3

A ' Representa un espacio para el  a la i5$uierda en campos numéricos 9 ' I#ual pero se cambia el  por 9

 ' Indica un espacio en blanco

' ó  ' Indican la aparición del si#no correspondiente

@uede haber mas pero los mas utili5ados son los $ue se han comentado

@ara indicar la lon#itud del campo se puede repetir el s%mbolo tantas +eces como lon#itud ten#a o e:presarla entre paréntesis, es decir para definir una +ariable alfanumérica de 2 caracteres se pondr%a0

@I" X123 o @I" XXXXXXXXXX Los +alores & y C solo pueden aparecer una +e5 por cada +ariable ! continuacion +amos a +er un ejemplo de todo lo $ue hemos e:plicado para $ue se +aya $uedando claro B)RHINE'&G)R!E &"GI)N 2 ()MI"ILI) 6 GI@) @I" XX 6 N)MR @I" X163 6 NUMR) @I" ?1-3

<ijaros $ue hemos definido - +ariables, la primera no tiene @I", por $ue indica $ue est* subdi+idida en las ; restantes La se#unda OGI@)O nos dice $ue es una +ariable alfan>merica y $ue puede contener 6 caracteres como m*:imo, la utili5ariamos para #uardar el tipo de calle, a+enida, paseo, pla5a, etc @ara la tercera ON)MRO +a a ser también alfanumérica pero con una lon#itud m*:ima de 6

caracteres y nos ser+ir* para #uardar el nombre de la calle, pla5a, a+enida, etc y la >ltima ONUMR)O indica una +ariable numérica de - d%#itos, $ue $uiere decir $ue puede contener +alores entre  y ????

)bser+ad $ue en "obol no se #uardan las +arables numéricas por bytes como ocurre con todos los len#uajes actuales sino por n>mero de d%#itos, con ello $ui5*s desapro+echamos mas la memoria pero en cambio tenemos un control mejor del dato $ue puede contener nuestra +ariable

&i GI@) fuera O!CO, N)MR O( L)& (&!M@!R!()& O y NUMR) O2=O, si nos refiriéramos a la +ariable ()MI"ILI) ésta tendr%a el si#uiente +alor0O!C( L)& (&!M@!R!()& 2=O

Camos a +er al#unos ejemplos mas de +ariables posibles0 B)RHINE'&G)R!E &"GI)N

77 <"D! @I" ?1.3

77 <"D!'(IG @I" AA/AA/AAAA 77 IM@)RG @I" &?1.3C??

77 IM@)RG'(IG @I" AAAAAAAA,AA' 2 &G!() @I" ?

.. &)LGR) C!LU 2 .. "!&!() C!LU 6

(11)

.. (IC)R"I!() C!LU ;

&uponiendo $ue el +alor de <"D! es 2222??. 12 No+ de 2??.3 y <"D!'(IG es el mismo, éste >ltimo se representar%a0 2/22/2??.

&i IM@)RG es 26.2=C;7 en ne#ati+o e IM@)RG'(IG el mismo, éste se representar%a0 26.2=,;7'

,%L'E esta palabra a continuación del @I" indica el +alor inicial $ue contendr* la +ariable hasta $ue

éste sea modificado @or ejemplo podemos definir una +ariable0 B)RHINE'&G)R!E &"GI)N

2 R!K! @I" X123 C!LU O''''''''''O

2 MIN)MR @I" X1;3 C!LU O!N(R& M)NG&O

!si tendremos una +ariable llamada R!K! $ue contiene 2 #uiones y otra llamada MIN)MR $ue contiene eso, mi nombre, si os fijais con ésta cl*usula con+ertimos cual$uier +ariable en una constante n cual$uier momento del pro#rama podremos cambiar ese +alor @ara las +ariables

numéricas es con+eniente ponerlas siempre con C!LU  para $ue al empe5ar cada pro#rama estemos se#uros de $ue no nos arrastra nin#>n +alor Normalmente al ejecutar un pro#rama se ponen todas las +ariables a , pero si ese pro#rama ha sido llamado desde otro no pasar* eso, por eso no +iene mal iniciali5arlas todas a 

!EDEFINES esta cl*usula se utili5a para dar mas de un nombre y formato a un mismo campo ste

debe de ir a continuación del nombre de campo y antes del nombre del campo a $ue hace referencia, deben de estar en el mismo ni+el y uno a continuación del otro en el orden de declaraciones

B)RHINE'&G)R!E &"GI)N

2 (I!& @I" X1623 C!LU OLUNM!RMIJUCI&!()MO 2 G!(I! R(<IN& (I!&

6 (I! @I" XXX )""UR& 7 GIM&

De incluido la cl*usula )""UR& para $ue sea +ea un ejemplo pr*ctico, aun$ue toda+%a no lo he e:plicado, pero como +eis a partir de éste momento (I!& y G!(I! tendr*n siempre el mismo +alor pero con diferente nombre y formato de datos

OCC'!S esta cl*usula es la $ue se utili5a para declarar tablas Una tabla es un conjunto de elementos

con un mismo tipo y lon#itud $ue se denominan con el mismo nombre y se diferencian por un sub%ndice No se puede especificar en ni+eles 2, 77 .. @uede tener +arios formatos0

B)RHINE'&G)R!E &"GI)N 2 NUMR)'(I!& @I" ?? 2 G!L!

6 (I! @I" XXX )""UR& 7 GIM&

6 M& @I" ?? )""UR& 6. G) ;2 (@N(INE NUMR)'(I!& 6 )GR! @I" X1=3 )""UR& = IN(X( K IN')GR!

n la primera O(I!O indico $ue esa tabla +a a tener 7 elementos $ue llamaremos (I! 1nn3 y entre paréntesis el orden dentro de la tabla &i hubiéramos #uardado en ésta tabla las ; primeras letras de cada dia de la semana, para obtener el +alor del lunes pediriamos (I! 123, para el del Jue+es (I! 1-3 y para el del domin#o (I! 173

n la se#unda OM&O le indicamos $ue los elementos de la tabla pueden +ariar dependiendo del +alor de la +ariable ONUMR)'(I!&O $ue ha de estar definida antes de la tabla y siempre dentro de los m*r#enes de 6. y ;2

(12)

n la tercera le indicamos adem*s $ue la +ariable IN')GR! +a a ser la encar#ada de diri#irnos por los elementos de la tabla, ésta +ariable no puede estar definida antes

-'STla justificación de los +alores de los campos suele ser a la i5da para los alfanuméricos y a la

derecha para los numéricos, si en cambio $ueremos cambiar este orden tendremos $ue incluir ésta cl*usula

B)RHINE'&G)R!E &"GI)N 2 N)MR @I" X123

2 N)MR2 @I" X123 JU&G RIEDG

&i le diéramos el mismo +alor a las dos +ariables O!N(R&O, la primera nos dar%a O!N(R& O y la se#unda O !N(R&O, la diferencia, su justificación

'S%#E con ésta cl*usula determinamos el formato en $ue se #uarda el contenido de las +ariables

1numéricas, ya $ue las alfanuméricas siempre ocupar*n un byte por cada caracter3 "on todos los campos se puede operar 1ob+iamente3 pero solo los $ue se definan como (I&@L!K ser*n editables directamente Giene +arias posibilidades0

• (I&@L!K, es la forma por defecto e indica $ue cada d%#ito ocupar* un byte, es la $ue se toma por defecto y la $ue memoria ocupa

• IN!RK, ")M@'2, ")M@';, ")M@'4, son diferentes formas de compactación de los datos ")M@'4 1la mas usual3 #uarda dos d%#itos en cada byte, ")M@'; es i#ual pero admite si#no el cual ir%a en los cuatro >ltimos bites del >ltimo byte Las restantes formas se utili5an menos

B)RHINE'&G)R!E &"GI)N

2 IM@)RG @I" ?1.3"cupa ' b(tes uno por cada d)gito. 2 <"D! @I" ?1.3 ")M@'4 "cupa  b(tes$ uno cada + d)gitos.

2 @R"I) @I" &?1.3C?? ")M@'; "cupa , b(tes$ uno para los dos decimales$ cuatro para la parte entera ( uno para el signo.

"uando el tama8o es impar el si#no no ocupa ya $ue comparte byte con el >ltimo d%#ito, el punto decimal tampoco ocupa espacio, ya $ue solo indica su posición stas tres formas $ue he utili5ado son las mas comunes, yo por ejemplo como las capacidades de los ordenadores son tan #randes ahora, cuando defino las +ariables en la B)RHINE nunca utili5o nin#una compactación es decir no utili5o la cl*usula U&!E 1$ue por cierto y como habreis +isto se puede omitir3 y por defecto toma (I&@L!K 1un byte por caracter3

LIN"%#E SECTION. n ésta sección se declaran las +ariables de i#ual forma solo $ue las $ue a$ui

declaremos nos +an a ser+ir de enlace para pasar información a otro pro#rama $ue ser* llamado por el principal

Ejemplo:

(!G! (ICI&I)N <IL &"GI)N

<( "LING& L)"H ")NG!IN& - R")R(& R")R( ")NG!IN& 26. "D!R!"GR& L!L R")R( &G!N(!R(

2 RE'"LING 6 HK'"LING

(13)

r ; "LI")( r@I" ?1-3 ")M@'4 6 "LIN)M @I" X1;3 6 "LI(IR @I" X1;3 6 "LI@) @I" X163 6 "LI@R) @I" X163 6 "LINI< @I" X1?3 6 <ILLR @I" X1273 <( IM@R&)R! L!L R")R( )MIGG( 2 LIN! @I" X12;63 B)RHINE'&G)R!E &"GI)N 2 G!L!

6 <ILLR @I" X1263 C!LU OLUNM!RMIJUO  6 <ILLR @I" X1?3 C!LU OCI&!()MO  2 G!L!I(! R(<IN& G!L!

6 L(I! @I" XXX )""UR& 7 GIM& 2 <"D! @I" ?1.3

2 IM@)RG @I" &?1.3C?? 2 C!L)R&

6 UN) @I" ?? C!LU  6 ()& @I" ?143

6 GR& @I" ?1-3C?? 2 LIN@!

6 LIM@)R @I" AAAAAAAA,AA'

"omo +eis he dise8ado el fichero "LING& para $ue cada blo$ue de =26 Hb, ocupe - re#istros, dejando 27 caracteres 1<ILLR3, para una posible

ampliación del re#istro

n la descripción del archi+o IM@R&)R! se declara una +ariable a ni+el 2 $ue hace referencia al total del re#istro para lue#o ir mo+iendo a éste campo el +alor de lo $ue $ueramos imprimir

n la B)RHINE se han declarado al#unos campos con distintos formatos, fijaros en la tabla $ue #racias al R(<IN& hemos llenado con las tres primeras iniciales de cada dia, asi al referirnos a la +ariable L(I! 163 su contenido ser* OM!RO

Nota final:

La (!G! (ICI&I)N nos sir+e para tener todas nuestras +ariables bien definidas, ya sean

independientes o $ue formen parte de al#>n fichero para poder operar con ellas en la @R)"(UR (ICI&I)N Me acuerdo de cuando empe5amos a estudiar $ue para otros len#uajes no era necesaria la declaración de +ariables pre+iamente y en cambio ahora en la mayor%a de los len#uajes se e:i#e $ue se declaren, eso si#nifica $ue el "obol no iba mal encaminado

Genemos $ue tener siempre muy claro $ue con cual$uier campo podemos hacer lo $ue $ueramos, por ejemplo si en un re#istro de 26 caracteres nosotros en un pro#rama solo +amos a utili5ar los - primeros podemos definir todo lo restante como un campo <ILLR y listo o +ice+ersa si un campo de un re#istro lo tenemos definido como alfanumérico de ; en un pro#rama necesitamos los 2 primeros caracteres por un lado y los +einte restantes por otro, puese nada se subdi+ide para ese pro#rama y no pasa nada

spero $ue haya $uedado por lo menos medio clara la e:plicación de ésta tercera (ICI&I)N,

e+identemente con la pr*ctica es con lo $ue mas +amos a aprender siempre claro est* $ue ten#amos al menos unas nociones m%nimas

(14)

1espa8ol, in#lés, frances3 son muchas las opciones $ue nos ofrecen pero al final siempre utili5amos las $ue mas nos #ustan o las $ue consideramos mas >tiles

Una cosa $ue considero importante es dar a las +ariables un nombre un poco ló#ico $ue nos recuerde su contenido, por ejemplo si $ueremos #uardar la fecha, pues llamarla <"D!, si $ueremos #uardar el NI< del #erente, NI<ERN, etc 

(15)

166= palabras totales en este te:to3 14.- Lecturas3

ien, hemos lle#ado a la >ltima di+isión $ue e:iste un los pro#ramas "obol, en ella encontramos todos los procesos necesarios para $ue el pro#rama funcione, $ue ha#a para la $ue fue concebido

Godo ésto se reali5a con instrucciones 1ordenes, +erbos, comandos, etc3, $ue se e:plican en otros cap%tulos del manual "ada uno de ellos con un formato y una solución $ue resol+er

! continuación +amos a e:plicar su formato y al#unas consideraciones #enerales aparte de las propias instrucciones0

*!OCED'!E DI,ISION 1'SIN# -ariable$ -ariable3

DECL%!%TI,ES

NombreseccionSECTION

'SE %FTE! E!!O! *!OCED'!E ON tipo Nombreparrao entencias  END DECL%!%TI,ES Nombreseccion SECTION Nombreparrao. entencias. 

ste ser%a a #roso modo el formato #eneral de una @rocedure, pero incluso se puede omitir si en un pro#rama no +amos a reali5ar nin#>n proceso 1es ob+io $ue siempre lo reali5aremos, pero se podr%a omitir3 Camos a e:plicar un poco su formato0

*!OCED'!E DI,ISION 1'SIN# -ariable$ -ariable3

"uando especificamos U&INE en la linea de @R)"(UR (ICI&I)N , después deberemos de dar los nombres de +ariables $ue hayamos definido en la LINH!E &"GI)N, para compartir en el pro#rama, lo $ue nos indicar* $ue éste ha sido llamado por otro pro#rama y $ue esas +ariables traer*n un +alor procedente del pro#rama llamador, $ue a su +e5 utili5ó la instrucción "!LL con las mismas +ariables

DECL%!%TI,ES, es una sección dentro de la @R)"(UR $ue nos +a a ser+ir para controlar los

posibles errores en cuanto al manejo de ficheros se refiere La linea de ("L!R!GIC&, 1si se +a a utili5ar3 deber* de ir siempre a continuación de la linea de @R)"(UR (ICI&I)N  (espues de subdi+ir%a en tantas secciones como opciones de error ten#amos, éstas pueden ser definidas por archi+o o bien forma de apertura, es decir podremos controlar los errores $ue nos lle#uen de un fichero en concreto o de todos a$uellos $ue hayan sido abiertos de de i#ual forma, ésto se especifica en la linea U&R !<GR RR)R @R)"(UR )N tipo, pudiendo ser tipo, el nombre del archi+o o su modo de apertura 1IN@UG, )UG@UG, I') , XGN( ! continuación ir%an los p*rrafos con sus respecti+as instrucciones a reali5ar en caso de error

&e pondr%an tantos p*rrafos y secciones como $uisieramos controlar, siempre teniendo en cuenta $ue ésta se acaba cuando se indi$ue END DECL%!%TI,ES

&i no $uisieramos utili5ar ésta sección, podriamos de i#ual manera controlar los errores en nuestro pro#rama pre#untando siempre por la +ariable de error de cada fichero $ue se definió como <IL &G!GU& en la <IL'")NGR)L

Nombreseccion SECTION, a partir de a$ui incluiremos todas las instucciones necesarias para la

correcta ejecución del pro#rama

Ka sabemos $ue "obol es un len#uaje estructurado, pues bien no pensemos $ue la @rocedure +a a ser un caos de instrucciones escritas secuencialmente, no, en ella podremos definir tantas &ecciones 1&"GI)N3 y @*rrafos como $ueramos para or#ani5ar mejor las instrucciones y para delimitar acciones concretas, eso si siempre se ejecutar*n secuencialmente, e:cepto cuando encuentre al#>n +erbo de

(16)

bifurcación como E), @R<)RM $ue haciendo referencia a esos nombres de p*rrafo har*n $ue se rompa la secuencia ló#ica de ejecución

n las comparaciones $ue ha#amos podremos utili5ar los si#uientes formatos0 M!K)R FU  1N)G3 ER!GR /  1N)G3 S / MN)R FU  1N)G3 L&& /  1N)G3 T / IEU!L FU

Literal   1N)G3 FU!L / Literal 

-ariable  1N)G3 P / -ariable M!K)R ) IEU!L FU  ER!GR )R FU!L /  P / MN)R ) IEU!L FU  L&& )R FU!L /  TP /

&i se especifica 1N)G 3 se da a entender lo contrario de la comparación, con lo $ue no ma(or %ue puede ser i#ual $ue menor o igual %ue.

Gambien podemos utili5ar para las condiciones complejas los operandos ló#icos, !N(, )R y N)G se#>n se re$uieran, todas las condicionea $ue incluyan !N( han de ser correctas para $ue pase la condición, si se utili5a )R solo al#una de ellas ha de ser correcta, cuando se utilice N)G no podr* ser correcta para $ue la condición sea +*lida

(17)

p*#ina1s3 0

2/-1-=2= palabras totales en este te:to3 14664 Lecturas3

(ebido a $ue el len#uaje "obol fue concebido para la #estión de #randes cantidades de datos y a resol+er problemas de tipo comercial y de administración, no se incluyeron dentro de sus

especificaciones +erbos $ue nos puedieran ayudar a resol+er c*lculos complejos como inte#rales, tri#onometr%a, raices cuadradas, etc, sino simplemente las orientadas a los c*lculos b*sicos, suma, resta, multiplicación y di+isión $ue son las $ue +amos a +er a continuación0

%DD , ésta es la instrucción $ue utili5aremos para reali5ar sumas y tiene los si#uientes formatos0 1.$ %DDvariable ó literal variable ó literal ... TOvariable 1!O'NDED3 1ON SI2E E!!O!  3

instrucción

3.$ %DDvariable ó literal variable ó literal ...#I,IN# variable 1!O'NDED3 1ON SI2E E!!O!  3

instrucción

4.$ %DD CO!! variable TOvariable 1!O'NDED3 1 ON SI2E E!!O! 3 instrucción

@ara +er las e:plicaciones de cada uno de los formatos partiremos de la misma B)RHINE , y a continuación pondremos un ejemplo y su e:plicación

B)RHINE'&G)R!E &"GI)N 2 C!L)R&

6 UN) @I" ?? C!LU 2 6 ()& @I" ?143 C!LU 6. 6 GR& @I" ?1-3 C!LU =- 2 )GR)&

6 )GR)2 @I" ?

6 ()& @I" ?143 C!LU 22 2 R&ULG!() @I" &?1.3 C!LU 2 2 R&G) @I" ??

@R)"(UR (ICI&I)N INI"I)

Formato 1:

!(( UN) GR& = G) R&ULG!()

&e sumar*n todas las +ariables o literales numéricos 1cifras3 al +alor de la +ariable $ue se de a continuación del G), #uardandose el resultado también en ésta >ltima@or tanto al reali5ar ésta operación el +alor de la +ariable

R&ULG!(), ser* de0 2 1de la +ariable UN)3  =- 1de la +ariable GR&3  =  2 1de Resultado3 P =4=

"omo +eis UN)  GR&  = suman === pero ésto se suma al +alor $ue ya ten%a la +ariable R&ULG!(), con lo $ue la suma total es de =4=

ste formato se usa mucho para hacer de contador y hacer $ue una +arable aumente en uno su +alor poniendo0

!(( 2 G) R&ULG!()

Formato 3:

!(( UN) GR& = EICINE R&ULG!()

(18)

anteriores, sin tener en cuenta su +alor inicial, es decir, ser* de0 2 1de la +ariable UN)3  =- 1de la +ariable GR&3  = P ===

Formato 4:

!(( ")RR C!L)R& G) )GR)&

"on éste formato conse#uimos $ue las +ariables del campo compuesto C!L)R& se sumen al +alor de las +ariables con el mismo nombre del campo compuesto )GR)&, obteniendo como resultado0 6. 1de la +ariable ()& del campo

C!L)R&3  22 1de la +ariable ()& del campo )GR)&3 P ;?

&i hubiera coincidido al#una +ariable mas con el mismo nombre en ambos campos también se hubiese sumado

Nota: "omo habreis podido apreciar pueden coe:istir +ariables con el mismo

nombre pero nunca al ni+el 2 o 77, es decir nunca como +ariables

independientes, pero si $ue formen parte de otra, aun$ue yo personalmente nunca lo uso por$ue solo puede dar lu#ar a confusiones &i de todas formas lo utili5ais, hay $ue tener en cuenta $ue para referirse a éstas +ariables no solo bastar* con poner su nombre, sino $ue adem*s habr* $ue especificar a $ue campo pertenece con la palabra IN u )<  sto se e:plicar* con mas detalle cuando +eamos los +erbos para manipular +ariables como M)C

S'(T!%CT , ésta es la instrucción $ue utili5aremos para reali5ar restas y tiene los si#uientes

formatos0

1.$ S'(T!%CT variable ó literal variable ó literal ... F!O& variable 1!O'NDED3 1ON SI2E E!!O!  3

instrucción

3.$ S'(T!%CT variable ó literal variable ó literal ... F!O& variable ó literal  #I,IN# variable 1!O'NDED3 1ON SI2E E!!O! 3instrucción

4.$ S'(T!%CT CO!! variable F!O& variable 1!O'NDED3 1ON SI2E E!!O! 3 instrucción

@ara +er las e:plicaciones de cada uno de los formatos partiremos de la misma B)RHINE $ue hemos utili5ado con la instrucción !((, poniendo a continuación un ejemplo y su e:plicación

Formato 1:

&UGR!"G UN) GR& = <R)M R&ULG!()

&e restar*n todas las +ariables o literales numéricos 1cifras3 del +alor de la +ariable $ue se de a continuación del <R)M, #uardandose el resultado también en ésta >ltima

@or tanto al reali5ar ésta operación el +alor de la +ariable R&ULG!(), ser* de0 '2 1de la +ariable UN)3 ' =- 1de la +ariable GR&3 ' =  2 1de Resultado3 P '=-=

"omo +eis se le han restado los +alores de UN), GR& y = $ue suman '=== pero como R&ULG!() +al%a 2, éste se suma y da un +alor de '=-=

ste formato lo podemos utili5ar para hacer contadores en retroceso, poniendo0 &UGR!"G 2 <R)M R&ULG!()

Formato 3:

(19)

!$u% lo $ue conse#uiremos ser* restar el +alor de la +ariable UN) y = del +alor de la +ariable GR& y el resultado #uardarlo en la +ariable R&ULG!(), sin tener en cuenta su +alor inicial, es decir, ser* de0 =- 1de la +ariable GR&3 ' 2 1de la +ariable UN)3 ' = P =6=

Formato 4:

&UGR!"G ")RR C!L)R& <R)M )GR)&

!l i#ual $ue con la instrucción !((, con éste formato conse#uimos $ue las +ariables del campo compuesto C!L)R& se resten al +alor de las +ariables con el mismo nombre del campo compuesto )GR)&, obteniendo como resultado0 6. 1de la +ariable ()& del campo C!L)R&3 ' 22 1de la +ariable ()& del campo )GR)&3 P 27

&i hubiera coincidido al#una +ariable mas con el mismo nombre en ambos campos también se hubiese restado

Nota: Gened en cuenta $ue al utili5ar restas el si#no puede ser ne#ati+o y si no

tenemos bien declarada la +ariable $ue +a a contener el resultado, ésta cojer* su +alor absoluto

&'LTI*L5 , ésta es la instrucción $ue utili5aremos para reali5ar multiplicaciones y tiene los si#uientes

formatos0

1.$ &'LTI*L5 variable ó literal (5 variable 1 !O'NDED3 1ON SI2E E!!O!  3 instrucción

3.$ &'LTI*L5 variable ó literal(5 variable ó literal  #I,IN# variable 1!O'NDED3 1ON SI2E E!!O!  3 instrucción

Utili5ando la misma B)RHINE $ue hemos utili5ado con las instrucciones !(( y &UGR!"G, +eremos a continuación unos ejemplos y su e:plicación

Formato 1:

MULGI@LK = <R)M R&ULG!()

Multiplica el n>mero = por el +alor de la +ariable R&ULG!(), #uardando en ésta misma el resultado de la operación $ue ser*0 = : 2 1de la +ariable R&ULG!()3 P =

Formato 3:

MULGI@LK = K GR& EICINE R&ULG!()

!$u% multiplicaremos el n>mero = por el +alor de la +ariable GR& #uardando el resultado en la +ariable R&ULG!(), sin tener en cuenta su +alor inicial, es decir, ser* de0 = : =- 1de la +ariable GR&3 P 67

DI,IDE , ésta es la instrucción $ue utili5aremos para reali5ar di+isiones y tiene los si#uientes

formatos0

(20)

3.$ DI,IDEvariable ó literal 6(5 ó INTO7 variable ó literal  #I,IN# variable 1!O'NDED3

1!E&%INDE!  3 variable 1ON SI2E E!!O!  3 instrucción

Utili5ando la misma B)RHINE $ue hemos utili5ado con las instrucciones !((, &UGR!"G y MULGI@LK, +eremos a continuación unos ejemplos y su e:plicación

Formato 1:

(ICI( 2 ING) GR&

(i+ide el +alor de la +ariable GR& entre el n>mero 2, #uardando el resultado en la +ariable GR&0 =- 1de la +ariable GR&3 / 2 P =-

Formato 3:

(ICI( 7 ING) GR& EICINE R&ULG!() RM!IN(R R&G)

!$u% di+idiremos el +alor del la +ariable GR& entre 7 #uardando el resultado en la +ariable R&ULG!(), sin tener en cuenta su +alor inicial, y adem*s el resto de la operación lo #uardar* en la +ariable R&G), $uedando as%0 =- / 7 P 77, pero como 7 : 77 son =;? el resto es 2 $ue ser* el +alor de R&G) &i en +e5 de utili5ar ING) utili5amos K cambia el orden de los operandos, es decir en +e5 de di+idir GR& entre 7 di+idir%amos 7 entre GR&

La opción RM!IN(R no es obli#atoria, todo depender* del uso $ue $ueramos hacer de la instrucción La +ariable $ue ir%a a continuación #uardar* el resto de la di+isión

CO&*'TE , con ésta orden podemos reali5ar todos los c*lculos aritméticos posibles en una sola

instrucción, utili5ando los operadores 1suma3 '1resta3 91multiplicación3 /1di+isión3 991potenciación3, adem*s de utili5ar paréntesis para especificar mejor la operación a reali5ar

1.$ CO&*'TE variable 1!O'NDED3 P e0presión aritm1tica 1ON SI2E E!!O! 3 instrucción Utili5ando la misma B)RHINE $ue hemos utili5ado anteriormente +amos a +er un ejemplo0

Formato 1:

")M@UG R&ULG!() P ()& )< C!L)R& 9 24 / 2

l +alor de la +ariable R&ULG!() ser* de --, obtenido después de multiplicar 6. 1de la +ariable ()& del #rupo C!L)R&3 : 24 y lo $ue de di+idido entre 2 n realidad si hacemos el c*lculo en una calculadora nos daremos cuenta $ue el resultado e:acto es --,. pero como la +ariable R&ULG!() no la hemos

definido con decimales éstos son depreciados por el compilador

@uesto $ue la +ariable ()& pertenece a dos #rupos de +ariables deberemos especificar a $ue #rupo pertenece 1)< C!L)R&3

(ebemos de tener en cuenta $ue siempre tienen preferencia los operadores $ue +ayan entre paréntesis, a continuación los de multiplicación y di+isión 193 y 1/3 y por >ltimo los de suma y resta 13 y 1'3 y el orden en $ue +a a ir reali5ando las operaciones ser* de i5$uierda a derecha, por lo tanto0

")M@UG R&ULG!() P 6  ; 9 =

(21)

")M@UG R&ULG!() P 16  ;3 9 = n cambio ésta otra dar%a0 6;P=9=P6=

spero $ue hayais notado la diferencia y la podais aplicar a +uestros casos en concreto

@ara todas éstas instrucciones de c*lculo $ue hemos +isto la opcion R)UN(( si#nifica lo mismo y $uiere decir $ue fuer5a al redondeo del resultado para cada operación y siempre teniendo en cuenta la definición de la +ariable $ue +a a #uardar ese resultado, por ejemplo si tras una operación resulta 2.,74 éste podr%a $uedar como si#ue0

• 77 R&ULG!() @I" ??C?? 1+alor P 2.,743

• 77 R&ULG!() @I" ??C? 1+alor sin redondeo P 2.,7 ' +alor con redondeo P 2.,.3 • 77 R&ULG!() @I" ?? 1Calor sin redondeo P 2. ' +alor con redondeo P 2?3

I#ual ocurre con la frase)N &IA RR)R instrucción, $ue propiciar* $ue se ejecute la instrucción $ue pon#amos a continuación cuando se produ5ca un desbordamiento del campo $ue +a a aco#er el resultado, por ejemplo si el resultado de una operación es .?74- y la +ariable la hemos definido con @I" ?143 y hemos especificado dicha opción se ejecutar* la instrucción especificada

Instr. de %rc8ivos

p*#ina1s3 0 2/=

1422- palabras totales en este te:to3 14?7= Lecturas3

&in duda son las instrucciones mas importantes con las $ue cuenta el len#uaje "obol, con ellas tendremos la oportunidad de manipular toda la información contenida en nuestros archi+os, es decir,

(22)

podremos abrir archi+os, cerrarlos, leerlos, #uardar información nue+a o modificar datos e:istentes Godo ésto lo haremos con las instrucciones $ue +oy a e:plicar a continuación

!ntes de empe5ar a e:plicar éstas instrucciones me #ustar%a $ue entendiéseis bien al#unos conceptos como fichero, re#istro y campo, para $ue podais comprender mas claramente, la e:plicación de todas las instrucciones $ue se +er*n en ésta sección

• Fue es un ficheroV @odr%amos definir un fichero como un conjunto de re#istros, pero

estar%amos mas o menos i#ual &i compar*semos un fichero de cobol con nuestra +ieja a#enda de teléfonos, para cada ami#o tendr%amos los mismos datos, es decir, nombre, teléfono,

dirección, etc  cada uno de esos datos es lo $ue llamamos campo y el conjunto de todos esos campos para cada ami#o ser%a un re#istro !hora podemos comprender mejor $ue un fichero o archi+o es un conjunto de re#istros, como una a#enda es un conjunto de datos de ami#os

• Fue es una cla+eV Una cla+e, es un campo de nuestra a#enda $ue nos sir+e para identificar a cada ami#o, en la a#enda normal la cla+e podr%a ser la len#Weta con la letra del abecedario correspondiente a los apellidos del ami#o Inform*ticamente es mas completa y con ella

podremos identificar a cada uno de ellos, por ejemplo con su nombre o su teléfono o un códi#o $ue le asi#nemos nosotros personalmente

n Gem*ticos trataremos el tema de los ficheros en mas profundidad

O*EN, ésta es la instrucción $ue utili5aremos para abrir un archi+o, o lo $ue es lo mismo hacerlo

disponible para operar sobre el, ob+iamente éste archi+o debe de haberse descrito en la n+ironment y la (ata se#>n se e:plicó, su formato es el si#uiente0

O*EN 1E9CL'SI,E 3 modo nombre de archivo 1 IT) LOC"3 1IT) NO !EIND3

(onde modo, indica como se abrir* el archi+o y puede tener los si#uientes +alores se#>n su utili5ación0

• IN@UG, el archi+o se abrir* solo para lectura, es decir no podremos #rabar ni modificar datos del mismo

• I'), el archi+o se abrir* como lectura y escritura, con lo cual tendremos acceso a toda la información de dicho archi+o para leerla, escirbirla, reescribirla o borrarla

• )UG@UG, el archico se abre solo para escritura, es el formato $ue se utili5a en los achi+os de impresión y secuenciales Giene la particularidad $ue crea el fichero nue+o cada +e5 $ue se utili5a, por lo tanto hay $ue tener cuidado con archi+os Inde:ados

• XGN(, i#ual $ue el anterior pero no crea el archi+o, sino $ue la información se +a a8adiendo a la ya e:istente &e utili5a para archi+os secuenciales

Las opciones X"LU&IC y BIGD L)"H, nos indica cuando trabajamos en multipuesto $ue éste archi+o estar* blo$ueado, es decir $ue no estar* disponible para otros usuarios l hecho de $ue e:istan dos opciones para lo mismo es por compatibilidad con +ersiones anteriores

La opción BIGD N) RBIN(, se utili5a cuando utili5amos archi+os de cinta, para $ue no la rebobine al abrirla



@R)"(UR (ICI&I)N INI"I)

(23)

)@N IN@UG !RGI"UL)& )@N I') "LING& )@N XGN( IM@R "R!R'!R"DIC) )@N )UG@UG GR!!J) "L)& GR!!J) 

Nota: "on éstas tres instrucciones estamos abriendo tres archi+os, cada uno de

una forma diferente Gambien podriamos haberlos puesto en una sola linea de la si#uiente forma0

)@N IN@UG !RGI"UL)& I') "LING& XGN( IM@R

n el caso del archi+o GR!!J), se consi#ue crearlo como nue+o, e:ista antes o no

CLOSE, ésta es la instrucción contraria a )@N, es decir termina la cone:ión establecida con el

archi+o, a partir del momento $ue apare5ca ésta instrucción el archi+o no estar* disponible para operar con él, hasta la pró:ima +e5 $ue se abra )b+iamente antes de cerrarlo debe de estar abierto

CLOSE nombre de archivo 1 IT) LOC"3 1IT) NO !EIND 3

l nombre de archi+o corresponder* a al#>n archi+o abierto anteriormente

Las opciones BIGD L)"H y BIGD N) RBIN( , tienen la misma e:plicación $ue la +ista en la orden )@N  @R)"(UR (ICI&I)N INI"I) )@N IN@UG !RGI"UL)& )@N I') "LING& )@N XGN( IM@R    "RR!R

"L)& !RGI"UL)& "LING& IM@R 

Nota: !puntaré $ue si finali5amos el pro#rama con la sentencia &G)@ RUN, $ue

lue#o +eremos, los archi+os $ue estu+ieran abiertos se cierran autom*ticamente aun$ue no se haya especificado la orden "L)& !n$ue siempre es preferible utili5arla, ya $ue puede haber al#unos compiladores mas anti#uos $ue no los cierren

Me #ustrar%a destacar de éstas dos instrucciones +istas $ue lo mas normal es no utili5ar nin#una de las opciones, es decir solo abrir de una manera el archi+o para su uso y una +e5 hayamos acabado con él, cerrarlo

!E%D, es la instrucción $ue utili5amos para leer re#istros de un archi+o, debe de estar abierto "on

ella conse#uimos $ue los datos referentes al re#istro accedido $ueden en la descripción de dicho fichero, es decir, conse#uimos $ue los campos declarados en la <(, ten#an el +alor correspondiente al re#istro leido

(24)

La sentencia R!(, se utili5a para leer ficheros secuanciales o inde:ados, o para leer inde:ados de manera secuencial, por lo $ue su sinta:is tiene dos formatos principales

Formato para leer fic8eros de manera secuncial. 6Indeados o secuenciales7

!E%D nombre de archivo 1 NE9T+*!E,IO'S !ECO!D3 1 INTO descripción3 1%T END + NO %T ENDsentencia3END$!E%D

nombre de archivo corresponder* a al#>n archi+o abierto anteriormente

La opción NXG R")R(, indica $ue se +a a leer el si#uiente re#istro y es la $ue se toma por defecto, ya $ue, cuando estamos leyendo un archi+o de forma secuencial, éste leer* re#istros uno tras otro, hasta lle#ar al final

La opción @RCI)U& R")R( leer%a el re#istro anterior sta opción es la >nica $ue no es +*lida para ficheros secuenciales de éste formato

La opción ING), indica cual de las descripciones de re#istro $ue hayamos podido declarar ser* la $ue almacene los datos del re#istro leido Genemos $ue tener en cuenta $ue "obol nos permite mantener mas de una descripción de re#istro para un mismo archi+o &i tu+ieramos mas de una, ésta ser%a la opción para indicarle cual es la $ue $ueremos utili5ar en ésta lectura

La sentencia $ue +a después de !G N( , indica $ue debe de hacer el pro#rama al lle#ar al final del fichero @uede ser cual$uier orden de cobol, pero es e+idente $ue si +ol+emos a leer una +e5 lle#ado al final, producir* un error

 @R)"(UR (ICI&I)N INI"I) )@N IN@UG !RGI"UL)& L"GUR! R!( !RGI"UL)& NXG R")R( !G N( E) "RR!R    E) L"GUR! "RR!R "L)& !RGI"UL)& 

Nota: &i bien este formato nos sir+e para leer cual$uier tipo de archi+o de

manera secuencial, en el caso de $ue el archi+o fuera secuencial, éste solo se podr%a leer as%

:isten muchas ocasiones en $ue un archi+o inde:ado nos interesa leerlo de manera secuencial &i lo hicieramos éste ser%a su formato, adem*s en éste caso podriamos leerlo tanto del principio al final con la opción NXG, como del final al principio con la opción @RCI)U&

@ara poder leer un fichero inde:ado de manera secuencial, deberemos de haber especificado en la &L"G, $ue su acceso +a a ser (KN!MI" o &FUNGI!L

Formato para leer fic8eros indeados con acceso aleatorio.

!E%D nombre de archivo 1INTO descripción3 1"E5 nombre de clave3 1 IN,%LID "E5 + NOT IN,%LID "E5 sentencia3 END$!E%D

(25)

Las opciones $ue se repiten con con el formato anterior tienen el mismo formtato y producen el mismo resultado

La opción HK, indica por $ue cla+e se +a a leer el fichero, siempre $ue éste ten#a mas de una

La sentencia después de INC!LI( HK se utili5a para ejecutar una acción cuando se intenta acceder a un re#istro $ue no e:iste n el caso de utili5ar N)G INC!LI( HK ser%a al contrario, es decir cuando el re#istro e:iste  @R)"(UR (ICI&I)N INI"I) )@N IN@UG !RGI"UL)& L"GUR! M)C 2 G) "L!C'!RGI"UL) R!( !RGI"UL)& INC!LI( HK E) RR)R    E) L"GUR! RR)R   "RR!R "L)& !RGI"UL)& 

Nota: &in duda la forma mas usual de acceder a un re#istro ser* por su cla+e

!si por ejemplo para acceder a un fichero de poblaciones cuya cla+e fuera su códi#o postal, dando cual$uier códi#o accederiamos a ese re#istro en concreto La acción $ue ha#amos después de un INC!LI( HK, depender* del conte:to en $ue se encuentre, podremos +ol+er a solicitar otra cla+e, permitir crear un re#istro, etc 

!ITE, con ésta instrucción se consi#ue #rabar la información contenida en ese momento en los

campos del re#istro de un fichero s decir, si introducimos una ficha nue+a en la a#enda con los datos de un nue+o ami#o, ésta instrucción ser* la $ue nos sir+a para almacenar en el fichero los datos ! partir de ese momento estar*n disponibles tantas +eces como $ueramos para leerla K por supuesto el fichero debe de estar abierto como )UG@UG o I')

!ITE nombre de registro 1 F!O& descripción3 1IN,%LID "E5 + NOT IN,%LID "E5 sentencia3

END$!ITE

La opción <R)M, indica con cual de las descripciones de re#istro $ue hayamos podido declarar se #raben los datos en el fichero Day $ue se8alar $ue ésta descripción puede estar definida en la B)RHINE, y lo $ue nos ahorra en realidad es mo+er los datos de esa descripción $ue hemos usado como OtemporalO a la auténtica descripción del re#istro

Las cl*usulas de INC!LI( HK y N)G INC!LI( HK, tienen la misma función dada en la instrucción R!( &olo $ue a$ui, INC!LI( HK , se producir%a cuando al #rabar el re#istro, éste ya e:istiese o hubiera al#>n error por el cual no se pudieran #rabar los datos



@R)"(UR (ICI&I)N INI"I)

(26)

)@N I') !RGI"UL)& L"GUR!

M)C 2 G) "L!C'!RGI"UL)

M)C O!N(R& M)NG&O G) N)MR

BRIG REI&GR)'!RGI"UL) INC!LI( HK E) RR)R   E) "RR!R RR)R   "RR!R "L)& !RGI"UL)& 

Nota: !un$ue se puedan utili5ar +arias descripciones, lo mas ló#ico es utili5ar

siempre la misma para cada fichero l error mas probable siempre $ue sea una INC!LI( HK, suele ser $ue e:iste un re#istro ya con esa cla+e, a parte de ese, falta de espacio en disco, archi+o mal abierto o sin abrir

!dem*s de éste formato, e:iste para ésta instrucción otro muy com>n K es el $ue utili5amos para en+iar datos a la impresora, es decir para listar, para imprimir

s en éste caso, donde se hace indispensable el uso de mas de una descripción por re#istro @or$ueV &encillo, definiremos nuestro fichero con un re#istro de tama8o i#ual al ancho de nuestro listado, y lue#o en la B)RHINE, describiremos el formato de cada una de las lineas $ue utili5aremos en la impresión Fuiero hacer un ejemplo mas e:tenso para éste caso, $ue ser* muy utili5ado y distinto en su filosof%a al resto

!ITE nombre de registro 1 F!O& descripción3 1%FTE! n&mero de lineas31@!E3END$!ITE

!dem*s para éste formato tendremos la cl*usula !<GR, en la cual indicamos el n>mero de lineas $ue debe de a+an5ar la impresora antes de escribir, o bien $ue lo ha#a directamente al principio de la

si#uiente p*#ina, poniendo !<GR @!E :isten al#unas otras cl*usulas, pero no las +amos a +er a$u%  por ser poco usadas

I(NGI<I"!GI)N (ICI&I)N @R)ER!M'I( LI&G!() NCIR)NMNG (ICI&I)N ")N<IEUR!GI)N &"GI)N ("IM!L'@)ING I& ")MM! IN@UG')UG@UG &"GI)N <IL'")NGR)L

&L"G IM@R&)R! !&&IEN G) @RING OL@G2O (!G! (ICI&I)N <IL &"GI)N <( IM@R&)R! L!L R")R( )MIGG( 2 RE'IM@R @I" X1.3 B)RHINE'&G)R!E &"GI)N 2 LIN!2

6 <ILLR @I" X1;3 C!LU &@!"&

6 <ILLR @I" X163 C!LU O&G! & L! LIN! 2O 2 LIN!6

6 <ILLR @I" X1;3 C!LU &@!"&

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

La vida real, no obstante, proporciona la certidumbre de que, en multitud de ocasiones, el interés de cada uno se satisface con el concurso propio y de otro u otros portadores

En virtud de esta política, que fue conocida como la apertura, numerosos y destacados po- líticos exiliados por el régimen pudieron regresar al país; la prensa disfrutó de una

(...) la situación constitucional surgida tras la declaración del estado de emergencia es motivo de preocupación para la Comisión de Venecia. La declaración en sí misma no definió

Para comprobar tanto el middleware como el controlador de acceso a datos de un nivel de red y un cliente de base de datos dados, utilice la función connectivity.. Figura 2-7:

El niño oyente adquiere el lenguaje oral de forma natural y espontánea, sin más condición que la interacción con los hablantes; su capacidad de percibir el habla por audición, y

a) La renovación normal de los viñedos que hayan llegado al final de su ciclo natural, entendida como la replantación de una misma parcela de tierra con la

• Para ello, la actualización del estudio del aceite de oliva analiza las configuraciones principales de la cadena de valor identificadas en el estudio de la campaña 2007-2008