Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COBOL
Módulo Básico
COBOL
Tópico 310 - Codificando un programa COBOL
ggz
Tópico 320 - Editando un programa
Tópico 330 - Procesando Archivos
Módulo Específico
DB2 - SQL
JCL
CICS 1
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 1/124
Puntualidad
Respeto
Preguntar
2
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 2/124
Bibliografía
3
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 3/124
4
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 4/124
Identification Division.
Configuration Section.
Environment Division.
Input-Output Section. File Control.
Estructura de un
Programa COBOL File Section.
Linkage Section.
Procedure Division.
1 2 3 4 «««« 7
7890123456789012345678901234567890123456789012
******************************************************************
* IDENTIFICATION DIVISION *
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. PGM330.
AUTHOR. CORITEL.
DATE-WRITTEN. JULIO, 2008.
DATE-COMPILED. JULIO, 2008.
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
1 2 3 4««««. 7
Describe detalladamente los datos usados, 7890123456789012345678901234567890123456789012
los de entrada y salida, reservando el *************************************************
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
1 2 3 4««««. 7
Record Layout 7890123456789012345678901234567890123456789012
********************************************************
La definición del registro de datos puede ser realizada a * DATA DIVISION *
10
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
05 RPT-ENCABEZADO. 1
Lines and Headings 10 FILLER PIC X(57) VALUE SPACES.
10 FILLER PIC X(17) VALUE ¶REPORTE DE NOMINA·.
10 FILLER PIC X(58) VALUE SPACES.
Definiciónde constantes / variablesque integran cada una de las 05 RPT-CABECERA. 2
líneas que corresponden a los títulos,cabeceras, líneas de detalle, 10 FILLER PIC X(10) VALUE SPACES.
11
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
1 2 3 4««««. 7
Flags and switches 7890123456789012345678901234567890123456789012
DATA DIVISION.
Elementos de datos condicionales que indican verdadero o *************************************************
falso. * W ORKING-STORAGE SECTION *
*************************************************
El nivel reservado para definir las condiciones de un switch es
W ORKING-STORAGE SECTION.
88.
Cada cláusula debe ir acompañada con la palabra VALUE. 01 WS-WORK-AREA.
Se pueden tener tantas banderas como se requieran, con *************************************************
* FLAGS AND SWITCHES *
uno o varios nivel es diferentes. *************************************************
La condición de un switch es activada mediante la 05 BANDERAS.
instrucción SET.
10 SW-ARCHIVO PIC X.
88 SW-EOF VALUE µY¶.
Ejemplo : 88 SW-NOT-EOF VALUE µN¶.
En una pantalla en la que se manejan las opciones de (altas,
10 SW-OPCIONES PIC X.
bajas, modificaciones, consultas, salir), y además de esto
88 SW-ALTA VALUE µ1¶.
queremos controlar el fin en l a lectura de un archivo. 88 SW-BAJA VALUE µ2¶.
88 SW-MODIF VALUE µ3¶.
SET SW-NOT-EOF TO TRUE. 88 SW-CONSULTA VALUE µ4¶.
88 SW-SALIR VALUE µ5¶.
12
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
13
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
IF NOT END-OF-REG-EXP
SET LS-TBL-IDX UP BY 1
END-IF.
3100-LOAD-EXIT. FIN DE
EXIT. DE PÁRRAFO
14
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
Comentarios.
El párrafo
nombre dede finalización
inicio marca la la
pero agregando terminación del párrafo.
terminación -EXIT El nombre debe tener el mismo
El párrafo de terminación no es requerido
15
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
Sentencias
Una instrucción es un comando de COBOL (verbo) que realiza una función específica.
16
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
Módulo Básico
Módulo Básico
Cobol
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
18
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om
² Comandos de edición
Comandos de línea.
Comandos Descripción
i, in Inserta líneas
19
² Comandos de edición
Comandos primarios.
Comando Descripción
SAVE Salva el programa
CANCEL Cancela los cambios
FIND cadena·
¶ Busca una carácter o cadena
[ALL, FIRST, LAST, NEXT,PREV] de caracteres especifica
CHANGE antes· después·
¶ ¶ Reemplaza caracteres o
[ALL] cadenas de caracteres
CREATE Crea elementos nuevos
Copia líneas a partir de un
COPY
programa, copy, etc. a otro
20
Tecla Descripción
F1 HELP - Ayuda
F2 SPLIT ² Divide la pantalla en dos diferentes sesiones
F3 END ² Vuelve al menú anterior
F4 RETURN- Vuelve al menú principal
C ² Programas CICS
22
² Revisión de sintaxis.
Depuración de errores
² Errores de puntuación
23
Módulo Básico
Módulo Básico
Cobol
25
² Archivos Secuenciales.
Organización
Acceso.
Dispositivos de almacenamiento.
26
Organización.
² Son accedidos a través de un archivo especial llamado índice, el cual está formado
por dos campos: un apuntador(dirección) y el campo llave.
Acceso.
Dispositivos de acceso.
27
28
- Incialización de switches
(SET sw-xxx TO TRUE)
2000-Inicio
( Housekeeping )
- Incialización de variables de trabajo y
lineas de detalle (INITIALIZE).
STOP RUN. 29
² Esta sentencia es acompañada de la cláusula THRU, la cual permite identificar la última línea
a ejecutar del párrafo.
PERFORM nombre-parrafo
THRU nombre-parrafo-EXIT
30
* 1000-MAINLINE *
***********************************************************
1000-MAINLINE.
Pasa
el control
PERFORM 2000-HOUSEKEEPING
THRU 2000-HOUSEKEEPING-EXIT.
PERFORM 3000-PROCESS
THRU 3000-PROCESS-EXIT.
PERFORM 8000-WRAP-UP
THRU 8000-WRAP-UP-EXIT.
STOP RUN.
***********************************************************
* 2000-HOUSEKEEPING *
***********************************************************
2000-HOUSEKEEPING.
PERFORM 2100-INICIALIZA-VAR
THRU 2100-INICIALIZA-VAR-EXIT.
* 2000-HOUSEKEEPING *
***********************************************************
2000-HOUSEKEEPING.
2000-HOUSEKEEPING-EXIT.
EXIT.
***********************************************************
* 2100-INICIALIZA-VAR *
***********************************************************
2100-INICIALIZA-VAR.
INITIALIZE VARIABLE-A
VARIABLE-B
VARIABLE-X
² La cláusula UNTIL es utilizada por la sentencia PERFORM para indicar que el párrafo debe ser
ejecutado hasta cumplir una determinada condición.
PERFORM nombre-parrafo
THRU nombre-parrafo-EXIT
UNTIL condicion.
² Por ejemplo:
PERFORM 2100-INIT-TABLE
THRU 2100-INIT-TABLE-EXIT
UNTIL WS-CONTADOR EQUAL TO CTE-CINCO.
33
² La sentencia OPEN permite abrir los archivos que requiere un programa además de :
Indicar al sistema cuáles son los archivos que serán accedidos por el programa
Identificar cuáles archivos serán usados para entrada de datos y cuáles serán archivos de
salida de datos.
34
LECTURA ESCRITURA
OPEN INPUT File-name1 OPEN OUTPUT File-name1
File-name2 F ile-name2
File-name3 File-name3
. .
. .
File-namen. File-namen.
LECTURA-ESCRITURA
OPEN INPUT File-name1
File-name2
OUTPUT File-name3
File-name4
EXTEND File-name5
.
.
File-namen.
35
INITIALIZE nombre-campo
INITIALIZE WS-CODIGO
WS-NOMBRE.
36
Su sintaxis:
MOVE campo-1 TO campo-2
² Por ejemplo:
37
Los campos alfanuméricos son alineados hacia la izquierda. Los datos son copiados al
área destino de izquierda a derecha, rellenando con espacios o truncando a la derecha.
² Ejemplo1.
Alfanuméricos Numéricos
WS-NOMBRE PIC X(5). C A R L A WS-CODIGO PIC 9(5). 5 4 3 2 1
38
Alfanuméricos
Numéricos
39
Numéricos
40
² Su sintaxis:
² La sentencia READ lee el registro del archivo especificado cuyo nombre es el mismo que el
asignado en la sección de FD.
² Los datos del registro son transferidos a través de la sentencia INTO en la definición del registro
que ha sido definido en la WS para el archivo.
² Para controlar el fin de archivo en base a una condición es utilizada la cláusula AT END.
41
42
² Sintaxis:
WRITE OUTPUT-REC
² Su sintaxis:
43
² Su sintaxis:
44
45
² Esta sentencia permite cerrar los archivos de entrada y salida usados durante el proceso del
programa.
² Su sintaxis:
CLOSE file-name1
file-name 2
file-namen.
² Ejemplo:
CLOSE INPUT-FILE
OUTPUT-FILE.
46
Módulo Básico
Módulo Básico
Cobol
Usar herramientas especiales de edición para hacer la información del reporte más fácil de
leer y entender.
Explicar el proceso del flujo de un programa que lee un registro a partir de un archivo,
formatea los datos y genera un reporte.
48
T
ópico 340 - Formateando Datos
Tipos de líneas en un reporte
Títulos/Headings
Línea de mensajes
49
05 REPORT-LINES.
10 RPT-HEADING1.
10 FILLER PIC X VALUE SPACES.
10 RPT-CODIGO PIC 9(6) VALUE 052920.
15 FILLER PIC X(38) VALUE SPACES.
15 FILLER PIC X(17) VALUE µREPORTE DE PRUEBA¶.
15 FILLER PIC X(70) VALUE SPACES.
50
² Asigna ceros a todas las posiciones de un campos numérico: ZERO, ZEROS, ZEROES.
La cláusula VALUE ALL permite indicar que el valor asignado ocupará todas las posiciones
del campo.
05 REPORT-LINES.
10 RPT-HEADING1.
51
² Variable.
Cambia su información durante la ejecución del programa, por ejemplo, las líneas de
detalle, los totales, etc.
52
Tipo de
Campo fuente Presentación Campo editado Presentación
edición
Edición de
PIC 999V99 08457 PIC 999.99 084.57
Decimales
Eliminación
de ceros a
PIC 99999.99 00544.75 PIC ZZZZ9.99 544.75
la
izquierda
000056788 567.88
473500991 4,735,009.00
Comas PIC 9(7)V99 PIC Z,ZZZ,ZZ9.99
000455679 4,556.79
055754907 557,549.07
000056788 $ 567.88
473500991 $4,735,009.00
Signo $ fijo PIC 9(7)V99 PIC $Z,ZZZ,ZZ9.99
000455679 $ 4,556.79
055754907 $ 557,549.07
53
Tipo de
Campo fuente Presentación Campo editado Presentación
edición
000056788 $567.88
Signo $ 473500991 $4,735,009.00
flotante PIC 9(7)V99 000455679 PIC $$,$$$,$$9.99 $4,556.79
055754907 $557,549.07
Adición de
PIC 9(4) 0054 PIC Z,ZZ9,000 54,000
ceros
Inserción de 010191 01 01 91
PIC 9(6) PIC 99B99B99
blancos 060192 06 01 92
54
Tipo de
Campo fuente Presentación Campo editado Presentación
edición
Adición de +3456 +3,456
Signo ³+´ PIC S9(4) +0005 PIC ++,++9 +5
(Cont.) -0032 -32
+3456 3,456
PIC S9(4) +0005 PIC -Z,ZZ9 5
-0032 - 32
+3456 3,456
PIC S9(4) +0005 PIC --,--9 5
-0032 -32
55
Tipo de
Campo fuente Presentación Campo editado Presentación
edición
+164589 $1,645.89CR
PIC S9(4)V99 PIC $Z,ZZ9.99CR
-164589 $1,645.89
Adición de +164589 $1,645.89
símbolos PIC S9(4)V99 PIC $Z,ZZ9.99DB
-164589 $1,645.89DB
contables:
CR - Positivo +164589 $1,645.89 CR
PIC S9(4)V99 PIC $Z,ZZ9.99BCR
DB ± Negativo -164589 $1,645.89
+164589 $1,645.89
PIC S9(4)V99 PIC $Z,ZZ9.99BDB
-164589 $1,645.89 DB
56
57
Asteriscos.
² Pueden ser codificados a la derecha del punto decimal. Los asteriscos aparecerán
aún cuando el valor sea cero.
² Pueden llegar a truncar un dígito del campo, ya que siempre imprimirá al menos un
asterisco.
58
42 caracteres
42 caracteres
59
************************************************************
* RECORD LAYOUTS *
************************************************************
10 EMP-REC.
15 EMP-NOMBRE PIC X(12).
15 EMP-TITULO PIC X.
15 EMP-INDUSTRIA PIC X(29).
10 PTR-REC REDEFINES EMP-REC.
15 PTR-NOMBRE PIC X(12).
15 PTR-TITULO PIC X.
15 PTR-CVE-CLIENTE PIC X(8).
15 PTR-CLIENTE PIC X(1O).
15 PTR-ESTATUS PIC X(6).
15 PTR-GASTOS PIC 9(3)V99.
60
Edición o formateo de los campos. Lo cual involucra mover cada campo del registro de
entrada a su correspondiente campo en la línea de detalle del reporte.
Impresión del reporte. Involucra la escritura de las cabeceras y líneas de detalle del
reporte.
61
Módulo Básico
Módulo Básico
Cobol
63
Display.
PIC 99 25 2 bytes
PIC 99V 25v 2 bytes
PIC 9(3)V99 321v35 5 bytes
64
Signados.
² Conservan el signo
con el carácter ¶S· .positivo o negativo sin ocupar un byte en memoria. Se representan
65
Compactados.
1 3 5 7
2 4 6 D
Totalbytes de memoria = 4
(No. Dígitos + 1) / 2
66
El mover valores entre campos numéricos, implica que si uno de los campos es signado, el
otro también lo sea, ya que de lo contrario se truncaría el signo, o bien se asumiría ¶+·.
67
Correcto
Definición en Working Storage Tratamiento en Procedure Division
/incorrecto
10 WS-DATE.
68
Definición en
Working-Storage Section. Tratamiento en Procedure Division Correcto /incorrecto
10 WS-DATE.
15 WS-AA PIC 99.
15 WS-MM PIC 99.
15 WS-DD PIC 99. MOVE WS-DATE TO WS-DATE-TEMP
CORRECTO
MOVE WS-DATE-TEMP TO WS-DATE-COMP
10 WS-DATE-TEMP PIC 9(6).
10 WS-DATE.
15 WS-AA PIC 99.
15 WS-MM PIC 99.
15 WS-DD PIC 99.
MOVE WS-DATE-RED TO WS-DATE-COMP CORRECTO
10 WS-DATE-RED REDEFINES WS-DATE
PIC 9(6).
69
² MULTIPLY. Multiplicación de valores. El resultado es almacenado en los campos especificados por la
instrucción BY.
A BY B C
MULTIPLY
2 3 10
Resultado 2 6 20
70
DIVIDE A INTO B
2 10
2 5
71
5 23 4 3
72
73
74
T A
ópico 350 - ritmética y Lógica de un Programa COB
Sentencia: COMPUTE
² Esta sentencia permite realizar operaciones aritméticas sin necesidad de recurrir a los verbos
aritméticos.
+ Suma
- Resta
* Multiplicación
/ División
** Exponenciación
75
T A
ópico 350 - ritmética y Lógica de un Programa COB
Sentencia: COMPUTE
() Paréntesis
** Exponenciación
* , / Multiplicación, División
+, - Suma, Resta
² Ejemplos.
COMPUTE A = A + B + C
COMPUTE A = ( B * ( C - D ) )
76
T A
ópico 350 - ritmética y Lógica de un Programa COB
Sentencia: COMPUTE vs VERBOS ARITMÉTICOS
MULTIPLY B * E GIVING A
COMPUTE WS-IVA = WS-COMPRA * CTE-15 / CTE-100 MULTIPLY WS-COMPRA BY CTE-15
GIVING WS-IVA-AUX
77
T A
ópico 350 - ritmética y Lógica de un Programa COB
Expresiones Aritméticas.
IF ( A + B ) > ( C - D + 5 )
acción
END-IF.
78
T A
ópico 350 - ritmética y Lógica de un Programa COB
Estructuras lógicas
79
T A
ópico 350 - ritmética y Lógica de un Programa COB
Estructuras lógicas
² Estructuras Alternativas.
IF condición-1
acción-1
IF condición-1 IF condición-1 [AND, OR]
condición-2
IF condición-2
acción
acción-1
acción-2
ELSE
ELSE
ELSE
acción-alternativa
acción-alternativa
acción-3
END-IF.
END-IF.
END-IF
END-IF.
80
T A
ópico 350 - ritmética y Lógica de un Programa COB
Estructuras lógicas
Afirmativas Negativas
81
T A
ópico 350 - ritmética y Lógica de un Programa COB
Estructuras lógicas
Condiciones de clase. Son aquellas usadas para datos que requieren ser validados antes
de ser procesados. Se encuentran clasificadas en tres tipos:
IF field IS NUMERIC
² Alfanuméricas . Para caracteres alfanuméricos tales como letras, números y símbolos
especiales, excepto algunos caracteres de control especiales.
IF field IS ALPHANUMERIC
² Alfabéticas . Para caracteres alfabéticos, espacios en blanco. Sólo puede ser usado si
el campo fue declarado como alfabético.
IF field IS ALPHABETIC
82
T A
ópico 350 - ritmética y Lógica de un Programa COB
Estructuras lógicas
² Estructuras Iterativas.
Iterativas Simples
PERFORM nombre-párrafo
THRU nombre-párrafo-e xit
UNTIL condición .
Iterativas Compuestas
PERFORM nombre-párrafo
THRU nombre-párrafo-e xit
UNTIL condición-1 [AND,OR]
condición- 2 .
83
T A
ópico 350 - ritmética y Lógica de un Programa COB
Estructuras lógicas
² Estructuras Iterativas.
PROCESO-CLIENTES
PERFORM LECTURA-CLIENTE
THRU LECTURA-CLIENTE-EXIT
UNTIL END-OF-FILE.
LECTURA-CLIENTE
PERFORM DETALLE-CLIENTE
THRU DETALLE-CLIENTE-EXIT
UNTIL WS-COUNTER > CTE-30.
DETALLE-CLIENTE
PERFORM PROCESA-ORDENES
THRU PROCESA-ORDENES-EXIT
84
T A
ópico 350 - ritmética y Lógica de un Programa COB
Verbo EVALUATE
² En el caso de requerir evaluar al mismo tiempo más de tres condiciones distintas, es posible
utilizar la sentencia EVALUATE.
Sintaxis.
WHEN condición-1
acción-1
WHEN condición-2
acción-2
WHEN condición-n
acción-n
WHEN OTHER
acción-y
END-EVALUATE.
85
Módulo Básico
Módulo Básico
Cobol
T
ópico 360 ² Programación multimodular y Copybooks
Objetivos.
87
T
ópico 360 ² Programación multimodular y Copybooks
Programas Modulares.
² Características:
No realizan todo su proceso dentro del mismo programa, ya que hacen uso de uno o más
programas para realizar ciertas funciones.
Son aquellos que requieren de invocar a Estos módulos requieren de otro programa
otro programa que realiza una función para realizar una función específica y no
específica. pueden ser ejecutados por si mismos.
Rutina µSEM017¶
Programa µPGM370¶
Procedure Division Using [parámetros]
«
Call µSEM017¶ Using [parámetros] «
Goback
88
T
ópico 360 ² Programación multimodular y Copybooks
Programas Modulares.
89
T
ópico 360 ² Programación multimodular y Copybooks
Programas Modulares.
90
T
ópico 360 ² Programación multimodular y Copybooks
Programas Modulares.
² Ventajas:
Complejidad y tamaño. Las funciones pueden ser organizadas en pequeños módulos.
Manejo del proyecto. Varios módulos pueden ser programados al mismo tiempo.
Mantenimiento . Cuando funciones son codificadas en módulos separados, el código de
una función en particular se encuentra en un solo lugar.
Consideraciones de lenguaje. Debido a que los lenguajes son traducidos a lenguaje
maquina cuando son compilados, cada modulo puede ser codificado en el lenguaje más
apropiado.
El uso de memoria. Un programa modular requiere menos memoria que un programa no
modular.
² Desventajas:
Cambiosaapartir
módulos los programas . Se requiere
de los programas conocer
principales, paraelnotipo de llamada
afectar queque
los procesos se tiene a los
dependan
de éstos.
Generación excesiva de módulos. En caso de no conocer completamente las funciones
que existen pueden duplicarse módulos.
91
T
ópico 360 ² Programación multimodular y Copybooks
Copybooks.
² Un copybook es un pedazo de código, que sólo puede ser usado cuando es incluido como
parte de un programa, pudiendo contener variables o funciones.
² Su sintaxis:
COPY nombre-copybook .
² Sus ventajas:
Reducen el tiempo de codificación de programación
Fácil mantenimiento ya que sólo existe una sola copia del código
92
T
ópico 360 ² Programación multimodular y Copybooks
Copybooks.
PROGRAMA COPY
93
Módulo Básico
Módulo Básico
Cobol
T T
ópico 370 - Procesamiento de ablas
Objetivos.
² Codificar la lógica para realizar una búsqueda serial y una búsqueda binaria en una tabla.
95
T T
ópico 370 - Procesamiento de ablas
Definición de Tablas
² Grupo de datos almacenados en una posición consecutiva. Existen dos tipos de Tablas
(Internas y Externas).
² Tabla = Arreglo
Entrada. Consiste en uno ó mas renglones. Todas las entradas tienen el mismo
nombre y son accedidas por su posición relativa en la tabla.
Campo 96
T T
ópico 370 - Procesamiento de ablas
Definición de Tablas
² Tablas internas.
Son codificadas dentro de los programas, cuando éstas contienen pocos datos que
raramente cambiarán.
² Definición de la tabla.
² OCCURS
² INDEXED BY
97
T T
ópico 370 - Procesamiento de ablas
Definición de Tablas
Declaración de la tabla en la Working-Storage Section.
Tabla de datos
Enero 31
Febrero 28
Mar zo 31
Abril 30
Mayo 31
Junio 30
Julio 31
Agosto 31
Septiembre 30
Octubre 31
Noviembre 30
Diciembre 31
98
T T
ópico 370 - Procesamiento de ablas
Definición de Tablas
Los índices son campos numéricos, no pueden ser display ni compactados. Sólo pueden
Inicializar un índice:
SET índice TO 1.
Incrementar un índice:
SET índice UP BY 1.
99
² Tablas externas.
Cuando las tablas externas son usadas frecuentemente por el programa son cargadas en
la Working-Storage Section.
100
² Tablas externas.
Tabla de Datos
4567Jones,B. 070389 Núm. De Fecha
Cuenta Cliente
5847Kline,M. 070689 cuenta apertura
8977Zim,J. 070989
. . . 4567 Jones, B. 070389
. . .
5847 Kline, M. 070689
05 TABLA-CUENTAS.
10 CUENTAS OCCURS 250 TIMES
INDEXED BY CUENTAS-INDEX.
15 CUENTA PIC 9(04).
15 CLIENTE PIC X(15).
15 FECHA-APERTURA PIC 9(06)
101
± Incializar el índice a 1
2000-Housekeeping
102
El uso de tablas internas evita el acceso a datos desde un dispositivo externo, haciéndolo
más eficiente en el caso de tratarse de una cantidad de datos pequeña.
El uso de tablas externas permite que más de un programa pueda usarlas, reduciendo el
tiempo de desarrollo y el esfuerzo de mantenimiento, además de asegurar la integridad
de la información que se maneja.
103
² Búsqueda Serial.
Cada renglón de la tabla es accedido en forma secuencial hasta que el registro cumple
con la condición especificada o se llega al fin de la tabla.
SET index TO 1.
SEARCH entrada-tabla
AT END
acción-1
W HEN condición
acción-2
END-SEARCH.
104
² Búsqueda Binaria.
Este método de búsqueda es utilizado en tablas muy grandes y sólo cuando están
ordenadas por un campo llave en forma ascendente o descendente.
Los argumentos son comparados con el valor del campo llave localizado a la mitad de la
tabla, durante éste proceso se va descartando la primera o segunda mitad de la tabla
dependiendo del valor del argumento, hasta encontrar el argumento o finalizar la lectura.
105
05 TABLA-CUENTAS.
10 CUENTAS OCCURS 250 TIMES
ASCENDING KEY IS NUMERO
INDEXED BY CUENTAS-INDEX.
15 NUMERO PIC 9(04).
106
END-SEARCH.
107
² Para realizar la lectura secuencial de una tabla sin utilizar SEARCH , el proceso lógico sería:
108
WORKING-STORAGE SECTION.
05 REGION PIC 9(1).
TRIMESTRE 05 TRIMESTRE PIC 9(1).
REGION
1 2 3 4 05 TABLA-VENTAS.
10 DATOS-TRIMESTRE OCCURS 4 TIMES.
1 15 DATOS-REGION OCCURS 4 TIMES.
20 IMPORTE PIC 9(5).
2 PROCEDURE DIVISION.
....
3 ....
PERFORM 1100-IMPRIMIR-TABLA
THRU 1100-IMPRIMIR-TABLA-EXIT
4
VARYING TRIMESTRE FROM 1 BY 1
UNTIL TRIMESTRE GREATER THAN CTE-FOUR
...
...
1100-IMPRIMIR-TABLA.
PERFORM 1120-MOVER-DATOS
THRU 1120-MOVER-DATOS
VARYING REGION FROM 1 BY 1
UNTIL REGION GREATER THAN CTE-FOUR
109
² Datos importantes:
Una tabla puede tener entre 1 y 7 dimensiones en una estructura jerárquica o de árbol.
Una dimensión es un grupo de datos en un nivel en particular.
Los subíndices pueden ser constantes enteras o variables enteras. Sus valores deben ser
positivos; no pueden ser cero o negativo.
Los subíndices deben estar dentro de paréntesis y deben estar separados por comas.
110
Módulo Básico
Módulo Básico
Cobol
112
SELECT nombre-interno-archivo
ASSIGN TO nombre-e xterno
ORGANIZATION IS INDEXED
ACCESSMODE IS [RANDOM, SEQUENTIAL]
RECORD KEY IS llave-acceso .
113
FD nombre-interno-archivo
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
RECORDS CONTAINS n CHARACTERS.
01 nombre-lógico-registro.
05 llave-acceso PIC X(##).
05 FILLER PIC X(##).
² El total de caracteres ¶n· debe ser igual a la suma de la longitud de los campos definidos en
el nombre lógico del registro.
114
Mientras que los archivos secuenciales son leídos de acuerdo al orden en que fueron
escritos, los archivos indexados son leídos en el orden determinado por el campo clave,
primero es leído el campo clave más pequeño.
AT END
SET END-OF-FILE TO TRUE.
115
116
Los archivos indexados con acceso RANDOM permiten recuperar cualquier registro
indicando sólo el valor de la clave a buscar.
Sólo se permite de apertura INPUT, OUTPUT, I-O .
La apertura de INPUT sólo permite la lectura de los registros, con lo que en modo de
acceso RANDOM de archivos indexados se realiza:
117
² Al adicionar el registro, se realiza una búsqueda automática sobre el índice, para localizar la
posición donde se deba añadir el nuevo registro, comprobando adicionalmente que la clave
no se encuentre duplicada.
118
119
120
Validación de cada uno de los campos que integra el registro del archivo Expense
Transaction .
121
Para tener un mejor desempeño y funcionamiento óptimo de los programas creados en cobol, se
deben de tomar en cuenta las siguientes consideraciones:
No utilizar código duro, se deben declarar variables constantes para ser tratadas dentro del
programa.
Para la declaración de variables evitar palabras reservadas en inglés, por ejemplo: procedure,
main, count. Los nombres de las variables no deben de ser mayor a 30 posiciones y en español
para facilitar el entendimiento del programa.
Las banderas o switches se deben declarar como regla con las dos primeras siglas SW.
Cada módulo debe contener un mínimo de instrucciones de tal manera que pueda ser reutilizado
en los casos de mantenimiento o cambios realizados. Esto con la finalidad de facilitar el
mantenimiento.
122
Dentro de los módulos de evaluación de código de retorno, considerar todas las posibilidades y
acciones requeridas de la situación de cada dato.
Una vez entregado el programa se deben comentarizar las instrucciones de displays, únicamnete
conservar los displays para mostrar las cifras de control al final del programa.
123
Caso Práctico
Se requiere de un reporte de las tarjetas de crédito