Está en la página 1de 124

 

5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Formación Inicial en Mainframe

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

Tópico 340 - Formateando Datos


Tópico 350 - Aritmética y Lógica de un Programa COB
Tópico 360 ² Programación multimodular y Copybooks

Tópico 370 - Procesamiento de Tablas

Tópico 380 - Procesamiento Sistema Galaxy Expense

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
 

5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Reglas del curso

 Puntualidad

 Celulares en modo de silencio y laptops apagadas

 Respeto

 Preguntar 

2
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 2/124
 

5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Bibliografía

 COBOL ESTRUCTURADO. Andreas S.,Philippakis, Leonard J.,Kazmier. Tercera edición. Editorial


McGraw-Hill.

 COBOL ESTRUCTURADO. Ruth Ashley. Editorial Limusa.

 PROGRAMACION EN COBOL ESTRUCTURADO. Lawrencer R.,Newcomer. M.S. Editorial


McGraw-Hill.

3
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 3/124
 

5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


‡ Objetivos.

 Identificar las cuatro divisiones y sus correspondientes secciones de COBOL.

 Diferenciar entre párrafo, sentencia, instrucción.

 Codificar las cuatro divisiones de un programa COBOL.

 Codificar comentarios en un programa COBOL.

4
http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 4/124
 

5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


DIVISIONES SECCIONES SUBSECCIONES

Identification Division.

Configuration Section.
Environment Division.
Input-Output Section. File Control.

Estructura de un
Programa COBOL File Section.

Data Division. Working-Storage Section.

Linkage Section.

Procedure Division.

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 5/124


 

5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

Se especifican los datos generales del programa como :

 PROGRAM-ID. Nombre del programa.


 AUTHOR. Nombre del autor.
 DATE-WRITTEN. Fecha en la que fue escrito.
 DATE-COMPILED. Fecha en la que fue compilado.

 1 2 3 4 «««« 7
7890123456789012345678901234567890123456789012
******************************************************************
* IDENTIFICATION DIVISION *
******************************************************************
 IDENTIFICATION DIVISION.

 PROGRAM-ID. PGM330.
 AUTHOR. CORITEL.
 DATE-WRITTEN. JULIO, 2008.
 DATE-COMPILED. JULIO, 2008.

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 6/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

Describe el entorno en el que correrá el programa y 1 2 3 4.««««. 7


Los archivos asociados al programa. 7890123456789012345678901234567890123456789012
**************************************************

Se divide en 2 secciones : * ENVIRONMENT DIVISION *


**************************************************
ENVIRONMENT DIVISION.
Configuration Section.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC. Nombre interno
Aquí se especifica el ambiente en el que se del archivo
OBJECT-COMPUTER. IBM-PC.
desarrolla el programa y en el que se ejecutará.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
‡ SOURCE-COMPUTER. Dónde se desarrolla
‡ OBJECT-COMPUTER. Dónde se ejecuta SELECT SEM-RPT-INPUT-FILE Nombre externo
del archivo
ASSIGN TO E1DQ0001
Input-Output Section. ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
Indica cómo accederá el programa a los archivos,
SELECT SEM-RPT-OUTPUT-FILE
la organización de estos, la llave de acceso si son
ASSIGN TO S1DQ0001
indexados. ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 7/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

1 2 3 4««««. 7
Describe detalladamente los datos usados, 7890123456789012345678901234567890123456789012
los de entrada y salida, reservando el *************************************************

espacio en memoria. * DATA DIVISION *


*************************************************
Se divide en 2 secciones : DATA DIVISION.
FILE SECTION.
File Section.
FD SEM-RPT-INPUT-FILE
Específica las características de los registros LABEL RECORDS ARE [STANDARD / OMITTED]
manejados por los archivos del programa. BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 49 CHARACTERS

Working-Storage Section. DATA RECORD IS SEM-RPT-INPUT-REC.


01 SEM-RPT-INPUT-REC PIC X(49).
En esta sección se define el área de
memoria de almacenamiento temporal FD SEM-RPT-OUTPUT-FILE
para el procesamiento de los datos durante LABEL RECORDS ARE STANDARD
la ejecución del programa. BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 132 CHARACTERS
DATA RECORD IS SEM-RPT-OUTPUT-REC.
01 SEM-RPT-OUTPUT-REC PIC X(132).

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 8/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

Describe detalladamente los datos usados de entrada y 1 2 3 4««««. 7


salida, reservando el espacio en memoria. 7890123456789012345678901234567890123456789012
************************************************
Se divide en 2 secciones : * DATA DIVISION *
************************************************
File Section. WORKING-STORAGE SECTION.
01 WS-WORK-AREA.
Específica las características de l os registros manejados por  ************************************************
los archivos del programa. * RECORD LAYOUTS *
************************************************
Working-Storage Section. 05 IN-SEMINAR-REC.
10 IN-SEM-CODE PIC X(4).
En esta sección se define el área de memoria de 10 IN-SEM-DEC PIC X(25).
almacenamiento temporal para el procesamiento de los 10 IN-SEM-BEG.
datos durante la ejecución del programa y puede clasificarse 15 AÑO PIC X(2).
en las siguientes partes : 15 FILLER PIC X VALUE µ/¶. 49
15 MES PIC X(2).
‡ Record Layout 15 FILLER PIC X VALUE µ/¶.
‡ Lines and Headings 15 DIA PIC X(2).
Flags 10 IN-STND-FEE PIC 9(4)V99.
‡
10 IN-REG-FEES PIC 9(4)V99.
‡ Counters/Acumulators
‡ Constants
‡ Scratch area

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 9/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

1 2 3 4««««. 7
Record Layout 7890123456789012345678901234567890123456789012
********************************************************
La definición del registro de datos puede ser realizada a * DATA DIVISION *

través de agrupación de datos, los cuales se encuentran ********************************************************


DATA DIVISION.
definidos por niveles.
 W ORKING-STORAGE SECTION.
01 WS-WORK-AREA.
Por ejemplo : ********************************************************
* RECORD LAYOUTS *
Si tenemosun archivo con una longitud total de 35 ********************************************************
05 IN-DATOS.
caracteres divididos en 4 campos principales (No empleado, 10 IN-NUM PIC X(5).
Nombre,Fecha de nacimiento y puesto) y deseamos que 10 IN-NOM PIC X(20).
35
cada registro del archivo se almaceneen variables,la 10 IN-FEC-NAC PIC X(8).
declaración sería la siguiente : 10 IN-PTO PIC X(2).

Archivo de Datos de empleados 05 IN-DATOS-EMP.


