
- COBOL - Inicio
- COBOL - Descripción General
- COBOL - Configuración del Entorno
- COBOL - Estructura del Programa
- COBOL - Sintaxis Básica
- COBOL - Tipos de Datos
- COBOL - Verbos Básicos
- COBOL - Diseño de Datos
- COBOL - Instrucciones de Condición
- COBOL - Bucle Declaraciones
- COBOL - Manejo de Cadenas
- COBOL - Proceso de Tabla
- COBOL - Manejo de Archivos
- COBOL - Organización de Archivos
- COBOL - Modo de Acceso a Archivos
- COBOL - Manejo de Archivos Los Verbos
- COBOL - Subrutinas
- COBOL - Clasificación iIterna
- COBOL - Interfaz de la Base de Datos
- COBOL - Preguntas de la Entrevista
COBOL - Proceso de Tabla
Las matrices de COBOL son conocidos como tablas. Un array es una estructura de datos lineal y es una recopilacin de los distintos elementos de datos del mismo tipo. Los datos de una tabla se clasifican internamente.
Declaracin mesa
Tabla de Datos se declara en Divisin. se produceClusula se utiliza para definir una tabla. Clusula se indica la repeticin de datos definicin de nombre. Slo se puede utilizar con nmeros de nivel a partir de 02 a 49. No se produce el uso con clusula redefine. Descripcin de un y bidimensional tabla es el siguiente:
One-Dimensional Tabla
En una tabla multidimensional, se produce clusula slo se utiliza una vez en la declaracin. WS-TABLA es el elemento de grupo que contiene tabla. WS-B nombres de los elementos de la tabla que se producen 10 veces.
Sintaxis
Siguiente es la sintaxis para definir una tabla multidimensional:
01 WS-TABLE. 05 WS-A PIC A(10) OCCURS 10 TIMES.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-A PIC A(10) VALUE 'TUTORIALS' OCCURS 5 TIMES. PROCEDURE DIVISION. DISPLAY "ONE-D TABLE : "WS-TABLE. STOP RUN.
JCL para ejecutar el programa COBOL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
ONE-D TABLE : TUTORIALS TUTORIALS TUTORIALS TUTORIALS TUTORIALS
Two-Dimensional Tabla
Una tabla bidimensional se crea con los elementos de datos se longitud variable. Para referencia, vaya a travs de la sintaxis y, a continuacin, intentar analizar la tabla. La primera matriz(WS-A) puede ocurrir a partir de 1 a 10 veces y la matriz interna(WS-C) puede ocurrir de 1 a 5 veces. Para cada una de las entradas de WS-A, habr 5 entradas correspondientes de WS-C.
Sintaxis
Siguiente es la sintaxis para la definicin de una tabla de dos dimensiones:
01 WS-TABLE. 05 WS-A OCCURS 10 TIMES. 10 WS-B PIC A(10). 10 WS-C OCCURS 5 TIMES. 15 WS-D PIC X(6).
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-A OCCURS 2 TIMES. 10 WS-B PIC A(10) VALUE ' TUTORIALS'. 10 WS-C OCCURS 2 TIMES. 15 WS-D PIC X(6) VALUE ' POINT'. PROCEDURE DIVISION. DISPLAY "TWO-D TABLE : "WS-TABLE. STOP RUN.
JCL para ejecutar el programa COBOL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
TWO-D TABLE : TUTORIALS POINT POINT TUTORIALS POINT POINT
Subscript
Tabla elementos individuales se accede mediante subndice. Subndice valor puede oscilar entre 1 y el nmero de veces que el cuadro se produce. Subndice puede ser cualquier nmero positivo. No se requiere ninguna declaracin de datos divisin. Se crea automticamente con clusula se produce.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-A OCCURS 3 TIMES. 10 WS-B PIC A(2). 10 WS-C OCCURS 2 TIMES. 15 WS-D PIC X(3). PROCEDURE DIVISION. MOVE '12ABCDEF34GHIJKL56MNOPQR' TO WS-TABLE. DISPLAY 'WS-TABLE : ' WS-TABLE. DISPLAY 'WS-A(1) : ' WS-A(1). DISPLAY 'WS-C(1,1) : ' WS-C(1,1). DISPLAY 'WS-C(1,2) : ' WS-C(1,2). DISPLAY 'WS-A(2) : ' WS-A(2). DISPLAY 'WS-C(2,1) : ' WS-C(2,1). DISPLAY 'WS-C(2,2) : ' WS-C(2,2). DISPLAY 'WS-A(3) : ' WS-A(3). DISPLAY 'WS-C(3,1) : ' WS-C(3,1). DISPLAY 'WS-C(3,2) : ' WS-C(3,2). STOP RUN.
JCL para ejecutar el programa COBOL.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
WS-TABLE : 12ABCDEF34GHIJKL56MNOPQR WS-A(1) : 12ABCDEF WS-C(1,1) : ABC WS-C(1,2) : DEF WS-A(2) : 34GHIJKL WS-C(2,1) : GHI WS-C(2,2) : JKL WS-A(3) : 56MNOPQR WS-C(3,1) : MNO WS-C(3,2) : PQR
ndice
Elementos de la tabla tambin se puede acceder mediante ndice. Un ndice es un desplazamiento del elemento desde el inicio de la tabla. Un ndice se declara con clusula se produce mediante INDEXADO POR clusula. El valor del ndice se puede cambiar mediante instruccin SET y REALIZAR diferentes opcin.
Sintaxis
Es la siguiente sintaxis para definir ndice en una tabla:
01 WS-TABLE. 05 WS-A PIC A(10) OCCURS 10 TIMES INDEXED BY I.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-A OCCURS 3 TIMES INDEXED BY I. 10 WS-B PIC A(2). 10 WS-C OCCURS 2 TIMES INDEXED BY J. 15 WS-D PIC X(3). PROCEDURE DIVISION. MOVE '12ABCDEF34GHIJKL56MNOPQR' TO WS-TABLE. PERFORM A-PARA VARYING I FROM 1 BY 1 UNTIL I >3 STOP RUN. A-PARA. PERFORM C-PARA VARYING J FROM 1 BY 1 UNTIL J>2. C-PARA. DISPLAY WS-C(I,J).
JCL para ejecutar el programa COBOL.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
ABC DEF GHI JKL MNO PQR
Instruccin Set
Instruccin Set se usa para cambiar el valor del ndice. Verbo Set se usa para inicializar, aumentar o disminuir el valor del ndice. Se utiliza en las tareas de bsqueda y bsqueda para localizar todos los elementos en la tabla.
Sintaxis
Siguiente es la sintaxis para utilizar una instruccin Set:
SET I J TO positive-number SET I TO J SET I TO 5 SET I J UP BY 1 SET J DOWN BY 5
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-A OCCURS 3 TIMES INDEXED BY I. 10 WS-B PIC A(2). 10 WS-C OCCURS 2 TIMES INDEXED BY J. 15 WS-D PIC X(3). PROCEDURE DIVISION. MOVE '12ABCDEF34GHIJKL56MNOPQR' TO WS-TABLE. SET I J TO 1. DISPLAY WS-C(I,J). SET I J UP BY 1. DISPLAY WS-C(I,J). STOP RUN.
JCL para ejecutar el programa COBOL.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
ABC JKL
Buscar
Bsqueda lineal es un mtodo de bsqueda, que se utiliza para buscar elementos dentro de la tabla. Se puede realizar en clasificados, as como sin clasificar. Slo se utiliza para las tablas de ndice frase. Se inicia con el valor inicial del ndice. Si el elemento buscado no se encuentra, el ndice se incrementa de forma automtica en 1 y contina hasta el final de la tabla.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-A PIC X(1) OCCURS 18 TIMES INDEXED BY I. 01 WS-SRCH PIC A(1) VALUE 'M'. PROCEDURE DIVISION. MOVE 'ABCDEFGHIJKLMNOPQR' TO WS-TABLE. SET I TO 1. SEARCH WS-A AT END DISPLAY 'M NOT FOUND IN TABLE' WHEN WS-A(I)=WS-SRCH DISPLAY 'LETTER M FOUND IN TABLE' END-SEARCH. STOP RUN.
JCL para ejecutar el programa COBOL.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
LETTER M FOUND IN TABLE
Buscar todos
Buscar en todos es un mtodo de bsqueda binaria, que se utiliza para buscar elementos dentro de la tabla. Tabla debe ser de forma ordenada para la bsqueda. El ndice no requieren inicializacin. En bsqueda binaria el cuadro est dividido en dos mitades y determina en la que la mitad de los elemento buscado est presente. Este proceso se repite hasta que el elemento se encuentra o se llega al final.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TABLE. 05 WS-RECORD OCCURS 10 TIMES ASCENDING KEY IS WS-NUM INDEXED BY I. 10 WS-NUM PIC 9(2). 10 WS-NAME PIC A(3). PROCEDURE DIVISION. MOVE '12ABC56DEF34GHI78JKL93MNO11PQR' TO WS-TABLE. SEARCH ALL WS-RECORD AT END DISPLAY 'RECORD NOT FOUND' WHEN WS-NUM(I)=93 DISPLAY 'RECORD FOUND ' DISPLAY WS-NUM(I) DISPLAY WS-NAME(I) END-SEARCH.
JCL para ejecutar el programa COBOL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C //STEP1 EXEC PGM=HELLO
Cuando se compila y ejecuta el programa antes mencionado, se produce el resultado siguiente:
RECORD FOUND 93 MNO