0% encontró este documento útil (0 votos)
1K vistas32 páginas

Manual Cobol

El documento describe el lenguaje de programación COBOL. COBOL fue creado en 1959 y se usa principalmente para aplicaciones empresariales y bancarias. COBOL tiene tipos de datos como enteros, alfabéticos y alfanuméricos. Los programas en COBOL se dividen en secciones como Identificación, Entorno, Datos y Procedimientos. Dentro de estas secciones se definen constantes, archivos, variables y las instrucciones del programa.

Cargado por

natipe
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1K vistas32 páginas

Manual Cobol

El documento describe el lenguaje de programación COBOL. COBOL fue creado en 1959 y se usa principalmente para aplicaciones empresariales y bancarias. COBOL tiene tipos de datos como enteros, alfabéticos y alfanuméricos. Los programas en COBOL se dividen en secciones como Identificación, Entorno, Datos y Procedimientos. Dentro de estas secciones se definen constantes, archivos, variables y las instrucciones del programa.

Cargado por

natipe
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 32

COBOL (COMAND BUSINESS ORIENTED LANGUAGE LENGUAJE

COMUN ORIENTADO A LOS NEGOCIOS)


HISTORIA
Creado en 1959.
1974 ANSI
1985 RM COBOL/85
1991 COBOL ENTERPRISE (HOST)
COBOL ANSI 2002
NACIO COMO LENGUAJE MILITAR
TIPOS DE DATOS
FORMATO
LONGITUD
A
256 CARACT.
9
18 DIGITOS

TIPO
ALFABETICOS
NUMERICOS
ALFANUMERICOS

256 DIGITOS

VALORES
AZ, az
09
AZ, az, 09,
CARACTERES
ESPECIALES

TIPOS DE PALABRAS
USUARIO
RESERVADAS
30 CARACTERES MAXIMO
READ, DISPLAY, MOVE, ETC.
NO CARACTERES ESPECIALES
360 PALABRAS
Los campos de datos lo podemos clasificar en:

Campos elementales: Un campo elemental no puede subdividirse o no


es necesario subdividirlo para ser tratado por el programa.
Campos compuesto: Un campo compuesto est formado por varios
campos elementales.
Campos independientes: Un campo independiente es un campo de
trabajo que ser definido en la seccin de trabajo.
AREAS DE TRABAJO

COBOL, se escribe secuencialmente en lneas de 80 caracteres o menos


con la siguiente divisin.
Numerar
lneas
1
6

*7

A
8
11

B
12
72

No se usa
73
80

Parte 1. Comprende las columnas de la 1 a la 6. Se usa para numerar las


lneas.
Parte 2. Columna 7, en ella se puede escribir:
(-) Indicando que la lnea es continuacin de la anterior.
(*) Para comentarear un texto
Parte 3. rea A
Columnas de la 8 a la 11.

Se escriben:
Nombres de las divisiones.
Nombre de las secuencias de los prrafos, los indicadores FD.
Los niveles de las variables 01 a 77.
Parte 4. rea B
Columnas de la 12 a la 72.
Se incluyen las instrucciones del programa, lneas de las secciones y los
niveles de las variables mayores a 01.
Parte 5.
Columnas de la 73 a la 80, no se utiliza y por tanto es ignorada por el
compilador.
TIPOS DE CONSTANTES
ALFANUMERICAS
NUMERICAS
ALFABETICAS
FIGURATIVAS: valores que se representan por palabras.
Ejemplo:
ZERO
ZEROES
0
ZEROS
SPACE
ESPACIO EN BLANCO
SPACES
LOW-VALUES
VALORES NULOS
HIGH-VALUES
MAXIMO VALOR
INICIALIZAR CON CARACTERES
ALL
ESPECIALES
ALL *
QUOTE
COMILLA SENCILLA
QUOTES
COMILLA DOBLE
EJEMPLOS VARIABLES
TIPO
ENTERA
ENTERA
ALFABETICA
ALFABETICA
ALFANUMERICA
ALFANUMERICA
RAYA
REAL
CON SIGNO

01
01
01
01
01
01
01
01
01

EJEMPLO
VAR-ENTERA PIC 9999 VALUE ZEROS.
VAR-ENTERA PIC 9(4) VALUE ZEROS.
VAR-ALFABET PIC AAA VALUE SPACES.
VAR-ALFABET PIC A(3) VALUE SPACES.
VAR-ALFANUM PIC XXX VALUE SPACES.
VAR-ALFANUM PIC X(3) VALUE SPACES.
RAYA PIC X(20) VALUE ALL -
VAR-REAL PIC 9(3)V99 VALUE ZEROS.
VAR-SIGNO PIC S9(3)V99 VALUE ZEROS.

ESTRUCTURA DE COBOL
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.

PROCEDURE DIVISION.
IDENTIFICATION DIVISION: IDENTIFICAR EL PROGRAMA
IDENTIFICATION DIVISION.
PROGRAM-ID. Nombre Programa.
AUTHOR. Autor Del Programa.
INSTALLATION. Lugar De Instalacin.
DATE-WRITTEN. Fecha Escritura.
REMARKS. Comentarios Sobre Le Programa.
ENVIRONMENT DIVISION: ENTORNO EN EL QUE SE VA A DESENVOLVER EL
PROGRAMA.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. Ordenador Donde Se Escribi El Fuente.
OBJECT-COMPUTER. Ordenador Donde Se Ejecuta El Objeto.
SPECIAL NAMES. Cambiar Valores Para Constantes Del Lenguaje.
INPUT-OUTPUT SECTION. Se Especifican Los Ficheros A Usar.
FILE-CONTROL.
SELECT NOMBRE ARCHIVO
ASSIGN TO Tipo de Dispositivo
ORGANIZATION IS Tipo de Organizacin (SEQUENTIAL, LINE
SEQUENTIAL,INDEXED..)
ACCESS MODE IS Modo de acceso al archivo (SEQUENTIAL,
DYNAMIC.)
RECORD KEY IS Clave de Registro
ALTERNATIVE RECORD KEY IS Alternativa de registro
WITH DUPLICATES
FILE STATUS IS Variable de Estado del fichero. (VAR-ESTADO,.).
DATA
DIVISION:
DESCRIBE
CONSTANTES, PARMETROS, ETC.

ARCHIVOS,

REGISTROS,

