Manual de programacion Cobol

July 16, 2019 | Author: Luis Figueroa | Category: Archivo de computadora, Programa de computadora, Lenguaje de programación, Compilador, Byte
Share Embed Donate


Short Description

Manual de Programacion Cobol....

Description

Introducción La orientación del curso / manual la enfocaré a mi entorno de trabajo, es decir RM bajo UNIX, pero como os he dicho antes, no hay muchas diferencias !l pensar en "obol como len#uaje de pro#ramación debemos de tener presente $ue nos referimos a un len#uaje dedicado a #estión de datos con una ma#n%fica transportabilidad transportabilidad entre los distintos sistemas, yo he ejecutado el mismo pro#rama en M&'()& y UNIX sin modificar ni una linea de códi#o y copiando solo el objeto &i se le llaman len#uajes de pro#ramación, es por$ue realmente se consideran consideran 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 similitud con el in#lés, ya $ue todo su entorno est* sacado de éste idioma "obol adem*s es un len#uaje estructurado y sus partes se diferencias claramente en (i+isiones stas son -, son obli#atorias y cada una de ellas tiene una misión diferente dentro de cada pro#rama pro#rama como +eremos a continuación l pro#rama cobol se escribe secuencialmente secuencialmente en l%neas de . caracteres o menos con la si#uiente di+isión0

La parte 123 comprende las columnas de la 2 a la 4 ambas inclusi+e y se utili5a para numerar las l%neas, aun$ue hoy en d%a pr*cticamente no se utili5an 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 anterior pero $ue por su tama8o ocupa mas de una l%nea, un asteristo 193 $ue nos indica $ue el te:to $ue +iene a continuación es un comentario y por lo tanto $ue el compilador lo i#nore, o bien puede ser+ir dependiendo de los compiladores para indicaciones del debu# La parte 1;3 se le llama  Area A comprende las columnas . a 22 ambas inclusi+e y a$u% es donde se escriben los nombre de las di+isiones, de las secciones, de los p*rrafos, los indicadores de meros 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 +iene indicado por el n>mero de

caracteres $ue ocupa :isten adem*s en cobol unas +ariables $ue +ienen con un +alor propio y $ue se pueden utili5ar libremente, también llamadas "onstantes mero de Ni+el  Nombre de campo  @I", C!LU, R(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 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 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 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 = sta operación dar%a como resultado ;9=P2=6P27

")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

)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 I#ual ocurre con la frase

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,

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)

)@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 mero de +eces $ue aparece Identificador2 Identificador2 en el campo2 y #uardar* el +alor en la +ariable2 $ue pre+iamente hayamos hayamos definido en la B)RHINE •









"D!R!"GR&, "D!R!"GR&, indica $ue cuente todos los caracteres del campo incluso los espacios en blanco !LL, indica $ue tiene $ue buscar en todos los caracteres del campo, la cadena especificada en "adena6 L!(INE, indica $ue tiene $ue buscar la cadena especificada especificada en "adena6, pero solo hasta $ue encontremos uno diferente, si nada mas empe5ar es diferente el resultado sera directamente  mero de elementos +ariable, dependiendo del +alor de una +ariable &u definición ser%a as%0 2 M& @I" ?? 2 &M!N! 6 CI&G!& @I" ?1-3 )""UR& 6. G) ;2 (@N(INE )< M& INDE9%CION.

!dem*s podemos asi#nar una +ariable por la cual nos referiremos a cada elemento, esto se hace a8adiendo a la l%nea $ue contiene la cl*usula )""UR&, la palabra IN(X( se#uida del nombre de +ariable $ue deseemos La +entaja es $ue no hay $ue definirla en la B)RHINE n nuestro ejemplo le pondremos de nombre (I! y $uedar%a asi0 2 (I!&M!N! 6 CI&IG!& @I" ?1-3 )""UR& 7 GIM& IN(X( (I! La #ran +entaja de utili5ar este método, es $ue no hay $ue definir esa +ariable, no hay $ue controlar los ran#os y adem*s el +alor no se alterar* ya $ue no utili5aremos esa +ariable para nada mas @ara dar +alor a éste tipo de +ariables hay $ue utili5ar la sentencia &G, ya $ue no se pueden utili5ar los comandos normales ni declaraciones aritméticas, con el si#uiente formato0 &G (I! G) 2 (a el +alor 2 al %ndice 2

&G (I! U@ ; &uma ; al +alor del %ndice &G (I! ()BN 6 Resta 2 al +alor del %ndice 6 !dem*s también utili5amos la inde:ación para hacer bus$uedas en las tablas mediante la sentencia &!R"D !ntes hemos +isto como buscar utili5ando un contador y unos I< para +erificar lo $ue buscamos @ero "obol tiene una sentencia espec%fica para buscar un +alor en una tabla sta sentencia se llama &!R"D &i ima#inamos una tabla de trabajadores y $ueremos encontrar la posición en concreto $ue ocupa uno o saber si e:iste en la tabla haremos lo si#uiente0 2 G!L! 6 GR!!J!()R& )""UR& 2 GIM& IN(X( K &U2 ; N)MR @I" X1;3 ; NI< @I" X123  @R)"(UR (ICI&I)N  U&"!R &G &U2 G) 2 &!R"D LMNG)& !G N( E) N)XI& BDN N)MR 1&U23 P O!N(R& M)NG&O E) XI&G N)XI& (I&@L!K OGR!!J!()R INXI&GNGO LIN 2 E)
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF