Professional Documents
Culture Documents
SISTEMAS DE GESTIN
ELEMENTOS DEL
LENGUAJE COBOL
LENGUAJE COBOL
z
z
Common
Business
Oriented
Lenguaje
MICROFOCUS
MICROSOFT
RM/COBOL (McFarland)
COBOL2 (IBM)
LENGUAJE COBOL
Caracteres de Cobol
{ $, (, ), ,, ; }
{ +, -, *, **, /, =, (, ) }
Caracteres aritmticos.
Caracteres empleados en declaraciones
condicionales.
{ <, >, = }
LENGUAJE COBOL
Constantes
Literales numricos
Literales no numricos.
Constantes figurativas.
ZERO.
SPACE.
ALL carcter.
HIGH-VALUE .
LOW-VALUE.
LENGUAJE COBOL
Identificadores
LENGUAJE COBOL
Operadores.
Operadores Aritmticos
Operador
Significado
Ejemplo
Suma
A+B
Resta
A-B
Producto
A*B
Divisin
A/B
**
Exponenciacin
A ** B
Asignacin
C=A+B
()
Dar Prioridad
D = (A + B)*C
LENGUAJE COBOL
Igual que
A=B
<
Menor que
A<B
>
Mayor que
A>B
<=
A <= B
>=
A >= B
NOT
Negacin
NOT ( A = B )
AND
Conjuncin
A = B AND A > B
OR
Disyuncin
A = B OR A < B
Operadores Lgicos
LENGUAJE COBOL
Expresiones Aritmticas.
LENGUAJE COBOL
Expresiones Aritmticas.
+ y
**
*, /
+,-
- unarios
LENGUAJE COBOL
Expresiones de Boole.
A >= 30 AND B = C
A = 0 AND B * 2 NOT= 0 OR C = 0
LENGUAJE COBOL
10
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
ESTRUCTURA DE UN
PROGRAMA EN COBOL
DIVISIONES, SECCIONES Y
PRRAFOS
z
z
z
z
IDENTIFICATION DIVISION.
[ENVIRONMENT DIVISION.]
[DATA DIVISION.]
PROCEDURE DIVISION.
LENGUAJE COBOL
12
DIVISIONES, SECCIONES Y
PRRAFOS
IDENTIFICATION DIVISION.
divisin
PROGRAM-ID. EJEMPLO.
AUTHOR. EUI.
prrafo
DATE-WRITTEN. 01-ENERO-93.
DATE-COMPILED. 01-ENERO-93.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
seccin
SOURCE-COMPUTER. IBM PERSONAL COMPUTER.
OBJECT-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
LENGUAJE COBOL
13
DIVISIONES EN COBOL
IDENTIFICATION DIVISION
PROGRAM-ID.
AUTHOR.
INSTALLATION.
DATE-WRITTEN.
DATE-COMPILED.
SECURITY.
REMARKS.
LENGUAJE COBOL
14
DIVISIONES EN COBOL
ENVIRONMENT DIVISION
CONFIGURATION SECTION.
INPUT-OUPUT SECTION.
LENGUAJE COBOL
15
DIVISIONES EN COBOL
z
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
FILE-CONTROL
LENGUAJE COBOL
16
DIVISIONES 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
LENGUAJE COBOL
17
DIVISIONES EN COBOL
z
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.
LENGUAJE COBOL
18
HOJA DE CODIFICACIN
123456 7 8 A 11
Se utilizaban para
indicar los nmeros de
secuencia, permitiendo
ordenar fcilmente el
programa
12 A 72
73 A 80
MARGEN A MARGEN B
Son opcionales, se utilizan normalmente
para escribir comentarios que identifican
el programa.
19
HOJA DE CODIFICACIN
Margen A
Margen B
LENGUAJE COBOL
20
10
REGLAS DE CODIFICACIN
z
z
z
z
z
z
z
21
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.
OBJECT-COMPUTER. modelo-ord.
SPECIAL-NAMES. nombres especiales]
DATA DIVISION
[ FILE SECTION.]
[ WORKING-STORAGE SECTION.]
PROCEDURE DIVISION.
nombre-de-prrafo.
{Sentencia}...}...
nombre-de-prrafo.
{Sentencia}...}...
[ INPUT-OUTPUT SECTION.
{ FILE CONTROL. control de archivos.}
[ I-O CONTROL. control entrada/salida.]]
LENGUAJE COBOL
22
11
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
ESTRUCTURA DE UN
PROGRAMA EN COBOL
DIVISIONES, SECCIONES Y
PRRAFOS
z
z
z
z
IDENTIFICATION DIVISION.
[ENVIRONMENT DIVISION.]
[DATA DIVISION.]
PROCEDURE DIVISION.
LENGUAJE COBOL
24
12
DIVISIONES, SECCIONES Y
PRRAFOS
IDENTIFICATION DIVISION.
divisin
PROGRAM-ID. EJEMPLO.
AUTHOR. EUI.
prrafo
DATE-WRITTEN. 01-ENERO-93.
DATE-COMPILED. 01-ENERO-93.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
seccin
SOURCE-COMPUTER. IBM PERSONAL COMPUTER.
OBJECT-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
LENGUAJE COBOL
25
DIVISIONES EN COBOL
IDENTIFICATION DIVISION
PROGRAM-ID.
AUTHOR.
INSTALLATION.
DATE-WRITTEN.
DATE-COMPILED.
SECURITY.
REMARKS.
LENGUAJE COBOL
26
13
DIVISIONES EN COBOL
ENVIRONMENT DIVISION
CONFIGURATION SECTION.
INPUT-OUPUT SECTION.
LENGUAJE COBOL
27
DIVISIONES EN COBOL
z
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
FILE-CONTROL
LENGUAJE COBOL
28
14
DIVISIONES 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
LENGUAJE COBOL
29
DIVISIONES EN COBOL
z
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.
LENGUAJE COBOL
30
15
HOJA DE CODIFICACIN
123456 7 8 A 11
Se utilizaban para
indicar los nmeros de
secuencia, permitiendo
ordenar fcilmente el
programa
12 A 72
73 A 80
MARGEN A MARGEN B
Son opcionales, se utilizan normalmente
para escribir comentarios que identifican
el programa.
31
HOJA DE CODIFICACIN
Margen A
Margen B
LENGUAJE COBOL
32
16
REGLAS DE CODIFICACIN
z
z
z
z
z
z
z
33
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.
OBJECT-COMPUTER. modelo-ord.
SPECIAL-NAMES. nombres especiales]
DATA DIVISION
[ FILE SECTION.]
[ WORKING-STORAGE SECTION.]
PROCEDURE DIVISION.
nombre-de-prrafo.
{Sentencia}...}...
nombre-de-prrafo.
{Sentencia}...}...
[ INPUT-OUTPUT SECTION.
{ FILE CONTROL. control de archivos.}
[ I-O CONTROL. control entrada/salida.]]
LENGUAJE COBOL
34
17
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
LOS DATOS
DATA DIVISION
z
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 ]]
LENGUAJE COBOL
36
18
TIPOS 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
LENGUAJE COBOL
37
CAMPOS INDEPENDIENTES
z
z
LENGUAJE COBOL
38
19
CLUSULA PICTURE
PICTURE/PIC IS especificacin de formato.
Carcter
Descripcin
Ejemplos
Cualquier dgito
del 0 al 9
1. PIC 99999
2. PIC 9(5)
Posicin Decimal
1. PIC 99v99
2. PIC 9(2)v99
Signo
1. PIC S999
2. PIC S99v99
39
LENGUAJE COBOL
CLUSULA PICTURE
Descripcin
Valor Numrico
12234
8956
1234567
Representacin INTERNA
012234
8956
0001234567
285
38.50
38^5
452.39
0452^39
550
23561.00
0285
550
23561^00
156.29
156^29
-1251.16
1251^16
77 CANT S9(4)V99
-0.10
0000^10
77 CANT S9(4)V99
-325.18
0325^18
77 CANT S9(3)V99
LENGUAJE COBOL
40
20
CLUSULA PICTURE
Carcter
Descripcin
Ejemplos
1.
2.
PIC AAAAA
PIC A(5)
Cualquier carcter
1.
2.
PIC XXXXX
PIC X(5)
Descripcin
Ejemplo
Representado en el Almacenamiento
como
BUENO
BUEN
BUENOS
D.
GIL
U
.
E
G
N
I
LENGUAJE COBOL
41
CLUSULA PICTURE
Carcter
Descripcin
LENGUAJE COBOL
42
21
CLUSULA PICTURE
Carcter
Descripcin
CR
DB
43
LENGUAJE COBOL
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
9(4)V99
654321
9(4).99
6543.21
9(4)V99
054321
9(4).99
0543.21
9(3)V999
000546
999.99
000.54
9V99
567
99V.99
NO VALIDO
99
54
99.99
9999V99
500000
999.99
LENGUAJE COBOL
Resultado
Editado
54.00
000.00
44
22
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
Resultado
EDICIN
Editado
9999
0704
ZZZ9
999V
103
ZZZ.99
103.00
9(3)V99
00103
ZZZ.99
bb1.03
999V99
00000
Z(3).ZZ
blancos
9(4)V99
001234
Z(4).ZZ
bb12.34
999V99
00001
ZZZ.ZZ
b704
bbb.01
45
LENGUAJE COBOL
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
9(6)
012345
***999
*12345
9(6)
000012
***999
***012
9(6)
000123
***999
***123
9(5)V99
0012345
*****.99
LENGUAJE COBOL
Resultado
Editado
**123.45
46
23
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
Resultado
Editado
9(7)
1234567
9,999,999
9(3)V99
12345
9,990,000.99
999
123
9B00B990
9(4)
1234
9,009,990
999
123
9BB99
1bb23
999
123
90099
10023
1,234,567
1,230,000.45
1b00b230
1,002,340
47
LENGUAJE COBOL
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
9(4)
0123
$9999
$0123
9(4)
0123
$Z999
$b123
9(4)
0123
$*999
$*123
9(5)V99
0012345
$*****.99
$**123.45
9(5)V99
0123456
$**,***.99
$*1,234.56
LENGUAJE COBOL
Resultado
Editado
48
24
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
Resultado
Editado
S999
-123
+999
-123
S999
+628
-999
628
S999
+456
999+
456+
S9(3)V99
-12345
999.99DB
S999V99
-18200
$999.99CR
S9(3)V99
+15768
999.99DB
157.68bb
S9(3)V99
-65125
+$999.99
-$651.25
S9(3)V99
+57950
+$999.99
+$579.50
123.45DB
$182.00CR
49
LENGUAJE COBOL
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
9(5)V99
0000440
$$$$$$.99
$4.40
999V99
-00555
++++.99
-5.55
999V99
00000
++++.++
blancos
9(5)V99
0475682
$$$,$$$.99
LENGUAJE COBOL
Resultado
Editado
$4,756.82
50
25
CLUSULA PICTURE
PICTURE
CONTENIDO
PICTURE
EDICIN
Resultado
Editado
X(6)
CN1005
XXBBX(4)
CN
AAAA
HOLA
ABABABA
H 0 L A
X(5)
CASO3
XXXXBX000
CASO
1005
3000
LENGUAJE COBOL
51
CLUSULA VALUE
z
WORKING-STORAGE SECTION.
77 VARIABLE
PIC
X(20)
77 VARIABLE
PIC
99
77 VARIABLE
PIC
V99
77 VARIABLE
PIC
9(8)
77 VARIABLE
PIC
X(10)
77 VARIABLE
PIC
X(9)
77 VARIABLE
PIC
X(9)
77 CERO
PIC
99999
77 CERO
PIC
99999
VALUE
Listado Empleados.
VALUE
10.
VALUE
0.03.
VALUE
ZEROS.
VALUE
SPACES.
VALUE --------- .
VALUE
ALL -.
VALUE ZEROS.
VALUE 0.
LENGUAJE COBOL
52
26
JUSTIFIED RIGHT
z
PIC
X(4)
VALUE AB
JUST RIGHT.
53
LENGUAJE COBOL
CAMPOS COMPUESTOS
z
z
z
NUM-VEN
NOMBRE
APELLIDO1
DATOS-DIRECCIN
APELLIDO2
PROVINCIA
LENGUAJE COBOL
CALLE
FECHA-ALTA
NCALLE
DIA
MES
AO
54
27
CAMPOS COMPUESTOS
NUMERO DE NIVEL
01
VENDEDOR.
02
02
02
02
ESPECIFICACIN
DE FORMATO
NUMERO
DATOS-VENDEDOR.
PIC
999.
03
03
03
NOMBRE
APELLIDO1
APELLIDO2
PIC
PIC
PIC
X(10).
X(10).
X(10).
DATOS-DIRECCION.
03
PROVINCIA
03
CALLE
03
NCALLE
PIC
PIC
PIC
X(30).
X(15).
99.
FECHA-ALTA.
03
DA
03
MES
03
ANIO
PIC
PIC
PIC
99.
99.
99.
NOMBRE
DE DATO
LENGUAJE COBOL
55
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.
z
z
LENGUAJE COBOL
56
28
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.
z
z
z
z
z
z
z
57
LENGUAJE COBOL
CAMPOS COMPUESTOS
Calificacin de los nombres de datos.
01
02
TOTALES-SEMANALES.
03
HORAS
03
DEPTO-NO
TOTALES-MENSUALES.
03
HORAS
03
MAS-INFORMACION
PIC 99V99.
PIC
9(5).
PIC 99V99.
PIC
9(5).
LENGUAJE COBOL
58
29
CAMPOS COMPUESTOS
01 REG-VIEJO.
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....
LENGUAJE COBOL
59
NOMBRES DE CONDICIN
z
77
FINAL-FICHERO
88
FIN-FICHERO
PIC
VALUE
XX.
`SI`.
LENGUAJE COBOL
60
30
NOMBRES DE CONDICIN
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
61
LENGUAJE COBOL
RENAMES
z
01 REG-IMPUESTO.
02
02
02
66
NO-SEG-SOCIAL
NOMBRE-COMPLETO.
03
NOMBRE
03
INICIAL
03
APELLIDO
TOTAL-A-LA-FECHA.
03
PAGO-BRUTO
03
PAGO-NETO
03
IMPUESTO-TRIBUTADO
03
IMPUESTO-ESTADO
PIC 9(8)V99.
PIC 9(8)V99.
PIC 9(6)V99.
PIC 9(4)V99.
NO-SEG-SOCIAL
PIC X(9).
PIC X(10).
PIC XX.
PIC X(15).
NOMBRE
INICIAL
TOTAL-A-LA-FECHA
APELLIDO
PAGO-BRUTO
LENGUAJE COBOL
PAGO-NETO
IMPUESTOTRIBUT
ADO
IMPUESTOESTADO
62
31
TABLAS
z
WORKING-STORAGE SECTION.
01 Nombre-de-tabla.
02 Nombre-de-elemento OCCURS nmero-de-elementos TIMES
PICTURE tipo-de-elemento.
LENGUAJE COBOL
63
TABLAS
01TABLA
- INGRESOS
- ESTADO.
02 INGRESOS- PROMEDIOS
OCCURS 50 TIMES PIC 9(6)V99.
z INGRESOS- PROMEDIOS (ndice) donde ndice es
mayor o igual que 1 y menor o igual que 50.
TABLA-INGRESOS-ESTADO
INGRESOS-PROMEDIO(1)
INGRESOS-PROMEDIO(50)
LENGUAJE COBOL
64
32
TABLAS
01 TABLA-INGRESOS-ESTADO.
02 INGRESOS-PROMEDIOS OCCURS 50 TIMES PIC 9(6)V99.
02 PROMEDIO-NACIONAL PIC 9(7)V99.
TABLA-INGRESOS-ESTADO
INGRESOS-PROMEDIOS
INGRESOS-PROMEDIOS (1)
PROMEDIO-NACIONAL
INGRESOS-PROMEDIOS (50)
PROMEDIO-NACIONAL
65
LENGUAJE COBOL
TABLAS
01TABLA
- INGRESOS
- ESTADO.
02 NOMBRE
- INGRESO OCCURS 50 TIMES.
03
NOMBRE PIC X(4).
03
INGRESO PIC 9(6)V99.
TABLA-INGRESOS-ESTADO
NOMBRE-INGRESO (1)
NOMBRE(1)
INGRESO(1)
---
NOMBRE-INGRESO (50)
NOMBRE(50)
LENGUAJE COBOL
INGRESO (50)
66
33
TABLAS
z
z
z
z
z
z
67
LENGUAJE COBOL
TABLAS
z
01
02
DA
PIC 99.
02
MES
PIC 99.
02
AO
PIC 99.
FECHA-ACTUAL REDEFINES
LENGUAJE COBOL
68
34
TABLAS
01 TABLA-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 "JUEVES".
02 FILLER
PIC X(10)
VALUE "VIERNES".
02 FILLER
PIC X(10)
VALUE "SBADO".
02 FILLER
PIC X(10)
VALUE "DOMINGO".
01 TABLA-DIA-S
REDEFINES TABLA-S.
02 DIA-SEMANA OCCURS 7 TIMES PIC X(10).
LENGUAJE COBOL
69
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
VERBOS ARITMTICOS
35
INTRODUCCIN
z
Suma
Resta
Producto
Divisin
O. Aritmticas
ADD
SUBSTRACT
MULTIPLY
DIVIDE
COMPUTE
LENGUAJE COBOL
71
SUMA
ADD ident-1literal-1 [ident-2/literal-2] ....
TO ident-n [ident-m]
LENGUAJE COBOL
72
36
SUMA. OPCIONES
z
Opcin ROUNDED
PICTURE
S99V9
9V9
99V9
S99V
SV999
RESULTADO
CALCULADO
-12.36
8.432
35.6
65.6
.0058
LENGUAJE COBOL
73
SUMA. OPCIONES
z
LENGUAJE COBOL
74
37
SUMA. EJEMPLOS
ADD IDA IDB TO IDC
ANTES
DESPUS
010
020
-10
010
020
+20
ANTES
DESPUS
77
77
77
77
030
010
+05
-15
030
010
+15
-005
IDA
IDB
IDC
IDD
PIC 9(3)
PIC 999
PIC S9(2)
PIC S999
75
LENGUAJE COBOL
SUMA. EJEMPLOS
ADD IDA IDB GIVING IDC
ANTES
DESPUS
-10
+020
+0030
-10
+020
+0010
ANTES
DESPUS
-10
+020
+0030
-10
+020
+0005
LENGUAJE COBOL
76
38
SUMA. EJEMPLOS
ADD IDA IDB GIVING IDC
ANTES
DESPUS
21987
4593
52
21987
4593
---80 Se han perdido
dgitos (26580)
ANTES
DESPUS
000005
038
000005
000-- se han
perdido
dgitos (0.0008)
LENGUAJE COBOL
77
RESTA
z
SUBTRACT ident-1/literal-1....FROM
ident-2/literal-2 GIVING ident-3
LENGUAJE COBOL
78
39
RESTA. EJEMPLOS
SUBTRACT IDA FROM IDB
ANTES
DESPUS
77 IDA PIC 99
77 IDB PIC 999
10
042
10
032
ANTES
DESPUS
77
77
77
77
10
027
52
47
10
027
11
06
IDA
IDB
IDC
IDD
PIC 99
PIC 999
PIC 99
PIC 99
LENGUAJE COBOL
79
RESTA. EJEMPLOS
SUBTRACT CANTIDAD-1, CANTIDAD-2, CANTIDAD-FROM
CANTIDAD-4 GIVING CANTIDAD-5,
CANTIDAD-6 ROUNDED
ON SIZE ERROR PERFORM DESBORDAMIENTO.
z
LENGUAJE COBOL
80
40
RESTA. EJEMPLOS
SUBTRACT IDA FROM IDB
GIVING IDC
ANTES
DESPUS
77 IDA PIC 99
77 IDB PIC 999
77 IDC PIC 99
10
032
41
10
032
22
DESPUS
77
77
77
77
072000
122000
020000
030000
IDA
IDB
IDC
IDD
PIC 9(6)
PIC 9(6)
PIC 9(6)
PIC 9(6)
000123
122000
020000
030000
81
LENGUAJE COBOL
MULTIPLICACIN
MULTIPLY ident-1/literal-1 BY ident-2
siendo:
ident-1: multiplicando.
ident-2: multiplicador y campo receptor del resultado de la operacin.
ANTES
DESPUS
01000
25
25000
25
ANTES
DESPUS
25000
12500
LENGUAJE COBOL
82
41
MULTIPLICACIN
MULTIPLY ident-1/literal-1 BY ident-2 GIVING ident-3
MULTIPLY A BY B GIVING C ROUNDED, E ON SIZE ERROR
PERFORM RUTINA-DESBORDAMIENTO.
ANTES DESPUS
12500
50000
12500
06250
LENGUAJE COBOL
83
DIVISIN
DIVIDE ident-1/literal-1 INTO ident-2
DIVIDE A INTO B, C ROUNDED
ON SIZE ERROR
PERFORM RUTINA-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.
LENGUAJE COBOL
84
42
DIVISIN
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
85
LENGUAJE COBOL
DIVISIN. EJEMPLOS
DIVIDE IDB INTO IDA
ANTES
DESPUS
50000
50
01000
50
ANTES
DESPUS
36500
36500
1000
DESPUS
36500
1000
36500
LENGUAJE COBOL
86
43
DIVISIN. EJEMPLOS
DIVIDE DIVIDENDO
BY DIVISOR
GIVING COCIENTE
REMAINDER RESTO
ANTES
DESPUS
77
77
77
77
100
03
55
100
03
0100 (01.00)
33
DIVIDENDO
DIVISOR
RESTO
COCIENTE
PIC 999
PIC 99
PIC 99V99
PIC 99
LENGUAJE COBOL
87
COMPUTE
z
COMPUTE ident-1
[ROUNDED] = expresin-aritmtica
[ON SIZE ERROR sentencia-1]
LENGUAJE COBOL
88
44
COMPUTE
SMBOLO
OPERACIN
REPRESENTADA
PRIORIDAD
Suma
MENOR
Resta
Producto
Cociente
**
Exponenciacin
MAYOR
LENGUAJE COBOL
89
COMPUTE
COMPUTE A = B ** C.
No tiene sentencia
equivalente.
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.
DIVIDE B BY C GIVING A.
COMPUTE A = -B.
SUBTRACT B FROM
ZERO GIVING A,
MULTIPLY -1 BY B
GIVING A
LENGUAJE COBOL
90
45
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
VERBOS ENTRADA
SALIDA
INTRODUCCIN
z
Display
Accept
LENGUAJE COBOL
92
46
DISPLAY
z
LENGUAJE COBOL
93
DISPLAY. OPCIONES
z
z
z
LENGUAJE COBOL
94
47
DISPLAY. OPCIONES
z
z
z
z
LENGUAJE COBOL
95
ACCEPT
z
ACCEPT identificador-1
[LINE identificador-2/entero-2]
[POSITION identificador-3/entero-3] [opciones]
....
LENGUAJE COBOL
96
48
ACCEPT. OPCIONES
z
z
z
z
z
z
z
z
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.
LENGUAJE COBOL
97
ACCEPT. OPCIONES
z
z
z
z
z
z
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.
LENGUAJE COBOL
98
49
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
VERBOS
TRANSFERENCIA DE
DATOS
GENERALIDADES
z
z
z
LENGUAJE COBOL
100
50
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.
LENGUAJE COBOL
101
VERBO MOVE
z
LENGUAJE COBOL
102
51
TIPOS DE MOVIMIENTOS
CAMPO RECEPTOR
CAMPO EMISOR
ALFABTICO
ALFANUMRICO
ALFANUMRICO
EDITADO
NUM ENTERO
NUM NO ENTER
NUM EDITADO
Alfabtico
SI
SI
NO
Alfanumrico
SI
SI
NO
Alfanumrico editado
SI
SI
NO
Numrico Entero
NO
SI
SI
Numrico No Entero
NO
NO
SI
Numrico Editado
NO
SI
SI
LENGUAJE COBOL
103
TIPOS DE MOVIMIENTOS
z
LENGUAJE COBOL
104
52
TIPOS DE MOVIMIENTOS
De un campo alfabtico o alfanumrico a otro
de tipo alfabtico o alfanumrico de edicin o
no.
LENGUAJE COBOL
105
LENGUAJE COBOL
106
53
EJEMPLOS
MOVE EMISOR TO RECEPTOR
ANTES
1234
98765
DESPUS
(12.34)
(987.65)
1234
01234
(12.34)
(012.34)
ANTES
DESPUS
77 EMISOR
PIC 9V9
77 RECEPTOR PIC 999V999
11 (1.1)
123123 (123.123)
11 (1.1)
001100 (001.100)
ANTES
DESPUS
77 EMISOR
PIC 999V99
77 RECEPTOR PIC 999.99.
12312 (123.12)
321.98
12312 (123.12)
123.12
ANTES
DESPUES
12345 (1234.5)
98765 (98.765)
12345 (1234.5)
34500 (34.500)
LENGUAJE COBOL
107
EJEMPLOS
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
12JUEVESb95
GRUPO-2
ARANDAbDEbDUERO9815321572
Despus de ejecutar MOVE GRUPO-1 TO GRUPO-2
GRUPO-1
12JUEVESb95
LENGUAJE COBOL
108
54
EJEMPLOS
109
LENGUAJE COBOL
EJEMPLOS
01
01
REGISTRO-PERSONAL.
03
NUMERO
03
NOMBRE
03
DIRECCION
03
DIS-POSTAL
PIC
PIC
PIC
PIC
9(5).
X(30).
X(20).
99.
LINEA-IMPRESION.
02
FILLER
02
NUMERO
02
FILLER
02
NOMBRE
02
FILLER
02
DIRECCION
02
FILLER
02
DIS-POSTAL
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X(10)
Z(5).
X(5)
X(30).
X(5)
X(20).
X(5)
ZZ.
VALUE SPACES.
VALUE SPACES.
VALUE SPACES.
VALUE SPACES.
LENGUAJE COBOL
110
55
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
ESTRUCTURAS DE
CONTROL
INTRODUCCIN
z
LENGUAJE COBOL
112
56
PROCEDURE DIVISION
z
z
LENGUAJE COBOL
113
ESTRUCTURA SECUENCIAL
z
P-PROGRAMA
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
............................................
............................................
STOP RUN.
P-PROGRAMA.
sentencia 1.
sentencia 2.
LENGUAJE COBOL
114
57
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
ESTRUCTURAS DE
CONTROL
VERBO IF
z
LENGUAJE COBOL
116
58
VERBO IF
PROGRAMA
CONDICIN
P-PROGRAMA
F-PROGRAMA
CIERTO
SENTENCIA 1
SENTENCIA 2
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
IF condicin
THEN PERFORM CIERTO.
PERFORM F-PROGRAMA.
.
.
CIERTO.
sentencia-1
sentencia-2
117
LENGUAJE COBOL
VERBO IF
PROGRAMA
CONDICIN
P-PROGRAMA
CIERTO
FALSO
SENTENCIA 1
SENTENCIA 3
SENTENCIA 2
SENTENCIA 4
PROCEDURE DIVISION.
PROGRAMA.
PERFORM P-PROGRAMA.
IF condicin
THEN PERFORM CIERTO
ELSE PERFORM FALSO.
PERFORM F-PROGRAMA.
F-PROGRAMA
CIERTO.
sentencia-1.
sentencia-2.
FALSO.
sentencia-3.
sentencia-4.
LENGUAJE COBOL
118
59
CONDICIONES. TIPOS
z
Condiciones de relacin.
IS operador
identificador-2
literal-2
exp-artimtica-2
119
LENGUAJE COBOL
CONDICIONES. TIPOS
Operador
Significado
Smbolo
GREATER THAN
>
Mayor que
LESS THAN
<
Menor que
EQUAL TO
NOT >
Igual a
No mayor que
NOT <
No menor que
NOT EQUAL TO
NOT =
No igual a
LENGUAJE COBOL
120
60
CONDICIONES. TIPOS
z
Condiciones de clase.
Identificador
IS [NOT]
NUMERIC
ALPHABETIC
ALPHABETIC-LOWER
ALPHABETIC-UPPER
121
LENGUAJE COBOL
CONDICIONES. TIPOS
z
Condiciones de signo.
Expresin Aritmtica
IS [NOT]
LENGUAJE COBOL
POSITIVE
NEGATIVE
ZERO
122
61
CONDICIONES. TIPOS
z
LENGUAJE COBOL
123
CONDICIONES. TIPOS
z
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.
LENGUAJE COBOL
124
62
CONDICIONES. TIPOS
z
Condiciones compuestas.
LENGUAJE COBOL
125
VERBO EVALUATE
z
EVALUATE identificador
WHEN literal-1 THRU literal-2 instruccin imperativa-1
...........
WHEN OTHER instruccin imperativa-n
LENGUAJE COBOL
126
63
VERBO EVALUATE
PROGRAMA
IDENTIFICADOR = V1
= V2
P-PROGRAMA
PRRAFO-1
PRRAFO-2
= V3
PRRAFO-3
F-PROGRAMA
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.
127
LENGUAJE COBOL
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
CDIGO 0 1
P-VALOR-CDIGO
F-VALOR-CDIGO
AADIR
CDIGO = 2
FALSO
BORRAR
CODIGO = 3
MODIFICAR
LENGUAJE COBOL
ERROR
128
64
VERBO EVALUATE
VALOR-CDIGO
CDOGO = 1
=2
P-VALOR-CDIGO
AADIR
OTRO
=3
BORRAR
MODIFICAR
ERROR
F-VALOR-CDIGO
129
LENGUAJE COBOL
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
88
SUPRIMIR-REGISTRO
88
MODIFICAR-REGISTRO
88
ERROR-CODIGO
EVALUATE TRUE
WHEN aadir-registro
WHEN suprimir-registro
WHEN modificar-registro
WHEN OTHER
END-EVALUATE.
VALUE
1.
VALUE
2.
VALUE
3.
VALUE ARE 0 4 THRU 9.
PERFORM
PERFORM
PERFORM
PERFORM
LENGUAJE COBOL
AADIR
SUPRIMIR
MODIFICAR
CODIGO-ERRONEO
130
65
VERBO EVALUATE
CONDICIN
CDIGO
CALIFICACIN
ACCIN A REALIZAR
1o2
3
4
cualquier otro
A, B o C
AoB
cualquiera
cualquiera
PRRAFO-1
PRRAFO-2
PRRAFO-3
PRRAFO-4
CALIFICACIN
ALSO A THRU C
ALSO A THRU B
ALSO ANY
PERFORM PARRAFO-1
PERFORM PARRAFO-2
PERFORM PARRAFO-3
PERFORM PARRAFO-4
LENGUAJE COBOL
131
LENGUAJE ORIENTADO A
SISTEMAS DE GESTIN
ESTRUCTURAS DE
CONTROL
66
VERBO PERFORM
PERFORM prrafo entero/identificador TIMES
PROCEDURE DIVISION.
PROGRAMA.
..............................
PERFORM BUCLE 5 TIMES
.............................
BUCLE.
sentencia 1.
sentencia 2.
BUCLE
5 VECES
133
LENGUAJE COBOL
VERBO PERFORM
PERFORM prrafo [WITH TEST BEFORE]
UNTIL condicin
PROGRAMA
P-PROGRAMA
F-PROGRAMA
PRRAFO
CONDICIN
LENGUAJE COBOL
134
67
VERBO PERFORM
PERFORM prrafo WITH TEST AFTER
UNTIL condicin
PROGRAMA
P-PROGRAMA
F-PROGRAMA
PRRAFO
CONDICIN
(DESPUS)
LENGUAJE COBOL
135
VERBO PERFORM
PERFORM prrafo
[WITH TEST BEFORE/AFTER]
VARYING iden-1 FROM lit-1/iden-2
BY lit-2/iden-3 UNTIL condicin-1
LENGUAJE COBOL
136
68
VERBO PERFORM
z
b) Se evala la condicin-1.
c) Se ejecuta el prrafo
d) Se suma a identificador-1 el valor especificado por
137
LENGUAJE COBOL
VERBO PERFORM
PERFORM prrafo WITH TEST BEFORE
VARYING iden-1 FROM iden-2
BY iden-3 UNTIL condicin
PROGRAMA
P-PROGRAMA
F-PROGRAMA
PRRAFO
CONDICIN
LENGUAJE COBOL
138
69
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
LENGUAJE COBOL
139
VERBO PERFORM
a)
b)
c)
Se evala la condicin-2.
1.
2.
d)
e)
Se ejecuta el
Se suma a identificador-4 el valor especificado por
identificador-6 que sigue a BY y se vuelve al punto c.
LENGUAJE COBOL
140
70
VERBO PERFORM
PROGRAMA
P-PROGRAMA
F-PROGRAMA
PRRAFO
CONDICIN 1
CONDICIN 2
LENGUAJE COBOL
141
71