VARIABLES,

DATA DIVISION.
FILE SECTION. Se describen todos los campos que componen los registros
de todos los archivos que se van a utilizar, que se declararon previamente
en la INPUT-OUTPUT SECTION dentro de la ENVIRONMENT DIVISION.
WORKING STORAGE SECTION. En ella se declaran todas las variables no
referentes a archivos, pero que durante la ejecucin del programa se van a
utilizar. Niveles 01 a 77.
LINKAGE SECTION. Se registran las variables que nos servirn para
enlazar el programa principal con el que llamemos mediante la orden CALL
(si el programa es hijo).
COMUNICATION SECTION.
SCREEN SECTION.
REPORT SECTION.
ELEMENTO GRUPO: Esta conformado por n campos elementales.
Nivel 88: Dar nombres de condicin.
PROCEDURE DIVISION: DIVISION DE PROCEDIMIENTOS.

Se encuentran los procesos necesarios para que el programa funcione. Todo


esto con rdenes, verbos, comandos, etc.
PROCEDURE DIVISION (USING variable1, variable2..)
NOMBRE-PARRAFO1.
SENTENCIA1
.
SENTENCIA N
STOP RUN.
NOMBRE-PARRADO2.
SENTENCIA1

SENTENCIAN
STOP RUN.
Ejemplo:
PROCEDURE DIVISION.
INICIO.
Instruccin 1

Instruccin n
STOP RUN.
USING: cuando se usa, se deben dar los nombres de las variables que se
hayan definido en la LINKAGE SECTION, para compartir en el programa, lo
que nos indicara que este ha sido llamado por otro programa y que esas
variables tendrn un valor procedente del programa llamador, que a su vez
utilizo la instruccin CALL con las mismas variables.
VERBOS DE ENTRADA, SALIDA, ASIGNACION Y UTILITARIOS
1. ACCEPT (VERBO DE ENTRADA)
Formato para aceptar datos del sistema o variables del entorno. Verbo del
rea B.
FORMATO 1.
ACCEPT variable FROM (DATE, DAY, DAY-OF-WEEK, TIME, CENTURY-DATE,
CENTURY-DAY, ESCAPE-KEY)
EJEMPLOS:
ACCEPT VAR-ENTRADA
ACCEPT VAR-FECHA FROM DATE
ACCEPT VAR-HORA FROM TIME
FORMATO 2.
ACCEPT variable LINE identificador1 POSITION identificador2
EJEMPLOS:

ACCEPT COD-EMP LINE 5 POSITION 20


2. DISPLAY (VERBO DE SALIDA)
Permite visualizar datos en pantalla.
FORMATO
DISPLAY variable, literal CLAUSULAS LINE, COL, SIZE, HIGH, LOW,
REVERSE, BEEP, BLIN, ERASE
EJEMPLO:
DISPLAY
DISPLAY
DISPLAY
DISPLAY

REGISTROS LEIDOS
VAR-ENTERA
REGISTROS LINE 3 POSITION 30
ERASE -- BORRAR PANTALLA

3. MOVE (VERBO DE ASIGNACION)


Mover valores de constante o variable a otra variable.
FORMATO:
MOVE variable, valor TO variable-1, variable-n
EJEMPLOS:
MOVE
MOVE
MOVE
MOVE

B TO A
A=B
3 TO C
C=3
ZERO TO VAR
VAR=0
NOMBRE (1:8) TO NOM-1
-> NOM-1 = KATERINE

4. INITIALIZE
Inicializar variables segn el tipo, es decir pondr en ceros las variables
numricas o de edicin, y a las alfabticas y alfanumricas les pondr
espacios.
EJEMPLOS
INITIALIZE FEC-EDI
INITIALIZE A B C D
5. INSPECT
Se utiliza para contar, reemplazar o contar y reemplazar caracteres o grupos
de caracteres dentro de un campo.
Se puede contar las veces que aparece un carcter, o cambiar todos los
caracteres por otros.
FORMATO 1: (Contar)
INSPECT variable-1 FOR (CHARACTERS)
((BEFORE/AFTER) INITIAL) cadena-1
(ALL) (LEADING) cadena-2.
EJEMPLOS:

INSPECT TEXTO TALLYNG CONTA FOR ALL A.


(Cuenta las A que hay en la variable)
INSPECT TEXTO TALLYNG CONTA FOR LEADING A.
(Cuenta si en la primera posicin hay una A)
FORMATO 2: Reemplazar el contenido de un campo por otro.
INSPECT campo-1
REPLACING variable-1 CHARACTERS BY cambio-1
((BEFORE/AFTER) INITIAL) cadena-q
(ALL) (LEADING) (FIRST) cadena-2Se puede repetir de nuevo
EJEMPLOS:
INSPECT TEXTO REPLACING CHARACTERS BY H.
INSPECT TEXTO REPLACING ALL A BY I.
INSPECT TEXTO REPLACING ALL A BY - AFTER INITIAL G BEFORE INITIAL
T.
FORMATO 3: Se convierten los caracteres que se especifiquen en
identificador 1.
INSPECT campo-1
CONVERTING identificador-1 TO identificador-2
((BEFORE/AFTER) INITIAL) cadena-1..Se puede repetir de nuevo
EJEMPLOS:
INSPECT TEXTO CONVERTING AO TO 12.
INSPECT TEXTO CONVERTING ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz.

TO

6. STRING: Usado para unir o concatenar campos o parte de estos y el


resultado almacenarlo en otro campo.
DELIMITED BY
Indica hasta donde vamos a coger del campo para concatenar sin contar
ese carcter o cadena que se especifique en campo2 o literal 2.
FORMATO:
STRING campo-1, literal-1, (campo-2, literal-2)
DELIMITED BY SIZE
INTO campo-3
(WITH POINTER identificador-1)
(ON OVERFLOW sentencia-1)
(NOT ON OVERFLOW sentencia-2)
EJEMPLO:
MOVE 4 TO PUNTO
STRING HOY ES VARDIA DE DELIMITED BY SIZE

VARMES
DE VARAO
INTO CONSTRING
WITH POINTER PUNTO.

DELIMITED BY
DELIMITED BY SIZE

7. UNSTRING: Divide el contenido del campo en otros.