10 IN-NUM-EMP PIC X(5).
Número de Nombre Fecha nacimiento 10 IN-NOMBRE-EMP.
Puesto 15 IN-NOM-EMP PIC X(10).
Empleado Nom PA Año Mes Día
15 IN-PA-EMP PIC X(10).
12093 Olga Barrón 1967 10 14 AP 10 IN-FEC-NAC-EMP. 35
15 IN-AÑO-EMP PIC X(4).
87456 Silvia Díaz 1980 04 27 MG 15 IN-MES-EMP PIC X(2).
15 IN-DIA-EMP PIC X(2).
10 IN-PTO-EMP PIC X(2).
5 20 8 2

10

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 10/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

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.

totales, etc., de un reporte. 10 FILLER PIC X(8) VALUE ¶EMPLEADO·.


10 FILLER PIC X(20) VALUE SPACES.
10 FILLER PIC X(6) VALUE ¶NOMBRE·.
10 FILLER PIC X(20) VALUE SPACES.
Por ejemplo, para crear el siguientereporte se deberían declarar las 10 FILLER PIC X(8) VALUE ¶PUESTO·.
siguiente variables: 10 FILLER PIC X(7) VALUE SPACES.
10 FILLER PIC X(6) VALUE ¶SUELDO·.
10 FILLER PIC X(37) VALUE SPACES.
05 RPT-GUIONES. 3
REPORTE DE NOMINA 1 10 FILLER PIC X(10) VALUE SPACES.
10 FILLER PIC X(8) VALUE ALL ¶-·.
10 FILLER PIC X(5) VALUE SPACES.
2 EMPLEADO NOMBRE PUESTO SUELDO 10 FILLER PIC X(20) VALUE ALL ¶-·.
--------------- ----------------------------------- ------------- ------------ 3 10 FILLER PIC X(5) VALUE SPACES.
12093 OLGA BARRON AP 10000 10 FILLER PIC X(8) VALUE ALL ¶-·.
10 FILLER PIC X(5) VALUE SPACES.
87456 SILVIA DIAZ MG 8000 10 FILLER PIC X(6) VALUE ALL ¶-·.
10 FILLER PIC X(37) VALUE SPACES.
05 RPT-DETALLE 4
10 FILLER PIC X(10) VALUE SPACES.
4 10 RPT-NUM-EMP PIC X(5).
10 FILLER PIC X(5) VALUE SPACES.
1 - Encabezado 10 RPT-NOM-EMP PIC X(20).
2 - Cabeceras 10 FILLER PIC X(5) VALUE SPACES.
3 - Guiones 10 RPT-PTO PIC X(2).
10 FILLER PIC X(5) VALUE SPACES.
4 - Detalle 10 RPT-SUELDO PIC 9(5).
10 FILLER PIC X(37) VALUE SPACES.

11

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 11/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 12/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


Identification Division Environment Division Data Division Procedure Division

En esta se realiza el proceso lógico del programa y 1 2 3 4««««. 7


por lo general se divide en tres partes dentro de un 7890123456789012345678901234567890123456789012
párrafo principal :
*************************************************
Inicio * PROCEDURE DIVISION *
*************************************************
‡ Generalmente se le asigna el número de párrafo PROCEDURE DIVISION.
2000. 1000-MAINLINE.
‡ Inicialización de variables de trabajo (acumuladores,
contadores, etc).
PERFORM 2000-HOUSEKEEPING
‡ En éste párrafo se realiza la apertura inicial de
archivos THRU 2000-HOUSEKEEPING-EXIT.

Proceso PERFORM 3000-PROCESS


THRU 3000-PROCESS-EXIT
‡ Generalmente se le asigna el número de párrafo UNTIL END-OF-FILE.
3000.
‡ Ejecución del procedimiento principal del programa.
PERFORM 8000-WRAP-UP
Final THRU 8000-WRAP-UP-EXIT.

‡ Generalmente se le asigna el número de párrafo


STOP RUN.
8000.
‡ Cerrado de archivos usados durante la ejecución.

13

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 13/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


****************************************************************
* 3100-LOAD *
*--------------------------------------------------------------* COMENTARIO
*PROCESO QUE CARGA LOS REGISTROS DE ENTRADA A UNA TABLA EXTERNA*
****************************************************************
PRINCIPIO
3100-LOAD.
DE PÁRRAFO
PERFORM 9910-READ-REG SENTENCIA
THRU 9910-READ-REG-EXIT.

IF NOT END-OF-REG-EXP
SET LS-TBL-IDX UP BY 1

MOVE WS-REGE-REG-NUMERO TO LS-TBL-REG-NUM(LS-TBL-IDX)


MOVE WS-REGE-EXP-DT TO LS-TBL-EXP-DT-J(LS-TBL-IDX)
TR
MOVE WS-REGE-EXP-TIME
WS-REGE-EXP-CODE TO LS-TBL-EXP-TIME(LS-TBL-IDX)
LS-TBL-EXP-CODE(LS-TBL-IDX) INS UCCIONES
MOVE WS-REGE-EXP-AMT TO LS-TBL-EXP-AMT(LS-TBL-IDX)

END-IF.

3100-LOAD-EXIT. FIN DE
EXIT. DE PÁRRAFO

14

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 14/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


‡ Párrafos en COBOL

 Comentarios.

 Se codifican a partir de la columna 7 y comienzan con *

 Máximo hasta la columna 72

 Cabecera - inicio y finalización de un párrafo-.

 Se codifican a partir de la columna 8

 Nombrados de acuerdo a un orden lógico, máximo 35 caracteres


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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 15/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 310 - Codificando un programa COBOL


‡ Párrafos en COBOL

 Sentencias

 Colección de instrucciones que realizan un paso en el programa.

 Se codifican a partir de la columna 12.

 Una instrucción es un comando de COBOL (verbo) que realiza una función específica.

 Las sentencias terminan con un punto, las instrucciones no.

16

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 16/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico

Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos
Tópico 350 ² Aritmética y Lógica de un Programa Cobol
Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
17

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 17/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 320 - Editando un programa


‡ Objetivos.

 Conocimiento del software para la edición de programas.

 Conocimiento de los comandos de edición.

 Compilación y ejecución de un programa COBOL.

 Edición y corrección de errores sintácticos y lógicos.

18

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 18/124

 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 320 - Editando un programa


‡ Codificación de programas

 ² Comandos de edición

‡ Comandos de línea.

 ² Se teclean en la parte izquierda de la pantalla sobre la columna de números,


realizando funciones de edición.

Comandos Descripción

i, in Inserta líneas

d, dd, dn Borra líneas


c, cc / a ó b Copia Líneas
m, mm/ a ó b Mueve líneas

r, rr, rn Repite líneas


o, oo / m ó c Sobrescribe líneas
Cols Despliega guía de columnas

19

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 19/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 320 - Editando un programa


