Está en la página 1de 71

1

LENGUAJ E ORI ENTADO A


SI STEMAS DE GESTI N
ELEMENTOS DEL
LENGUAJ E COBOL
LENGUAJ E COBOL 2
LENGUAJ E COBOL
Cobol, es un lenguaje de alto nivel (3 generacin) de tipo imperativo y
orientado a resolver problemas de gestin.
COBOL significa:
Common
Business
Oriented
Lenguaje
Fue creado en 1.960, por la comisin CODASYL (Conference on Data System
Lenguaje), formada por fabricantes, usuarios y gobierno USA, esta comisin
adems han dado normas sobre Bases de Datos, Comunicaciones, etc..
Existen numerosas versiones, las mas importantes son, las del 60, 65, 74 y 85;
siendo los compiladores ms utilizados los de:
MICROFOCUS
MICROSOFT
RM/COBOL (McFarland)
COBOL2 (IBM)
2
LENGUAJ E COBOL 3
ELEMENTOS DEL LENGUAJ E
Caracteres de Cobol
Caracteres numricos. 0/9.
Caracteres alfabticos. A/Z.
Caracteres especiales. $, blanco, +, .........
Caracteres empleados en puntuacin
{ $, (, ), ,, ; }
Caracteres aritmticos.
{ +, -, *, **, /, =, (, ) }
Caracteres empleados en declaraciones
condicionales.
{ <, >, = }
LENGUAJ E COBOL 4
ELEMENTOS DEL LENGUAJ E
Constantes
Literales numricos
Literales de coma fija
Literales de coma flotante.
[ +/- ] mantisa E [ +/- ] exponente
Literales no numricos.
Constantes figurativas.
ZERO.
SPACE.
ALL carcter.
HIGH-VALUE .
LOW-VALUE.
3
LENGUAJ E COBOL 5
ELEMENTOS DEL LENGUAJ E
Palabras Reservadas.
Identificadores predefinidos que tienen un significado especial en
COBOL.
Por ejemplo: IDENTIFICATION, FILLER, ADD, COMPUTE, READ,
REWRITE
Identificadores
Son los nombres creados por el programador.
Se forman por la combinacin de los tres grupos de caracteres
siguientes: dgitos (0/9), letras (A/Z) y el guin (-).
Estan compuesto por una combinacin de 30 caracteres como
mximo.
No pueden comenzar ni finalizar con un guin.
Debern comenzar por un carcter alfabtico, excepto los
nombres de prrafos.
No pueden tener el mismo nombre que una palabra reservada.
LENGUAJ E COBOL 6
ELEMENTOS DEL LENGUAJ E
Operadores.
Los operadores son smbolos que indican cmo son
manipulados los datos
D =(A +B)*C Dar Prioridad ( )
C =A +B Asignacin =
A ** B Exponenciacin **
A / B Divisin /
A * B Producto *
A - B Resta -
A +B Suma +
Ejemplo Significado Operador
Operadores Aritmticos
4
LENGUAJ E COBOL 7
ELEMENTOS DEL LENGUAJ E
A =B OR A <B Disyuncin OR
A =B ANDA >B Conjuncin AND
NOT ( A =B ) Negacin NOT
Operadores Lgicos
A >=B Mayor o igual que >=
A <=B Menor o igual que <=
A >B Mayor que >
A <B Menor que <
A =B Igual que =
Operadores de Relacin
LENGUAJ E COBOL 8
ELEMENTOS DEL LENGUAJ E
Expresiones Aritmticas.
Una expresin aritmtica puede ser una constante,
una variable o un conjunto de constantes y variables
unidas por operadores aritmticos.
El punto, punto y coma o coma no pueden ir
precedidos por un espacio, pero si tienen que ir
seguidos por un espacio.
Un parntesis izquierdo no puede ir seguido por un
espacio, un parntesis derecho no puede ir precedido
por un espacio.
Un operador aritmtico o un signo igual tiene que ir
precedido por un espacio y seguido por un espacio.
5
LENGUAJ E COBOL 9
ELEMENTOS DEL LENGUAJ E
Expresiones Aritmticas.
A la hora de evaluar una expresin
Primero se evalan las operaciones entre
parntesis, del ms interno al ms externo.
Despus se evalan los operadores con la
prioridad siguiente:
+ y - unarios
**
*, /
+,-
LENGUAJ E COBOL 10
ELEMENTOS DEL LENGUAJ E
Expresiones de Boole.
Una expresin de Boole da como resultado
un valor VERDADERO o FALSO.
Los operadores que intervienen en una
expresin de Boole pueden ser: operadores
de relacin y operadores lgicos.
A >= 30 AND B = C
A = 0 AND B * 2 NOT= 0 OR C = 0
6
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
ESTRUCTURA DE UN
PROGRAMA EN COBOL
LENGUAJ E COBOL 12
DI VI SI ONES, SECCI ONES Y
PRRAFOS
IDENTIFICATION DIVISION.
[ENVIRONMENT DIVISION.]
[DATA DIVISION.]
PROCEDURE DIVISION.
7
LENGUAJ E COBOL 13
DI VI SI ONES, SECCI ONES Y
PRRAFOS
IDENTIFICATION DIVISION. divisin
PROGRAM-ID. EJ EMPLO.
AUTHOR. EUI. prrafo
DATE-WRITTEN. 01-ENERO-93.
DATE-COMPILED. 01-ENERO-93.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION. seccin
SOURCE-COMPUTER. IBM PERSONAL COMPUTER.
OBJ ECT-COMPUTER. IBM PERSONAL COMPUTER.
SPECIAL-NAMES. prrafo
DECIMAL-POINT IS COMMA. clusula
INPUT-OUTPUT SECTION. seccin
FILE-CONTROL. prrafo
SELECT IMPRESORA ASSING TO PRINTER.
clusulas
LENGUAJ E COBOL 14
DI VI SI ONES EN COBOL
IDENTIFICATION DIVISION
PROPSITO: Identificar el programa de forma que se distinga de
los otros, adems de proporcionar el nombre del autor, cuando se
escribi etc.
PRRAFOS
PROGRAM-ID.
AUTHOR.
INSTALLATION.
DATE-WRITTEN.
DATE-COMPILED.
SECURITY.
REMARKS.
8
LENGUAJ E COBOL 15
DI VI SI ONES EN COBOL
ENVIRONMENT DIVISION
PROPSITO: En esta divisin se describe el
entorno fsico en el cual se va a desarrollar el
programa. Entendindose por entorno, la clase de
sistema que se va a utilizar as como los dispositivos
de entrada/salida.
SECCIONES
CONFIGURATION SECTION.
INPUT-OUPUT SECTION.
LENGUAJ E COBOL 16
DI VI SI ONES EN COBOL
CONFIGURATION SECTION.
PROPSITO: Tiene como finalidad describir las caractersticas del
computador usado para compilar y ejecutar el programa, todo ello a
nivel de comentarios
PRRAFOS
SOURCE-COMPUTER. Modelo de ordenador.
OBJECT-COMPUTER. Modelo de ordenador.
SPECIAL-NAMES.
[[Nombre de funcin IS nombre nemotcnico]
[CURRENCY SIGN IS literal]
[DECIMAL-POINT IS COMMA].]
INPUT-OUTPUT SECTION.
PROPSITO: Declarar los ficheros utilizados y la asignacin a los
dispositivos de E/S.
PRRAFOS
FILE-CONTROL
9
LENGUAJ E COBOL 17
DI VI SI ONES EN COBOL
Nombre de funcin es un nombre reconocido por el
compilador y nombre nemotcnico es un nombre creado por
el programador. De esta forma podemos poner:
CONSOLE IS CONSOLA
SYSOUT IS ARCHI-PANTALLA
La funcin de CURRENCY SING es indicar que el sistema
tiene que utilizar un carcter monetario distinto del que tiene
por defecto ($). El carcter sustituto de ste, tiene que ser
uno solo y alfabtico.
La funcin del DECIMAL-POINT IS COMMA es indicar que el
sistema tiene que sustituir la notacin anglosajona por la
castellana en la funcin del punto decimal y la coma, en los
campos de edicin.
LENGUAJ E COBOL 18
DI VI SI ONES EN COBOL
DATA DIVISION
PROPSITO: En este apartado se definen los datos que
van a ser utilizados, tales como ficheros, los registros de
cada fichero etc. Cualquier dato utilizado en la
codificacin del programa debe estar definido en esta
divisin.
PRRAFOS
WORKING-STORAGE SECTION.
FILE SECTION.
PROCEDURE DIVISION
PROPSITO: Es en esta divisin donde se codifica el
algoritmo propiamente dicho, esto es, donde se
especifican las instrucciones adecuadas para resolver el
problema.
10
LENGUAJ E COBOL 19
HOJ A DE CODI FI CACI N
73 A 80 12 A 72 8 A 11 7 123456
Se utilizaban para
indicar los nmeros de
secuencia, permitiendo
ordenar fcilmente el
programa
Se utiliza para poner un carcter especial (*) que
indica comienzo de un comentario. Si el carcter
especial que se incluye en esta columna es (-) indica
que es continuacin de un literal no numrico, cuando
la longitud de ste, ocupa ms de una lnea.
MARGEN B
MARGEN A
Son opcionales, se utilizan normalmente
para escribir comentarios que identifican
el programa.
LENGUAJ E COBOL 20
HOJ A DE CODI FI CACI N
Margen A
Cabeceras de divisin: IDENTIFICATION DIVISION...
Cabeceras de seccin : CONFIGURATION SECTION...
Cabeceras de prrafos: PROGRAM-ID...
Nombre de procedimientos: ABRIR-FICHEROS...
Descripciones de nivel FD: FDIMPRESO..
Los nmeros de nivel 01 y 77
Margen B
Todo aquello que no est en los apartados anteriores.
Casi todas estas reglas son innecesarias hoy en da, con la
simple eleccin de un editor adecuado y un estilo de
programacin racional y estructurado.
11
LENGUAJ E COBOL 21
REGLAS DE CODI FI CACI N
Los nombres de divisin, seccin y prrafos deben escribirse solos en
una lnea y finalizar con un punto.
Cada entrada y cada sentencia del programa debe finalizar con un
punto.
Si a lo largo de una lnea fsica no se encuentra un punto, la siguiente
lnea ser tomada como continuacin de la anterior, esto es, cada
entrada y cada sentencia del programa puede ocupar varias lneas
fsicas.
Si una entrada o una sentencia del programa no cabe en una lnea
fsica, se contina en la lnea o lneas siguientes pero en el rea B.
No es obligatorio llenar totalmente una lnea fsica.
Se deben dejar lneas en blanco.
El punto, la coma y el punto y coma no deben ir precedidos de un
espacio, pero s seguidos de un espacio. La coma y el punto y coma
son opcionales y cuando se utilizan es para hacer ms clara la
redaccin del programa.
Si se utiliza ms de un espacio como separador entre palabras, el
compilador lo interpreta como uno solo.
LENGUAJ E COBOL 22
ESTRUCTURA GENERAL
IDENTIFICATION DIVISION.
PROGRAM-ID. nombre de programa.
[ AUTHOR. comentarios... ]
[ INSTALLATION. comentarios... ]
[ DATE-WRITTEN. comentarios... ]
[ DATE-COMPILED. comentarios... ]
[ SECURITY. comentarios... ]
[ REMARKS. comentarios... ]
ENVIRONMENT DIVISION.
[ CONFIGURATION SECTION.
SOURCE-COMPUTER. modelo-ord.
OBJ ECT-COMPUTER. modelo-ord.
SPECIAL-NAMES. nombres especiales]
[ INPUT-OUTPUT SECTION.
{FILE CONTROL. control de archivos.}
[ I-O CONTROL. control entrada/salida.]]
DATA DIVISION
[ FILE SECTION.]
[ WORKING-STORAGE SECTION.]
PROCEDURE DIVISION.
nombre-de-prrafo.
{Sentencia}...}...
nombre-de-prrafo.
{Sentencia}...}...
12
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
ESTRUCTURA DE UN
PROGRAMA EN COBOL
LENGUAJ E COBOL 24
DI VI SI ONES, SECCI ONES Y
PRRAFOS
IDENTIFICATION DIVISION.
[ENVIRONMENT DIVISION.]
[DATA DIVISION.]
PROCEDURE DIVISION.
13
LENGUAJ E COBOL 25
DI VI SI ONES, SECCI ONES Y
PRRAFOS
IDENTIFICATION DIVISION. divisin
PROGRAM-ID. EJ EMPLO.
AUTHOR. EUI. prrafo
DATE-WRITTEN. 01-ENERO-93.
DATE-COMPILED. 01-ENERO-93.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION. seccin
SOURCE-COMPUTER. IBM PERSONAL COMPUTER.
OBJ ECT-COMPUTER. IBM PERSONAL COMPUTER.
SPECIAL-NAMES. prrafo
DECIMAL-POINT IS COMMA. clusula
INPUT-OUTPUT SECTION. seccin
FILE-CONTROL. prrafo
SELECT IMPRESORA ASSING TO PRINTER.
clusulas
LENGUAJ E COBOL 26
DI VI SI ONES EN COBOL
IDENTIFICATION DIVISION
PROPSITO: Identificar el programa de forma que se distinga de
los otros, adems de proporcionar el nombre del autor, cuando se
escribi etc.
PRRAFOS
PROGRAM-ID.
AUTHOR.
INSTALLATION.
DATE-WRITTEN.
DATE-COMPILED.
SECURITY.
REMARKS.
14
LENGUAJ E COBOL 27
DI VI SI ONES EN COBOL
ENVIRONMENT DIVISION
PROPSITO: En esta divisin se describe el
entorno fsico en el cual se va a desarrollar el
programa. Entendindose por entorno, la clase de
sistema que se va a utilizar as como los dispositivos
de entrada/salida.
SECCIONES
CONFIGURATION SECTION.
INPUT-OUPUT SECTION.
LENGUAJ E COBOL 28
DI VI SI ONES EN COBOL
CONFIGURATION SECTION.
PROPSITO: Tiene como finalidad describir las caractersticas del
computador usado para compilar y ejecutar el programa, todo ello a
nivel de comentarios
PRRAFOS
SOURCE-COMPUTER. Modelo de ordenador.
OBJECT-COMPUTER. Modelo de ordenador.
SPECIAL-NAMES.
[[Nombre de funcin IS nombre nemotcnico]
[CURRENCY SIGN IS literal]
[DECIMAL-POINT IS COMMA].]
INPUT-OUTPUT SECTION.
PROPSITO: Declarar los ficheros utilizados y la asignacin a los
dispositivos de E/S.
PRRAFOS
FILE-CONTROL
15
LENGUAJ E COBOL 29
DI VI SI ONES EN COBOL
Nombre de funcin es un nombre reconocido por el
compilador y nombre nemotcnico es un nombre creado por
el programador. De esta forma podemos poner:
CONSOLE IS CONSOLA
SYSOUT IS ARCHI-PANTALLA
La funcin de CURRENCY SING es indicar que el sistema
tiene que utilizar un carcter monetario distinto del que tiene
por defecto ($). El carcter sustituto de ste, tiene que ser
uno solo y alfabtico.
La funcin del DECIMAL-POINT IS COMMA es indicar que el
sistema tiene que sustituir la notacin anglosajona por la
castellana en la funcin del punto decimal y la coma, en los
campos de edicin.
LENGUAJ E COBOL 30
DI VI SI ONES EN COBOL
DATA DIVISION
PROPSITO: En este apartado se definen los datos que
van a ser utilizados, tales como ficheros, los registros de
cada fichero etc. Cualquier dato utilizado en la
codificacin del programa debe estar definido en esta
divisin.
PRRAFOS
WORKING-STORAGE SECTION.
FILE SECTION.
PROCEDURE DIVISION
PROPSITO: Es en esta divisin donde se codifica el
algoritmo propiamente dicho, esto es, donde se
especifican las instrucciones adecuadas para resolver el
problema.
16
LENGUAJ E COBOL 31
HOJ A DE CODI FI CACI N
73 A 80 12 A 72 8 A 11 7 123456
Se utilizaban para
indicar los nmeros de
secuencia, permitiendo
ordenar fcilmente el
programa
Se utiliza para poner un carcter especial (*) que
indica comienzo de un comentario. Si el carcter
especial que se incluye en esta columna es (-) indica
que es continuacin de un literal no numrico, cuando
la longitud de ste, ocupa ms de una lnea.
MARGEN B
MARGEN A
Son opcionales, se utilizan normalmente
para escribir comentarios que identifican
el programa.
LENGUAJ E COBOL 32
HOJ A DE CODI FI CACI N
Margen A
Cabeceras de divisin: IDENTIFICATION DIVISION...
Cabeceras de seccin : CONFIGURATION SECTION...
Cabeceras de prrafos: PROGRAM-ID...
Nombre de procedimientos: ABRIR-FICHEROS...
Descripciones de nivel FD: FDIMPRESO..
Los nmeros de nivel 01 y 77
Margen B
Todo aquello que no est en los apartados anteriores.
Casi todas estas reglas son innecesarias hoy en da, con la
simple eleccin de un editor adecuado y un estilo de
programacin racional y estructurado.
17
LENGUAJ E COBOL 33
REGLAS DE CODI FI CACI N
Los nombres de divisin, seccin y prrafos deben escribirse solos en
una lnea y finalizar con un punto.
Cada entrada y cada sentencia del programa debe finalizar con un
punto.
Si a lo largo de una lnea fsica no se encuentra un punto, la siguiente
lnea ser tomada como continuacin de la anterior, esto es, cada
entrada y cada sentencia del programa puede ocupar varias lneas
fsicas.
Si una entrada o una sentencia del programa no cabe en una lnea
fsica, se contina en la lnea o lneas siguientes pero en el rea B.
No es obligatorio llenar totalmente una lnea fsica.
Se deben dejar lneas en blanco.
El punto, la coma y el punto y coma no deben ir precedidos de un
espacio, pero s seguidos de un espacio. La coma y el punto y coma
son opcionales y cuando se utilizan es para hacer ms clara la
redaccin del programa.
Si se utiliza ms de un espacio como separador entre palabras, el
compilador lo interpreta como uno solo.
LENGUAJ E COBOL 34
ESTRUCTURA GENERAL
IDENTIFICATION DIVISION.
PROGRAM-ID. nombre de programa.
[ AUTHOR. comentarios... ]
[ INSTALLATION. comentarios... ]
[ DATE-WRITTEN. comentarios... ]
[ DATE-COMPILED. comentarios... ]
[ SECURITY. comentarios... ]
[ REMARKS. comentarios... ]
ENVIRONMENT DIVISION.
[ CONFIGURATION SECTION.
SOURCE-COMPUTER. modelo-ord.
OBJ ECT-COMPUTER. modelo-ord.
SPECIAL-NAMES. nombres especiales]
[ INPUT-OUTPUT SECTION.
{FILE CONTROL. control de archivos.}
[ I-O CONTROL. control entrada/salida.]]
DATA DIVISION
[ FILE SECTION.]
[ WORKING-STORAGE SECTION.]
PROCEDURE DIVISION.
nombre-de-prrafo.
{Sentencia}...}...
nombre-de-prrafo.
{Sentencia}...}...
18
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
LOS DATOS
LENGUAJ E COBOL 36
DATA DI VI SI ON
FUNCIN
Se describen los datos que van a ser usados, creados, o
producidos por el programa.
Se describe la estructura de los ficheros que se van a
utilizar, as como las variables utilizadas en el programa y
que no son parte de los ficheros.
FORMATO
DATA DIVISION.
[FILE SECTION.
{Entrada de descripcin de ficheros....}
{Entrada de descripcin de registros...}]
[WORKING-STORAGE SECTION.
[ Entrada de descripcin de variables o registros ]]
19
LENGUAJ E COBOL 37
TI POS DE DATOS
Una de las caractersticas tpicas de
los datos que se usan en las
aplicaciones de gestin es la variedad
de formas y estructuras.
Los datos se clasifican en:
Campos Independientes
Campos Compuestos
Tablas
LENGUAJ E COBOL 38
CAMPOS I NDEPENDI ENTES
Es un campo de trabajo que ser definido en la seccin de
working. No forman parte de la descripcin de los ficheros.
Formato mnimo para su definicin:
nmero-de-nivel nombre-de-dato
PICTURE especificacin de formato.
Donde:
Nmero-de-nivel. Se utiliza el nivel 77.
Nombre-de-datos. Un nombre de datos sirve para nombrar un campo
con el fin de poder referenciar en el programa, el contenido del
mismo.
PICTURE. Determina la informacin que puede almacenarse en el
campo, as como las operaciones que con l pueden realizarse.
Permite definir el tipo y el tamao del campo.
20
LENGUAJ E COBOL 39
CLUSULA PI CTURE
PICTURE/PIC IS especificacin de formato.
1. PIC S999
2. PIC S99v99
Signo S
1. PIC 99v99
2. PIC 9(2)v99
Posicin Decimal V
1. PIC 99999
2. PIC 9(5)
Cualquier dgito
del 0 al 9
9
Ejemplos Descripcin Carcter
LENGUAJ E COBOL 40
CLUSULA PI CTURE
0325^18 - 325. 18 77 CANT S9( 4) V99
0000^10 - 0. 10 77 CANT S9( 4) V99
1251^16 - 1251. 16 77 CANT S9( 3) V99
156^29 156. 29 77 CANT PI C S999V99
23561^00 23561. 00 77 CANT 99999V99
550 550 77 CANT PI C 999
0452^39 452. 39 77 CANT PI C 9( 4) V99
38^5 38. 50 77 CANT PI C 99V9
0285 285 77 CANT PI C 9999
0001234567 1234567 77 CANT PI C 9( 10)
8956 8956 77 CANT PI C 9999
012234 12234 77 CANT PI C 9( 6)
Repr esent aci n I NTERNA Val or Numr i co Descr i pci n
21
LENGUAJ E COBOL 41
CLUSULA PI CTURE
1. PI C XXXXX
2. PI C X( 5)
Cual qui er car ct er X
1. PI C AAAAA
2. PI C A( 5)
Cual qui er car ct er l et r a A
Ej empl os Descr i pci n Car ct er
L I G . D D. GI L 77 VALOR PI C X( 8)
O N E U B BUENOS 77 VALOR PI C X( 5)
N E U B BUEN 77 VALOR PI C X( 5)
O N E U B BUENO 77 VALOR PI C XXXXX
Repr esent ado en el Al macenami ent o
como
Ej empl o Descr i pci n
LENGUAJ E COBOL 42
CLUSULA PI CTURE
Se i nser t a en el ext r emo i zqui er do o der echo. Repr esent a l a
apar i ci n del si gno. Si el nmer o es posi t i vo apar ecer
un + y si es negat i vo apar ecer un - .
+
Si r ve par a r eempl azar l os cer os no si gni f i cat i vos por
bl ancos
Z
Si r ve par a r eempl azar l os cer os no si gni f i cat i vos ( a l a
i zqui er da) por ast er i scos
*
I ndi ca l a posi ci n de l a coma como car ct er de separ aci n de
mi l l ar es. La ut i l i zaci n de l a cl usul a DECI MAL POI NT I S
COMMA en l a SPECI AL- NAMES de l a ENVI RONMENT DI VI SI ON
i nvi er t e el uso de l os punt os y coma.
,
I ndi ca l a posi ci n del punt o deci mal .
Se escr i be el si gno $ en el l ugar cor r ect o en que debe
apar ecer en l a sal i da
$
Descr i pci n Car ct er
22
LENGUAJ E COBOL 43
CLUSULA PI CTURE
Se usan par a i nser t ar bl ancos en l as posi ci ones en que deben
apar ecer
B
Se usan par a i nser t ar cer os en l as posi ci ones en que deben
apar ecer
0
Repr esent a l a apar i ci n del si gno bancar i o DB de dbi t o.
Cuando el val or es posi t i vo apar ecer n bl ancos, si el
val or es negat i vo apar ece l os car act er es DB.
DB
Repr esent a l a apar i ci n del si gno bancar i o CR de cr di t o.
Cuando el val or es posi t i vo apar ecer n bl ancos, si el
val or es negat i vo apar ece l os car act er es CR.
CR
Se i nser t a en el ext r emo i zqui er do o der echo. Repr esent a l a
apar i ci n del si gno. Si el nmer o es posi t i vo apar ecer
un bl anco y si es negat i vo apar ecer un - .
-
Descr i pci n Car ct er
LENGUAJ E COBOL 44
CLUSULA PI CTURE
000. 00 999. 99 500000 9999V99
54. 00 99. 99 54 99
NO VALI DO
99V. 99 567 9V99
000. 54 999. 99 000546 9( 3) V999
0543. 21 9( 4) . 99 054321 9( 4) V99
6543. 21 9( 4) . 99 654321 9( 4) V99
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
23
LENGUAJ E COBOL 45
CLUSULA PI CTURE
bbb. 01 ZZZ. ZZ 00001 999V99
bb12. 34 Z( 4) . ZZ 001234 9( 4) V99
bl ancos Z( 3) . ZZ 00000 999V99
bb1. 03 ZZZ. 99 00103 9( 3) V99
103. 00 ZZZ. 99 103 999V
b704 ZZZ9 0704 9999
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
LENGUAJ E COBOL 46
CLUSULA PI CTURE
**123. 45 *****. 99 0012345 9( 5) V99
***123 ***999 000123 9( 6)
***012 ***999 000012 9( 6)
*12345 ***999 012345 9( 6)
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
24
LENGUAJ E COBOL 47
CLUSULA PI CTURE
10023 90099 123 999
1bb23 9BB99 123 999
1, 002, 340 9, 009, 990 1234 9( 4)
1b00b230 9B00B990 123 999
1, 230, 000. 45 9, 990, 000. 99 12345 9( 3) V99
1, 234, 567 9, 999, 999 1234567 9( 7)
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
LENGUAJ E COBOL 48
CLUSULA PI CTURE
$*1, 234. 56 $**, ***. 99 0123456 9( 5) V99
$**123. 45 $*****. 99 0012345 9( 5) V99
$*123 $*999 0123 9( 4)
$b123 $Z999 0123 9( 4)
$0123 $9999 0123 9( 4)
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
25
LENGUAJ E COBOL 49
CLUSULA PI CTURE
+$579. 50 +$999. 99 +57950 S9( 3) V99
- $651. 25 +$999. 99 - 65125 S9( 3) V99
157. 68bb 999. 99DB +15768 S9( 3) V99
$182. 00CR $999. 99CR - 18200 S999V99
123. 45DB 999. 99DB - 12345 S9( 3) V99
456+ 999+ +456 S999
628 - 999 +628 S999
- 123 +999 - 123 S999
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
LENGUAJ E COBOL 50
CLUSULA PI CTURE
$4, 756. 82 $$$, $$$. 99 0475682 9( 5) V99
bl ancos ++++. ++ 00000 999V99
- 5. 55 ++++. 99 - 00555 999V99
$4. 40 $$$$$$. 99 0000440 9( 5) V99
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
26
LENGUAJ E COBOL 51
CLUSULA PI CTURE
CASO 3000 XXXXBX000 CASO3 X( 5)
H 0 L A ABABABA HOLA AAAA
CN 1005 XXBBX( 4) CN1005 X( 6)
Resul t ado
Edi t ado
PI CTURE
EDI CI N
CONTENI DO PI CTURE
LENGUAJ E COBOL 52
CLUSULA VALUE
La inicializacin de los campos independientes se debe
realizar a travs de la clusula VALUE, cuando se
estn definiendo.
Formato
VALUE IS literal/constante figurativa
WORKI NG- STORAGE SECTI ON.
77 VARI ABLE PI C X( 20) VALUE Li st ado Empl eados.
77 VARI ABLE PI C 99 VALUE 10.
77 VARI ABLE PI C V99 VALUE 0. 03.
77 VARI ABLE PI C 9( 8) VALUE ZEROS.
77 VARI ABLE PI C X( 10) VALUE SPACES.
77 VARI ABLE PI C X( 9) VALUE - - - - - - - - - .
77 VARI ABLE PI C X( 9) VALUE ALL - .
77 CERO PI C 99999 VALUE ZEROS.
77 CERO PI C 99999 VALUE 0.
27
LENGUAJ E COBOL 53
J USTI FI ED RI GHT
Se utiliza nicamente con variables de tipo
alfabtico o alfanumrico y su efecto es
eliminar la convencin de justificacin a la
izquierda de los datos no numricos.
77 CAMPO PIC X(4) VALUE AB J UST RIGHT.
B A
LENGUAJ E COBOL 54
CAMPOS COMPUESTOS
Son campos que pueden subdividirse.
Se le conoce tambin con el nombre de registros.
Pueden definirse en el rea de trabajo (WORKING-
STORAGE SECTION) y es obligada su utilizacin al
describir la estructura de los ficheros.
AO MES DI A NCALLE CALLE PROVI NCI A APELLI DO2 APELLI DO1 NOMBRE NUM- VEN
FECHA- ALTA DATOS- DI RECCI N DATOS- VENDEDOR
28
LENGUAJ E COBOL 55
CAMPOS COMPUESTOS
01 VENDEDOR.
02 NUMERO PI C 999.
02 DATOS- VENDEDOR.
03 NOMBRE PI C X( 10) .
03 APELLI DO1 PI C X( 10) .
03 APELLI DO2 PI C X( 10) .
02 DATOS- DI RECCI ON.
03 PROVI NCI A PI C X( 30) .
03 CALLE PI C X( 15) .
03 NCALLE PI C 99.
02 FECHA- ALTA.
03 D A PI C 99.
03 MES PI C 99.
03 ANI O PI C 99.
ESPECIFICACIN
DE FORMATO
NUMERO DE NIVEL
NOMBRE
DE DATO
LENGUAJ E COBOL 56
CAMPOS COMPUESTOS
Los nombre de datos sirven para nombrar un campo
con el fin de poder referenciar en el programa, el
contenido del mismo.
Si la informacin no se va a referenciar, el nombre de
datos puede sustituirse por la palabra reservada
FILLER.
Los nmeros de Nivel sirven para indicar la relacin
existente entre un campo y el resto de los campos.
Los nmeros de nivel que pueden utilizarse son: del 01
al 49.
[01] Slo precede al nombre del registro.
[02 a 49] Preceden a cualquier campo grupo o elemental.
29
LENGUAJ E COBOL 57
CAMPOS COMPUESTOS
Un campo grupo tiene un nivel superior que cualquiera de sus
campos elementales.
Los nmeros de nivel utilizados no tiene porque ser correlativos.
Cualquier nombre de datos debe ir precedido por su nmero de
nivel.
El nmero de nivel 01 deber escribirse en el margen A, mientras
que su nombre asociado lo ser en el margen B.
Cualquiera de los restantes nmeros de nivel dentro del campo
compuesto pueden situarse en cualquier columna.
Se aconseja un escalonado progresivo de los niveles para una
mejor interpretacin
El tipo del campo determina la informacin que puede almacenarse
en el campo, as como las operaciones que con l pueden
realizarse. Se hace a travs de la clusula PICTURE.
La longitud del campo viene dada por el nmero de caracteres
empleados en la especificacin del formato para declarar el campo.
LENGUAJ E COBOL 58
CAMPOS COMPUESTOS
Calificacin de los nombres de datos.
En la declaracin de campos compuestos, dos campos
elementales pueden tener el mismo nombre de datos.
01 DATOS.
02 TOTALES- SEMANALES.
03 HORAS PI C 99V99.
03 DEPTO- NO PI C 9( 5) .
02 TOTALES- MENSUALES.
03 HORAS PI C 99V99.
03 MAS- I NFORMACI ON PI C 9( 5) .
HORAS OF/IN TOTALES-SEMANALES
HORAS OF/IN TOTALES-MENSUALES
30
LENGUAJ E COBOL 59
CAMPOS COMPUESTOS
01 REG-VIEJ O.
02 A-LA-FECHA.
03 MES....
03 ANUAL....
02 ULTIMO-PERIODO.
03 MES....
03 ANUAL....
03 TOTAL....
01 REG-NUEVO.
02 A-LA-FECHA.
03 MES....
03 ANUAL....
02 ULTIMO-PERIODO.
03 MES....
03 ANUAL....
03 TOTAL....
MES OF ULTIMO-PERIODO OF REG-VIEJ O
TOTAL OF REG-NUEVO
LENGUAJ E COBOL 60
NOMBRES DE CONDI CI N
Permite al programador definir constantes figurativas
adicionales para usarlas en el programa COBOL
88 nombr e- de- dat o VALUE I S/ VALUES ARE const ant e- 1
[ THRU const ant e- 2]
77 FI NAL- FI CHERO PI C XX.
88 FI N- FI CHERO VALUE `SI `.
Si se desea pr egunt ar SI ES FINAL DE FICHERO bast ar con
deci r :
I F FI N- FI CHERO
en l ugar de pr egunt ar I F FI NAL- FI CHERO = `SI `.
31
LENGUAJ E COBOL 61
NOMBRES DE CONDI CI N
01 DATOS-PERSONALES.
02 NUMERO-ID...
02 NOMBRE......
02 DIRECCION....
02 EDUCACION PICTURE 99.
88 NO-BACHILLER VALUES ARE 0 THRU 11.
88 BACHILLER VALUE IS 12.
88 ALGO-UNIVERSIDAD VALUES ARE 13 THRU 15.
88 PROFESIONAL VALUE IS 16.
88 POSTGRADO VALUES ARE 17 THRU 20.
88 CODIGO-ERROR VALUES ARE 21 THRU 99.
IF BACHILLER ....
IF ALGO-UNIVERSIDAD OR PROFESIONAL
IF EDUCACION < 16
LENGUAJ E COBOL 62
RENAMES
La clusula RENAMES provee al programador la capacidad de reagrupar los items de
datos elementales.
66 nombre-de-datos-1 RENAMES nombre-de -datos-2 [THRU nombre-de-datos-3]
01 REG-IMPUESTO.
02 NO-SEG-SOCIAL PIC X(9).
02 NOMBRE-COMPLETO.
03 NOMBRE PIC X(10).
03 INICIAL PIC XX.
03 APELLIDO PIC X(15).
02 TOTAL-A-LA-FECHA.
03 PAGO-BRUTO PIC 9(8)V99.
03 PAGO-NETO PIC 9(8)V99.
03 IMPUESTO-TRIBUTADO PIC 9(6)V99.
03 IMPUESTO-ESTADO PIC 9(4)V99.
66 ULTIMO-PAGO RENAMES APELLIDO THRU PAGO-NETO.
IMPUESTO-
ESTADO
IMPUESTO-
TRIBUT
ADO
PAGO-NETO PAGO-BRUTO APELLIDO INICIAL NOMBRE NO-SEG-SOCIAL
TOTAL-A-LA-FECHA NOMBRE-COMPLETO
32
LENGUAJ E COBOL 63
TABLAS
Una tabla es un conjunto de valores almacenados en
posiciones consecutivas de memoria y con un nombre
de datos asignado.
La referencia a entradas especficas de la tabla se
hace mediante un slo nombre junto con un subndice
que indica la posicin de entrada particular.
WORKING-STORAGE SECTION.
01 Nombre-de-tabla.
02 Nombre-de-elemento OCCURS nmero-de-elementos TIMES
PICTURE tipo-de-elemento.
LENGUAJ E COBOL 64
TABLAS
01TABLA- INGRESOS- ESTADO.
02 INGRESOS- PROMEDIOS
OCCURS 50 TIMES PIC 9(6)V99.
INGRESOS- PROMEDIOS (ndice) donde ndice es
mayor o igual que 1 y menor o igual que 50.
INGRESOS-PROMEDIO(50) INGRESOS-PROMEDIO(1)
TABLA-INGRESOS-ESTADO
33
LENGUAJ E COBOL 65
TABLAS
01 TABLA-INGRESOS-ESTADO.
02 INGRESOS-PROMEDIOS OCCURS 50 TIMES PIC 9(6)V99.
02 PROMEDIO-NACIONAL PIC 9(7)V99.
PROMEDIO-NACIONAL INGRESOS-PROMEDIOS (50) INGRESOS-PROMEDIOS (1)
PROMEDIO-NACIONAL INGRESOS-PROMEDIOS
TABLA-INGRESOS-ESTADO
LENGUAJ E COBOL 66
TABLAS
01TABLA- INGRESOS- ESTADO.
02 NOMBRE - INGRESO OCCURS 50 TIMES.
03 NOMBRE PIC X(4).
03 INGRESO PIC 9(6)V99.
I NGRESO ( 50) NOMBRE( 50) I NGRESO( 1) NOMBRE( 1)
NOMBRE- I NGRESO ( 50) - - - NOMBRE- I NGRESO ( 1)
TABLA- I NGRESOS- ESTADO
34
LENGUAJ E COBOL 67
TABLAS
La clusula OCCURS no puede aplicarse a nivel 01.
La clusula OCCURS no puede aplicarse a nivel 77.
La dimensin de una tabla debe ser menor o igual que
7, aunque depende del compilador.
La clusula PICTURE se aplica slo a campos
elementales.
Los subndices pueden ser constantes o variables de
tipo entero. Sus valores deben ser positivos.
El subndice o subndices se encierran en un conjunto
de parntesis y se separan del nombre de la tabla por
un espacio. Los subndices mltiples se separan uno
de otros por comas y espacios.
LENGUAJ E COBOL 68
TABLAS
Inicializacin de una tabla en tiempo de
compilacin.
nombre-de-dato-1 REDEFINES nombre-de-dato-2
01FECHA.
02 D A PI C 99.
02 MES PI C 99.
02 AO PI C 99.
01 FECHA-ACTUAL REDEFINES FECHA PIC X(6).
35
LENGUAJ E COBOL 69
TABLAS
01TABLA-S.
02 FILLER PIC X(10) VALUE "LUNES".
02 FILLER PIC X(10) VALUE "MARTES".
02 FILLER PIC X(10) VALUE "MIRCOLES".
02 FILLER PIC X(10) VALUE "J UEVES".
02 FILLER PIC X(10) VALUE "VIERNES".
02 FILLER PIC X(10) VALUE "SBADO".
02 FILLER PIC X(10) VALUE "DOMINGO".
01TABLA-DIA-S REDEFINES TABLA-S.
02 DIA-SEMANA OCCURS 7 TIMES PIC X(10).
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
VERBOS ARITMTICOS
36
LENGUAJ E COBOL 71
I NTRODUCCI N
Los verbos aritmticos permiten realizar las
tpicas operaciones de suma, resta, producto y
divisin, adems podremos almacenar el resto
de una divisin y realizar conjuntamente todas
estas operaciones en una sola sentencia.
Verbos Aritmticos.
Suma ADD
Resta SUBSTRACT
Producto MULTIPLY
Divisin DIVIDE
O. Aritmticas COMPUTE
LENGUAJ E COBOL 72
SUMA
ADD ident-1literal-1 [ident-2/literal-2] ....
TO ident-n [ident-m]
ADD ident-1/literal-1 ident-2/literal-2
GIVING ident-n [ident-m]
37
LENGUAJ E COBOL 73
SUMA. OPCI ONES
Opcin ROUNDED
Si en una suma (o cualquier otra operacin) el nmero
de decimales del resultado es mayor que el nmero
de ellos especificados en el campo receptor, trunca el
nmero sobrante de dgitos por la derecha.
PICTURE RESULTADO VALOR DESPUS VALOR DESPUS
CALCULADO DE TRUNCAR DE REDONDEAR
S99V9 -12.36 -12.3 12.4
9V9 8.432 8.4 8.4
99V9 35.6 35.6 35.6
S99V 65.6 65 66
SV999 .0058 .005 .006
LENGUAJ E COBOL 74
SUMA. OPCI ONES
Opcin ON SIZE ERROR
Si la parte entera de un clculo no cupiera en el
campo receptor, se producira un desbordamiento.
La utilizacin de esta clusula permite al
programador especificar una serie de instrucciones
que solo se ejecutaran cuando se produzca dicho
desbordamiento.
ADD HORAS-SEMANA TO TOTAL -HORAS-AO
ON SIZE ERROR DISPLAY 'DESBORDAMIENTO DEL CAMPO '
ADD A B TO C ON SIZE ERROR DISPLAY 'ERROR.......'.
38
LENGUAJ E COBOL 75
SUMA. EJ EMPLOS
010
020
+20
010
020
-10
77 IDA PIC 9(3)
77 IDB PIC 999
77 IDC PIC S99
DESPUS ANTES ADDIDA IDB TO IDC
030
010
+15
-005
030
010
+05
-15
77 IDA PIC 9(3)
77 IDB PIC 999
77 IDC PIC S9(2)
77 IDD PIC S999
DESPUS ANTES ADDIDA IDB -30 TO IDD IDC
LENGUAJ E COBOL 76
SUMA. EJ EMPLOS
-10
+020
+0010
-10
+020
+0030
77 IDA PIC S9(2)
77 IDB PIC S9(3)
77 IDC PIC S9(4)
DESPUS ANTES ADDIDA IDB GIVING IDC
-10
+020
+0005
-10
+020
+0030
77 IDA PIC S9(2)
77 IDB PIC S9(3)
77 IDC PIC S9(4)
DESPUS ANTES ADD-15 IDA IDB GIVING IDC
39
LENGUAJ E COBOL 77
SUMA. EJ EMPLOS
21987
4593
---80 Se han perdido
dgitos (26580)
21987
4593
52
77 IDA PIC 9(5)
77 IDB PIC 9(4)
77 IDC PIC 99
DESPUS ANTES ADDIDA IDB GIVING IDC
000005
000-- se han
perdido
dgitos (0.0008)
000005
038
77 IDA PIC 9V9(5)
77 IDC PIC 9V99
DESPUS ANTES ADD0.0003 IDA GIVING IDC
LENGUAJ E COBOL 78
RESTA
La sentencia SUBTRACT se utiliza para restar uno o ms
items de datos numricos de otro u otros items de datos
numricos, sustituyendo el valor de la diferencia en el
ltimo items de la declaracin.
SUBTRACT ident-1/literal-1 .... FROM ident-2
SUBTRACT ident-1/literal-1....FROM
ident-2/literal-2 GIVING ident-3
40
LENGUAJ E COBOL 79
RESTA. EJ EMPLOS
10
032
10
042
77 IDA PIC 99
77 IDB PIC 999
DESPUS ANTES SUBTRACT IDA FROMIDB
10
027
11
06
10
027
52
47
77 IDA PIC 99
77 IDB PIC 999
77 IDC PIC 99
77 IDD PIC 99
DESPUS ANTES SUBTRACT IDA 4 IDB
FROM IDC IDD
LENGUAJ E COBOL 80
RESTA. EJ EMPLOS
Las operaciones que se realizan en este caso son:
CANTIDAD-5 =CANTIDAD-4 - (CANTIDAD-3 +CANTIDAD-2 +
CANTIDAD-1).
CANTIDAD-6 =CANTIDAD-4 - (CANTIDAD-3 +CANTIDAD-2 +
CANTIDAD-1).
En el caso de que se produzca el desbordamiento de alguno
de los campos receptores ( CANTIDAD-5, CANTIDAD-6 ) el
programa ser desviado a la rutina de desbordamiento.
SUBTRACT CANTIDAD-1, CANTIDAD-2, CANTIDAD-FROM
CANTIDAD-4 GIVING CANTIDAD-5,
CANTIDAD-6 ROUNDED
ON SIZE ERROR PERFORMDESBORDAMIENTO.
41
LENGUAJ E COBOL 81
RESTA. EJ EMPLOS
10
032
22
10
032
41
77 IDA PIC 99
77 IDB PIC 999
77 IDC PIC 99
DESPUS ANTES SUBTRACT IDA FROMIDB
GIVING IDC
072000
122000
020000
030000
000123
122000
020000
030000
77 IDA PIC 9(6)
77 IDB PIC 9(6)
77 IDC PIC 9(6)
77 IDD PIC 9(6)
DESPUS ANTES SUBTRACT IDD IDC FROM IDB
GIVING IDA
LENGUAJ E COBOL 82
MULTI PLI CACI N
MULTIPLY ident-1/literal-1 BY ident-2
siendo:
ident-1: multiplicando.
ident-2: multiplicador y campo receptor del resultado de la operacin.
12500 25000 77 IDA PIC 9(5)
DESPUS ANTES MULTIPLY 0.5 BY IDA
25000
25
01000
25
77 IDA PIC 9(5)
77 IDB PIC 99
DESPUS ANTES MULTIPLY IDB BY IDA
42
LENGUAJ E COBOL 83
MULTI PLI CACI N
MULTIPLY ident-1/literal-1 BY ident-2 GIVING ident-3
12500
06250
12500
50000
77 IDA PIC 9(5)
77 IDB PIC 9(5)
DESPUS ANTES MULTIPLY IDA BY 0.5 GIVING IDB
MULTIPLY A BY B GIVING C ROUNDED, E ON SIZE ERROR
PERFORMRUTINA-DESBORDAMIENTO.
LENGUAJ E COBOL 84
DI VI SI N
DIVIDE ident-1/literal-1 INTO ident-2
DIVIDE A INTO B, C ROUNDED
ON SIZE ERROR
PERFORMRUTINA-DE-DESBORDAMIENTO.
Las operaciones que se realizan son B=B/A y C=C/A, en el caso
de que en algn campo receptor, no cupiera el resultado de las
operaciones realizadas se rompera la secuencia del programa
ejecutndose el prrafo RUTINA DE DESBORDAMIENTO.
43
LENGUAJ E COBOL 85
DI VI SI N
DIVIDE ident-1/literal-1. INTO ident-2 GIVING ident-3
DIVIDE ident-1/literal-1 BY ident-2 GIVING ident-3
DIVIDE ident-1/literal-1 INTO ident-2 GIVING ident-3
REMAINDER ident-4
DIVIDE ident-1/literal-1 BY ident-2 GIVING ident-3
REMAINDER ident-4
LENGUAJ E COBOL 86
DI VI SI N. EJ EMPLOS
36500
1000
36500 77 IDA PIC 9(5)
77 IDB PIC 9999
DESPUS ANTES DIVIDE 365 INTO IDA GIVING IDB
36500
1000
36500 77 IDA PIC 9(5)
77 IDB PIC 9999
DESPUS ANTES DIVIDE IDA BY 365 GIVING IDB
01000
50
50000
50
77 IDA PIC 9(5)
77 IDB PIC 99
DESPUS ANTES DIVIDE IDB INTO IDA
44
LENGUAJ E COBOL 87
DI VI SI N. EJ EMPLOS
100
03
0100 (01.00)
33
100
03
55
77 DIVIDENDO PIC 999
77 DIVISOR PIC 99
77 RESTO PIC 99V99
77 COCIENTE PIC 99
DESPUS ANTES DIVIDE DIVIDENDO
BY DIVISOR
GIVING COCIENTE
REMAINDER RESTO
LENGUAJ E COBOL 88
COMPUTE
Esta sentencia se utiliza para realizar
operaciones aritmticas sin necesidad de
utilizar las declaraciones aritmticas vistas
hasta ahora.
COMPUTE ident-1
[ROUNDED] =expresin-aritmtica
[ON SIZE ERROR sentencia-1]
45
LENGUAJ E COBOL 89
COMPUTE
MAYOR Exponenciacin **
Cociente /
Producto *
Resta -
MENOR Suma +
PRIORIDAD OPERACIN
REPRESENTADA
SMBOLO
LENGUAJ E COBOL 90
COMPUTE
COMPUTE A =B +C.
ADD B, C GIVING A.
COMPUTE A =B - C.
SUBTRACT C FROM B GIVING A.
COMPUTE A =B * C.
MULTIPLY B BY C GIVING A.
COMPUTE A =B ** C.
No tiene sentencia
equivalente.
COMPUTE A =B / C.
DIVIDE B BY C GIVING A.
COMPUTE A =-B.
SUBTRACT B FROM
ZERO GIVING A,
MULTIPLY -1 BY B
GIVING A
46
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
VERBOS ENTRADA
SALIDA
LENGUAJ E COBOL 92
I NTRODUCCI N
La funcin es poner en comunicacin el
programa con los dispositivos externos
donde se encuentran o se encontrarn
los datos.
Sentencias:
Display
Accept
47
LENGUAJ E COBOL 93
DI SPLAY
Mediante esta declaracin se proporciona
informacin o mensajes a la consola,
impresora u otro dispositivo de salida.
DISPLAY ident/literal ...
[UPON nombre nemnico/de funcin]
[WITH NO ADVANCING]
DISPLAY ident-1/literal-1 [LINE ident-2/entero-2]
[POSITION ident-3/entero-3] [opciones] ....
LENGUAJ E COBOL 94
DI SPLAY. OPCI ONES
BEEP: Emite un sonido cada vez que display es
ejecutado.
BLINK: Hace parpadear el elemento visualizado.
CONVERT: Esta opcin se aplica a campos numricos o
numricos editados. El valor a visualizar es convertido de
su formato interno a los dgitos correspondiente,
eliminando los ceros no significativos. El valor se ajusta a
la izquierda, y el espacio sobrante a la derecha se rellena
con blancos.
ERASE[EOL/EOS]: ERASE borra pantalla. ERASE EOL
borra desde la posicin del cursor hasta el final de la
lnea. ERASE EOS borra desde la posicin del cursor
hasta el final de la pantalla.
48
LENGUAJ E COBOL 95
DI SPLAY. OPCI ONES
HIGH: Visualiza el dato en intensidad alta. Por defecto.
LOW: Visualiza el dato en intensidad baja.
REVERSE: Visualiza el dato en vdeo inverso.
SIZE: Especifica el tamao del campo fsico presentado
sobre la misma pantalla. Si el tamao especificado es
menor que el definido en la clusula PIC, solamente
aparecer sobre la pantalla la porcin de la parte
izquierda, y si el tamao especificado es ms grande, se
rellena con blancos.
UNDERLINE: Visualiza el dato subrayado.
LENGUAJ E COBOL 96
ACCEPT
Esta declaracin permite introducir pequeos volmenes
de datos, necesarios para el programa, desde la consola
u otro dispositivo de entrada.
ACCEPT identificador FROM ATE/DAY/TIME/DAY-OF-WEEK
ACCEPT identificador [FROM nombre-nemnico/CONSOLE/SYSIN]
ACCEPT identificador-1
[LINE identificador-2/entero-2]
[POSITION identificador-3/entero-3] [opciones]
....
49
LENGUAJ E COBOL 97
ACCEPT. OPCI ONES
BEEP.
BLINK.
CONVERT.
ECHO: Hace que el dato aceptado sea visualizado sobre el
campo de pantalla una vez finalizada la entrada.
ERASE[EOL/EOS].
HIGH.
LOW.
PROMPT [literal]: Marca la pantalla con el carcter
especificado las posiciones vacas mientras se ejecuta una
operacin ACCEPT. Por defecto es el carcter subrayado.
LENGUAJ E COBOL 98
ACCEPT. OPCI ONES
REVERSE.
SIZE.
TAB: Obliga a pulsar la tecla Enter.
UPDATE: Permite visualizar el contenido del campo
antes de efectuar la entrada. Esto permite modificar
el contenido del correspondiente campo. Esta
clusula implica tambin conversin de los datos de
entrada.
UNDERLINE.
UPPER: Convierte la entrada a maysculas.
50
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
VERBOS
TRANSFERENCIA DE
DATOS
LENGUAJ E COBOL 100
GENERALI DADES
campo emisor =contiene la informacin a transferir
campo receptor =recibe dicha informacin.
Los datos se pueden transferir a un campo receptor de
varias formas:
El efecto de usar la opcin GIVING con verbos
aritmticos.
El verbo COMPUTE por si mismo incluye una
transferencia de datos al almacenar los resultados en un
campo especfico.
Las opciones READ.... INTO y WRITE.... FROMincluye
transferencia de informacin implcitas.
La clusula VALUE de la DATA DIVISION incluye una
transferencia de informacin implcita, aunque slo se
ejecutar una vez al principio del programa.
51
LENGUAJ E COBOL 101
VERBO MOVE
Transfiere informacin de una zona a otra de memoria,
este verbo modifica el contenido del campo receptor por
el contenido del campo emisor, permaneciendo
inalterado ste ltimo campo.
MOVE identificador-1/literal TO identificador-2...
Los efectos de la sentencia MOVE dependen de los tamaos y
especificaciones PICTURE de los campos emisor (identificador-1)
y receptor (identificador-2).
Adems, la categora de los campos emisor y receptor es un
factor al determinar si una instruccin MOVE es vlida o no vlida.
LENGUAJ E COBOL 102
VERBO MOVE
La constante figurativa SPACE, o un campo
alfanumrico editado o alfabtico no puede
moverse a un campo numrico o numrico
editado.
Una constante numrica, la constante figurativa
ZERO, un campo numrico o numrico editado no
puede moverse a un campo alfabtico.
Una constante o campo numrico no entero no se
puede mover a un campo alfanumrico editado o
no,
52
LENGUAJ E COBOL 103
TI POS DE MOVI MI ENTOS
SI SI NO Numrico Editado
SI NO NO Numrico No Entero
SI SI NO Numrico Entero
NO SI SI Alfanumrico editado
NO SI SI Alfanumrico
NO SI SI Alfabtico
NUM ENTERO
NUM NO ENTER
NUM EDITADO
ALFANUMRICO
ALFANUMRICO
EDITADO
ALFABTICO CAMPO EMISOR
CAMPO RECEPTOR
LENGUAJ E COBOL 104
TI POS DE MOVI MI ENTOS
De un campo numrico a otro numrico de
edicin o no.
Los campos emisor y receptor se alinean por el
punto decimal.
Si tamao (campo receptor) <tamao (campo
emisor), se produce truncamiento de la parte entero
y/o decimal.
Si tamao (campo receptor) >tamao (campo
emisor), se rellena con ceros no significativos en
cualquiera de las partes.
53
LENGUAJ E COBOL 105
TI POS DE MOVI MI ENTOS
De un campo alfabtico o alfanumrico a otro
de tipo alfabtico o alfanumrico de edicin o
no.
El contenido del campo emisor se va colocando en
el campo receptor de izquierda a derecha, excepto
cuando el campo receptor se ha especificado la
clusula J USTIFIEDRIGHT.
Si tamao (campo receptor) <tamao(campo
emisor), se produce truncamiento.
Si tamao (campo receptor) >tamao(campo
emisor), se rellena con blancos.
LENGUAJ E COBOL 106
VERBO MOVE CORRESPONDI NG
La transferencia de un campo compuesto puede
realizarse como un campo elemental, cuya longitud es la
suma de los campos elementales que lo forman, o bien
moviendo los campos elementales uno a uno.
MOVE CORRESPONDING/CORR identificador-1 TO identificador-2 ...
Con esta opcin del verbo MOVE se transfiere el contenido
de los campos elementales de identificador-1 a los campos
elementales de igual nombre de identificador-2.
54
LENGUAJ E COBOL 107
EJ EMPLOS
1234 (12.34)
01234 (012.34)
1234 (12.34)
98765 (987.65)
77 EMISOR PIC 99V99
77 RECEPTOR PIC999V99
DESPUS ANTES MOVE EMISOR TO RECEPTOR
12345 (1234.5)
34500 (34.500)
12345 (1234.5)
98765 (98.765)
77 EMISOR PIC 9(4)V9
77 RECEPTOR PIC 99V999
DESPUES ANTES MOVE EMISOR TO RECEPTOR
11 (1.1)
001100 (001.100)
11 (1.1)
123123 (123.123)
77 EMISOR PIC 9V9
77 RECEPTOR PIC 999V999
DESPUS ANTES MOVE EMISOR TO RECEPTOR
12312 (123.12)
123.12
12312 (123.12)
321.98
77 EMISOR PIC 999V99
77 RECEPTOR PIC 999.99.
DESPUS ANTES MOVE EMISOR TO RECEPTOR
LENGUAJ E COBOL 108
EJ EMPLOS
01 GRUPO-1
05 NUMERO PIC 99.
05 DIA PIC X(7).
05 AO PIC 99.
01 GRUPO-2
05 LOCALIDAD PIC X(15).
05 MUNICIPIO PIC 999.
05 PRESUPUESTO PIC 9(5)V99.
GRUPO-1 12J UEVESb95
GRUPO-2 ARANDAbDEbDUERO9815321572
Despus de ejecutar MOVE GRUPO-1 TO GRUPO-2
GRUPO-1 12J UEVESb95
55
LENGUAJ E COBOL 109
EJ EMPLOS
Si se ha declarado la tabla siguiente:
01 TABLA
02 TABLA-CELDA OCCURS 50 TIMES PIC 9(5)V99.
MOVE ZEROS TO TABLA rellena los 350 bytes del campo de TABLA
con ceros. Como resultado cada uno de los 7 bytes de los campos de
TABLA-CELDA tambin tendr valores cero.
LENGUAJ E COBOL 110
EJ EMPLOS
01 REGISTRO-PERSONAL.
03 NUMERO PIC 9(5).
03 NOMBRE PIC X(30).
03 DIRECCION PIC X(20).
03 DIS-POSTAL PIC 99.
01 LINEA-IMPRESION.
02 FILLER PIC X(10) VALUE SPACES.
02 NUMERO PIC Z(5).
02 FILLER PIC X(5) VALUE SPACES.
02 NOMBRE PIC X(30).
02 FILLER PIC X(5) VALUE SPACES.
02 DIRECCION PIC X(20).
02 FILLER PIC X(5) VALUE SPACES.
02 DIS-POSTAL PIC ZZ.
MOVE CORRESPONDING REGISTRO-PERSONAL TO LINEA-IMPRESION
56
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
ESTRUCTURAS DE
CONTROL
LENGUAJ E COBOL 112
I NTRODUCCI N
El teorema de la estructura establece que un
programa propio puede ser escrito utilizando
solamente tres tipos de estructuras de control:
secuencial, repetitiva y condicional.
Un programa se define como propio si cumple:
Posee un solo punto de entrada y otro de salida para
el control del programa.
Existen caminos desde la entrada hasta la salida que
se pueden seguir y que pasan por todas las partes del
programa.
Todas las instrucciones son ejecutables y no existen
bucles infinitos.
57
LENGUAJ E COBOL 113
PROCEDURE DI VI SI ON
Es precisamente en esta divisin donde se escriben las
instrucciones de ejecucin.
Es la divisin que permite especificar con la sintaxis del
lenguaje de programacin COBOL, el conjunto de
acciones a realizar.
PROCEDURE DIVISION.
Nombre-prrafo-1.
.............................................
.............................................
Nombre-prrafo-2.
.............................................
.............................................
LENGUAJ E COBOL 114
ESTRUCTURA SECUENCI AL
Se emplea para especificar la secuencia de ejecucin
de un programa modular representado por prrafos.
PERFORM nombre-prrafo
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
............................................
............................................
STOP RUN.
P-PROGRAMA.
sentencia 1.
sentencia 2.
PROGRAMA
P-PROGRAMA
58
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
ESTRUCTURAS DE
CONTROL
LENGUAJ E COBOL 116
VERBO I F
Este verbo produce la evaluacin de una
condicin, dependiendo la siguiente
accin del programa a realizar, de la
evaluacin de la misma.
IF condicin THEN accin-1/ NEXT SENTENCE
[ELSE accin-2/NEXT SENTENCE]
59
LENGUAJ E COBOL 117
VERBO I F
PROGRAMA
CIERTO P-PROGRAMA F-PROGRAMA
SENTENCIA 1
SENTENCIA 2
CONDICIN
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
IF condicin
THEN PERFORM CIERTO.
PERFORM F-PROGRAMA.
.
.
CIERTO.
sentencia-1
sentencia-2
LENGUAJ E COBOL 118
VERBO I F
PROGRAMA
FALSO CIERTO P-PROGRAMA F-PROGRAMA
SENTENCIA 1
SENTENCIA 2
CONDICIN
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
IF condicin
THEN PERFORM CIERTO
ELSE PERFORM FALSO.
PERFORM F-PROGRAMA.
CIERTO.
sentencia-1.
sentencia-2.
FALSO.
sentencia-3.
sentencia-4.
SENTENCIA 3
SENTENCIA 4
60
LENGUAJ E COBOL 119
CONDI CI ONES. TI POS
Condiciones de relacin.
Las condiciones de relacin se refieren a las
comparaciones entre dos items. El tipo de comparacin
se indica por el operador relacional que puede estar en
forma de palabras o de smbolos.
identificador-2
literal-2
exp-artimtica-2
IS operador
identificador-1
literal-1
exp-aritmtica-1
LENGUAJ E COBOL 120
CONDI CI ONES. TI POS
No igual a NOT = NOT EQUAL TO
No menor que NOT < NOT LESS THAN
No mayor que NOT > NOT GREATER THAN
Igual a = EQUAL TO
Menor que < LESS THAN
Mayor que > GREATER THAN
Significado Smbolo Operador
61
LENGUAJ E COBOL 121
CONDI CI ONES. TI POS
Condiciones de clase.
El uso de una condicin de clase hace posible
determinar si un identificador pertenece o no a una de
las cuatro clases incluidas en el Formato siguiente:
NUMERIC
ALPHABETIC
ALPHABETIC-LOWER
ALPHABETIC-UPPER
IS [NOT] Identificador
LENGUAJ E COBOL 122
CONDI CI ONES. TI POS
Condiciones de signo.
Permiten determinar si el valor de una campo
numrico o de una expresin aritmtica es positivo,
negativo o cero. El Formato general es el siguiente:
POSITIVE
NEGATIVE
ZERO
IS [NOT] Expresin Aritmtica
62
LENGUAJ E COBOL 123
CONDI CI ONES. TI POS
Condiciones de nombre de condicin.
Este tipo de condicin facilita la asociacin de uno o
varios valores a un nombre, el cual se puede
interrogar durante el proceso. Los valores asociados
al nombre se definen en la DATA DIVISION al definir
el campo.
02 campo-n PIC.....
88 nomb-condicin VALUE IS lit-1 THRU lit-n
LENGUAJ E COBOL 124
CONDI CI ONES. TI POS
Supongamos que disponemos de un fichero secuencial
en el que la estructura de sus registros soporta un campo
de tipo alfanumrico para determinar el sexo de los
empleados.
02 SEXO-EM PIC X.
88 MASCULINO VALUE 1.
88 FEMENINO VALUE 2.
88 ERROR-CODIGO VALUES ARE LOW-VALUES THRU ZERO,
3 THRU HIGH-VALUES.
63
LENGUAJ E COBOL 125
CONDI CI ONES. TI POS
Condiciones compuestas.
Son varias condiciones simples enlazadas mediante
operaciones lgicas ANDy OR.
Orden de evaluacin de las condiciones
1 - PARNTESIS
2 - NOT
3 - AND
4 - OR
5 - A igualdad de operadores de izquierda a derecha
condicin-1 [NOT] AND/[NOT] OR condicin-2
LENGUAJ E COBOL 126
VERBO EVALUATE
Este verbo produce la evaluacin de una condicin,
dependiendo la siguiente accin del programa a realizar,
de la evaluacin de la misma. Es una forma de
implementar la estructura Casos.
EVALUATE identificador
WHEN literal-1 THRU literal-2 instruccin imperativa-1
...........
WHEN OTHER instruccin imperativa-n
64
LENGUAJ E COBOL 127
VERBO EVALUATE
PROGRAMA
PRRAFO-3 PRRAFO-1 P-PROGRAMA F-PROGRAMA
IDENTIFICADOR =V1
PRRAFO-2
=V2
=V3
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
EVALUATE identificador
WHEN v1 PERFORM PARRAFO-1
WHEN v2 PERFORM PARRAFO-2
WHEN OTHER PERFORM PARRAFO-3
END-EVALUATE.
PERFORM F-PROGRAMA.
STOP RUN.
LENGUAJ E COBOL 128
VERBO EVALUATE
Si tenemos un cdigo que puede tener como valores: 1, 2, y 3. El
siguiente rbol programtico representa la estructura condicional anidada
que verifica el valor del cdigo y ejecuta el prrafo adecuado.
VALOR-CDIGO
AADIR P-VALOR-CDIGO F-VALOR-CDIGO
CDIGO 0 1
FALSO BORRAR
CDIGO =2
ERROR MODIFICAR
CODIGO =3
65
LENGUAJ E COBOL 129
VERBO EVALUATE
VALOR-CDIGO
MODIFICAR AADIR P-VALOR-CDIGO F-VALOR-CDIGO
CDOGO =1
BORRAR
=2 =3
ERROR
OTRO
Si tenemos un cdigo que puede tener como valores: 1, 2, y 3. El siguiente rbol
programtico tambin representa la estructura condicional que verifica el valor
del cdigo y ejecuta el prrafo adecuado.
LENGUAJ E COBOL 130
VERBO EVALUATE
EVALUATE TRUE
WHEN NOMBRE-DE-CONDICION instruccin imperativa-1
...........
WHEN OTHER instruccin imperativa-n
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CODIGO PIC 9.
88 AADIR-REGISTRO VALUE 1.
88 SUPRIMIR-REGISTRO VALUE 2.
88 MODIFICAR-REGISTRO VALUE 3.
88 ERROR-CODIGO VALUE ARE 0 4 THRU 9.
EVALUATE TRUE
WHEN aadir-registro PERFORM AADIR
WHEN suprimir-registro PERFORM SUPRIMIR
WHEN modificar-registro PERFORM MODIFICAR
WHEN OTHER PERFORM CODIGO-ERRONEO
END-EVALUATE.
66
LENGUAJ E COBOL 131
VERBO EVALUATE
PRRAFO-1
PRRAFO-2
PRRAFO-3
PRRAFO-4
A, B o C
A o B
cualquiera
cualquiera
1 o 2
3
4
cualquier otro
ACCIN A REALIZAR CALIFICACIN CDIGO
CONDICIN
EVALUATE CDIGO ALSO CALIFICACIN
WHEN 1 THRU 2 ALSO ATHRU C PERFORMPARRAFO-1
WHEN 3 ALSO ATHRU B PERFORMPARRAFO-2
WHEN 4 ALSO ANY PERFORMPARRAFO-3
WHEN OTHER PERFORM PARRAFO-4
END-EVALUATE.
LENGUAJ E ORI ENTADO A
SI STEMAS DE GESTI N
ESTRUCTURAS DE
CONTROL
67
LENGUAJ E COBOL 133
VERBO PERFORM
PERFORM prrafo entero/identificador TIMES
PROCEDURE DIVISION.
PROGRAMA.
..............................
PERFORM BUCLE 5 TIMES
.............................
BUCLE.
sentencia 1.
sentencia 2.
BUCLE
5 VECES
LENGUAJ E COBOL 134
VERBO PERFORM
PERFORM prrafo [WITH TEST BEFORE]
UNTIL condicin
PROGRAMA
PRRAFO P-PROGRAMA F-PROGRAMA
CONDICIN
68
LENGUAJ E COBOL 135
VERBO PERFORM
PERFORM prrafo WITH TEST AFTER
UNTIL condicin
PROGRAMA
PRRAFO P-PROGRAMA F-PROGRAMA
CONDICIN
(DESPUS)
LENGUAJ E COBOL 136
VERBO PERFORM
PERFORM prrafo
[WITH TEST BEFORE/AFTER]
VARYING iden-1 FROM lit-1/iden-2
BY lit-2/iden-3 UNTIL condicin-1
69
LENGUAJ E COBOL 137
VERBO PERFORM
La ejecucin, si no se ha especificado la opcin TEST
AFTER se realiza de la siguiente forma:
a)El identificador-1 se inicializa al valor especificado por
literal-1 o identificador-2 que sigue al FROM.
b)Se evala la condicin-1.
1. Si es cierta, se da por finalizada la ejecucin de la sentencia
PERFORM y se pasa a ejecutar la siguiente sentencia del
programa.
2. Si es falsa, se pasa al punto c.
c)Se ejecuta el prrafo
d)Se suma a identificador-1 el valor especificado por
identificador-3 que sigue a BY y se vuelve al punto b.
LENGUAJ E COBOL 138
VERBO PERFORM
PERFORM prrafo WITH TEST BEFORE
VARYING iden-1 FROM iden-2
BY iden-3 UNTIL condicin
PROGRAMA
PRRAFO P-PROGRAMA F-PROGRAMA
CONDICIN
IDEN-1 = IDEN-2 , IDEN-3
70
LENGUAJ E COBOL 139
VERBO PERFORM
PERFORM prrafo
[WITH TEST BEFORE/AFTER]
VARYING iden-1 FROM lit-1/iden-2
BY lit-3/iden-3 UNTIL condicin-1
AFTER iden-4 FROM lit-5/iden-5
BY lit-4/iden-6 UNTIL condicin-2
LENGUAJ E COBOL 140
VERBO PERFORM
a) El identificador-1 y el identificador-4 se inicializan a los
valores respectivos que siguen a cada FROM.
b) Se evala la condicin-1.
1. Si es cierta, se da por finalizada la ejecucin de la sentencia
PERFORM y se pasa a ejecutar la siguiente sentencia del
programa.
2. Si es falsa, se pasa al punto c.
c) Se evala la condicin-2.
1. Si es cierta, el identificador-4 se inicializa al valor especificado por
literal-5 o identificador-5 que sigue a FROM, tambin se suma a
identificador-1 el valor especificado por identificador-3 que sigue a
BY y se contina en el punto b.
2. Si es falsa se pasa al punto d.
d) Se ejecuta el
e) Se suma a identificador-4 el valor especificado por
identificador-6 que sigue a BY y se vuelve al punto c.
71
LENGUAJ E COBOL 141
VERBO PERFORM
PROGRAMA
PRRAFO P-PROGRAMA F-PROGRAMA
CONDICIN 1
CONDICIN 2
IDEN-1 = IDEN-2 , IDEN-3
PERFORM prrafo [VARYING iden-1 FROM iden-2
BY iden-3 UNTIL condicin-1
AFTER iden-4 FROM iden-5
BY iden-6 UNTIL condicin-2
IDEN-4 = IDEN-5 , IDEN-6

También podría gustarte