FORMATO:
UNSTRING campo-1, literal-1
DELIMITED BY (campo-2, literal-2) (ALL)
OR (campo-2, literal-2) (ALL)
(Se puede repetir de nuevo)
INTO campo-3, campo-4,.
(DELIMITER identificador-1)
(COUNT identificador-1)
(COUNT identificador-2)
(Se puede repetir de nuevo)
(WITH POINTER identificador-3)
(TALLYNG identificador-4)
(ON OVERFLOW sentencia-1)
(NOT ON OVERFLOW sentencia-2)
EJEMPLO:
WORKING-STORAGE SECTION.
01 LAFECHA
PIC X(30) VALUE HOY ES 16 DE AGOSTO DE
2011.
01 TEXTOS.
02 TEXTO1 PIC X(20).
02 TEXTO2 PIC X(20).
02 ELDIA
PIC 99.
02 TEXTO3 PIC X(20).
02 ELMES
PIC X(10).
02 TEXTO4 PIC X(20).
02 ELANO PIC 9(4).
PROCEDURE DIVISION.
INICIO.
UNSTRING LAFECHA DELIMITED BY
INTO TEXTO1 TEXTO2 ELDIA TEXTO3 ELMES T XTO4 ELANO
END-UNSTRING
REDEFINES
Redefinir la estructura o el formato de una variable o un campo. (Compartir
la misma direccin de memoria)
Nombre-de-dato-1
REDEFINES nombre-de-dato-2
FILLER
Reglas:

La clausula debe ser la primera que siga al nombre de datos.


Los campos deben estar declarados al mismo nivel (nivel 88).
La redefinicin de un campo compuesto se hace inmediatamente
despus del ltimo de los campos elementales que forman parte de
aquel, y esta debe tener la misma longitud.

Ejemplo:
WORKING-STORAGE SECTION.
01 VAR-FECHA
PIC X(10).
01 VAR-FECHA-PAR REDEFINES VAR-FECHA.
02 AO
PIC 9(4).
02 FILLER
PIC X(1).
02 MES
PIC 9(2).
02 FILLER
PIC X(1).
02 DIA
PIC 9(2).
FORMATOS DE EDICION
Mascaras, se utilizan para presentar de una forma clara, los datos
numricos en pantalla.
FORMAT
O
.
,
z
*
/

CR

DB

DESCRIPCION
Separa la parte decimal de
la entera
Separa la parte entera en
cientos, miles, etc.
Reemplaza los ceros no
significativos (a la
izquierda) por blancos
Reemplaza los ceros no
significativos por (*)
Se usa para fechas separa
dgitos con (/)
Smbolo bancario
indicativo de crdito. Las
letras aparecen si el valor
es negativo.
Smbolo bancario
indicativo de debito.
Aparece si el valor es
negativo.
Es flotante (se ubica en la
primera cifra o en la
primera no significativa). Si
el valor es mayor al de la
mscara este lo trunca,
ocupa posicin.
Es flotante, se ubica en la
primera posicin o en la

EJEMPLOS
01 MASCA PIC 9(8).99.
01 MASCA PIC 999,999,999.99.
01 MASCA PIC ZZZ,ZZZ,ZZ9.99.
01 MASCA PIC ***,***,**9.99.
01 MASCA PIC 99/99/99.

01 MASCA PIC ZZZ,ZZZ,ZZ9.99CR.

01 MASCA PIC
ZZZ,ZZZ,ZZ9.99DB.

01 MASCA PIC $$,$$$,$$9.99.

01 MASCA PIC +++,+++,++9.99.


01 MASCA PIC ---,---,--9.99.

primera cifra no
significativa. Si es positivo
aparece el signo (+), si es
negativo aparece el signo
(-). Si el valor es mayor al
de la mscara se trunca.
VERBOS ARITMETICOS
1. ADD: SUMA
FORMATO 1: Se usa, cuando se repite el identificador a ambos lados.
ADD variable-1, variable-2.TO variable (ROUNDED)
(ON SIZE ERROR) instruccin imperativa
NOT ON SIZE ERROR instruccin imperativa
END-ADD
EJEMPLOS:
GENERAL
A=A+B
A=A+B+10+J

EN COBOL
ADD B TO A END-ADD
ADD J 10 B TO A END-ADD

FORMATO 2: Se usa cuando el identificador no se repite a ambos lados del


igual.
ADD variable-1, variable-2.GIVING variable (ROUNDED)
(ON SIZE ERROR) instruccin
NOT ON SIZE ERROR instruccin
END-ADD
EJEMPLOS:
GENERAL
A=B+J+C+D+10

EN COBOL
ADD 10 D C J B GIVING A END-ADD

2. SUBTRACT: RESTA
FORMATO 1: Se usa cuando el identificador se repite a ambos lados.
SUBTRACT variable-1, variable-2.FROM variable (ROUNDED)
(ON SIZE ERROR) instruccin imperativa
NOT ON SIZE ERROR instruccin imperativa
END-SUBTRACT
EJEMPLOS:
GENERAL
A=A-B

EN COBOL
SUBTRACT B FROM A
END-SUBTRACT

FORMATO 2: Se usa cuando no se repite el identificador a la y lado.


SUBTRACT variable-1, variable-2.FROM
variable
(ROUNDED)
(ON SIZE ERROR) instruccin imperativa
NOT ON SIZE ERROR instruccin imperativa
END-SUBTRACT

GIVING

EJEMPLOS:
GENERAL
A=Z-B-10-J

EN COBOL
SUBTRACT J 10 B FROM Z GIVING A
END-SUBTRACT

3. MULTIPLY: MULTIPLICAR
FORMATO 1: El identificador se repite a lado y lado.
MULTIPLY variable BY variable (ROUNDED)
(ON SIZE ERROR) instruccin imperativa
NOT ON SIZE ERROR instruccin imperativa
END-MULTIPLY
EJEMPLO:
GENERAL
A=A*B

EN COBOL
MULTIPLY B BY A
END-MULTIPLY

FORMATO 2: El identificador no se repite a ambos lados.


MULTIPLY variable BY variable GIVING variable (ROUNDED)
(ON SIZE ERROR) instruccin imperativa
NOT ON SIZE ERROR instruccin imperativa
END-MULTIPLY
EJEMPLO:
GENERAL
A=B*C

EN COBOL
MULTIPLY C BY B GIVING A
END-MULTIPLY