‡ Codificación de programas

 ² Comandos de edición

‡ Comandos primarios.

 ² Se teclean en la línea de comando, ayudando a la ejecución de algunas funciones


de utilidad.

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 20/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 320 - Editando un programa


‡ Codificación de programas

 ² Comandos generales (teclas de función).

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

F5 RFIND ² Repite el comando FIND

F6 RCHANGE- Repite el comando CHANGE

F7 UP ² Retrocede la pantalla


F8 DOWN ² Avanza la pantalla
F9 SWAP ² Permite el desplazamiento entre pantallas
F10 LEFT ² Desplaza la pantalla a la izquierda
F11 RIGHT ² Desplaza la pantalla a la derecha

F12 RETRIEVE ² Recupera los últimos comandos ejecutados. 21

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 21/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 320 - Editando un programa


‡ Compilación de programas

A  ² Programas sin acceso a DB2

C  ² Programas CICS

S  ² Programas con acceso DB2

22

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 22/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 320 - Editando un programa


‡ Compilación de programas

 ² Revisión de sintaxis.

‡ Revisión de cada una de las sentencias escritas en el código fuente

‡ Depuración de errores

 ² Errores de puntuación

 ² Errores ortográficos (sintaxis)

 ² Errores de campos/variables no definidos en Working-Storage Section


 ² Generación de código objeto.

‡ Se encuentra en lenguaje máquina y se nombra de acuerdo al nombre dado en el


Program-ID.

23

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 23/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico

Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos
Tópico 350 ² Aritmética y Lógica de un Programa Cobol
Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
24

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 24/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Objetivos.

 Generación de la sección de File Description y sentencias SELECT/ASSIGN para los archivos


usados en el programa.

 Codificación de la estructura de los registros de entrada y salida en la Working-Storage


Section.

 Utilización de banderas en un programa COBOL.

 Codificación de la Procedure Division en un programa.

25

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 25/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Tipos de archivos

 ² Archivos Secuenciales.

‡ Organización

 ² Deben ser accedidos en orden secuencial.


 ² Para la realización de búsquedas, son accedidos frecuentemente en un orden
especifico, en base a un campo específico.

‡ Acceso.

 ² El acceso secuencial es mas rápido que el acceso directo cuando se requiere de un


procesamiento deinvolucra
procesamiento no todos losun
registros
accesocontenidos
adicional alen el archivo,
archivo ya que el tiempo de
del índice.

‡ Dispositivos de almacenamiento.

 ² Cualquier dispositivo (cintas, discos, etc).

26

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 26/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Tipos de archivos

 ² Archivos de Acceso Directo.

‡ Deben ser accedidos a través de un índice.

‡ 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.

 ² Son de rápido acceso cuando se accede a través del campo llave.

 ² No pueden ser accedidos desde cinta debido a la naturaleza de estos.

 ² Su acceso puede ser secuencial ó indexado.

‡ Dispositivos de acceso.

 ² Cualquier dispositivo de acceso, excepto cintas.

27

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95


 
27/124
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Tipos de archivos

 ² Reglas sobre Nombres internos de archivos:

‡ El nombre asignado a cada archivo debe ser único.

‡ Pueden contener sólo letras, dígitos o guiones.

‡ Deben contener al menos un carácter de A - Z.

‡ No pueden contener guiones al inicio del nombre.


‡ La longitud máxima del nombre es de 30 caracteres.

‡ No puede ser una palabra reservada de COBOL

28

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95


  28/124
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Diagrama de Proceso para procesamiento de archivos y generación de listados

- Apertura (OPEN) de archivos de entrada y salida

- Incialización de switches
(SET sw-xxx TO TRUE)
2000-Inicio
( Housekeeping )
- Incialización de variables de trabajo y
lineas de detalle (INITIALIZE).

- Lectura inicial de archivos (READ)

1000-Principal - Manipulación de los datos leídos de archivos


( Mainline ) 3000-Proceso (MOVE xxxxx TO zzzzzz)
( Process )
- Escritura al archivo de salida (WRITE)
(UNTIL end-of-file)
- Lectura del siguiente registro (READ)

8000-Fin - Cierre de archivos usados por el programa (CLOSE)


( Wrap-up )

STOP RUN. 29

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95


  29/124
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: PERFORM

 ² Su función es pasar el control a un párrafo específico. Después de ejecutar las instrucciones


de aquel párrafo, el control es devuelto al párrafo que realizó la llamada.

 ² Esta sentencia es acompañada de la cláusula THRU, la cual permite identificar la última línea
a ejecutar del párrafo.

 ² Para indicar el final del párrafo se utiliza la cláusula -EXIT.

PERFORM nombre-parrafo
THRU nombre-parrafo-EXIT

30

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95


 
30/124
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: PERFORM (Cont.)
***********************************************************

* 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.

OPEN INPUT INPUT-FILE


OUTPUT OUTPUT-FILE.

PERFORM 2100-INICIALIZA-VAR
THRU 2100-INICIALIZA-VAR-EXIT.

READ INPUT-FILE INTO WS-INPUT-FILE


AT END Devuelve
SET END-OF-FILE TO TRUE.
2000-HOUSEKEEPING-EXIT.
EXIT.
el control 31

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95


 
31/124
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: PERFORM (Cont.)
***********************************************************

* 2000-HOUSEKEEPING *

***********************************************************

2000-HOUSEKEEPING.

OPEN INPUT INPUT-FILE


OUTPUT OUTPUT-FILE.
Pasa
PERFORM 2100-INICIALIZA-VAR
el control
THRU 2100-INICIALIZA-VAR-EXIT

READ INPUT-FILE INTO WS-INPUT-FILE


AT END
SET END-OF-FILE TO TRUE.

2000-HOUSEKEEPING-EXIT.
EXIT.
***********************************************************

* 2100-INICIALIZA-VAR  *

***********************************************************

2100-INICIALIZA-VAR.

INITIALIZE VARIABLE-A
VARIABLE-B
VARIABLE-X

SET NOT-END-OF-FILE TO TRUE. Devuelve


2100-INICIALIZA-VAR-EXIT.
el control
EXIT.
32

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 32/124


 
5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: PERFORM

 ² 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 33/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: OPEN

 ² 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.

 ² Generalmente es codificada al inicio del programa.


 ² Su sintaxis es:
Archivos de lectura OPEN INPUT nombre-archivo
Archivos de escritura OPEN OUTPUT nombre-archivo
Adición de registros OPEN EXTEND nombre-archivo

34

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 34/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: OPEN
 ² En caso de tener varios archivos de lectura o escritura se codificaría así:

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 35/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: INITIALIZE
 ² Permite la inicialización de campos ya sea de grupo o elementales.

 ² Los campos alfanuméricos son inicializados con espacios.

 ² Los campos numéricos son inicializados con ceros.


 ² Su sintaxis:

INITIALIZE nombre-campo

05 WS-CLIENTE. INITIALIZE WS-CLIENTE.

10 WS-CODIGO PIC 9(5).


10 WS-NOMBRE PIC X(30). ó

INITIALIZE WS-CODIGO
WS-NOMBRE.

36

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 36/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: MOVE
 ² La sentencia MOVE coloca una copia del dato contenido en un campo-1 a un
campo-2.

Su sintaxis:
MOVE campo-1 TO campo-2

 ² Por ejemplo:

Campos elementales Campos a nivel grupo

 MOVE campo-1 TO campo-2  MOVE grupo-1 TO grupo-2.


campo-3
campo-4.

37

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 37/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: MOVE (Cont.)
 ² El truncamiento de los datos depende de la longitud del campo al que son informados:

‡ 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.

‡ Los campos numéricos son alineados hacia la derecha.

 ² Ejemplo1.

‡ Cuando el campo receptor es más pequeño

Alfanuméricos Numéricos
WS-NOMBRE PIC X(5). C A R L A WS-CODIGO PIC 9(5). 5 4 3 2 1

RPT-NOMBRE PIC X(3). C A R RPT-CODIGO PIC 9(3). 3 2 1

38

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 38/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: MOVE (Cont.)
 ² Ejemplo 2.
‡ Cuando el campo receptor es más grande

Alfanuméricos

WS-NOMBRE PIC X(5). C A R L A

RPT-NOMBRE PIC X(8). C A R L A

Numéricos

WS-CODIGO PIC 9(5). 5 4 3 2 1

RPT-CODIGO PIC 9(8). 0 0 0 5 4 3 2 1

39

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 39/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: MOVE (Cont.)
 ² Ejemplo 3.
‡ Cuando el campo que envía es un numérico con decimales implícitos y el que recibe es
un numérico con dos decimales.

Numéricos

WS-IMPLICITO PIC 9(2)V99. 2 3 4 5

WS-DECIMAL PIC 9(2).99. 2 3 . 4 5

40

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 40/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: READ

 ² Permite leer los registros de un archivo.

 ² Su sintaxis:

READ nombre-archivo INTO nombre-registro


AT END
SET END-OF-FILE TO TRUE.

 ² 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 41/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: READ (Cont.)
 ² Ejemplo :
READ INPUT-FILE INTO INP-DATOS
AT END
SET END-OF-FILE TO TRUE.

DATA DIVISION. WORKING-STORAGE SECTION.


FILE SECTION. 01 WS-WORK-AREA.
************************************* *****************************************
* INPUT-FILE * * RECORD LAYOUT *
************************************* *****************************************
FD INPUT-FILE 05 INP-DATOS.
LABEL RECORDS ARE STANDARD 10 INP-NUMBER PIC 9(5).
BLOCK CONTAINS 0 RECORDS 10 INP-NAME PIC X(12).
RECORDS CONTAINS 37 CHARACTERS 10 INP-CODE PIC 9.
DATA RECORD IS INPUT-REC. 10 INP-PHONE PIC 9(7).
01 INPUT-REC X(37). 10 INP-CONTACT PIC X(12).

42

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 42/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: WRITE (Cont.)
 ² Esta sentencia permite escribir el contenido de la memoria a un dispositivo de
salida (archivo, cinta, etc.).

 ² Sintaxis:

WRITE OUTPUT-REC

 ² A través de esta sentencia se puede escribir el contenido de un registro a un


dispositivo de salida (archivo, cinta, etc.).

 ² Su sintaxis:

WRITE OUTPUT-REC FROM REC-DATA

43

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 43/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: WRITE (Cont.)

 ² La cláusula AFTER ADVANCING es usada con el WRITE para el control de líneas de


espaciamiento antes de imprimir la siguiente línea del reporte o comenzar a imprimir en una
nueva página.

 ² Su sintaxis:

WRITE OUTPUT-REC FROM REC-DATA


A T RA A A
FE DV NCING [n LINES] [P GE]

44

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 44/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: WRITE (Cont.)
‡ MOVE REC-INPUT TO RPT-LINE
‡
‡ WRITE OUTPUT-REC FROM RPT-LINE
‡ AFTER  ADVANCING CTE-TWO LINES.

DATA DIVISION. WORKING-STORAGE SECTION.


FILE SECTION. 01 WS-WORK-AREA.
************************************** **************************************
* OUTPUT FILE * * REPORT LINES AND HEADINGS *
************************************** **************************************
FD OUTPUT-FILE 05 RPT-LINE PIC X(132).
LABEL RECORDS ARE OMITTED
RECORDS CONTAINS 132 CHARACTERS
DATA RECORD IS OUTPUT-REC.
01 OUTPUT-REC X(132).

45

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 45/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 330 - Procesando Archivos


‡ Sentencia: CLOSE

 ² 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 46/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico

Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos
Tópico 350 ² Aritmética y Lógica de un Programa Cobol
Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
47

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 47/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Objetivos.

 Distinguir entre un dato variable y un dato constante.

 Usar herramientas especiales de edición para hacer la información del reporte más fácil de
leer y entender.

 Transformar un dato no formateado en uno usado para la línea de un reporte.

 Explicar el proceso del flujo de un programa que lee un registro a partir de un archivo,
formatea los datos y genera un reporte.

 Explicar el propósito de la función de la cláusula REDEFINES.

48

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 48/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T
ópico 340 - Formateando Datos
‡ Tipos de líneas en un reporte

Títulos/Headings

PGM999 REPORTE DE EMPLEADOS 10/08/01

Subtítulos/ NOMBRE PUESTO COMPAÑÍA CLIENTE_ CODIGO _GASTOS_


Subheadings
LARA CARLOS P BANCO BANCOMER X9889 $ 765.13

LOPEZ RAFAEL S JC PENNY J8181 $ 123.48


Líneas de
MENDEZ ANA P HOSPITAL IMSS I7878 $ 763.00 Detalle
SALGADO MARIA S JC PENNY J8181 $ 825.98

Líneas de TOTAL $2,477.59


T
otales
*** FIN DE REPORTE ***

Línea de mensajes

49

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 49/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Tipos de información en un reporte.
 ² Constante.
‡ El valor del dato no cambia durante el tiempo de ejecución. Por ejemplo, títulos,
subtítulos, etc.
‡ La declaración de literales está dada a través de las cláusulas FILLER y VALUE en la
Working-Storage Section , mientras que l as literales son variables a las que se les asigna
un valor fijo.
Por ejemplo:

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 50/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Tipos de información en un reporte.

