Documente Academic
Documente Profesional
Documente Cultură
COBOL AVANZADO
Contenido
1. OBJETIVO DEL CURSO
1.1. Objetivo.................................................................................................................
1.2. Alcance..................................................................................................................
1.3. Prerequisitos.........................................................................................................
1.4. Duración................................................................................................................
2. TEMAS
2.1. Usos de la Environment Division...........................................................................
2.2. Construcciones de Programación Estructurada....................................................
2.2.1. Estructura CASE............................................................................................
2.2.2. IF anidados.....................................................................................................
2.2.3. WHILE-DO.....................................................................................................
2.2.4. REPEAT-UNTIL..............................................................................................
2.2.5. FOR-DO.........................................................................................................
2.3. COPY-REPLACING...............................................................................................
2.4. Nuevas instrucciones de estándar ANSI-85..........................................................
2.4.1. INITIALIZE......................................................................................................
2.4.2. EVALUATE.....................................................................................................
2.4.3. Finales de instrucción explícitos (END-IF, END-PERFORM, etc.).................
2.5. Declaraciones de Datos "complicadas".................................................................
2.5.1. Niveles 88 y 77...............................................................................................
2.5.2. Manejo de tablas............................................................................................
2.5.3. Representación interna de datos....................................................................
2.5.4. REDEFINES y RENAMES.............................................................................
2.6. SORT y MERGE....................................................................................................
2.6.1. Dectaración de archivos y formato de instrucciones......................................
2.6.2. Especificación del criterio de ordenamiento...................................................
2.6.3. Input y Output Procedure...............................................................................
2.6.4. RELEASE.......................................................................................................
2.6.5. Registros especiales para el SORT................................................................
2.7. Subprogramas.......................................................................................................
2.7.1. Transferencia de control a otro programa.......................................................
2.7.2. Programas anidados.......................................................................................
2.7.3. Parámetros por referencia y por contenido....................................................
3. PRÁCTICAS
3.1. Ejercicio 1..............................................................................................................
4. EVALUACIÓN Y REFERENCIAS
4.1. Evaluación.............................................................................................................
4.2. Referencias...........................................................................................................
1.1. Objetivo
Dominar declaraciones de datos complicadas como instrucciones de sort y
transferencia de control a otros programas
1.2. Alcance
Instrucciones de Cobol-II
1.3. Prerequisitos
Haber tomado el curso de Cobol Básico, que incluye:
Programacion estructurada
Introduccion a los metodos de acceso
Elementos del lenguaje cobol
Descripcion de la IDENTIFICATION DIVISION
Descripcion de la ENVIRONMENT DIVISION
Descripcion de la DATA DIVISION
WORKING-STORAGE SECTION
LINKAGE SECTION
PROCEDURE DIVISION
Clasificación de Archivos
Revisión de Diferencias
Revisión de Conceptos MVS/JCL
1.4. Duración
El curso tiene 1 duración de 3 días y está compuesto de:
Teoría 6 hrs.
Práctica 17 hrs.
Examen 1 hr.
ENVIRONMENT DIVISION.
[CONFIGURATION SECTION.
SOURCE-COMPUTER. <comentario.> OBJECT-COMPUTER.
<comentario>
[PROGRAM COLLATING SEQUENCE IS <alfabeto>].
SPECIAL-NAMES. <cláusulas>. 1
[INPUT-OUTPUT SECTION.
FILE-CONTROL. <entrada de archivo>)
SPECIAL-NAMES.
<nombre de entorno> IS <mnem6nico>...
ALPHABET <nombre alfabeto> IS
{ STANDARD-1 }
{ STANDARD-2 )
{ NATIVE )
( EBCDIC )
( literal-l [ALSOITROUGHI literal-2]... )
PROGRAM COLLATING.
La cláusula PROGRAM COLLATING especifica la secuencia de
ordenamiento, asociando con él un mnemónico definido en el párrafo de
SPECIAL-NAMES.
Párrafo SPECIAL-NAMES.
Este párrafo especifica características especiales del sistema, tales como
el nombre del alfabeto que el programa usará para la secuencia de
ordenamientos. Esta secuencia puede ser un código predefinido y soportado
por el compilador como el c6digo ASCII o EBCDIC, pero también se puede
definir un alfabeto personalizado.
También asocia nombres con funciones del sistema, tales como los
dispositivos de salida y entrada para ACCEPT/DISPLAY y las acciones en
un WRITE ADVANCING,
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE~COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-370
PROGRAM COLLATING SEQUENCE IS ALFBTO-EBCDIC.
SPECIAL-NAMES.
ALPHABET ALFBTO-EBCDIC IS EBCDIC.
Utilizando el mismo procedimiento se puede establecer una secuencia
propia. Para esto, hay que especificar el orden escribiendo la secuencia de
caracteres deseada de menor a mayor. La sintaxis está establecida para
abreviar la descripción. Siempre hay que tomar en cuenta que el
ordenamiento personalizado se basa en el nativo de la máquina en que se
esté trabajando, en un sistema 9121 el código nativo es el EBCDIC y en una
PC es el ASCII-extendido, por ejemplo. La sintaxis aplicada para establecer
la lista de forma abreviada es la siguiente:
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-370
PROGRAM COLLATING SEQUENCE IS ALFBTO-MAY-MIN~IGLS.
SPECIAL-NAMES.
ALPHABET ALFBTO-MAY-MIN-IGLS IS
'A' ALSO 'a'
'B' ALSO 'b'
'C'ALSO 'c'
'D' ALSO 'd'
…
…
'Y' ALSO 'y'
'Z' ALSO 'Z'
'O' TROUGH '9'
SPECIAL-NAMES.
SPECIAL~NAMES.
CLASS VOCAL IS 'A' 'E' '0' 'U'
CLASS DIGITO IS 'O' TROUGH '9'
CLASS REGSTRO-VALDO IS 'A' TROUGH 'D'.
Estos nombres de clase se. pueden usar de la misma forma que los
nombres ya predeclarados: ALPHABETIC o NUMERIC.
EVALUATE <variable>
WHEN <valor-l>
<instrucciones opción l>
WHEN <valor-2>
strucciones opción 2>
WHEN <valor-3>
<instrucciones opción 3>
WHEN....
[WHEN OTHER
<instrucciones opción default>]
END-EVALUATE.
Ejemplo:
EVALUATE PE-TIPO-EMPLDO
2.2.2. IF anidados
Los IF anidados se utilizan cuando se requiere una decisión múltiple y no
se cuenta con una estructura CASE
en el dialecto que se esté empleando.
IF simple:
IF (condición) THEN
< bloque de instrucciones >
END-IF.
IF completo:
IF (condición) THEN
< bloque de instrucciones -THEN- >
ELSE
< bloque de instrucciones -ELSE- >
END-IF.
IF (condición l) THEN
Ejemplo:
ACCEPT OPCN-MENU.
IF OPCN-MENU EQUAL TO '1' THEN
PERFORM DRIVR-OPCN-l
ELSE IF OPCN-MENU EQUAL TO '2' THEN
PERFORM DRIVR-OPCN~2
ELSE IF OPCN-MENU EQUAL TO '3' THEN
PERFORM DRIVR-OPCN~3
ELSE IF OPCN-MENU EQUAL TO '4' THEN
PERFORM DRIVR-OPCN-4
ELSE
PERFORM MENSJE-OPCN-INVLDA
END-IF END-IF
END-IF END-IF.
2.2.3. WHILE-DO
WHIILE (condición) DO
INICIO
<instrucciones>
FIN
En COBOL está estructura se codifica con la instrucción PERFORM-
UNTIL, pero hay que notar que en el WHILE-DO anterior el grupo de
instrucciones se ejecutan mientras la condición sea verdadera y en el
PERFOPM-UNTIL se ejecutan mientras sea falsa. Por eso la estructura
queda de la siguiente forma:
No se debe codificar:
PERFORM UNTIL NOT (A > B)
…
END-PERFORM.
Lo correcto sería:
PERFORM UNTIL (A <= B)
…
END-PERFORM.
Cuando la condición es compuesta, puede que no sea fácil convertirla a
su forma positiva, para eso se deben memorizar las siguientes
equivalencias básicas para traducir condiciones compuestas:
2.2.4. REPEAT-UNTIL
REPEAT
<instrucciones>
UNTIL (condición)
PERFORM PARRFO-GRUPO-INSTRCCNS.
2.2.5. FOR-DO
El diagrama de esta estructura es el siguiente:
FOR 1 = 1 TO TOTL-REGSTROS DO
INICIO
IMPRME-ESTDSCTCA
FIN.
2.3. COPY-REPLACING.
COPY <nombre-copy>
REPLACING <cadenas> BY <cadena-2>.
Copy: PEDDO.COB
01 :PE:-REGSTRO-PEDDO.
05 :PE:-NUMRO PIC 9(06).
05 :PE:-FECHA PIC 9(06).
05 :PE:-ESTDO PIC X(Ol).
05 :PE:-VENDDR PIC X(08).
En la FD
COPY PEDDO
En la Working~Storage
COPY PEDDO
REPLACING --:PE:== BY ==WS==.
En la FD:
01 FD-REGSTRO-PEDDO.
05 FD-NUMRO PIC 9(06).
05 FD-FECHA PIC 9(06).
05 FD-ESTDO PIC X(01).
05 FD-VENDDR PIC X(08).
Y en la Workinq-Storage:
01 WS-REGSTRO-PEDDO.
05 WS-NUMRO PIC 9(06).
05 WS-FECHA PIC 9(06).
05 WS-ESTDO PIC X(01).
05 WS-VENDDR PIC X(08).
La sustitución será:
01 CONTRLS-IMPRSN.
05 NUMRO-LINEAS PIC 9 (02) VALUE 60.
05 NUMRO-COLMNAS PIC 9 (02) VALUE 02.
05 TAMNIO-ENCBZDO PIC 9(02) VALUE 04.
05 CARCTRS-LINEA PIC 9(02) VALUE 132.
2.4.1. INITIALIZE
La sintaxis de esta instrucción es:
INITIALIZE <varble-l>, <varble-2>,...
01 REGSTRO-PRESTCNS.
05 NUMRO-EMPLDO PIC 9(06).
05 TIPO-NOMNA PIC X(01).
05 PRESTMSS.
10 PRESTMO-CASA PIC 9(06).99 COMP-3.
La instrucción
INITIALIZE REGSTRO-PRESTCNS.
2.4.2. EVALUATE
La sintaxis es:
EVALUATE <adjetivos> [ALSO <adjetivo-2>... 1
WHEN <objetos> [ALSO <objeto-2>... 1
<instrucciones>
[WHEN OTHER
<instrcciones> 1
END-EVALUATE.
Donde:
adjetivo~l y 2 pueden ser: Un identificador, una literal, una expresión,
TRUE o FALSE.
objetos y 2 pueden ser: ANY, una condición, TRUE, FALSE, un
ídentificador, una literal o una expresión aritmética.
Ejemplo:
Incorrecto.
IF (A < B) THEN
<instrucciones>
IF (C > D) THEN
<instrucciones>
ELSE
Correcto.
IF (A < B) THEN
<instrucciones>
IF (C > D) THEN
<instrucciones>
ELSE
<instrucciones>
END-IF
END-IF.
2.5.1. Niveles 88 y 77
Los niveles 77 son variables de datos que se manejan
independientemente de cualquier otra. Es decir, no están agrupadas con
otra. Estas variables por lo tanto no están asociadas a ningún registro y
solo son variables de uso interno del programa. De acuerdo al estándar
estar variables no deben usarse. En el caso de que se tengan, estas
debieron agruparse en conjuntos simbólicos. En realidad ninguna variable
es totalmente independiente, ya que todas están relacionadas directa o
indirectamente. Al agruparse se debiera analizar su uso específico y unirse
a aquellas otras que tengan usos similares, dándoles un nombre de grupo
que sea el común denominador de todas.
Ejemplo:
Incorrecto.
77 NIJMPO-PAGNA PIC 9 (03) VALUE ZERO.
77 CONTDR-REGSTROS PIC 9(06) VALUE ZERO.
77 CONTDR-LINEAS-ESCRTAS PIC 9(02), VALUE ZERO.
77 ACMLDR-IMPSTOS PIC 9(08) VALUE ZERO.
77 CONTDR-REGSTROS-INVLDOS PIC 9(06) VALUE ZERO.
Ejemplo:
01 TABLA.
05 CAMPO -ELMNTO PIC X(0l) OCCURS 80 TIMES.
01 TABLA-2.
05 RENGLNS OCCURS 25 TIMES.
10 COLMNA-1 PIC 9(09).
10 COLMNA-2 PIC 9(09).
10 COLMNA-3 PIC 9(09).
<nombre-campo>(subíndice).
Ejemplo. Mover ceros a la columna 2 en el renglón 12.
MOVE ZEROS TO COLMNA-2(12).
Ejemplo. Sumar todos los renglones de la columna 3.
01 VARBLES-GENRLS.
05 NUMRO-ELMNTOS PIC 9(03).
01 TABLA.
05 CAMPO-ELMNTO PIC X(0l)
OCCURS 1 TO 100 TIMES
DEPENDING ON NUMRO-ELEMNTOS.
01 TABLA.
05 NUMRO-ELMNTOS PIC 9(03).
05 CAMPO-ELMNTO PIC X(0l)
OCCURS 1 TO 100 TIMES
DEPENDING ON NUMRO-ELEMNTOS.
índices de tablas
El acceso a una tabla se puede optimar, utilizando como subíndice un
índice de tabla.
Solo es necesario definir un nombre de índice con la cláusula INDEXED
BY, como se muestra en el ejemplo:
01 TABLA.
05 CAMPO-ELMNTO PIC X(0l) OCCURS 80 TIMES
INDEXED BY IDX-CAMPO.
SET IDX-CAMPO TO n.
Donde n es el número del elemento que se desea accesar.
Para avanzar al siguiente elemento se ejecuta:
SET IDX-CAMPO UP BY 1.
01 TABLA-DOS-DIMNSNS.
05 RENGLNS OCCURS 24 TIMES.
10 COLMNAS OCCURS 80 TIMES.
15 CARCTR PIC X(0l).
15 ATRBTO PIC X(0l).
01 TABLA-TRES-DIMNSNS.
05 NUMRO-PANTLLA OCCURS 5 TIMES.
10 RENGLN OCCURS 24 TIMES.
15 CARCTR OCCURS 80 TIMES.
20 CARCTR PIC X(0l).
20 ATRBTO PIC X(0l).
Búsquedas en tablas
Búsqueda Serial
Esta búsqueda puede realizarse de dos formas:
01 TABLA-UNA-DIMNSN.
05 RENGLNS OCCURS 25 TIMES INDEXED BY IDX-1.
10 CAMPO-1 PIC X(08).
10 CAMPO-2 PIC X(08).
Si se desea buscar la posición del elemento 'AAAA' en CAMPO-1, se
ejecutaría:
SEARCH <identificador-l>
VARYING {<identificador-2>I<índice-l>}
AT END <instrucciones>
WHEN (condición) <instrucciones>...
END-SEARCH.
SET IDX-1 TO 1.
SEARCH CAMPO-1
VARYING IDX-1
AT END
SET ELMNTO-NO-ENCNTRDO TO TRUE
WHEN CAMPO-l(IDX-l) = 'AAAAY
SET ELMNTO-ENCNTRDO TO TRUE
END-SEARCH.
Búsqueda Binaria
La búsqueda binaria se efectúa utilizando la instrucción SEARCH ALL, la
cual es una variante de la instrucción SEARCH. La sintaxis es la siguiente:
01 TABLA-UNA-DIMNSN.
05 RENGLNS OCCURS 25 TIMES
ASCENDING CAMPO-1
ASCENDING CAMPO-2
INDEXED BY IDX-1.
10 CAMPO-1 PIC X(08).
10 CAMPO-2 PIC X(08).
DISPLAY.
En este formato el número ocupa tantos bytes como posiciones numéricas
tenga declaradas. Es decir, cada dígito del número se almacena en un
BYTE completo. La representación interna de este byte será el número
binario que le corresponda en el c6digo nativo de la máquina. Por ejemplo,
en una Pc el código nativo es el ASCII, y en el código ASCII el número 1
1 2 3 $
BINARIO (COMP-O).
Un número binario se representa en su forma binaria en memoria
directamente.
La longitud del campo en memoria dependerá de cuantos bits sean
necesarios para alojar el mayor número posible que puede contener el
campo. Por ejemplo:
X'00' X'7D'
0 0000
1 0001
2 0010
3 0011
4 0100
6 0110
7 0111
8 1000
9 1001
52 89 92
Datos alfanuinéricos
SD <nombre-archivo>
RECORD CONTAINS...
DATA RECORD IS ...
01 SD-POLZS-ORDNMNTO.
05 CAMPO-1 PIC 9(08).
05 CAMPO-2 PIC X(10).
05 FILLER PIC X(62).
SORT <nombre-archivo-sort>
{CRITERIO DE ORDENAMIENTO}
{USING <nombre-archivo-datos>}
{INPUT PROCEDURE IS <nombre de sección>}
{GIVING <nombre-archivo-salida>}
{OUTPUT PROCEDURE IS <nombre de sección>}.
Por otro lado la instrucción MERGE se le utiliza para unir dos o más
archivos en uno solo. Los archivos de entrada deben estar ordenados por
MERGE <nombre-archivo-sort>
(CRITERIO DE ORDENAMIENTO)
USING <nombre-archivo-datos>...
(GIVING <nombre-archivo-salida>)
(OUTPUT PROCEDURE IS <nombre sección>)
En esta instrucción no existe la INPUT PROCEDURE. El criterio de
ordenamiento se detalla en el siguiente punto.
SPECIAL-NAMES.
ALFBTO-EBCDIC IS EBCDIC.
…
SORT ARCIIVO-TRABJO-POLZS
ON ASCENDING KEY CAMPO-1
ON DESCENDTNG KEY CAMPO-2
WITH DUPLICATES IN ORDER
COLLATING SEQUENCE IS ALFBTO-EBCDIC
USING ARCHVO-POLZS
GIVING ARCHVO-POLZS-ORDNDAS.
SORT ARCHVO-MAESTRO-TRABJO
ON ASCENDING KEY GRIJPO-EMPRSA
ON ASCENDING KEY GRUPO-TIENDA
ON ASCENDING KEY GRUPO-DEPRTMNTO
WITH DUPLICATES IN ORDER
INPUT PROCEDURE FILTRDO-REGSTROS-MAESTRO
1. FILTRDO-REGSTROS-MAESTRO.
En esta secci6n deberán ser liberados los registros para ser ordenados.
2. SORT. Se ordenan los registros liberados.
3. PROCSA-MAESTRO-ORDNDO.
Son recuperados uno a uno los registros para su proceso final.
2.6.4. RELEASE
Para "liberar" los registros estos deben ser leídos previamente en la SD
del archivo de trabajo. Una vez que los datos están en la SD del archivo,
se liberan con la instrucción REALEASE. Esta instrucción actúa como un
WRITE en un archivo normal. Incluso, tiene una sintaxis semejante a la
de la instrucción WRITE.
FILTRDO-REGSTROS-MAESTRO SECTION.
PERFORM LECTRA-MAESTRO.
PERFORM UNTIL NOT FILE-STATS-OK
IF CATGRIA-EMPLDO >= CATGRIA-PLANTA THEN
PERFORM LIBRA-REGSTRO-MAESTRO
END-IF
PERFORM LECTRA-MAESTRO
END-PERFORM.
....
RETURN
Una vez que los registros han sido ordenados, estos están disponibles en
la OUTPUT PROCEDURE.
Para "recuperarlos" del archivo de trabajo del sort se emplea la instrucción
RETURN. Esta instrucción es equivalente a un READ sobre un archivo
normal. La sintaxis es:
Las funciones de las cláusulas INTO y AT END son las mismas que en la
instrucción READ.
Ejemplo. Recuperar y procesar todos los registros ordenados del archivo
MAESTRO.
PROCSA-MAESTRO-ORDNDO SECTION.
SET NO-FIN-ARCHVO TO TRUE.
PERFORM RECPRA-REGSTRO-SORT.
PERFORM UNTIL FIN-ARCHVO
PERFORM PROCSA~REGSTRO-MAESTRO
PERFORM RECPRA-REGSTRO-SORT
END-PERFORM.
…
…
RECPRA-REGSTRO-SORT.
RETURN SD-MAESTRO-TRABAJO INTO WS-REGSTRO-MAESTRO
AT END
SET FIN~ARCHVO TO TRUE
En resumen:
Solo hay que recordar que cada sección (SECTION) de c6digo inicia en
donde está el encabezado de la sección (nombre de la sección seguido de
la palabra reservada SECTION) . Y termina en donde comienza otra
sección. Esto significa que todo el código que este por debajo de un
encabezado de sección pertenece a dicha sección.
Otra punto a tener presente es que no existe una instrucción para finalizar
una sección. si a la mitad de la sección se decide terminar el proceso no
existe forma de detener la ejecución de la sección, ya que el proceso se
sigue en cascada.
SORT-RETURN.
Este registro contiene un valor numérico de o si la operación de SORT fué
exitoso o de 16 si no lo fue.
Dentro de la INPUT PROCEDURE o de la OUTPUT PROCEDURE se
puede mover un valor de 16 para terminar la ejecución del proceso SORT.
La finalización ocurrirá en el siguiente RETURN o RELEASE que se
ejecute.
SORT-CORE-SIZE.
Mediante este registro se le especifica al SORT la cantidad de
almacenamiento temporal que estará disponible en bytes.
SORT-FILE-SIZE.
En este registro se puede especificar una cantidad numérica (antes de
ejecutar la instrucción SORT) para especificar la cantidad aproximada de
registros que participarán en el SORT. Esto es útil para que el SORT se
prepare y optimize el uso de la memoria auxiliar.
SORT-MODE-SIZE.
2.7. Subprogramas.
Un subprograma es aquel que no realiza un proceso que sea ejecutado
directamente por el usuario, sino que es lanzado por otro proceso. Al
proceso que es ejecutado por el usuario directamente se le llama
Programa principal. Los programas que son ejecutados por otros
programas se les llama subprogramas.
CALL {<identificador>I<literal>}
USING [{BY REFERENCEIBY CONTENTII <variable-l> ..
ON OVERFLOW
<instrucciones error>
END-CALL.
CALL 'CALCISPT'
USING REGSTRO-EMPLDO-MAESTRO
CODGO-RETRNO
ON OVERFLOW
PROCEDURE DIVISION.
RUTNA-PRINCPL USING REGSTRO-MAESTRO
CODGO-RETRNO.
PERFORM VALDA-REGSTRO.
IF CATGRIA-EMPLDO > CATGRIA-PLANTA THEN
PERFORM CAI,CLA-ISPT-EMPLDO-PLANTA
ELSE
PERFORM CALCLA-ISPT-EMPLDO-EVNTL
END-IF.
GOBACK.
IDENTIFICATION DIVISION.
PROGRAM-ID. Al.
…
…
IDENTIFICATION DIVISION.
PROGRAM-ID. A2.
… A2
… A1
END PROGRAM A2 .
IDENTIFICATION DIVISION .
PROGRAM-ID. A3.
... A3
...
IDENTIFICATION DIVISION.
PROGRAM-ID. HOLA.
PROCEDURE DIVISION.
DISPLAY 'HOLA.... '.
END PROGRAM HOLA.
Un programa anidado solo puede ser llamado por el programa que esta
por encima de él directamente en la jerarquía, a menos que se declare al
programa como tipo COMMON. En tal caso, el programa puede ser
ejecutado por cualquier programa anteriormente declarado.
01 FD-ARCIIVO-LIQDCNS.
…
Ejemplo. Declaración de datos globales.
WORKING-STORAGE SECTION.
01 REGSTRO-FACTRA GLOBAL.
05 FOLIO-FACTRA PIC X(10)
05 FECHA-FACTRA PIC 9(06)
05 NUMRO-PEDDO PIC 9(06)
05 MONTO-FACTRA PIC 9(12)
05 CLAVE-LIQDCN PIC X(20)
01 VARBLES-GENRLS.
IDENTIFICATION DIVISION.
PROGRAM-ID. POSCLIQD.
PROCEDURE DIVISION.
SET EXSTE-LIQDCN TO TRUE.
START ARCHVO-LIQDCNS
KEY IS EQUAL TO CLAVE-LIQDCN
INVALID KEY
SET NO-EXSTE-LIQDCN TO TRUE
END-START.
END-PROGRAM POSCLIQD.
IDENTIFICATION DIVISION.
PROGRAM-ID. SUBPROG.
…
DATA DIVISION.
WORKING-STORAGE SECTION.
01 VARBLES-GENRLS.
05 CONTDR PIC 9 (02) VALUE ZERO.
05 ULTMO-PARMTRO PIC X(10) VALUE SPACES.
LINKAGE SECTION.
01 PARMTRO PIC X (10).
Liberaci6n de memoria.
Cuando un enlace dinámico es ejecutado, la subrutina es cargada en
memoria y ahí permanecerá ocupando la memoria a menos que esta se
libere. Para liberar la memoria utilice la instrucción CANCEL, cuya
sintaxis es:
CANCEL <nombre-programa>.
BY REFERENCE o
BY CONTENT
antes del nombre de la variable parámetro.
Ejemplo. Un llamado a una subrutina puede ser:
3. Prácticas
4.1. Evaluación
La evaluación estará formulada por :
La participación, que constituye el 5% de la evaluación final.
La práctica, que constituye el 35% de la evaluación final.
El examen teórico, que constituye el 60% de la evaluacion final.
4.2. Referencias
Material del Curso
CONCOBAV.DOC .- Red de IDS
Práctica:
PRACOBAV.DOC .- Red de IDS
Examen
EXACOBAV.DOC .- Red de IDS