4. DIVIDE: DIVIDIR
FORMATO 1: Cuando se repite el identificador a ambos lados.
DIVIDE variable INTO variable (ROUNDED) (REMAINDER) variable
(ON SIZE ERROR) instruccin
NOT ON SIZE ERROR instruccin
END-DIVIDE

variable

EJEMPLO:
GENERAL
A=A/B

EN COBOL
DIVIDE B INTO A
END-DIVIDE

FORMATO 2: Cuando no se repite el identificador a ambos lados.


DIVIDE variable
(BY INTO)
variable GIVING variable (ROUNDED)
(REMAINDER) variable
(ON SIZE ERROR) instruccin
NOT ON SIZE ERROR instruccin
END-DIVIDE
EJEMPLO:
GENERAL
A=B/C
C=A/B;
RESIDUO EN R

EN COBOL
DIVIDE C INTO B GIVING A
END-DIVIDE
DIVIDE B INTO A GIVING C REMAINDER R

5. COMPUTE: Combinacin de operaciones. Usarla para expresiones


complejas.
FORMATO:
COMPUTE variable (ROUNDED) -> Expresin aritmtica
(ON SIZE ERROR) instruccin
NOT ON SIZE ERROR instruccin
END-COMPUTE
EJEMPLO
GENERAL

EN COBOL

A=A/B

COMPUTE A=A/B

F=Y**Z+X*Y+Z*
A

COMPUTE F=Y**Z+X*Y+Z*A

JERARQUIAS
1. () : Parntesis
2. ** : Potenciacin
3. * / : Multiplicacin - Divisin
4. * - : Suma- Resta
Se debe usar para operaciones complejas.
Si hay repeticin de operadores, en una misma lnea, se hace primero la
operacin que este ms a la izquierda.
CONDICIONAL
IF: Esta sentencia toma una decisin referente a la accin a ejecutar en un
programa, basndose en el resultado, verdadero o falso de una condicin.

FORMATO
IF Condicin
[THEN]

Accin 1
NEXT
SENTENCE

ELSE

Accin 2
NEXT
SENTENCE

[END-IF]

EJEMPLO:
IF TAS-HIP = 0,3
CONTINUE
ELSE
DISPLAY TASA ERRADA
END-IF
CLASE: permite saber el contenido de un identificador o variable, si es
numrico o es alfabtico.
FORMATO

NOMBRE DATOS

IS [NOT]

NUMERIC
ALPHABETIC
ALPHABETIC-UPER -> maysculas
ALPHABETIC-OWNER -> minsculas

EJEMPLOS:
IF VAR-UNO
IS ALPHABETIC
CONTINUE
ELSE
MOVE SPACES TO VAR-UNO
END-IF
IF NUM-UNO
IS NUMERIC
CONTINUE
ELSE
MOVE 1 TO NUM-UNO
END-IF
SIGNO: Permite determinar si el valor de un campo numrico de una
expresin aritmtica es positivo, negativo o cero.
FORMATO
NOMBRE DATO 1
EXP. ARITMETICA
EJEMPLO:
IF NUM
IS POSITIVE

IS [NOT]

POSITIVE
NEGATIVE
ZERO

CONTINUE
ELSE
MULTIPLY -1 BY NUM
END-IF
RELACION:
FORMATO

NOMBRE DATO 1
LITERAL
EXP. ARITMETICA

[NOT]
[NOT]
[NOT]
[NOT]
THAN
[NOT]
[NOT]
[NOT]
[NOT]
[NOT]

IS

>
<
=
GREATE
LESS THAN
EQUAL TO
<=
>=
<>

NOMBRE DATO 2
LITERAL
EXP. ARITMETICA

CONDICIONES COMBINADAS: Formada por un conjunto de condiciones


simples, unidas por los operadores OR y AND.
FORMATO
Condicin
Simple

AND
OR

Condicin Simple

EJEMPLO
IF TAS-HIP OR TAS-TAR OR TAS-CON = 0,3
CONTINUE
ELSE
DISPLAY TASA ERRADA
END-IF
NOMBRES DE CONDICION: Permite probar si un nombre de condicin al
que le ha asignado un valor del campo de datos del cual depende, coincide
con el valor del campo de datos del cual depende, estos van a subnivel 88.
Son un conjunto de valores que se asocian a una variable.
EJEMPLO
01

TASA-INTER
88
TAS-TAR
88
TAS-TAR
88
TAS-CON

PIC
9V99.
VALUE 0.31.
VALUE 0.35.
VALUE 0.32.

ANIDADOS: Un IF que contiene otro IF.

Las sentencias IF.THEN. Pueden estar anidadas. Esto quiere decir que
como accin-1 o accin-2, de acuerdo con el formato, puede escribirse una
sentencia IF:
FORMATO
IF

COND1
SENTENCIA 1
ELSE IF COND2
SENTENCIA 2
ELSE IF COND3
SENTENCIA 3
ELSE
SENTENCIA N
[END-IF]
EJEMPLO
IF

C1 OR C2 AND C3
S1
IF C3 AND C2
S2
ELSE
S3
IF C4
S4
ELSE
S5
IF C3
CONTINUE
ELSE
S6.
DIAGRAMA DE FLUJO

#
1
2
3
4

C1
V
V
V
V

C2
V
V
V
V

C3
V
V
F
F

C4
V
F
V
F

S1
X
X
X
X

S2
X
X
-

S3
X
X

S4
X
-

S5
X

S6
X

Notas:
-

CONTINUE: hace lo que esta despus del final del Si Anidado.


NEXT SENTENCE: hace lo que estos 2 puntos despus del Si Anidado.

EVALUATE
Se evalan nombre de condicin.
FORMATO
EVALUATE identificador/valor lgico
ALSO identificador/ valor
lgico
WHEN valor/ nom-condicin sentencia-1 ALSO valor/ nom-condicin
sentencia-1
WHEN valor/ nom-condicin sentencia-2 ALSO valor/ nom-condicin
sentencia-2
WHEN valor/ nom-condicin sentencia-3 ALSO valor/ nom-condicin
sentencia-3
WHEN OTHER
ALSO ANY
END-EVALUATE
EJEMPLOS
En este caso se evalan EDAD y SEXO.

EVALUATE EDAD ALSO SEXO