‡ Existen algunas cláusulas simbólicas que permiten asignar valores de acuerdo a la


naturaleza del campo:

 ² Asignar espacios a todas las posiciones de un campo alfanumérico: SPACE, SPACES.

 ² 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.

10 FILLER  PIC X   VALUE SPACES.

10 FILLER  PIC X(15)  VALUE ALL µ-¶.

10 FILLER  PIC 9(6)   VALUE ZEROES.

51

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 51/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Tipos de información en un reporte.

 ² Variable.

‡ Cambia su información durante la ejecución del programa, por ejemplo, las líneas de
detalle, los totales, etc.

‡ Los datos variables no pueden ser asignados a un FILLER.

‡ No se asigna generalmente un valor a los datos variables.

52

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 52/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Edición de campos.

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 53/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Edición de campos.

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

PIC S9(4) +3456


+0005 PIC +Z,ZZ9 +3,456
+ 5
 Adición de -0032 - 32
Signo ³+´ +3456 3,456+
PIC S9(4) +0005 PIC Z,ZZ9+ 5+
-0032 32-

54

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 54/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Edición de campos.

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

 Adición de +3456 3,456


Signo ³-´ PIC S9(4) +0005 PIC Z,ZZ9- 5
-0032 32-

+3456 3,456
PIC S9(4) +0005 PIC --,--9 5
-0032 -32

55

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 55/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Edición de campos.

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

0000000 PIC $**,***.** $*********


0005380 $****53.80
 Asteriscos PIC S9(5)V99 0374750 $*3,747.50
1485500 ERROR $*4,855.00
1234567 ERROR $*2,345.67

56

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 56/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Edición de campos.

 ² Consideraciones importantes en la edición de datos:


‡ En la eliminación de ceros y signo $.
 ² Un campo no puede contener sólo ¶Z· ó ¶$·

 ² Las Z·s y $ no pueden ser codificados a la derecha de un 9 ó punto decimal.


 ² El campo debe contener al menos un carácter 9 a la derecha del signo $.
‡ Inserción de blancos
 ² Pueden ser usados para campos numéricos y alfanuméricos
‡ Signos ¶+· y ¶-·
 ² Cuando se coloca en el formato del campo el signo ¶+·, se imprime ¶+· si el valor es
positivo y ¶-· si el valor es negativo.
 ² Cuando se coloca en el formato del campo el signo ¶-· éste sólo es impreso en valores
negativos.
‡ Signos CR y DB
 ² El signo CR aparece sólo cuando el valor es positivo y el DB sólo cuando se trata de
una cantidad negativa.

57

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 57/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Edición de campos.

 ² Consideraciones importantes en la edición de datos:

‡ Asteriscos.

 ² Pueden ser codificados a la derecha del punto decimal. Los asteriscos aparecerán
aún cuando el valor sea cero.

 ² Las comas son reemplazadas por asteriscos.

 ² Pueden llegar a truncar un dígito del campo, ya que siempre imprimirá al menos un
asterisco.

58

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 58/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Cláusula: REDEFINES
 ² Esta cláusula es usada para conservar el espacio de memoria, usando mas de una definición
de registro para representar el mismo espacio de memoria.
 ² Los campos pueden ser redefinidos por campos a su mismo nivel y no pueden ser utilizados en
niveles 88.
 ² No se les puede asignar cláusulas VALUE.
 ² Su sintaxis:
campo- 2 REDEFINES campo- 1

42 caracteres

EMP-REC NOMBRE TITULO INDUSTRIA

PTR-REC NOMBRE TITULO CVE_CLIENTE CLIENTE ESTATUS GASTOS

42 caracteres
59

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 59/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Cláusula: REDEFINES

************************************************************
* 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 60/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 340 - Formateando Datos


‡ Creación del formato de un reporte.

 ² Procesos principales para la creación de un reporte.

‡ Lectura del archivo


almacenada en los de entrada.
campos queEn dondedicho
definen se leeregistro.
el registro de entrada y su información es

‡ 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 61/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico
Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos
Tópico 350 ² Aritmética y Lógica de un Programa Cobol
Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
62

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 62/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Objetivos.

 ² Describir qué es un campo compactado, cuándo y cómo usarlo.

 ² Codificar correctamente campos numéricos (display, signados y compactados).


 ² Describir el uso de los verbos aritméticos: ADD, SUBTRACT, MULTIPLY, DIVIDE, COMPUTE.

 ² Definir y distinguir entre estructuras alternativas e iterativas.

 ² Codificar estructuras iterativas.

 ² Explicar la lógica de los IF anidados.

63

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 63/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Campos numéricos.

 ² Tipos de campos numéricos.

‡ Display.

 ² Cada dígito ocupa una posición de memoria (byte).


 ² Utilizados para enviar y recibir números entre programas y archivos, terminales o
impresoras.

Formato de campo Ejemplo  Memoria Ocupada

PIC 99 25 2 bytes
PIC 99V 25v 2 bytes
PIC 9(3)V99 321v35 5 bytes

64

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 64/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Campos numéricos.

 ² Tipos de campos numéricos.

‡ Signados.

 ² Conservan el signo
con el carácter ¶S· .positivo o negativo sin ocupar un byte en memoria. Se representan

 ² Regularmente son usados para cálculos o procesos internos.

PICTURE VALOR REPRESENTACIÓN MEMORIA 


OCUPADA
PIC S9999 +1234 +1234 4 bytes

PIC S9999 +12 +0012 4 bytes

PIC S9999 -123 -0123 4 bytes

PIC S(4)V99 -25v67 -0025v67 6 bytes

65

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 65/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Campos numéricos.

 ² Tipos de campos numéricos.

‡ Compactados.

 ² Ocupan 1 byte de memoria para almacenar 2 dígitos.


 ² El último byte contiene solo 1 dígito y el signo.

 ² Son usados para cálculos aritméticos.

Valor a guardar : -12345.67 Definición: S9(5)V99 COMP-3

1 3 5 7

2 4 6 D

Totalbytes de memoria = 4
(No. Dígitos + 1) / 2
66

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 66/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Campos numéricos.

 ² Tratamiento de datos entre campos numéricos.

‡ 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 ¶+·.

PIC S9(3) PIC +999


MOVE CAMPO-ORIGEN TO CAMPO-RECEPTOR CORRECTO
-025 -025
PIC S9(3) PIC 999
MOVE CAMPO-ORIGEN TO CAMPO-RECEPTOR INCORRECTO
-025 025
PIC 9(3) PIC +999
MOVE CAMPO-ORIGEN TO CAMPO-RECEPTOR INCORRECTO
025 +025

67

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 67/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Campos numéricos.

 ² Tratamiento de datos entre campos numéricos.

