Beruflich Dokumente
Kultur Dokumente
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 1 de 55
Maual de COBOL II Proyecto ALTAIR
INDICE
PROGRAMA ANIDADO.
Programa anidado
Comparticion de datos
Nuevas clausulas en la definicion de items
Niveles de tablas
Otras condiciones
Terminadores explicitos de sentencias
Llamada a subprogramas
LLamadas estaticas
LLamadas dinamicas
Sentencia cancel
Sentencia evaluate
Consideraciones sobre la evaluate
Ejemplos de evaluate
Sentencia initialize
Nueva opciones de la perform
Aspectos adicionales 0
Depuracion con cobol II
Interactivamente
Batch
Compilacion
Compilaciones con programas secundarios
Llamada entre programas cobol II
Transfiriendo control a otros programas
Programa principal y subprogramas
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 2 de 55
Maual de COBOL II Proyecto ALTAIR
LLAMANDO PROGRAMAS.
Llamando programas
Programas anidados
Estructura de programas anidados
Ejemplo
Normas para el uso de estructura de programas anidados
Llamando a programas anidados
Ejemplo
Instruccion inspect
Instruccion initialize
INSTRUCCIONES DE TABLAS.
Instruccion evaluate
Instruccion string
Instruccion unstring
Instruccion read
File section
Procedure division
Release
Return
Sort-Return
Clausula occurs
TABLAS.
Tablas
Tablas de longitud variable
Descripcion de una tabla
Tablas de mas de una dimension
Tablas de mas de una dimension
Indexacion
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 3 de 55
Maual de COBOL II Proyecto ALTAIR
Declaracion 'SET'
Declaracion 'SEARCH'
Opcion 'VARYING'
Tablas definidas con mas de un indice
Busqueda binaria
Declaracion 'SEARCH ALL'
Busqueda dicotomica
Literales
Ficheros ESDS
EJEMPLOS DE RUTINAS.
WLM.-IBM
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 4 de 55
Maual de COBOL II Proyecto ALTAIR
ID DIVISION.
----
ENVIROMMENT DIVISION.
----
DATA DIVISION.
----
PROCEDURE DIVISION.
----
END PROGRAM Nom-prog. ------> (identico al de PROGRAM-ID.)
---------------------
| PROGRAMA ANIDADO |
---------------------
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 5 de 55
Maual de COBOL II Proyecto ALTAIR
COMPARTICION DE DATOS
-----------------------
--> GLOBAL B
--> EXTERNAL B
--> POINTER B
Tambien en :
- sentencia SET.
- En una condicion de relacion.
- En la "USING" de una "CALL", "ENTRY" o cabecera
de "PROCEDURE DIVISION".
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 6 de 55
Maual de COBOL II Proyecto ALTAIR
2) NIVELES DE TABLAS.
1) OPERACIONES DE CONDICION.
2) OTRAS CONDICIONES.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 7 de 55
Maual de COBOL II Proyecto ALTAIR
END-ADD END-CALL
END-DIVIDE END-EVALUATE
END-PERFORM END-READ
END-SEARCH END-START
END-UNSTRING END-WRITE
END-COMPUTE END-DELETE
END-IF END-MULTIPLY
END-RETURN END-REWRITE
END-STRING END-SUBTRACT
END-WRITE
Ejemplo:
| ADD 1 TO CONTADOR |
| ON SIZE ERROR SET ERROR-OPERACION TO TRUE |
| END-ADD |
4) LLAMADA A SUBPROGRAMAS
BY REFERENCE:
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 8 de 55
Maual de COBOL II Proyecto ALTAIR
BY CONTENT:
LLAMADAS ESTATICAS
-------------------
LLAMADAS DINAMICAS
-------------------
SENTENCIA CANCEL
=================
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 9 de 55
Maual de COBOL II Proyecto ALTAIR
SENTENCIA EVALUATE
|EVALUATE IDENTIFIC-1 |
| |
| LITERAL |
| |
| EXPRESION |
| |
| TRUE |
| |
| FALSE ALSO ...... (VARIOS) |
| |
| LAS MISMAS EXPRESIONES |
| |
|WHEN FRASE-1 |
| |
| ALSO FRASE-2 .....(VARIAS) |
| |
| SENTENCIA IMPERATIVA |
| |
| |
|[ WHEN OTHER SENTENCIA IMPERATIVA ] |
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 10 de 55
Maual de COBOL II Proyecto ALTAIR
EJEMPLOS DE EVALUATE
----------------------
EVALUATE CAMPO1
WHEN 'D'
MOVE 'CONDUCTOR' TO CAMPO1
WHEN 'R'
MOVE 'COCHE' TO CAMPO1
WHEN SPACE
MOVE SPACES TO CAMPO1
END-EVALUATE
---> USANDO IF
IF CAMPO1 = 'D'
MOVE 'CONDUCTOR' TO CAMPO1
ELSE
IF CAMPO1 = 'R'
MOVE 'COCHE' TO CAMPO1
ELSE
IF CAMPO1 = SPACE
MOVE SPACES TO CAMPO1
END-IF
END-IF
END-IF
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 11 de 55
Maual de COBOL II Proyecto ALTAIR
SENTENCIA INITIALIZE
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 12 de 55
Maual de COBOL II Proyecto ALTAIR
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 13 de 55
Maual de COBOL II Proyecto ALTAIR
| |
| PERFORM PROC-1 [ THRU PROC-2 ] |
| |
| [ WITH TEST BEFORE / |
| |
| AFTER ] |
| |
| VARYING IDENT-1 FROM IDENT-2 |
| |
| INDEX-1 INDEX-2 |
| |
| LITERAL |
| |
| BY IDENT-3 UNTIL CONDICION-1 |
| |
| INDEX-3 |
| |
| |
| AFTER ... FROM ..... BY .... UNTIL ... |
| |
| |
| [ DECLARACION IMPERATIVA |
| |
| END-PERFORM ] |
ASPECTOS ADICIONALES
=====================
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 14 de 55
Maual de COBOL II Proyecto ALTAIR
se puede utilizar:
INTERACTIVAMENTE
----------------
BATCH
-----
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 15 de 55
Maual de COBOL II Proyecto ALTAIR
COMPILACION
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 16 de 55
Maual de COBOL II Proyecto ALTAIR
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 17 de 55
Maual de COBOL II Proyecto ALTAIR
+--------------+-------------+-------------------------------------+
|Tipo programa |Finaliza con:| Efectos que causa |
+--------------+-------------+-------------------------------------+
| MAIN PROGRAM | STOP RUN | Termina la RUN UNIT y deletea |
| (programa | | todos los programas llamados di- |
| (programa | | los programas llamados dinamicamen- |
| principal) | | namicamente en la RUN UNIT y |
| | | todos los programas linkeditados |
| | | con aquellos. El control es de- |
| | | vuelto al llamador del programa |
| | | PRINCIPAL que usualmente suele |
| | | ser el sistema operativo |
+--------------+-------------+-------------------------------------+
| MAIN PROGRAM | GOBACK | Tiene el mismo efecto que |
| (programa | | STOP RUN |
| principal) | | |
+--------------+-------------+-------------------------------------+
| MAIN PROGRAM |EXIT PROGRAM | No tiene ningun efecto |
| (programa | | |
| principal) | | |
+--------------+-------------+-------------------------------------+
| SUBPROGRAMA |EXIT PROGRAM | Devuelve control a su inmediato |
| | o | llamador sin finalizar la RUN UNIT |
| | GOBACK | |
+--------------+-------------+-------------------------------------+
| SUBPROGRAMA | STOP RUN | el efecto es el mismo que en |
| | | un programa principal: Todos los |
| | | programas COBOL en la RUN UNIT |
| | | son terminados y se devuelve |
| | | control al llamante. |
+--------------+-------------+-------------------------------------+
| SUBPROGRAMA: Una sentencia EXIT PROGRAM implicita es gene- |
| rada si no hay una instruccion siguiente eje-|
| cutable |
+------------------------------------------------------------------+
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 18 de 55
Maual de COBOL II Proyecto ALTAIR
LLAMANDO PROGRAMAS
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 19 de 55
Maual de COBOL II Proyecto ALTAIR
PROGRAMAS ANIDADOS
EJEMPLO:
--------
+-- Programa X
| --------
| .......
| Call X1
| Call X2
| .......
| Stop run
|
| +-- Programa X1
| | --------
||
| | ........
| | Call X11
| | Call X12
| | ........
| | Stop run
||
| | +-- Programa X11
| | | --------
|||
| | | ........
| | | ........
| | | Exit Program
|||
| | +-- End Program X11
||
| | +-- Programa X12
| | | --------
|||
| | | ........
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 20 de 55
Maual de COBOL II Proyecto ALTAIR
| | | ........
|||
| | | Exit Program
|||
| | +-- End Program X12
||
| +--
|
| +-- Programa X2
| | --------
||
| | .........
| | .........
| | Exit Program
||
| +-- End Program X2
|
+-- End Program X
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 21 de 55
Maual de COBOL II Proyecto ALTAIR
EJEMPLO:
--------
+-- Program-id. A
| -----------
|
| +-- Program-id. A1
| | -----------
||
| | +-- Program-id. A11
| | | -----------
|||
| | | +-- Program-id. A111
| | | | -----------
||| |
| | | +-- End Program A111
|||
| | +-- End Program A11
||
| +-- End Program A1
|
| +-- Program-id. A2 is COMMON
| | -----------
||
| +-- End Program A2
|
| +-- Program-id. A3 is COMMON
| | -----------
||
| +-- End Program A3
|
+-- End Program A
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 22 de 55
Maual de COBOL II Proyecto ALTAIR
+----------+----------------+-----------------------+
| El | Puede llamar | y Puede ser llamado |
| Programa | a los programas| por los programas |
+----------+----------------+-----------------------+
| A | A1,A2,A3 | Ninguno |
+----------+----------------+-----------------------+
| A1 | A11,A12,A2,A3 | A |
+----------+----------------+-----------------------+
| A11 | A111,A12,A2,A3 | A1 |
+----------+----------------+-----------------------+
| A111 | A12,A2,A3 | A11 |
+----------+----------------+-----------------------+
| A12 | A2,A3 | A1,A11,A111 |
+----------+----------------+-----------------------+
| A2 | A3 | A,A1,A11,A111,A12,A3 |
+----------+----------------+-----------------------+
| A3 | A2 | A,A1,A11,A111,A12,A2 |
+----------+----------------+-----------------------+
Observar:
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 23 de 55
Maual de COBOL II Proyecto ALTAIR
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 24 de 55
Maual de COBOL II Proyecto ALTAIR
Ejemplo:
--------
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 25 de 55
Maual de COBOL II Proyecto ALTAIR
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 26 de 55
Maual de COBOL II Proyecto ALTAIR
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 27 de 55
Maual de COBOL II Proyecto ALTAIR
EJEMPLO:
--------
LINKAGE SECTION
-----------------
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 28 de 55
Maual de COBOL II Proyecto ALTAIR
INTRUCCION INSPECT
------------------
INSTRUCCION INITIALIZE
----------------------
INITIALIZE ALFANUMERIC-1
REPLACING ALPHANUMERIC DATA BY ALPHANUM-3
INITIALIZE CAMPO-NUMERICO
REPLACING NUMERIC DATA BY CAMPO-NUMERICO-2
INITIALIZE CAMPO-EDICION
REPLACING ALPHANUMERIC-EDITED DATA BY CAMPO-EDICIION-2
01 TABLA-ENTRADA.
05 ENTRADA OCCURS 100 TIMES.
10 NOMBRE-TAB PIC X(5). <------ '$bbbb' o '$$$$$'.
10 NOMBRE-TAB PIX 9(5).
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 29 de 55
Maual de COBOL II Proyecto ALTAIR
INITIALIZE TABLA-ENTRADA
REPLACING ALPHANUMERIC DATA BY [ALL] '$'.
--------------------
-----------
|A|A|A|A|A|
-----------
12345
INSTRUCCIONES DE TABLAS
01 TABLA-1.
05 TABLA-ENTRY OCCURS 10 TIMES INDEXED BY IND-1.
10 TABLA-ENTRY2 OCCURS 5 TIMES
ASCENDING KEY IS KEY1
INDEXED BY IND-3.
20 KEY1 PIC X(5).
20 KEY2 PIC X(10).
SET IND-1 TO 2.
SEARCH TABLA-1
AT END ..............
WHEN tabla-ENTRY3 (IND-1, IND-2, IND-3) = '.......'
WHEN .........
WHEN .........
WHEN .........
END-SEARCH.
INSTRUCCION EVALUATE.
---------------------
EVALUATE TRUE
WHEN ESTADO-CASADO
.................
WHEN ESTADO-SOLTERO
.................
END-EVALUATE.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 30 de 55
Maual de COBOL II Proyecto ALTAIR
EVALUATE CANTIDAD * 4
WHEN NOT NUMERIC
..................
..................
WHEN 1 THRU 10
..................
..................
WHEN NOT 11 THRU 20
..................
..................
END-EVALUATE.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 31 de 55
Maual de COBOL II Proyecto ALTAIR
INSTRUCCION STRING.
-------------------
STRING
CAMPO-1 CAMPO-2 DELIMITED BY CAMPO-3
CAMPO-4 DELIMITED BY SIZE <-------- Todo
INTO CAMPO-7
WITH POINTER CAMPO-8. <---------- Contiene el numero de
caracter a transmitir
(no < 1 ni > que la
variable receptora).
campo-8
__ la opcion
|11| [ON OVERFLOW sentencia-imperativa]
-- se ejecutara cuando se excedan
inicializar a 1 los limites
antes de la
ejecucion
INSTRUCCION UNSTRING.
----------------------
delimitador
en ejecucion
_
|?|
-
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 32 de 55
Maual de COBOL II Proyecto ALTAIR
campo-origen
_________________________________
|1|2|3|*|*|4|5|6|?|?|7|A|B|C|D|E|F|
---------------------------------
campo-final-2 marca-2
_________ _
|4|5|6|b|b| |?|
--------- -
campo-final-4 cuenta-4
_________ _
|7|A|B|C|D| |5|
--------- -
apuntador contador-total
__ __
|18| |05| <-------+------ inicializados a 1
-- -- | antes de la ejecucion.
| |
+------------------------------+
INSTRUCCION READ
----------------
READ nombre-fichero
AT END ..........
NOT AT END ......
END-READ.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 33 de 55
Maual de COBOL II Proyecto ALTAIR
COBOL II : S O R T
FILE SECTION.
------------
SD file-name1
DATA RECORD IS .......
01 .........
En la SD se define el fichero que vamos a ordenar.
PROCEDURE DIVISION.
------------------
SORT file-name1
----
_ _
| ASCENDING |
| --------- |
ON | DESCENDING | KEY data-name1, data-name2,....
| ---------- |
- --
__ __
| USING file-name2 ... |
| ----- |
| INPUT PROCEDURE |
| --------------- _ _ |
| | THROUGH | |
| IS section-name1 [| ------- | section-name2 ] |
| | THRU | |
| | ---- | |
| - -- |
| |
-- --
__ __
| GIVING file-name3 ... |
| ----- |
| OUTPUT PROCEDURE |
| ---------------- _ _ |
| | THROUGH | |
| IS section-name3 [| ------- | section-name4 ] |
| | THRU | |
| | ---- | |
| - -- |
| |
-- --
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 34 de 55
Maual de COBOL II Proyecto ALTAIR
*-->> ASCENDING
DESCENDING : Indica la secuencia en la que se va a ordenar
el fichero, ascendente ( de menor a moyor) o
descendente.
RELEASE
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 35 de 55
Maual de COBOL II Proyecto ALTAIR
RETURN
SORT-RETURN
Equivale al return-code.
Sort-return PIC S9(4).
CLAUSULA OCCURS
FORMATO 1:
---------
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 36 de 55
Maual de COBOL II Proyecto ALTAIR
01 REGISTRO-AUTOS.
02 NOMBRE PICTURE A(6).
02 MODELO PICTURE X(8).
02 DIARIA1 PICTURE 999.
02 DIARIA2 PICTURE 999.
02 DIARIA3 PICTURE 999.
" " " "
" " " "
" " " "
02 DIARIA1078 PICTURE 999.
02 DIARIA1079 PICTURE 999.
02 DIARIA1080 PICTURE 999.
01 REGISTRO-AUTOS.
02 NOMBRE PICTURE A(6).
02 MODELO PICTURE X(8).
02 DIARIA OCCURS 1080 PICTURE 999.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 37 de 55
Maual de COBOL II Proyecto ALTAIR
FORMATO 2:
---------
01 REGISTRO-AUTOS.
02 NOMBRE PIC A(6).
02 MODELO PIC X(8).
02 NUMERO-DIAS PIC 99.
02 DIARIA OCURRS 28 TO 31 TIMES
DEPENDING ON NUMERO-DIAS PIC 999.
01 REGISTRO-AUTOS.
02 NOMBRE PIC A(6).
02 MODELO PIC X(8).
02 DIARIA OCCURS 28 TO 31 TIMES
DEPENDING ON NUMERO-DIAS PIC 999.
02 NUMERO-DIAS PIC 99.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 38 de 55
Maual de COBOL II Proyecto ALTAIR
FORMATO 3:
---------
_ _
OCCURS entero-1 TO entero-2 TIMES | DEPENDING ON nombre-de-datos-1 |
------ - -
_ ASCENDING _ _ _
| --------- KEY IS nombre-de-datos-2 | nombre-de-datos-3 |...|...
- DESCENDING
----------
_ _ _ _
| INDEXED BY nombre-de-indice-1 | nombre-de-indice-2 | ... |
- - - -
TABLAS
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 39 de 55
Maual de COBOL II Proyecto ALTAIR
01 TABLADIAS.
03 UNDIA OCCURS 7 TIMES PIC X(9).
01 TABLADIAS.
03 UNDIA OCCURS 7 TIMES PIC X(9).
UNDIA(1) = LUNES
UNDIA(3) = MIERCOLES
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 40 de 55
Maual de COBOL II Proyecto ALTAIR
Para llenar con datos una tabla habra que tener en cuenta que:
01 TABLAMES.
02 FILLER PIC X(30) VALUE 'ENERO FEBRERO MARZO '.
02 FILLER PIC X(30) VALUE 'ABRIL MAYO JUNIO '.
02 FILLER PIC X(30) VALUE 'JULIO AGOSTO SEPTIEMBRE'.
02 FILLER PIC X(30) VALUE 'OCTUBRE NOVIEMBRE DICIEMBRE '.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 41 de 55
Maual de COBOL II Proyecto ALTAIR
01 TABLA.
02 ALUM OCCURS 50 TIMES.
03 NOTA OCCURS 10 TIMES PIC 99V99.
01 TABLA.
02 ELE1 OCCURS 3 TIMES.
03 ELE2 OCCURS 3 TIMES.
04 ELE3 OCCURS 2 TIMES PIC X(8).
INDEXACION
01 TABLA.
02 ELE PIC 9(3) OCCURS 20 TIMES
INDEXED BY K.
Esto define a TABLA con un indice "K". El elemento (ELE) aun puede
estar referenciado por medio de subindices.
DECLARACION "SET"
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 42 de 55
Maual de COBOL II Proyecto ALTAIR
UP BY identificador
SET nombre-indice-1 nombre-indice-2
DOWN BY literal
01 TABLA.
02 ELE PIC 99 OCCURS 10 TIMES
INDEXED BY K.
..................
..................
PROCEDURE DIVISION.
SET K TO ZERO.
CALCULO.
SET K UP BY 1.
IF K NOT > N ADD ELE(K) TO TOTAL
GO TO CALCULO.
..................
..................
DECLARACION "SEARCH"
====================
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 43 de 55
Maual de COBOL II Proyecto ALTAIR
_ _
SEARCH identificador | AT END declaracion-imperativa-1 |
- -
declaracion-imperativa-2
WHEN condicion-1
NEXT SENTENCE
_ declaracion-imperativa-3 _
| WHEN condicion-2 |
- NEXT SENTENCE -
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 44 de 55
Maual de COBOL II Proyecto ALTAIR
01 TABLA.
02 ELEM OCCURS 45 TIMES INDEXED BY I.
03 NOMBRE PIC X(10).
03 VENTA PIC 9(4).
...........................
...........................
PROCEDURE DIVISION.
...........................
...........................
BUSQUEDA.
SET I TO 1.
SEARCH ELEMEN AT END GO TO NOEXISTE
WHEN NOMBRE(I) = NOM
MOVE NOMBRE(I) TO NOMIN
MOVE VENTA(I) TO VENIM
WRITE .................
GO TO FIN.
NOEXISTE.
...........................
...........................
OPCION "VARYING"
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 45 de 55
Maual de COBOL II Proyecto ALTAIR
01 TABLA.
02 FDIARIA OCCURS 1080 TIMES INDEXED BY I1, I2, I3.
03 AUTOS PIC 9(3).
03 CAMIONES PIC 9(2).
........................
........................
SET I3 TO 125.
SEARCH FDIARIA VARYING I3 AT END GO TO FIN
WHEN ...................... (1)
........................
........................
SET I1 TO 125.
SEARCH FDIARIA AT END GO TO FIN
WHEN ...................... (2)
........................
........................
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 46 de 55
Maual de COBOL II Proyecto ALTAIR
BUSQUEDA BINARIA
================
01 TABLA.
02 ELEMEN PIC 9(4) OCCURS 20 TIMES
INDEXED BY I
ASCENDING KEY IS CLA.
x x-1
2 > numero de elementos de la tabla > 2
8 7
2 > 235 > 2
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 47 de 55
Maual de COBOL II Proyecto ALTAIR
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 48 de 55
Maual de COBOL II Proyecto ALTAIR
01 TABLA.
02 ELEM OCCURS 45 TIMES
INDEXED BY I
ASCENDING KEY NOMBRE.
03 NOMBRE PIC X(10).
03 VENTAS PIC 9(4).
...................................
...................................
BUSQUEDA.
SEARCH ALL ELEMEN AT END GO TO NOEXISTE
WHEN NOMBRE(I) = NOM
MOVE NOMBRE(I) TO ...
MOVE VENTAS(I) TO ...
GO TO FIN.
BUSQUEDA DICOTOMICA
I : INDICE
| |
| INICIALIZAR |
| MAYOR |
| MENOR |
--------------
|
|
___________________________________
_______ SI |
| NO | ------ MAYOR - MENOR = 1 |
| ESTA | |
------- |
| NO |
| |
____________________ |
| | |
| MAYOR - MENOR | |
| I = ------------- | |
| 2 | |
-------------------- |
| |
| |
|
TABLA(I) |
______ = . . > __________ |
| ESTA | ----- ------ ----- | MOVE I | |
------ . . | TO MAYOR | |
BUSQUEDA ---------- |
|
| < |
| |
__________ |
| MOVE I | |
| TO MENOR | ------------------------------
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 49 de 55
Maual de COBOL II Proyecto ALTAIR
LITERALES.
EJEMPLO:
01 LITERAL PIC x(5) VALUE '''DOS'''.
FICHEROS ESDS.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 50 de 55
Maual de COBOL II Proyecto ALTAIR
_________________________
| |
V |
>>___SET________identif-4____________TO___identif-6_____________><
|_ADDRESS OF identif-5__| |_ADDRESS OF identif-7_|
|______NULL____________|
POINTER
. La instruccion SET.
. En una comparacion.
. En la USING de una CALL o en la cabecera de la PROCEDURE.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 51 de 55
Maual de COBOL II Proyecto ALTAIR
EJEMPLOS.
___________
WORKING SECTION.
LINKAGE SECTION.
01 DFHCOMMAREA.
03 APUN-DIRCOM USAGE IS POINTER.
03 DIRCOM REDEFINES APUN-DIRCOM PIC S9(8) COMP.
01 DATOS-RECIBIDOS.
03 MOVTOS290 PIC X(290).
03 RETORNO PIC X.
COPY CWAAREC.
PROCEDURE DIVISION.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 52 de 55
Maual de COBOL II Proyecto ALTAIR
RUTINAS DE CALCULO
************************************
WORKING-STORAGE SECTION.
********
01 CAMPOS-NUMERICOS.
03 NUMDIAS PIC S9(5) COMP-3 VALUE +0.
03 CONTANOS PIC S9(5) COMP-3 VALUE +0.
03 D PIC S9(3) COMP-3 VALUE +0.
03 FECHA-DESDE PIC 9(6).
03 FILLER REDEFINES FECHA-DESDE.
05 DD-DESDE PIC 99.
05 MM-DESDE PIC 99.
05 AA-DESDE PIC 99.
03 FECHA-HASTA PIC 9(6).
03 FILLER REDEFINES FECHA-HASTA.
05 DD-HASTA PIC 99.
05 MM-HASTA PIC 99.
05 AA-HASTA PIC 99.
01 FILLER.
03 T1-DIAS PIC X(48) VALUE
'013102280331043005310630073108310930103111301231'.
03 T2-DIAS REDEFINES T1-DIAS OCCURS 12 TIMES.
05 MES PIC 99.
05 DIA PIC 99.
PROCEDURE DIVISION.
XXXX-CALCULO-DIAS.
******************
PERFORM
UNTIL CONTANOS = AA-HASTA AND
D = MM-HASTA
ADD DIA(D) TO NUMDIAS
ADD CN-1 TO D
IF D > CN-12
MOVE CN-1 TO D
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 53 de 55
Maual de COBOL II Proyecto ALTAIR
XXXX-CALCULO-DIAS-EXIT.
***********************
EXIT.
****************************************************
WORKING-STORAGE SECTION.
********
01 CAMPOS-NUMERICOS.
03 MESES PIC S9(3) COMP-3 VALUE +0.
03 CONTANOS PIC S9(3) COMP-3 VALUE +0.
03 FECHA-DESDE PIC 9(6).
03 FILLER REDEFINES FECHA-DESDE.
05 DD-DESDE PIC 99.
05 MM-DESDE PIC 99.
05 AA-DESDE PIC 99.
03 FECHA-HASTA PIC 9(6).
03 FILLER REDEFINES FECHA-HASTA.
05 DD-HASTA PIC 99.
05 MM-HASTA PIC 99.
05 AA-HASTA PIC 99.
01 FILLER.
03 T1-DIAS PIC X(48) VALUE
'013102280331043005310630073108310930103111301231'.
03 T2-DIAS REDEFINES T1-DIAS OCCURS 12 TIMES.
05 MES PIC 99.
05 DIA PIC 99.
PROCEDURE DIVISION.
XXXX-CALCULO-MESES.
*******************
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 54 de 55
Maual de COBOL II Proyecto ALTAIR
XXXX-CALCULO-MESES-EXIT.
************************
EXIT.
****************************************************
WORKING-STORAGE SECTION.
********
01 CAMPOS-NUMERICOS.
03 MESES PIC S9(3) COMP-3 VALUE +0.
03 CONTANOS PIC S9(3) COMP-3 VALUE +0.
03 FECHA-DESDE PIC 9(6).
03 FILLER REDEFINES FECHA-DESDE.
05 DD-DESDE PIC 99.
05 MM-DESDE PIC 99.
05 AA-DESDE PIC 99.
03 FECHA-HASTA PIC 9(6).
03 FILLER REDEFINES FECHA-HASTA.
05 DD-HASTA PIC 99.
05 MM-HASTA PIC 99.
05 AA-HASTA PIC 99.
****>>>>>>>> TABLA DE MESES CON DIAS
01 FILLER.
03 T1-DIAS PIC X(48) VALUE
'013102280331043005310630073108310930103111301231'.
03 T2-DIAS REDEFINES T1-DIAS OCCURS 12 TIMES.
05 MES PIC 99.
05 DIA PIC 99.
/opt/scribd/conversion/tmp/scratch2343/41158322.doc
Página 55 de 55