WHEN
18
ALSO M
WHEN
18
ALSO H
HOMBRE
WHEN
30
ALSO ANY
WHEN
OTHER
CON-OTROS
END-EVALUATE

ADD
ADD

1
1

TO
TO

CON-MUJER
CON-

ADD

1
ADD

TO
1

CON-ED-30
TO

En este caso, se usa TRUE porque se est evaluando si es HOMBRE o


MUJER.
EVALUATE TRUE
WHENMUJER
WHENHOMBRE
WHENOTHER
END-EVALUATE

ADD

ADD
1
ADD

1
TO
1

TO
CON-MUJER
CON-HOMBRE
TO
CON-OTROS

Con SET le asignamos el valor de TRUE al nombre de condicin


pertinente
EVALUATE TRUE
WHEN HIPOTE
WHEN HIPOTE
WHEN AUTOMO
WHEN AUTOMO
WHEN LIBREI
TRUE
WHEN LIBREI
TRUE
END-EVALUATE

ALSO TRUE
ALSO SICABE
SET THIPOM TO
ALSO NOCABE
SET THIPOM TO
ALSO SICABE
SET TAUTOM
TO
ALSO NOCABE
SET TAUTOM
TO
ALSO SICABE
SET TLIBREM
ALSO NOCABE

SET TLIBREM

TRUE
TRUE
TRUE
TRUE
TO
TO

VERBOS DE CONTROL
PERFORM: Utilizada para transferir explcitamente el control a uno o ms
procedimientos y devolver el control implcitamente, cuando la ejecucin del
procedimiento especificado finalice.
Se puede usar para controlar la ejecucin de una o ms sentencias, las
cuales estn dentro de la sentencia PERFORM.
TIPOS:
1. BASICO: Se ejecuta solo una vez para pasar a la siguiente instruccin
ejecutable.
PROCEDURE DIVISION.
NOMBRE-PERFORM.
SENTENCIA 1

SENTENCIA-N.
EJEMPLOS

223-ARMA-REG-SAL.
Sentencia-1
..
Sentencia-n.
2. ANIDADO: Un PERFORM puede llamar a otro PERFORM.
EJEMPLOS
PROCEDURE DIVISION.
INICIO.
PERFORM 1000-INICIO
PERFORM 2000-PROCESO
PERFORM 3000-FIN
STOP RUN.
PROCEDURE DIVISION.
INICIO.
PERFORM 1000-LEER
PERFORM 2000-ABRIR
PERFORM 3000-CERRAR
STOP RUN.
3. TIMES: Ejecuta n veces un PERFORM especificado por un entero o punto.
FORMATO
PERFORM procedimiento |entero|
|variable|
EJEMPLOS
PERFORM
PERFORM

LEER 5
LEER K

TIMES

TIMES
TIMES

4. UNTIL: Mientras que sea falsa la condicin ejecuta el PERFORM, cuando


sea verdadero suspende la ejecucin.
FORMATO
PERFORM procedimiento [WITH TEST] |BEFORE| UNTIL condicin
|AFTER|
Para que se ejecute por lo menos una vez se debe incluir la frase WITH TEST
[AFTER] antes del UNTIL. De lo contrario WITH TEST [BEFORE] la cual hace
por defecto.
Con la opcin TEST BEFORE, que es la opcin por defecto se comprueba
primero la condicin y si se cumple se ejecuta el resto, con lo cual es posible
que las sentencias no se ejecuten ninguna vez, si al comenzar ya est rota
la condicin.

Con la opcin TEST AFTER, se ejecutan las sentencias antes de comprobar la


condicin, con lo cual las sentencias se van a ejecutar al menos en una
ocasin, incluso aunque entremos en el PERFORM con la condicin rota.
EJEMPLOS
PERFORM
LEER UNTIL X > 5
LEER.
ADD 1
TO
X
SENTENCIA-1
SENTENCIA-N.
5. THRU: permite ejecutar una serie de PERFORMS en forma consecutiva,
entre PROCEDIMIENTO-1 y PROCEDIMIENTO-2 incluyendo a ambos.
FORMATO
PERFORM PRODEDIMIENTO-1 THRU PROCEDIMIENTO-2
EJEMPLO
Haga el PERFORM M2 hasta que encuentre al PERFORM M5.
PROCEDURE DIVISION.
INICIO.
PERFORM M1
PERFORM M2 THRU M5
PERFORM M3
STOP RUN.
M1.
Sentencias.
M2.
Sentencias.
AA1.
Sentencias.
JK4.
Sentencias.
M5.
Sentencias.
6. VARYING: Se basa en un valor inicial el cual se podr, aumentar o
disminuir y terminar cuando se cumpla una condicin.
FORMATO
PERFOR
M

VARYIN
G

procedimiento

WITH
TEST

BEFORE
AFTER

Nombre-dato-1

FROM

Nombre-dato2
Literal
Nombre-

Nombre-indice1

BY

Nombre-dato3
Nombre-

indice-2

UNTIL

indice-3

Condicin-1

EJEMPLO
PERFORM CALCULO VARYING
CALCULO.
-------------------------------------.

FROM 0

BY

UNTIL I > 4

7. ANIDADO: Efectivamente adems de la primera condicin podemos


incrementar el nmero de condiciones para que se cumplan los
requisitos y as ejecutar las sentencias.
FORMATO
PERFOR
M

procedimiento

WITH
TEST

BEFORE
AFTER

FROM

Nombre-dato2
Literal
Nombreindice-2

Nombre-dato-1
VARYIN
G

UNTIL

Nombre-indice1

UNTIL

BY
Nombreindice-3

Condicin-1
Nombre-dato-4

AFTER

Nombre-dato3

Nombre-indice4

FROM

Nombre-dato5
Literal-2
Nombreindice-5

Nombre-dato6
BY
Nombreindice-6

Condicin-2

EJEMPLO
PERFORM CALCULO VARYING I FROM 1 BY 2 UNTIL I > 3
AFTER K FROM 2 BY 1 UNTIL K > 4
8. COMBINADOS
1. THRU CON VARYING
FORMATO
PERFOR
M

Procedimiento-1 [THRU Procedimiento2]

WITH
TEST

BEFORE
AFTER

Nombre-dato-1
VARYIN
G

UNTIL

Nombre-indice1

FROM

Nombre-dato2
Literal
Nombreindice-2

Nombre-dato3
BY
Nombreindice-3

Condicin-1