‡ No se puede mover a nivel de grupo, un campo numérico a uno compactado


directamente.

Correcto
Definición en Working Storage Tratamiento en Procedure Division
/incorrecto

10 WS-DATE.

05 WS-AA PIC 99.


05 WS-MM PIC 99. MOVE WS-DATE TO WS-DATE-COMP INCORRECTO
05 WS-DD PIC 99.

10 WS-DATE-COMP PIC 9(6) COMP-3.

68

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 68/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Campos numéricos.

 ² Tratamiento de datos entre campos numéricos (Cont.)

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-COMP PIC 9(6) COMP-3.

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

10 WS-DATE-COMP PIC 9(6) COMP-3.

69

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 69/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Verbos aritméticos.

 ²  ADD. Adición de valores.

ADD campo-1 campo- 2 campo-N TO campo- z

 ²  SUBTRACT. Sustracción de valores.


SUBTRACT campo- 1 campo- 2 campo-N FROM campo- z

 ²  MULTIPLY. Multiplicación de valores. El resultado es almacenado en los campos especificados por la
instrucción BY.

MULTIPLY campo-1  BY factor-1 factor- 2 factor-N

A BY B C
 MULTIPLY
2 3 10

Resultado  2 6 20

70

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 70/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Verbos aritméticos.

 ²  DIVIDE. División de valores.

DIVIDE dividendo BY divisor  GIVING cociente


DIVIDE BY GIVING
A B C 5
2 10
10 2 5

DIVIDE divisor  INTO dividendo-1 dividendo- 2

DIVIDE A INTO B
2 10

2 5

71

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 71/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Verbos aritméticos.

 ²  DIVIDE. División de valores (cont).

DIVIDE divisor  INTO dividendo GIVING cociente REMAINDER  residuo

DIVIDE A INTO B GIVING C REMAINDER  D

5 23 4 3

72

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 72/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Verbos aritméticos.

 ²  GIVING. Asigna el valor de la operación al campo especificado.

ADD campo- 1  TO campo- z  GIVING campo-suma

SUBTRACT campo-1  FROM campo- z  GIVING campo-resta

MULTIPLY campo-1  BY factor-1 GIVING campo-mult

DIVIDE dividendo BY divisor  GIVING cociente

DIVIDE divisor  INTO dividendo GIVING cociente REMAINDER  residuo

73

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 73/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 350 - Aritmética y Lógica de un Programa COB


‡ Verbos aritméticos.

 ²  ROUNDED. Redondea el valor del cálculo de la operación.

‡ El valor es redondeado al siguiente superior cuando el valor truncado es >= 5

‡ valor no es redondeado cuando el valor truncado es menor a 5


ADD campo-1 TO campo-z ROUNDED

SUBTRACT campo-X FROM campo- z  ROUNDED


MULTIPLY campo-1  BY factor  GIVING campo-store ROUNDED

74

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 74/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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.

 ² La sentencia COMPUTE utiliza los siguientes símbolos para especificar la operación:

+ Suma

- Resta

* Multiplicación

 / División
** Exponenciación

() Paréntesis para establecer jerarquías

75

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 75/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T A
ópico 350 - ritmética y Lógica de un Programa COB
‡ Sentencia: COMPUTE

 ² Las prioridades de los signos para realizar las operaciones son:

() Paréntesis

** Exponenciación
* , / Multiplicación, División

+, - Suma, Resta

 ² Las sentencias son evaluadas de izquierda a derecha dependiendo del operando.

 ² Ejemplos.

‡ COMPUTE A = A + B + C

‡ COMPUTE A = ( B * ( C - D ) )

76

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 76/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T A
ópico 350 - ritmética y Lógica de un Programa COB
‡ Sentencia: COMPUTE vs VERBOS ARITMÉTICOS

COMPUTE VERBOS ARITMÉTICOS


COMPUTE A = (B * (C - D)) SUBTRACT D FROM  C GIVING E

 MULTIPLY B * E GIVING A
COMPUTE WS-IVA = WS-COMPRA * CTE-15 / CTE-100  MULTIPLY WS-COMPRA BY CTE-15
GIVING WS-IVA-AUX

DIVIDE WS-IVA-AUX BY CTE-100


GIVING WS-IVA

COMPUTE WS-INCREMENTO = WS-INCREMENTO + 1  ADD 1 TO WS-INCREMENTO

COMPUTE WS-SALDO = WS-SALDO ± WS-RETIRO SUBTRACT WS-RETIRO FROM WS-SALDO

COMPUTE WS-INCREMENTO-1 = WS-INCREMENTO-1 + 1  ADD 1 TO WS-INCREMENTO-1


COMPUTE WS-INCREMENTO-2 = WS-INCREMENTO-2 + 1 WS-INCREMENTO-2
COMPUTE WS-INCREMENTO-3 = WS-INCREMENTO-3 + 1 WS-INCREMENTO-3

77

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 77/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 78/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T A
ópico 350 - ritmética y Lógica de un Programa COB
‡ Estructuras lógicas

 ² Existen dos tipos de estructuras lógicas:

Es una sentencia condicional con una o más opciones. La opción


Alternativas realizada depende de la condición que resulte verdadera. Son

codificadas con sentencias IF.


Son sentencias condicionales que de cumplirse, hacen que se
Iterativas ejecute más de una vez un párrafo o sentencia. Son codificadas
con sentencias Until.

 ² Ambas estructuras se clasifican en :

Simples Se valida una condición verdadera o falsa.


Se validan más de una condición con la ayuda de las cláusulas AND
y OR, en estas estructuras se evalúan todos los AND·s y después
Compuestas
los OR´s de izquierda a derecha.

Son estructuras alternativas / iterativas que se realizan dentro de otra


Anidadas estructura alternativa /iterativa.

79

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 79/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T A
ópico 350 - ritmética y Lógica de un Programa COB
‡ Estructuras lógicas

 ² Estructuras Alternativas.

Alternativas Simples Alternativas Compuestas Alternativas Anidadas

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 80/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T A
ópico 350 - ritmética y Lógica de un Programa COB
‡ Estructuras lógicas

 ² Estructuras Alternativas ² Tipos de condiciones.

‡ Condiciones de nombre. Son aquellas que evalúan si un elemento es verdadero o falso


(switches)

‡ Condiciones de relación. Se refiere a las condiciones que comparan un elemento con


otro.

Afirmativas Negativas

GREATER THAN NOT GREATER THAN


LESS THAN NOT LESS THAN
EQUAL TO NOT EQUAL TO
GREATER THAN OR EQUAL TO NOT GREATER THAN OR EQUAL TO
LESS THAN OR EQUAL TO NOT LESS THAN OR EQUAL TO