EJEMPLO
PERFORM M1 THRU M5 VARYING X FROM 1 BY 1 UNTIL X > 0
2. THRU CON UNTIL
FORMATO
PERFOR
M

Procedimiento-1 [THRU Procedimiento2]

UNTIL

Condicin-1

WITH
TEST

BEFORE
AFTER

EJEMPLOS
PERFORM M1 THRU M5 UNTIL X > 2
PERFORM M1 THRU M5 WITH TEST BEFORE UNTIL X > 2
PERFORM M1 THRU M5 WITH TEST AFTER UNTIL X > 2
9. EN LINEA: Es en lnea porque no tiene nombre.
Se usa para validar entradas de datos.
Las instrucciones se colocan a continuacin.
Se usa END-PERFORM.
INICIALIZA-MAPA.
MOVE 1 TO X
PERFORM 5 TIMES
MOVE SPACES TO SAP-LINEA(X)
ADD 1 TO X
END-PERFORM
SET CAA-88-ACCION-TERMINAL TO TRUE
SUBPROGRAMACION (CALL)
Mtodo que se basa en la utilizacin de un programa principal comunicado
con uno o ms subprogramas.

Objetivos:
1. Evitar programas demasiado largos.
2. Evitar redundancias.
El programa principal se ejecuta y cuando encuentra en su PROCEDURE un
CALL nombre programa transfiere el control al subprograma en cuestin.
Cuando este termine su ejecucin devolver el control al programa principal
mediante la instruccin EXIT-PROGRAM
Jerarqua:
El subprograma principal se puede comunicar con todos los subprogramas.
Un subprograma puede ser llamado por un subprograma de nivel superior.
CALL nombre-programa USING
REFERENCE

BY PARAMETRO1
PARAMETRO N.
BY

CONTENT
Llamamos con
USING.

CALL al subprograma y le mandamos las variables con

Tener en cuenta:
Llamado Fijo:
CALL PROGRAMA USING VARIABLE-1, VARIABLE-B, VARIABLE-C
Llamado Dinmico:
Para llamar de forma dinmica se requiere de una variable:
01 VAR-PRG PIC X(8) VALUE GCRUT001.
CALL VAR-PRG USING VARIABLE-1, VARIABLE-B, VARIABLE-C
o

Las variables y los parmetros de la rutina pueden tener diferente


nombre pero sus caractersticas deben de ser las mismas.

Antes de llamar una rutina inicializar parmetros.

DIFERENCIAS PROGRAMA Y RUTINA


Una rutina:
Debe enviar un cdigo de retorno.
Se termina con EXIT PROGRAM.
TABLAS DE MEMORIA
Es un conjunto de valores almacenados en posicin de almacenamiento
consecutivo y con un nombre de dato asignado.
La referencia a un elemento especfico de la tabla se hace mediante el uso
de un subndice, que identifica la posicin de un elemento en particular.
CLAUSULA OCCURS: Define el tamao de la tabla. No puede aparecer al
nivel 01, ni 77, ni 88.

Normas Crear Una Tabla


1.
2.
3.
4.
5.
6.
7.
8.

Las tablas solamente se definen en los subniveles 02 al 49.


Por cada dimensin se define in subndice.
Mximo aguanta 7 subndices.
Los subndices deben ser enteros positivos, mayores a cero.
El dimensionamiento de las tablas lo da el anidamiento de OCCURS.
Las tablas solo se trabajan con campos elementales.
Cobol aguanta mximo 65000 OCCURS.
No puede ponerse una clausula REDEFINES junto a una clausula
OCCURS.

FORMATOS
FORMATO A: cuando el vector va a almacenar un dato en cada casilla.
SUBNIVEL

NOMBRE-TABLA

OCCURS

ENTERO

TIMES

01 TABLA.
05 ELEMENTO OCCURS 5 TIMES.
10 NUM-VENDEDOR
PIC XXX.
10 TOTAL-VENDIDO
PIC X(6).
NUMVENDEDOR

TOTALVENDIDO

1
2
3
4
5
Tabla de 5 elementos y cada elemento compuesto por dos campos.
FORMATO B: cuando se va a almacenar un dato.
SUBNIVEL

NOMBRE-TABLA

OCCURS

ENTERO

TIMES PIC 9(5).

01 TABLA.
05 ELEMENTOS OCCURS 100 TIMES PIC 99.
Tabla de 100 elementos de 2 caracteres.
Redefinir un campo alfanumrico en una tabla en la que cada elemento es
un mes del ao.
01 NOMBRE-MESES.
10 MES-01 PIC X(10) VALUE ENERO.
10 MES-02 PIC X(10) VALUE FEBRERO.

10 MES-10 PIC X(10) VALUE DICIEMBRE.


05 TABLA-MESES REDEFINES NOMBRE-MESES.
10 MES OCCURS 12 TIMES PIC A(10).

INSTRUCCION MOVE EN TABLAS


Mover un elemento de la tabla a una variable.
EJEMPLO 1.
01 TABLA.
05 ELEMENTO OCCURS 50 TIMES.
10 ELE1 PIC 9(6)V99.
10 ELE2 PIC 9(6)V99.
MOVE ELE1(34) TO IMPORTE
EJEMPLO 2.
Mover las letras de la A a la F a una tabla.
01 TABLA.
05 LETRAS OCCURS 6 TIMES PIC X.

MOVE ABCDEF TO TABLA


TABLAS DE VARIAS DIMENSIONES
El concepto de dimensin se refiere a categoras por medio de las cuales los
datos son organizados dentro de las tablas.
Puede haber tablas de 7 dimensiones. La forma de referenciar un elemento
es por medio de tantos subndices como sea la dimensin de la tabla,
separados por espacios.
DIMENSIONES
1) Unidimensional: vectores
2) Bidimensional: matrices
3) Tridimensional: x,y,z
4) Tetradimensional:
5) Pentadimensional
6) Hexadimensional
7) Heptadimensional
Ejemplos:
TABLAS DE DOS DIMENSIONES
1. Tabla que tenga 5 departamentos y dentro de cada departamento, se
manejan 30 productos, con su respectiva cantidad.
01 TABLA-DEPARTAMENTOS.
05 DEPARTAMENTOS OCCURS 5 TIMES.
15 PRODUCTOS OCCURS 30 TIMES.
20 CANTIDAD PIC 9(8).
2. Tabla que tenga 15 departamentos y dentro de cada departamento, se
manejan 300 productos, con su respectiva cantidad y precio.