81

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 81/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T A
ópico 350 - ritmética y Lógica de un Programa COB
‡ Estructuras lógicas

 ² Estructuras Alternativas - Condiciones.

‡ Condiciones de clase. Son aquellas usadas para datos que requieren ser validados antes
de ser procesados. Se encuentran clasificadas en tres tipos:

 ²  Numéricas. Para caracteres numéricos.

‡ 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 82/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 83/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 84/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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.

EVALUATE [identificador-1  / TRUE]

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 85/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico
Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos
Tópico 350 ² Aritmética y Lógica de un Programa Cobol
Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
86

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 86/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T
ópico 360 ² Programación multimodular y Copybooks
‡ Objetivos.

 ² Descripción y función de los programas multimodulares.

 ² Diferencia entre un programa no modular y un programa modular.

 ² Descripción de comandos de control entre programas.

 ² Descripción y función de copybooks.

87

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 87/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T
ópico 360 ² Programación multimodular y Copybooks
‡ Programas Modulares.

 ² Características:

‡ Son programas que se encuentran divididos en funciones.

‡ No realizan todo su proceso dentro del mismo programa, ya que hacen uso de uno o más
programas para realizar ciertas funciones.

Programa principal (calling module) Rutina (called module)

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 88/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T
ópico 360 ² Programación multimodular y Copybooks
‡ Programas Modulares.

 ² Comunicación entre módulos.

‡ Programa principal (Calling module).


 ² Se comunica a través de la siguiente sentencia:

CALL ¶nombre-modulo· USING parámetro-comunicación 1


parámetro-comunicación 2
parámetro-comunicación3.

 ²  Los parámetros de comunicación son declarados en la Working Storage Section.

 ² Si la llamada a la rutina es en forma dinámica, el submódulo no es incluido durante la


compilación del programa principal, con lo que no es necesario recompilar el
programa principal por cada modificación realizada a la rutina, a menos que esto
involucre algún cambio en los parámetros de comunicación.

89

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 89/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T
ópico 360 ² Programación multimodular y Copybooks
‡ Programas Modulares.

 ² Comunicación entre módulos.

‡ Subrutina (Called module).


 ²  Los parámetros de comunicación son declarados en la LINKAGE SECTION, en donde
sólo se pasa la dirección de los datos y la información actual de estos.
 ² El formato de la LINKAGE SECTION es como el de la WORKING-STORAGE SECTION pero
no es permitida la cláusula VALUE.

 ² Se comunica a través de la siguiente cláusula en la cabecera de la PROCEDURE


DIVISON :

PROCEDURE DIVISION USING parámetro-comunicación 1


parámetro-comunicación 2
parámetro-comunicación3.

 ²  GOBACK. Devuelve el control al programa principal con la cláusula.

90

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 90/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 91/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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.

 ² Se encuentran almacenados en diversas librerías.

 ² No pueden ser ejecutados por ningún programa, ni por si mismos.

 ² Puede ser usado en la Working-Storage Section , Linkage Section o Procedure Division.

 ² 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 92/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T
ópico 360 ² Programación multimodular y Copybooks
‡ Copybooks.

PROGRAMA COPY

93

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 93/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico
Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos
Tópico 350 ² Aritmética y Lógica de un Programa Cobol
Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
94

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 94/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T T
ópico 370 - Procesamiento de ablas
‡ Objetivos.

 ² Definir una tabla interna y externa en la Working-Storage Section.

 ² Codificar la lógica de la carga de una tabla externa.

 ² Codificar la lógica para realizar una búsqueda serial y una búsqueda binaria en una tabla.

95

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 95/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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

 ² Componentes de una tabla:

‡ Entrada. Consiste en uno ó mas renglones. Todas las entradas tienen el mismo
nombre y son accedidas por su posición relativa en la tabla.

‡ Indice. El cual mantiene la posición relativa de la entrada que está siendo


accedida.
Í ndice Cuenta Cliente Fecha de Apertura
(1) 4567 Jones, B. 070389 Entrada
(2) 5847 Kline, M. 070689
(3) 8977 Zim, J. 070989

Campo 96

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 96/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T T
ópico 370 - Procesamiento de ablas
‡ Definición de Tablas

 ² Tablas internas.

‡ Son almacenadas en la memoria de los programas.

‡ Son codificadas dentro de los programas, cuando éstas contienen pocos datos que
raramente cambiarán.

‡ Los elementos necesarios para definir una tabla interna son:

 ² Los datos que contendrá la tabla.

 ² Definición de la tabla.

‡ Los verbos utilizados para la definición de una tabla son:


 ²  REDEFINES

 ²  OCCURS

 ²  INDEXED BY

97

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 97/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 98/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

T T
ópico 370 - Procesamiento de ablas
‡ Definición de Tablas

 ² Tablas internas (Cont.)

‡ Los índices son campos numéricos, no pueden ser display ni compactados. Sólo pueden

ser usados con sentencias SET ó PERFORM.

‡ Inicializar un índice:
SET índice TO 1.
‡ Incrementar un índice:
SET índice UP BY 1.

99

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 99/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Definición de Tablas

 ² Tablas externas.

‡ Son almacenadas fuera de los programas en discos y en otros medios externos.

‡ Son almacenadas externamente cuando:

 ² Son muy grandes.

 ² Contendrán información que cambia frecuentemente .

 ² Serán accedidas por otros programas.

‡ Cuando las tablas externas son usadas frecuentemente por el programa son cargadas en
la Working-Storage Section.

100

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 100/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Definición de Tablas

 ² 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

8977 Zim, J. 070989

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 101/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Definición de Tablas

 ² Lógica de carga de una tabla externa.

 Abrir archivo de entrada de los datos de la tabla


 ±

 ± Inicializar switch de no-fin-de-archivo

 ± Incializar el índice a 1

 ± Leer archivo de entrada

2000-Housekeeping

- Mover datos del archivo de entrada al


2100-Car gar tabla campo de la tabla(índice)

(Until end-of-file) - Incrementar el índice en 1

- Leer el siguiente registro del archivo

102

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 102/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Definición de Tablas

 ² Beneficio del uso de tablas.

‡ 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 103/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Métodos de búsquedas en tablas

 ² 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.

‡ Los datos de la tabla pueden encontrarse en cualquier orden.

‡ Al realizar una búsqueda secuencial, el índice debe comenzar en 1.

SET index  TO 1.
SEARCH entrada-tabla
 AT END
acción-1
 W HEN condición
acción-2
END-SEARCH.

104

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 104/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Métodos de búsquedas en tablas

 ² 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 105/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Métodos de búsquedas en tablas

 ² Búsqueda Binaria (Cont.)

 ² La definición de la tabla tiene una cláusula extra:

[ASCENDING, DESCENDING]  KEY IS campo-llave

05 TABLA-CUENTAS.
10 CUENTAS OCCURS 250 TIMES
 ASCENDING KEY IS NUMERO
INDEXED BY CUENTAS-INDEX.
15 NUMERO PIC 9(04).

15 NUM-CLIENTE PIC X(15).


15 FECHA-APERTURA PIC 9(06).

106

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 106/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Métodos de búsquedas en tablas

 ² Búsqueda Binaria (Cont.)

‡ En éste tipo de búsqueda no es necesario iniciar el índice en 1, ya que la sentencia


determina el valor de éste.

SEARCH ALL entrada-tabla


 AT END
acción-1
 W HEN condición
acción-2

END-SEARCH.

107

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 107/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Procesamiento de Tablas.

 ² Para realizar la lectura secuencial de una tabla sin utilizar SEARCH , el proceso lógico sería:

- Mover campo1-tabla (índice) a r  pt-campo1


campo2-tabla índice  pt-campo2 

- Iniciar índice en 1. -- Mover  ( ) a


Mover campon-tabla (índice) a r  pt-campon

2200-Leer-tabla - Escribir registro.


- 2210-Mover-Datos-tabla
(UNTIL índice > total-occurs) - Incrementar índice en 1.

- Inicializar campos rpt.

108

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 108/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Procesamiento de Tablas - Tablas bidimensionales.

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

MOVE IMPORTE(TRIMESTRE,REGION) TO SALIDA.

109

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 109/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 370 - Procesamiento de Tablas


‡ Procesamiento de Tablas - Tablas bidimensionales.

 ² Datos importantes:

‡ Se pueden definir tablas hasta de 16MB.

‡ 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.

‡ La cláusula OCCURS no puede usarse en un nivel 01.

‡ La cláusula OCCURS no puede usarse con elementos a nivel 77.

‡ 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 110/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Módulo Básico

Módulo Básico
Cobol

Tópico 310 ² Codificando un Programa Cobol


Tópico 320 ² Editando un Programa
Tópico 330 ² Procesando Archivos
Tópico 340 ² Formateando Datos

Tópico 350 ² Aritmética y Lógica de un Programa Cobol


Tópico 360 ² Programación Multimodular y Copybooks
Tópico 370 ² Procesamiento de Tablas
Tópico 380 ² Procesamiento Sistema Galaxy Expense
111

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 111/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Objetivos.

 ² Aprender la funcionalidad de un programa batch.

 ² Identificar la entradas y salidas de un programa en COBOL.

 ² Codificación de programas batch.

 ² Manejo de archivos indexados.

112

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 112/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Se encuentran organizados por un área de índices y otra de datos, haciendo referencia a un


campo clave.

 ² El acceso a los registros se realiza localizando en el índice la posición de memoria, para


después acceder a ésta y encontrar el registro correspondiente, sin necesidad de recorrer 
toda el área de datos.

SELECT nombre-interno-archivo
ASSIGN TO nombre-e xterno

ORGANIZATION IS INDEXED
ACCESSMODE IS [RANDOM, SEQUENTIAL]
RECORD KEY IS llave-acceso .

 ² El almacenamiento de los archivos indexados es realizado sólo en discos.

113

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 113/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² El nombre del campo llave debe estar definido en el registro de FD.

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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 114/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Modo de acceso SECUENCIAL.

‡ 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.

‡ En el modo de acceso SECUENCIAL sólo se permite apertura de INPUT y de OUTPUT .


‡ La apertura de INPUT en modo de acceso SECUENCIAL de archivos indexados se realiza de
la siguiente forma:

‡ READ nombre-archivo-interno INTO nombre-lógico-registro

‡ AT END
‡ SET END-OF-FILE TO TRUE.

‡ El final del archivo se detecta en el índice y no en los datos.

115

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 115/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Modo de acceso SECUENCIAL (Cont.).

‡ En caso de querer posicionarse a partir de un valor de índice específico se utiliza la


sentencia START.

START  nombre-archivo-interno KEY [=, >, <, >=] dato-clave


INVALID KEY
acción.

‡ La apertura de OUTPUT en modo de acceso SECUENCIAL se realiza:


WRITE nombre-archivo-interno FROM detalle-datos
Evita la adición de registros duplicados
INVALID KEY
acción.

116

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 116/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Modo de acceso RANDOM.

‡ 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:

MOVE valor-campo-llave TO llave-acceso.

READ nombre-archivo-interno INTO nombre-lógico-registro


INVALID KEY
acción.

117

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 117/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Modo de acceso RANDOM (Cont.).

‡ La adición en apertura de I-O se realiza:

MOVE valor-campo-llave TO llave-acceso.


WRITE nombre-archivo-interno FROM detalle-datos
INVALID KEY
acción.

 ² 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 118/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Modo de acceso RANDOM (Cont.).

‡ La modificación en apertura I-O se realiza:


MOVE valor-campo-llave TO llave-acceso.
REWRITE nombre-archivo-interno FROM detalle-datos
INVALID KEY
acción.

‡ El borrado en apertura I-O se realiza:


MOVE valor-campo-llave TO llave-acceso.
DELETE nombre-archivo-interno
INVALID KEY
acción.

119

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 119/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Archivos Indexados.

 ² Modo de acceso RANDOM (Cont.).

‡ La lectura en apertura I-O se realiza:


MOVE valor-campo-llave TO llave-acceso.
READ nombre-archivo [INTO layout-registro]
INVALID KEY
acción.

120

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 120/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Tópico 380 - Procesamiento Sistema Galaxy Expense


‡ Codificación de un programa batch el cual:

 ² Lee un archivo de gastos (Expense Transaction) y realiza lo siguiente:

‡ Validación de cada uno de los campos que integra el registro del archivo Expense
Transaction .

‡ Verificación de la existencia de cada uno de estos registros en el archivo maestro


(Registrant Master).

‡ Verificación de la existencia del código de gastos en el archivo Expense Decode.

 ² Se genera de salida un archivo de errores (reporte) y se actualiza el archivo Registrant


Expense con la información del archivo Expense Transaction.

121

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 121/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Mejores prácticas programación en cobol.

‡ 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 122/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Mejores prácticas programación en cobol.


‡ En los casos de mantenimiento se debe de registrar el cambio y el usuario que lo realizo en el log
de modificaciones de acuerdo a la nomenclatura establecida por cada cliente.

‡ 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

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 123/124


5/9/2018 5-2 Curso Cobol Cmc w95 - slide pdf.c om

Caso Práctico
‡ Se requiere de un reporte de las tarjetas de crédito

http://slide pdf.c om/re a de r/full/5-2-c urso-c obol-c mc -w95 124/124

También podría gustarte