01 TABLA-DEPARTAMENTOS.
05 DEPARTAMENTOS OCCURS 15 TIMES.
15 PRODUCTOS OCCURS 300 TIMES.
20 CANTIDAD
PIC 9(8).
20 PRECIO PIC 9(8).
TABLA DE TRES DIMENSIONES
01 XITO.
04 ALMACENES OCCURS 200 TIMES.
05 DEPARTAMENTOS OCCURS 5 TIMES.
10 PRODUCTOS OCCURS 30 TIMES.
40 CANTIDAD
PIC 9(8).
40 PRECIO PIC 9(8)V99.
TABLA DE CUATRO DIMENSIONES
01 XITO.
03 REGIONAL OCCURS 5 TIMES.
04 ALMACENES OCCURS 200 TIMES.
05 DEPARTAMENTOS OCCURS 5 TIMES.
10 PRODUCTOS OCCURS 30 TIMES.
40 CANTIDAD
PIC 9(8).
40 PRECIO PIC 9(8)V99.
La longitud de los subndices lo da la longitud de las ocurrencias (OCCURS).
01
01
01
01

R PIC 9(1)
A PIC 9(3)
D PIC 9(1)
P PIC 9(2)

Los subndices se utilizan para apuntar a los datos en la tabla.


Preguntar por los datos:
DONDE I=1 R=3 A=5 D=2 P=18
IF (I R A D P) > 18000
TABLAS VARIABLES
Es variable cuando su tamao vara de una ejecucin a otra.
FORMATO:
OCCURS entero-1 TO entero-2 TIMES
DEPENDING ON numero-datos
El campo entero-1 y entero-2, son el mnimo y el mximo nmero de
elementos que puede contener la tabla, dependiendo del valor que tenga
nmero-datos.
Ejemplo:
01 TABLA.
05 ARTICULOS OCCURS 100 TO 200

DEPENDING ON N-ARTICULOS.
TABLAS INDEXADAS
Nos permite indexar una tabla para posteriormente hacer bsquedas sin
necesidad de recorrerla toda.
Se le define un ndice o llave, por tanto la tabla se ordena por ese ndice.
(Pueden ser llaves compuestas).
FORMATO
Subnivel nombre OCCURS entero TIMES {ASCENDING O DESCENDING}
KEYS IS dato-1 [dato-2.]
[INDEXED BY ndice-1 [ndice-2---]]
INDEXED: indica el o los ndices que vamos a utilizar, son obligatorios en
caso de utilizar la instruccin SEARCH.
El ndice-1, ndice-2.. Si se escriben, se deben declarar en la WORKING
STORAGE SECTION como USAGE IS INDEX.
ASCENDING O DESCENDING KEY IS: solo se utiliza en el caso de que la tabla
se encuentre ordenada por una o varias llaves.
La llave KEY IS debe ser uno de los campos de la tabla.
Ejemplo:
01 TABLA-DATOS.
02 EDADES OCCURS 10 TIMES
ASCENDING KEY IS TAB-COD
INDEXED BY X.
05 TAB-COD PIC 99.
05 TAB-NOM
PIC X(20).
INSTRUCCION SET
Funcin: se utiliza para inicializar ndices o cambiar su contenido. Solo los
declarados como USAGE IS INDEX.
FORMATO:
SET ndice

TO
UP BY
DOWN BY

entero
variable

El parmetro TO inicializa el ndice al valor que le pongamos en entero o


variable.
SET X TO 2.
El parmetro UP BY suma al ndice el valor que pongamos en entero o
variable.
SET X UP BY 1
El parmetro DOWN BY resta al ndice el valor que pongamos en entero o
variable.

SET X DOWN BY 2
INSTRUCCIN SEARCH
Sirve para buscar un elemento o varios en una tabla indexada.
FORMATO
SEARCH nombre-tabla VARYING ndice
condicion-1 accion-2
variable
accion-3}
END-SEARCH

AT END accin-1
{WHEN

WHEN

condicin-2

Se pueden poner muchos WHEN.


Nombre-tabla es el nombre de la tabla donde se va a buscar.
AT END accin-1, es lo que tiene que hacer en caso de que la tabla se
termine y el elemento no se haya encontrado.
condicin-1 y condicin-2, son las condiciones que tiene que cumplir un
determinado elemento de la tabla, el cual se est buscando.
VARYING, hace que se incremente automticamente el ndice de la tabla.
ARCHIVOS SECUENCIALES
Archivo: Conjunto de registros almacenados en algn orden (secuencial,
indexado) en un dispositivo fsico.
De esta organizacin se deriva el formato de fichero SEQUENTIAL, donde los
registros se graban secuencialmente conforme se da entrada sin importar si
estn o no repetidos.
Registro: un tipo de dato estructurado formado por la unin de varios
elementos bajo una misma estructura. Un conjunto de campos.
Estructura del archivo: campos que compone los registros (tipo y
longitud) orden lgico que tienen.
En Bases de Datos, se llaman columnas, no campos.
Dominio: conjunto de posibles valores que puede contener una tabla.
ndice: campo que permite identificar un registro. (Es nico)
ndice principal: permite identificar un registro. Es nico.
ndice secundario: es un campo que se puede repetir. Va a identificar a
uno o varios registros.
CLUSTER: llave que ordena tanto fsica como lgicamente las tablas.
Tipos de archivos u organizacin:
1. Secuenciales

2. Indexados (archivos secuenciales con ndice), por cada llave crea


una tabla de ndices para ordenar lgicamente el archivo, esta tabla
compuesta por dos campos: la llave y la posicin fsica de la llave.
3. Relativos: posicin de los registros es relativa.
El objetivo de las llaves es agilizar las bsquedas.
CLAUSULA SELECT: Seleccionar
FORMATO
SELECT [OPTIONAL] nombre-fichero-1 ASSIGN TO dispositivo
[ORGANIZATION IS

[RECORD]
LINE

SEQUENTIAL]

[ACCESS MODE IS SEQUENTIAL]


[FILE STATUS IS nombre-dato]
SELECT: Especificamos el nombre lgico que va a tener el fichero dentro del
programa. Ejemplo: ARTICULOS, PROVEEDORES, CLIENTES, etc.
OPTIONAL: si indicamos esta opcin al hacer un OPEN I-O, si el archivo no
existe, se crea. Con lo cual nos evitamos tener que abrirlo como OPEN
OUTPUT y cerrarlo, antes de poder utilizarlo por primera vez.
ASSIGN: Aqu especificamos el tipo de dispositivo, si es una impresora,
PRINTER, si es un fichero sobre el que vamos a grabar RANDOM o DISC.
ORGANIZATION: Indicamos la organizacin. Si se omite esta clausula, se
asume organizacin secuencial (SEQUENTIAL) y si se omite ACCESS se
asume acceso secuencial (SEQUENTIAL).
FILE STATUS: nombre de una variable declarada en la WORKING como:
01 VAR-ESTADO X(2).
00 indica Es Correcto.
Los Indexados, manejan la RANDOM, SEQUENTIAL o DINAMIC (combinacin
de las anteriores).
EJEMPLO
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ACTIVOS
ASSIGN TO 'ACTIVOS.TXT'
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS VAR-ESTADO.
SELECT INFORMES ASSIGN TO 'LISTPRES.TXT'
FILE STATUS IS VAR-ESTADO.

FILE SECTION
Seccin donde se describen los campos que van a componer el registro de
cada uno de los archivos a trabajar (que se seleccionaron en la INPUT
OUTPUT)
FD (File Description)
FILE SECTION.
FD
nombre-fichero
LABEL RECORD ..
[RECORDING MODE IS] .
[BLOCK CONTAINS]
RECORD CONTAINS]
[DATA RECORD IS] ..
FD: nombre del fichero que previamente habamos seleccionado en la
clausula SELECT de la INPUT-OUTPUT SECTION en la ENVIRONMENT
DIVISION.
LABEL RECORD: rotulo, puede tener dos valores STANDARD u OMITTED, el
primer caso indica que cada vez que se accede a un registro el compilador
har las comprobaciones estndares descritas por el compilador y en el
segundo estas sern omitidas.
Para el caso de los ficheros de datos en disco se suele poner STANDARD y
cuando el fichero es de la impresora se indica OMITTED.
BLOCK CONTAINS: cuando desea que por cada bloque en disco se graben
ms de un registro.
RECORD CONTAINS: numero de caracteres que tiene el registro sumando
todos sus campos puede ser fija o variable.
DATA RECORD: todos los nombre la misma longitud.
EJEMPLO
DATA DIVISION.
FILE SECTION.
FD
CLIENTES LABEL RECORD STANDARD
RECORDING MODE IS FIXED
BLOCK CONTAINS 0 RECORDS
1
REG-CLIENTES.
05 CED PIC 9(8)
05 NUM PIC X(30)
05 TEL PIC 9(8)
05 DIR PIC X(60).
FD

INFORME LABEL RECORD OMITTED


RECORDING MODE IS FIXED
BLOCK CONTAINS 0 RECORD
01 REG-INFORME PIC X(80).

NOTAS:

Se indica cero (0) RECORD, para que el sistema de el ablocamiento mas


adecuado.
Tipo de registro FIXED, es fijo, todos los registros miden igual.
Tipo de registro VARIABLE, es variable, los registro tiene una longitud
variable, se debe indicar cules son fijos y cuales variables

SENTENCIAS

OPEN: Abrir Archivos.

FORMATOS
1) OPEN
INPUT

FICHERON

Abre el fichero y lo dispone para ser ledo.


Ejemplo:
OPEN INPUT NOMINA
2) OPEN
OUTPUT

FICHERON

Dispone el archivo a ser creado. Si ya existe borra todos los registros. Se


abre para escribir.
Ejemplo:
OPEN OUTPUT NOMINA
3) OPEN I-O

{FICHERO-N[WITH
LOCK]}.

Dispone el archivo para ser modificado. Se abre el archivo para leer y


modificar. Se sita en el primer registro.
Ejemplo:
OPEN I-O SALDOS
4) OPEN
{FICHERO-N[WITH
EXTEND
LOCK]}.
Dispone el archivo para recibir nuevos registros ( se ubica al final para
agregarlos).
Ejemplo:
OPEN EXTEND SALIDAS

CLOSE: se usa para cerrar archivos.


CLOSE

FICHERO

Se pueden cerrar varios archivos.


Ejemplo:
CLOSE SALDOS SALIDAS

WRITE: Grabar registros en un archivo de salida. Si se abre como


OUTPUT o EXTEND.

FORMATO
WRITE registro [FROM nombre-dato-1]
[AFTER | ADVANCING | entero [LINES] |]
[END-WRITE]
EJEMPLOS:
WRITE REG-NOMINA END-WRITE
WRITE REG-LISTADO FROM TITULO-1
AFTER PAGE END-WRITE
WRITE REG-CLIENTES FROM DETALLE
AFTER 1 END-WRITE

READ: Leer un registro lgico en el rea de entrada para ser procesado.

FORMATO
READ FICHERO RECORD [INTO nombre-dato] [WITH] [NOT] [LOCK]
[AT END sentencia-1]
[NOT AT END sentencia-2]
[END-READ]
INTO: cuando lo desea pasar a un elemento de grupo.
Nombre-dato: misma estructura que el fichero.
NOT AT END: cuando no se ha acabado, se le agrega esto.
Se debe controlar el final de archivo con el AT END.
EJEMPLO
READ SALDOS AT END MOVE 1 TO FDA
NOT AT END PERFORM CALCULOS
END-READ

REWRITE: Si el fichero se abre como I-O, es posible modificar el ltimo


registro ledo por medio de la sentencia REWRITE.
Permite reemplazar un registro existente en un fichero en disco por otro
registro.
FORMATO
REWRITE registro [FROM nombre-dato]
END-REWRITE

La posicin indicada por el puntero de lectura escritura ser la misma


despus de haber ejecutado una sentencia REWRITE.
EJEMPLO
REWRITE SALDOS END-REWRITE
REWRITE REG-SALDOS FROM REG-DATOS
END-REWRITE
OPEN
INPUT
OUTPU
T
I-O
EXTEN
D

READ
X

WRITE

REWRITE

X
X

X
X

NOTAS:
LIBRERA: Porcin de un cdigo de cualquier rea o estructura de Cobol.

También podría gustarte