COBOL

February 24, 2019 | Author: zxero_cool | Category: Programming Language, Computer Program, Computer Programming, Computer File, Compiler
Share Embed Donate


Short Description

Download COBOL...

Description

LENGUAJ E ORIE O RIENT NT ADO A SISTEMA S DE GES G ESTI TI ÓN 

ELEMENTOS DEL LENGUAJE COBOL

LENGUAJ E CO COBOL BOL 





Cobol, es un lenguaje de alto nivel (3ª generación) de tipo imperativo y orientado a resolver problemas de gestión. COBOL significa:

• Common • Business • Oriented Lenguaje • Fue creado creado en 1.960, por por la comisión CODASYL CODASYL (Conference (Conference on Data System System •

Lenguaje), formada por fabricantes, usuarios y gobierno USA, esta comisión además 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 más utilizados los de:

• • • •

MICROFOCUS MICROSOFT RM/COBOL (McFarland) COBOL2 (IBM)

LENGUAJE COBOL

2

1

ELEMENTOS DE DEL L LENGUA J E 

Caracteres de Cobol

• Caracteres numéricos. 0/9. • Caracteres alfabéticos. A/Z. especiales. $, blanco, blanco, +, ......... • Caracteres especiales. • Caracteres empleados en puntuación • { $, (, ), ,, ; } • Caracteres aritméticos. • { +, -, *, **, /, =, (, ) } • Caracteres empleados en declaraciones condicionales.

• { , = }

LENGUAJE COBOL

3

ELEMENTOS DE DEL L LENGUA J E 

Constantes

• Literales numéricos

• Literales de coma fija • Literales de coma flotante.

[ +/+/- ] manti mantisa sa E [ +/+/- ] expone exponente nte

numéricos. • Literales no numéricos. figurativas . • Constantes figurativas.

• ZERO. • SPACE. • ALL ‘carác ‘carácter ter’.’. • HIGH-V HIGH-VALU ALUE E. • LOW-VALUE.

LENGUAJE COBOL

4

2

ELEMENTOS DE DEL L LENGUA J 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 combinación de los tres grupos de caracteres siguientes: dígitos (0/9), letras (A/Z) (A/Z) y el guión (-). (-). Estan compuesto por una una combinación de 30 caracteres como máximo. No pueden comenzar ni finalizar con un guión. Deberán comenzar por un carácter alfabético, excepto los nombres de párrafos. No pueden tener el mismo nombre que una palabra reservada.

5

LENGUAJE COBOL

ELEMENTOS DE DEL L LENGUA J E 

Operadores. Operadores.

• Los operadores son símbolos que indican cómo son manipulados los datos

Operadores Aritméticos Operador

Significado

Ejemplo

+

Suma

A+B

-

Resta

A-B

*

Producto

A*B

 / 

División

A/B

**

Exponenciación

A ** B

=

Asignación

C=A+B

()

Dar Prioridad

D = (A + B)*C

LENGUAJE COBOL

6

3

ELEMENTOS DEL LENGUA J E Operadores de Relación =

Igual que

A=B

<

Menor que

A

Mayor que

A>B

= B

NOT

Negación

NOT ( A = B )

AND

Conjunción

A = B AND A > B

OR

Disyunción

A = B OR A < B

Operadores Lógicos

LENGUAJE COBOL

7

ELEMENTOS DEL LENGUA J E 

Expresiones Aritméticas.

• Una expresión aritmética puede ser una constante, • • •

una variable o un conjunto de constantes y variables unidas por operadores aritméticos. El punto, punto y coma o coma no pueden ir precedidos por un espacio, pero si tienen que ir seguidos por un espacio. Un paréntesis izquierdo no puede ir seguido por un espacio, un paréntesis derecho no puede ir precedido por un espacio. Un operador aritmético o un signo igual tiene que ir precedido por un espacio y seguido por un espacio.

LENGUAJE COBOL

8

4

ELEMENTOS DEL LENGUA J E 

Expresiones Aritméticas.

• A la hora de evaluar una expresión

• Primero se evalúan las operaciones entre

paréntesis, del más interno al más externo. • Después se evalúan los operadores con la prioridad siguiente:

•+ y • ** • *, /  • +,-

unarios

LENGUAJE COBOL

9

ELEMENTOS DEL LENGUA J E 

Expresiones de Boole.

• Una expresión de Boole da como resultado

un valor VERDADERO o FALSO. • Los operadores que intervienen en una expresión de Boole pueden ser: operadores de relación y operadores lógicos.

A >= 30 AND B = C A = 0 AND B * 2 NOT= 0 OR C = 0 LENGUAJE COBOL

10

5

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

ESTRUCTURA DE UN PROGRAMA EN COBOL

DIV ISION ES, SECCIONES Y PÁRRAFOS

   

IDENTIFICATION DIVISION. [ENVIRONMENT DIVISION.] [DATA DIVISION.] PROCEDURE DIVISION.

LENGUAJE COBOL

12

6

DIV ISION ES, SECCIONES Y PÁRRAFOS IDENTIFICATION DIVISION. división  PROGRAM-ID. EJEMPLO. párrafo  AUTHOR. EUI. DATE-WRITTEN. 01-ENERO-93. DATE-COMPILED. 01-ENERO-93. ENVIRONMENT DIVISION. CONFIGURATION SECTION. sección  SOURCE-COMPUTER. IBM PERSONAL COMPUTER. OBJECT-COMPUTER. IBM PERSONAL COMPUTER. párrafo  SPECIAL-NAMES. DECIMAL-POINT IS COMMA. cláusula  sección  INPUT-OUTPUT SECTION. párrafo  FILE-CONTROL. SELECT IMPRESORA ASSING TO PRINTER. cláusulas  LENGUAJE COBOL

13

DIV ISION ES EN COBOL 

• •

IDENTIFICATION DIVISION PROPÓSITO: Identificar el programa de forma que se distinga de los otros, además de proporcionar el nombre del autor, cuando se escribió etc. PÁRRAFOS

• • • • • • •

PROGRAM-ID. AUTHOR. INSTALLATION. DATE-WRITTEN. DATE-COMPILED. SECURITY. REMARKS.

LENGUAJE COBOL

14

7

DIV ISION ES EN COBOL 

ENVIRONMENT DIVISION





PROPÓSITO: En esta división se describe el entorno físico en el cual se va a desarrollar el programa. Entendiéndose por entorno, la clase de sistema que se va a utilizar así como los dispositivos de entrada/salida. SECCIONES

• •

CONFIGURATION SECTION. INPUT-OUPUT SECTION.

LENGUAJE COBOL

15

DIV ISION ES EN COBOL 

• •



• •

CONFIGURATION SECTION. PROPÓSITO: Tiene como finalidad describir las características del computador usado para compilar y ejecutar el programa, todo ello a nivel de comentarios PÁRRAFOS

• • •

SOURCE-COMPUTER. Modelo de ordenador. OBJECT-COMPUTER. Modelo de ordenador. SPECIAL-NAMES.

• • •

[[Nombre de función IS nombre nemotécnico] [CURRENCY SIGN IS literal] [DECIMAL-POINT IS COMMA].]

INPUT-OUTPUT SECTION. PROPÓSITO: Declarar los ficheros utilizados y la asignación a los dispositivos de E/S. PÁRRAFOS



FILE-CONTROL

LENGUAJE COBOL

16

8

DIV ISION ES EN COBOL 

• •

Nombre de función es un nombre reconocido por el compilador y nombre nemotécnico es un nombre creado por el programador. De esta forma podemos poner: CONSOLE IS CONSOLA SYSOUT IS ARCHI-PANTALLA

La función de CURRENCY SING es indicar que el sistema tiene que utilizar un carácter monetario distinto del que tiene por defecto ($). El carácter sustituto de éste, tiene que ser uno solo y alfabético. La función del DECIMAL-POINT IS COMMA es indicar que el sistema tiene que sustituir la notación anglosajona por la castellana en la función del punto decimal y la coma, en los campos de edición.





LENGUAJE COBOL

17

DIV ISION ES EN COBOL 

• •





DATA DIVISION

PROPÓSITO: 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 codificación del programa debe estar definido en esta división. PÁRRAFOS

• •

WORKING-STORAGE SECTION. FILE SECTION.

PROCEDURE DIVISION

PROPÓSITO: Es en esta división donde se codifica el algoritmo propiamente dicho, esto es, donde se especifican las instrucciones adecuadas para resolver el problema. LENGUAJE COBOL

18

9

HOJ A DE CODIFICACIÓN 123456 7 8 A 11 12 A 72 Se utilizaban para indicar los números de secuencia, permitiendo ordenar fácilmente el programa

73 A 80

MARGEN A MARGEN B Son opcionales, se utilizan normalmente para escribir comentarios que identifican el programa.

Se utiliza para poner un carácter especial (*) que indica comienzo de un comentario. Si el carácter especial que se incluye en esta columna es (-) indica que es continuación de un literal no numérico, cuando la longitud de éste, ocupa más de una línea. LENGUAJE COBOL

19

HOJ A DE CODIFICACIÓN 





• • • • • • •

Margen A Cabeceras de división: IDENTIFICATION DIVISION... Cabeceras de sección : CONFIGURATION SECTION... Cabeceras de párrafos: PROGRAM-ID... Nombre de procedimientos: ABRIR-FICHEROS... Descripciones de nivel FD: FD IMPRESO.. Los números de nivel 01 y 77

Margen B Todo aquello que no esté en los apartados anteriores.

Casi todas estas reglas son innecesarias hoy en día, con la simple elección de un editor adecuado y un estilo de  programación racional y estructurado.

LENGUAJE COBOL

20

10

REGLAS DE CODIFICACI ÓN 







  



Los nombres de división, sección y párrafos deben escribirse solos en una línea y finalizar con un punto. Cada entrada y cada sentencia del programa debe finalizar con un punto. Si a lo largo de una línea física no se encuentra un punto, la siguiente línea será tomada como continuación de la anterior, esto es, cada entrada y cada sentencia del programa puede ocupar varias líneas físicas. Si una entrada o una sentencia del programa no cabe en una línea física, se continúa en la línea o líneas siguientes pero en el área B. No es obligatorio llenar totalmente una línea física. Se deben dejar líneas 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 más clara la redacción del programa. Si se utiliza más de un espacio como separador entre palabras, el compilador lo interpreta como uno solo. LENGUAJE COBOL

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-párrafo. {Sentencia}...}... nombre-de-párrafo. {Sentencia}...}...

[ INPUT-OUTPUT SECTION. { FILE CONTROL. control de archivos.} [ I-O CONTROL. control entrada/salida.]] LENGUAJE COBOL

22

11

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

ESTRUCTURA DE UN PROGRAMA EN COBOL

DIV ISION ES, SECCIONES Y PÁRRAFOS

   

IDENTIFICATION DIVISION. [ENVIRONMENT DIVISION.] [DATA DIVISION.] PROCEDURE DIVISION.

LENGUAJE COBOL

24

12

DIV ISION ES, SECCIONES Y PÁRRAFOS IDENTIFICATION DIVISION. división  PROGRAM-ID. EJEMPLO. párrafo  AUTHOR. EUI. DATE-WRITTEN. 01-ENERO-93. DATE-COMPILED. 01-ENERO-93. ENVIRONMENT DIVISION. CONFIGURATION SECTION. sección  SOURCE-COMPUTER. IBM PERSONAL COMPUTER. OBJECT-COMPUTER. IBM PERSONAL COMPUTER. párrafo  SPECIAL-NAMES. DECIMAL-POINT IS COMMA. cláusula  sección  INPUT-OUTPUT SECTION. párrafo  FILE-CONTROL. SELECT IMPRESORA ASSING TO PRINTER. cláusulas  LENGUAJE COBOL

25

DIV ISION ES EN COBOL 

• •

IDENTIFICATION DIVISION PROPÓSITO: Identificar el programa de forma que se distinga de los otros, además de proporcionar el nombre del autor, cuando se escribió etc. PÁRRAFOS

• • • • • • •

PROGRAM-ID. AUTHOR. INSTALLATION. DATE-WRITTEN. DATE-COMPILED. SECURITY. REMARKS.

LENGUAJE COBOL

26

13

DIV ISION ES EN COBOL 

ENVIRONMENT DIVISION





PROPÓSITO: En esta división se describe el entorno físico en el cual se va a desarrollar el programa. Entendiéndose por entorno, la clase de sistema que se va a utilizar así como los dispositivos de entrada/salida. SECCIONES

• •

CONFIGURATION SECTION. INPUT-OUPUT SECTION.

LENGUAJE COBOL

27

DIV ISION ES EN COBOL 

• •



• •

CONFIGURATION SECTION. PROPÓSITO: Tiene como finalidad describir las características del computador usado para compilar y ejecutar el programa, todo ello a nivel de comentarios PÁRRAFOS

• • •

SOURCE-COMPUTER. Modelo de ordenador. OBJECT-COMPUTER. Modelo de ordenador. SPECIAL-NAMES.

• • •

[[Nombre de función IS nombre nemotécnico] [CURRENCY SIGN IS literal] [DECIMAL-POINT IS COMMA].]

INPUT-OUTPUT SECTION. PROPÓSITO: Declarar los ficheros utilizados y la asignación a los dispositivos de E/S. PÁRRAFOS



FILE-CONTROL

LENGUAJE COBOL

28

14

DIV ISION ES EN COBOL 

• •

Nombre de función es un nombre reconocido por el compilador y nombre nemotécnico es un nombre creado por el programador. De esta forma podemos poner: CONSOLE IS CONSOLA SYSOUT IS ARCHI-PANTALLA

La función de CURRENCY SING es indicar que el sistema tiene que utilizar un carácter monetario distinto del que tiene por defecto ($). El carácter sustituto de éste, tiene que ser uno solo y alfabético. La función del DECIMAL-POINT IS COMMA es indicar que el sistema tiene que sustituir la notación anglosajona por la castellana en la función del punto decimal y la coma, en los campos de edición.





LENGUAJE COBOL

29

DIV ISION ES EN COBOL 

• •





DATA DIVISION

PROPÓSITO: 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 codificación del programa debe estar definido en esta división. PÁRRAFOS

• •

WORKING-STORAGE SECTION. FILE SECTION.

PROCEDURE DIVISION

PROPÓSITO: Es en esta división donde se codifica el algoritmo propiamente dicho, esto es, donde se especifican las instrucciones adecuadas para resolver el problema. LENGUAJE COBOL

30

15

HOJ A DE CODIFICACIÓN 123456 7 8 A 11 12 A 72 Se utilizaban para indicar los números de secuencia, permitiendo ordenar fácilmente el programa

73 A 80

MARGEN A MARGEN B Son opcionales, se utilizan normalmente para escribir comentarios que identifican el programa.

Se utiliza para poner un carácter especial (*) que indica comienzo de un comentario. Si el carácter especial que se incluye en esta columna es (-) indica que es continuación de un literal no numérico, cuando la longitud de éste, ocupa más de una línea. LENGUAJE COBOL

31

HOJ A DE CODIFICACIÓN 





• • • • • • •

Margen A Cabeceras de división: IDENTIFICATION DIVISION... Cabeceras de sección : CONFIGURATION SECTION... Cabeceras de párrafos: PROGRAM-ID... Nombre de procedimientos: ABRIR-FICHEROS... Descripciones de nivel FD: FD IMPRESO.. Los números de nivel 01 y 77

Margen B Todo aquello que no esté en los apartados anteriores.

Casi todas estas reglas son innecesarias hoy en día, con la simple elección de un editor adecuado y un estilo de  programación racional y estructurado.

LENGUAJE COBOL

32

16

REGLAS DE CODIFICACI ÓN 







  



Los nombres de división, sección y párrafos deben escribirse solos en una línea y finalizar con un punto. Cada entrada y cada sentencia del programa debe finalizar con un punto. Si a lo largo de una línea física no se encuentra un punto, la siguiente línea será tomada como continuación de la anterior, esto es, cada entrada y cada sentencia del programa puede ocupar varias líneas físicas. Si una entrada o una sentencia del programa no cabe en una línea física, se continúa en la línea o líneas siguientes pero en el área B. No es obligatorio llenar totalmente una línea física. Se deben dejar líneas 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 más clara la redacción del programa. Si se utiliza más de un espacio como separador entre palabras, el compilador lo interpreta como uno solo. LENGUAJE COBOL

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-párrafo. {Sentencia}...}... nombre-de-párrafo. {Sentencia}...}...

[ INPUT-OUTPUT SECTION. { FILE CONTROL. control de archivos.} [ I-O CONTROL. control entrada/salida.]] LENGUAJE COBOL

34

17

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

LOS DATOS

DATA DIVISION 



• •

FUNCIÓN

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 descripción de ficheros....} { Entrada de descripción de registros...}] [WORKING-STORAGE SECTION. [ Entrada de descripción de variables o registros ]]

LENGUAJE COBOL

36

18

TI POS DE DATOS

Una de las características típicas de los datos que se usan en las aplicaciones de gestión es la variedad de formas y estructuras. Los datos se clasifican en:





• • •

Campos Independientes Campos Compuestos Tablas LENGUAJE COBOL

37

CAM POS INDEPENDIEN TES 





Es un campo de trabajo que será definido en la sección de “working”. No forman parte de la descripción de los ficheros. Formato mínimo para su definición: 

Donde:

• • •

número-de-nivel nombre-de-dato PICTURE especificación de formato.

Número-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 información que puede almacenarse en el campo, así como las operaciones que con él pueden realizarse. Permite definir el tipo y el tamaño del campo.

LENGUAJE COBOL

38

19

CLÁUSULA PICTURE PICTURE/PIC IS especificación de formato.

Carácter

Descripción

Ejemplos

9 V

Cualquier dígito del 0 al 9 Posición Decimal

S

Signo

1. 2. 1. 2. 1. 2.

PIC 99999 PIC 9(5) PIC 99v99 PIC 9(2)v99 PIC S999 PIC S99v99 39

LENGUAJE COBOL

CLÁUSULA PICTURE Descripción

Valor Numérico

Representación INTERNA

77 CANT PIC 9(6)

12234

012234

77 CANT PIC 9999

8956

8956

77 CANT PIC 9(10)

1234567

77 CANT PIC 9999

285

0285

77 CANT PIC 99V9

38.50

38^5

452.39

0452^39

77 CANT PIC 9(4)V99 77 CANT PIC 999

550

77 CANT 99999V99

23561.00

77 CANT PIC S999V99 77 CANT S9(3)V99

156.29

0001234567

550 23561^00 156^29

-1251.16

1251^16

77 CANT S9(4)V99

-0.10

0000^10

77 CANT S9(4)V99

-325.18

0325^18

LENGUAJE COBOL

40

20

CLÁUSULA PICTURE Carácter

Descripción

Ejemplos

A

Cualquier carácter letra

1. 2.

P IC AAA AA P IC A( 5)

X

Cualquier carácter

1. 2.

P IC XXX XX P IC X( 5)

Descripción

Ejemplo

77 VALOR PIC XXXXX

Representado en el Almacenamiento como

BUENO

B

U

E

N

77 VALOR PIC X(5)

BUEN

B

U

E

N

77 VALOR PIC X(5)

BUENOS

B

U

E

N

77 VALOR PIC X(8)

D.

GIL

D

.

G

I

O

O

L

LENGUAJE COBOL

41

CLÁUSULA PICTURE Carácter

Descripción

$

Se escribe el signo $ en el lugar correcto en que debe aparecer en la salida

.

Indica la posición del punto decimal

,

Indica la posición de la coma como carácter de separación de millares. La utilización de la cláusula DECIMAL POINT IS COMMA en la SPECIAL-NAMES de la ENVIRONMENT DIVISION invierte el uso de los puntos y coma.

*

Sirve para reemplazar los ceros no significativos (a la izquierda) por asteriscos

Z

Sirve para reemplazar los ceros no significativos por blancos

+

Se inserta en el extremo izquierdo o derecho. Representa la aparición del signo. Si el número es positivo aparecerá un + y si es negativo aparecerá un -.

LENGUAJE COBOL

42

21

CLÁUSULA PICTURE Carácter

Descripción

-

Se inserta en el extremo izquierdo o derecho. Representa la aparición del signo. Si el número es positivo aparecerá un blanco y si es negativo aparecerá un -.

CR

Representa la aparición del signo bancario CR de crédito. Cuando el valor es positivo aparecerán blancos, si el valor es negativo aparece los caracteres CR.

DB

Representa la aparición del signo bancario DB de débito. Cuando el valor es positivo aparecerán blancos, si el valor es negativo aparece los caracteres DB.

0

Se usan para insertar ceros en las posiciones en que deben aparecer

B

Se usan para insertar blancos en las posiciones en que deben aparecer

43

LENGUAJE COBOL

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE EDICIÓN

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

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE Resultado EDICIÓN 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

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE EDICIÓN

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

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE EDICIÓN

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

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE EDICIÓN

9(4)

0123

$9999

$0123

9(4)

0123

$Z999

$b123

9(4)

0123

$*999

$*123

9(5)V99

0012345

$*****.99

9(5)V99

0123456

$**,***.99

LENGUAJE COBOL

Resultado Editado

$**123.45 $*1,234.56

48

24

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE EDICIÓN

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

CLÁUSULA PICTURE PICTURE

CONTENIDO

PICTURE EDICIÓN

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

CLÁUSULA PICTURE

PICTURE

CONTENIDO

PICTURE EDICIÓN

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

CLÁUSULA VALU E La inicialización de los campos independientes se debe realizar a través de la cláusula VALUE, cuando se están definiendo.







Formato 

VALUE IS literal/constante figurativa

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

J U ST I FI ED RI GH T 

Se utiliza únicamente con variables de tipo alfabético o alfanumérico y su efecto es eliminar la convención de justificación a la izquierda de los datos no numéricos. 77 CAMPO

PIC

X(4)

VALUE ‘AB’

A

JUST RIGHT.

B

53

LENGUAJE COBOL

CAMPOS COMPUESTOS   

Son campos que pueden subdividirse. Se le conoce también con el nombre de registros. Pueden definirse en el área de trabajo (WORKING STORAGE SECTION) y es obligada su utilización al describir la estructura de los ficheros. DATOS-VENDEDOR

NUM-VEN

NOMBRE

APELLIDO1

DATOS-DIRECCIÓN

APELLIDO2

PROVINCIA

LENGUAJE COBOL

CALLE

FECHA-ALTA

NCALLE

DIA

MES

AÑO

54

27

CAMPOS COMPUESTOS NUMERO DE NIVEL 01

VENDEDOR. 02 02

02

02

ESPECIFICACIÓN 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 DÍA 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 información no se va a referenciar, el nombre de datos puede sustituirse por la palabra reservada FILLER. Los números de Nivel sirven para indicar la relación existente entre un campo y el resto de los campos. Los números de nivel que pueden utilizarse son: del 01 al 49. [01] Sólo precede al nombre del registro. [02 a 49] Preceden a cualquier campo grupo o elemental. LENGUAJE COBOL

56

28

CAMPOS COMPUESTOS Un campo grupo tiene un nivel superior que cualquiera de sus campos elementales. Los números de nivel utilizados no tiene p orque ser correlativos. Cualquier nombre de datos debe ir precedido por su número de nivel. El número de nivel 01 deberá escribirse en el margen A, mientras que su nombre asociado lo será en el margen B. Cualquiera de los restantes números de nivel dentro del campo compuesto pueden situarse en cualquier columna. Se aconseja un escalonado progresivo de los niveles para una mejor interpretación El tipo del campo determina la información que puede almacenarse en el campo, así como las operaciones que con él pueden realizarse. Se hace a través de la cláusula PICTURE. La longitud del campo viene dada por el número de caracteres empleados en la especificación del formato para declarar el campo.



 











57

LENGUAJE COBOL

CAMPOS COMPUESTOS 

• 01

Calificación de los nombres de datos. En la declaración de campos compuestos, dos campos elementales pueden tener el mismo nombre de datos. DATOS. 02

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

HORAS OF/IN TOTALES-SEMANALES HORAS OF/IN TOTALES-MENSUALES

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

MES OF ULTIMO-PERIODO OF REG-VIEJO TOTAL OF REG-NUEVO

59

LENGUAJE COBOL

NOM BRES DE CONDICI ÓN 

Permite al programador definir constantes figurativas adicionales para usarlas en el programa COBOL 88

77

nom br e- de- da to VA LU E IS/ VALU ES A RE cons tan te-1 [THRU constante-2]

FINAL-FICHERO 88 FIN-FICHERO Si se desea preguntar

PIC VALUE

XX. `SI`.

SI ES FINAL DE FICHERO  bastará

con

decir: IF FIN-FICHERO en lugar de preguntar IF FINAL-FICHERO = `SI`.

LENGUAJE COBOL

60

30

NOM BRES DE CONDICI Ó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 61

LENGUAJE COBOL

RENAMES 

La cláusula 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 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 X(10). PIC XX. PIC X(15). PIC 9(8)V99. PIC 9(8)V99. PIC 9(6)V99. PIC 9(4)V99.

ULT IM O-P AG O RE NAMES APEL LIDO T HRU PAG O- NETO. NOMBRE-COMPLETO

NO-SEG-SOCIAL

PIC X(9).

NOMBRE

INICIAL

TOTAL-A-LA-FECHA

APELLIDO

PAGO-BRUTO

LENGUAJE COBOL

PAGO-NETO

IMPUESTOTRIBUT ADO

IMPUESTOESTADO

62

31

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 específicas de la tabla se hace mediante un sólo nombre junto con un subíndice que indica la posición de entrada particular.

WORKING-STORAGE SECTION. 01 Nombre-de-tabla. 02 Nombre-de-elemento OCCURS número-de-elementos TIMES PICTURE tipo-de-elemento.

LENGUAJE COBOL

63

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

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 - N I GRESO 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   







La cláusula OCCURS no puede aplicarse a nivel 01. La cláusula OCCURS no puede aplicarse a nivel 77. La dimensión de una tabla debe ser menor o igual que 7, aunque depende del compilador. La cláusula PICTURE se aplica sólo a campos elementales. Los subíndices pueden ser constantes o variables de tipo entero. Sus valores deben ser positivos. El subíndice o subíndices se encierran en un conjunto de paréntesis y se separan del nombre de la tabla por un espacio. Los subíndices múltiples se separan uno de otros por comas y espacios.

67

LENGUAJE COBOL

TABLAS 

Inicialización de una tabla en tiempo de compilación. nombre-de-dato-1 REDEFINES nombre-de-dato-2 01 FECHA. 02 02 02 01

DÍA MES AÑO

FECHA-ACTUAL

PIC 99. PIC 99. PIC 99. R EDEFINES

LENGUAJE COBOL

FECHA PIC X(6).

68

34

TABLAS 01TABLA-S. 02 FILLER PIC X(10) VALUE "LUNES". 02 FILLER PIC X(10) VALUE "MARTES". 02 FILLER PIC X(10) VALUE "MIÉRCOLES". 02 FILLER PIC X(10) VALUE "JUEVES". 02 FILLER PIC X(10) VALUE "VIERNES". 02 FILLER PIC X(10) VALUE "SÁBADO". 02 FILLER PIC X(10) VALUE "DOMINGO". 01TABLA-DIA-S REDEFINES TABLA-S. 02 DIA-SEMANAOCCURS 7 TIMES PIC X(10).

LENGUAJE COBOL

69

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

VERBOS ARITMÉTICOS

35

INTRODUCCIÓN 



Los verbos aritméticos permiten realizar las típicas operaciones de suma, resta, producto y división, además podremos almacenar el resto de una división y realizar conjuntamente todas estas operaciones en una sola sentencia. Verbos Aritméticos.

• Suma • Resta • Producto • División • O. Aritméticas

ADD SUBSTRACT MULTIPLY DIVIDE COMPUTE LENGUAJE COBOL

71

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]

LENGUAJE COBOL

72

36

SUM A. OPCIONES 

Opción ROUNDED

• Si en una suma (o cualquier otra operación) el número

de decimales del resultado es mayor que el número de ellos especificados en el campo receptor, trunca el número sobrante de dígitos por la derecha.

PICTURE S99V9 9V9 99V9 S99V SV999

RESULTADO CALCULADO -12.36 8.432 35.6 65.6 .0058

VALOR DESPUÉS DE TRUNCAR -12.3 8.4 35.6 65 .005

VALOR DESPUÉS DE REDONDEAR 12.4 8.4 35.6 66 .006

LENGUAJE COBOL

73

SUM A. OPCIONES 

Opción ON SIZE ERROR

• Si la parte entera de un •

cálculo no cupiera en el campo receptor, se produciría un desbordamiento. La utilización de esta cláusula permite al programador especificar una serie de instrucciones que solo se ejecutarían cuando se produzca dicho desbordamiento.

ADD HORAS-SEMANA TO TOTAL -HORAS-AÑO ON SIZE ERROR DISPLAY 'DESBORDAMIENTO DEL CAMPO ' ADD A B TO C ON SIZE ERROR DISPLAY 'ERROR.......'. LENGUAJE COBOL

74

37

SUMA . EJ EMPLOS ADD IDA IDB TO IDC

ANTES

DESPUÉS

77 IDA PIC 9(3) 77 IDB PIC 999 77 IDC PIC S99

010 020 -10

010 020 +20

ADD IDA IDB -30 TO IDD IDC 77 IDA PIC 9(3) 77 IDB PIC 999 77 IDC PIC S9(2) 77 IDD PIC S999

ANTES 030 010 +05 -15

DESPUÉS 030 010 +15 -005

75

LENGUAJE COBOL

SUMA . EJ EMPLOS ADD IDA IDB GIVING IDC 77 IDA PIC S9(2) 77 IDB PIC S9(3) 77 IDC PIC S9(4)

ANTES -10 +020 +0030

ADD -15 IDA IDB GIVING IDC

ANTES

DESPUÉS

77 IDA PIC S9(2) 77 IDB PIC S9(3) 77 IDC PIC S9(4)

-10 +020 +0030

-10 +020 +0005

LENGUAJE COBOL

DESPUÉS -10 +020 +0010

76

38

SUMA . EJ EMPLOS ADD IDA IDB GIVING IDC 77 IDA PIC 9(5) 77 IDB PIC 9(4) 77 IDC PIC 99

ANTES 21987 4593 52

ADD 0.0003 IDA GIVING IDC 77 IDA PIC 9V9(5) 77 IDC PIC 9V99

ANTES 000005 038

DESPUÉS 21987 4593 ---80 Se han perdido dígitos (26580) DESPUÉS 000005 000-- se han perdido dígitos (0.0008)

LENGUAJE COBOL

77

RESTA 

La sentencia SUBTRACT se utiliza para restar uno o más items de datos numéricos de otro u otros items de datos numéricos, sustituyendo el valor de la diferencia en el último items de la declaración.

SUBTRACT ident-1/literal-1 .... FROM ident-2

SUBTRACT ident-1/literal-1....FROM ident-2/literal-2 GIVING ident-3

LENGUAJE COBOL

78

39

RESTA . EJ EMPLOS SUBTRACT IDA FROM IDB

ANTES

DESPUÉS

77 IDA PIC 99 77 IDB PIC 999

10 042

10 032

SUBTRACT IDA 4 IDB FROM IDC IDD

ANTES

DESPUÉS

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 . EJ EMPLOS SUBTRACT CANTIDAD-1, CANTIDAD-2, CANTIDAD-FROM CANTIDAD-4 GIVING CANTIDAD-5, CANTIDAD-6 ROUNDED ON SIZE ERROR PERFORM DESBORDAMIENTO. 



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. LENGUAJE COBOL

80

40

RESTA . EJ EMPLOS SUBTRACT IDA FROM IDB GIVING IDC 77 IDA PIC 99 77 IDB PIC 999 77 IDC PIC 99

ANTES

DESPUÉS

10 032 41

10 032 22

SUBTRACT IDD IDC FROM IDB ANTES GIVING IDA 77 IDA PIC 9(6) 000123 77 IDB PIC 9(6) 122000 77 IDC PIC 9(6) 020000 77 IDD PIC 9(6) 030000

DESPUÉS 072000 122000 020000 030000 81

LENGUAJE COBOL

MULTIPLICACIÓN MULTIPLY ident-1/literal-1 BY ident-2 siendo: ident-1: multiplicando. ident-2: multiplicador y campo receptor del resultado de la operación.

MULTIPLY IDB BY IDA 77 IDA PIC 9(5) 77 IDB PIC 99 MULTIPLY 0.5 BY IDA 77 IDA PIC 9(5)

ANTES 01000 25 ANTES 25000

LENGUAJE COBOL

DESPUÉS 25000 25 DESPUÉS 12500

82

41

MULTIPLICACIÓN 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.

MULTIPLY IDA BY 0.5 GIVING IDB

ANTES DESPUÉS

77 IDA PIC 9(5) 77 IDB PIC 9(5)

12500 50000

12500 06250

LENGUAJE COBOL

83

DIVISIÓN 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 algún campo receptor, no cupiera el resultado de las operaciones realizadas se rompería la secuencia del programa ejecutándose el párrafo RUTINA DE DESBORDAMIENTO.

LENGUAJE COBOL

84

42

DIVISIÓ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 85

LENGUAJE COBOL

DIVISIÓN. EJ EMPLOS DIVIDE IDB INTO IDA 77 IDA PIC 9(5) 77 IDB PIC 99 DIVIDE IDA BY 365 GIVING IDB 77 IDA PIC 9(5) 77 IDB PIC 9999

ANTES 50000 50 ANTES 36500

DIVIDE 365 INTO IDA GIVING IDB ANTES 77 IDA PIC 9(5) 36500 77 IDB PIC 9999

LENGUAJE COBOL

DESPUÉS 01000 50 DESPUÉS 36500 1000 DESPUÉS 36500 1000

86

43

DIVISIÓN. EJ EMPLOS DIVIDE DIVIDENDO BY DIVISOR GIVING COCIENTE REMAINDER RESTO

ANTES

DESPUÉS

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 

Esta sentencia se utiliza para realizar operaciones aritméticas sin necesidad de utilizar las declaraciones aritméticas vistas hasta ahora.

COMPUTE ident-1 [ROUNDED] = expresión-aritmética [ON SIZE ERROR sentencia-1] LENGUAJE COBOL

88

44

COMPUTE SÍMBOLO

OPERACIÓN REPRESENTADA

PRIORIDAD

+

Suma

MENOR

*  /  **

Resta Producto Cociente Exponenciación

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

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

VERBOS ENTRADA SALIDA

INTRODUCCIÓN 



La función es poner en comunicación el programa con los dispositivos externos donde se encuentran o se encontrarán los datos. Sentencias:

• Display • Accept

LENGUAJE COBOL

92

46

DISPLAY 

Mediante esta declaración se proporciona información o mensajes a la consola, impresora u otro dispositivo de salida.

DISPLAY ident/literal ... [UPON nombre nemónico/de función] [WITH NO ADVANCING] DISPLAY ident-1/literal-1 [LINE ident-2/entero-2] [POSITION ident-3/entero-3] [opciones] .... LENGUAJE COBOL

93

DISPLAY . OPCIONES 

 



BEEP: Emite un sonido cada vez que display es ejecutado. BLINK: Hace parpadear el elemento visualizado. CONVERT: Esta opción se aplica a campos numéricos o numéricos editados. El valor a visualizar es convertido de su formato interno a los dígitos 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 posición del cursor hasta el final de la línea. ERASE EOS borra desde la posición del cursor hasta el final de la pantalla. LENGUAJE COBOL

94

47

DISPLAY . OPCIONES    



HIGH: Visualiza el dato en intensidad alta. Por defecto. LOW: Visualiza el dato en intensidad baja. REVERSE: Visualiza el dato en vídeo inverso. SIZE: Especifica el tamaño del campo físico presentado sobre la misma pantalla. Si el tamaño especificado es menor que el definido en la cláusula PIC, solamente aparecerá sobre la pantalla la porción de la parte izquierda, y si el tamaño especificado es más grande, se rellena con blancos. UNDERLINE: Visualiza el dato subrayado.

LENGUAJE COBOL

95

ACCEPT 

Esta declaración permite introducir pequeños volúmenes 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-nemónico/ CONSOLE / SYSIN]

ACCEPT identificador-1 [LINE identificador-2/entero-2] [POSITION identificador-3/entero-3] [opciones] .... LENGUAJE COBOL

96

48

A CCE CCEPT. PT. OPCION OPCION ES    

   

BEEP. BEEP. BLINK. BLINK. CONVERT. ECHO: ECHO: Hace que el dato aceptado sea visualizado sobre el campo de pantalla una vez finalizada la entrada. ERASE[[EOL / EOS]. ERASE EOS]. HIGH. LOW. PROMPT PROMPT [literal]: [literal]: Marca la pantalla con el carácter carácter especificado las posiciones vacías mientras se ejecuta una operación ACCEPT. Por defecto es el carácter subrayado.

LENGUAJE COBOL

97

A CCE CCEPT. PT. OPCION OPCION ES    

 

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 cláusula implica también conversión de los datos de entrada. UNDERLINE. UPPER: Convierte la entrada a mayúsculas. LENGUAJE COBOL

98

49

LENGUAJ E ORIE O RIENT NT ADO A SISTEMA S DE GES G ESTI TI ÓN 

VERBOS TRANSFERENCIA DE DATOS

GENERALIDADES   

campo emisor = contiene la información a transferir campo receptor = recibe dicha información.

Los datos se pueden transferir a un campo receptor de varias formas:

• • • •

El efecto de usar la opción opción GIVING con verbos aritméticos. El verbo COMPUTE por si mismo incluye una transferencia de datos al almacenar los resultados en un campo específico. Las opciones opciones READ READ .... INTO INTO y WRITE.... WRITE.... FROM FROM incluye incluye transferencia de información implícitas. La cláusula cláusula VALUE VALUE de la la DATA DATA DIVISION DIVISION incluye incluye una una transferencia de información implícita, aunque sólo se ejecutará una vez al principio del programa. LENGUAJE COBOL

100

50

VERBO MOVE Transfiere información 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 efectos de la sentencia MOVE dependen de los tamaños tamaños y especificaciones PICTURE de los campos emisor (identificador-1) y receptor (identificador-2). Además, la categoría de los campos emisor y receptor es un  factor al determinar si una instrucción MOVE es válida o no válida.

LENGUAJE COBOL

101

VERBO MOVE 





La constante figurativa SPACE, o un campo alfanumérico editado o alfabético no puede moverse a un campo numérico o numérico editado. Una constante numérica, la constante figurativa ZERO, un campo numérico o numérico editado no puede moverse a un campo alfabético. Una constante o campo numérico no entero no se puede mover a un campo alfanumérico editado o no,

LENGUAJE COBOL

102

51

TIPOS DE MOVIM IENTOS CAMPO RECEPTOR CAMPO EMISOR

ALFABÉTICO

ALFANUMÉRICO ALFANUMÉRICO EDITADO

NUM ENTERO NUM NO ENTER NUM EDITADO

Alfabético

SI

SI

NO

Alfanumérico

SI

SI

NO

Alfanumérico editado

SI

SI

NO

Numérico Entero

NO

SI

SI

Numérico No Entero

NO

NO

SI

Numérico Editado

NO

SI

SI

LENGUAJE COBOL

103

TIPOS DE MOVIM IENTOS 

De un campo numérico a otro numérico de  edición o no . • Los campos emisor y receptor se alinean por el punto decimal. • Si tamaño (campo receptor) < tamaño (campo emisor), se produce truncamiento de la parte entero y/o decimal. • Si tamaño (campo receptor) > tamaño (campo emisor), se rellena con ceros no significativos en cualquiera de las partes.

LENGUAJE COBOL

104

52

TIPOS DE MOVIM IENTOS De un campo alfabético o alfanumérico a otro  de tipo alfabético o alfanumérico de edición 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 cláusula JUSTIFIED RIGHT. • Si tamaño (campo receptor) < tamaño(campo emisor), se produce truncamiento. • Si tamaño (campo receptor) > tamaño(campo emisor), se rellena con blancos.



LENGUAJE COBOL

105

VERBO MOVE CORRESPONDING 

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 opción del verbo MOVE se transfiere el contenido de los campos elementales de identificador-1 a los campos elementales de igual nombre de identificador-2.

LENGUAJE COBOL

106

53

EJEMPLOS MOVE EMISOR TO RECEPTOR

ANTES

DESPUÉS

77 EMISOR PIC 99V99 77 RECEPTOR PIC 999V99

1234 98765

MOVE EMISOR TO RECEPTOR

ANTES

DESPUÉS

77 EMISOR PIC 9V9 77 RECEPTOR PIC 999V999

11 (1.1) 123123 (123.123)

11 (1.1) 001100 (001.100)

MOVE EMISOR TO RECEPTOR

ANTES

DESPUÉS

77 EMISOR PIC 999V99 77 RECEPTOR PIC 999.99.

12312 (123.12) 321.98

12312 (123.12) 123.12

(12.34) (987.65)

1234 01234

(12.34) (012.34)

MOVE EMISOR TO RECEPTOR

ANTES

DESPUES

77 EMISOR PIC 9(4)V9 77 RECEPTOR PIC 99V999

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 AÑO 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 Después de ejecutar MOVE GRUPO-1 TO GRUPO-2 GRUPO-1

12JUEVESb95 LENGUAJE COBOL

108

54

EJEMPLOS

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 también tendrá valores cero.

109

LENGUAJE COBOL

EJEMPLOS 01

REGISTRO-PERSONAL. 03 NUMERO 03 NOMBRE 03 DIRECCION 03 DIS-POSTAL

PIC PIC PIC PIC

9(5). X(30). X(20). 99.

01

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.

MOVE CORRESPONDING REGISTRO-PERSONAL TO LINEA-IMPRESION

LENGUAJE COBOL

110

55

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

ESTRUCTURAS DE CONTROL

INTRODUCCIÓ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. LENGUAJE COBOL

112

56

PROCEDURE DIVISION 



Es precisamente en esta división donde se escriben las instrucciones de ejecución . Es la división que permite especificar con la sintaxis del lenguaje de programación COBOL, el conjunto de acciones a realizar. PROCEDURE DIVISION. Nombre-párrafo-1. ............................................. ............................................. Nombre-párrafo-2. ............................................. .............................................

LENGUAJE COBOL

113

ESTRUCTURA SECUENCIAL 

Se emplea para especificar la secuencia de ejecución de un programa modular representado por párrafos. PERFORM nombre-párrafo PROGRAMA

P-PROGRAMA

PROCEDURE DIVISION. PROGRAMA. PERFORM P-PROGRAMA. ............................................ ............................................ STOP RUN. P-PROGRAMA. sentencia 1. sentencia 2.

LENGUAJE COBOL

114

57

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

ESTRUCTURAS DE CONTROL

VERBO IF 

Este verbo produce la evaluación de una condición, dependiendo la siguiente acción del programa a realizar, de la evaluación de la misma. IF condición THEN acción-1/ NEXT SENTENCE [ELSE acción-2/ NEXT SENTENCE]

LENGUAJE COBOL

116

58

VERBO IF PROGRAMA

CONDICIÓN

P-PROGRAMA

F-PROGRAMA

CIERTO

SENTENCIA 1 SENTENCIA 2

PROCEDURE DIVISION. PROGRAMA. PERFORM P-PROGRAMA. IF condición THEN PERFORM CIERTO. PERFORM F-PROGRAMA.

. . CIERTO. sentencia-1 sentencia-2

117

LENGUAJE COBOL

VERBO IF PROGRAMA

CONDICIÓN

P-PROGRAMA

CIERTO

FALSO

SENTENCIA 1

SENTENCIA 3

SENTENCIA 2

SENTENCIA 4

PROCEDURE DIVISION. PROGRAMA. PERFORM P-PROGRAMA. IF condición 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 

Condiciones de relación.



Las condiciones de relación se refieren a las comparaciones entre dos items. El tipo de comparación se indica por el operador relacional que puede estar en forma de palabras o de símbolos. identificador-1 literal-1 exp-aritmética-1

IS operador

identificador-2 literal-2 exp-artimética-2

119

LENGUAJE COBOL

CONDICIONES. TIPOS Operador GREATER THAN LESS THAN EQUAL TO NOT GREATER THAN NOT LESS THAN NOT EQUAL TO

Símbolo > < = NOT >

Significado Mayor que Menor que Igual a No mayor que

NOT < NOT =

No menor que No igual a

LENGUAJE COBOL

120

60

CONDICIONES. TIPOS 

Condiciones de clase.

• El uso de una condición de clase hace posible

determinar si un identificador pertenece o no a una de las cuatro clases incluidas en el Formato siguiente:

Identificador

IS [NOT]

NUMERIC ALPHABETIC ALPHABETIC-LOWER ALPHABETIC-UPPER

121

LENGUAJE COBOL

CONDICIONES. TIPOS 

Condiciones de signo.

• Permiten determinar si el valor de una campo

numérico o de una expresión aritmética es positivo, negativo o cero. El Formato general es el siguiente:

Expresión Aritmética

IS [NOT]

LENGUAJE COBOL

POSITIVE NEGATIVE ZERO

122

61

CONDICIONES. TIPOS 

Condiciones de nombre de condición.

• Este tipo de condición facilita la asociación 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-condición VALUE IS lit-1 THRU lit-n

LENGUAJE COBOL

123

CONDICIONES. TIPOS 

Supongamos que disponemos de un fichero secuencial en el que la estructura de sus registros soporta un campo de tipo alfanumérico para determinar el sexo de los empleados.

02 SEXO-EM 88 MASCULINO 88 FEMENINO 88 ERROR-CODIGO

PIC X. VALUE ‘1’. VALUE ‘2’. VALUES ARE LOW-VALUES THRU ZERO, ‘3’ THRU HIGH-VALUES.

LENGUAJE COBOL

124

62

CONDICIONES. TIPOS 

Condiciones compuestas.

• • • • • • •

Son varias condiciones simples enlazadas mediante operaciones lógicas AND y OR. Orden de evaluación de las condiciones 1 - PARÉNTESIS 2 - NOT 3 - AND 4 - OR 5 - A igualdad de operadores de izquierda a derecha condición-1 [NOT] AND/[NOT] OR condición-2

LENGUAJE COBOL

125

VERBO EVALUA TE 

Este verbo produce la evaluación de una condición, dependiendo la siguiente acción del programa a realizar, de la evaluación de la misma. Es una forma de implementar la estructura Casos . EVALUATE identificador WHEN literal-1 THRU literal-2 instrucción imperativa-1 ........... WHEN OTHER instrucción imperativa-n

LENGUAJE COBOL

126

63

VERBO EVALUA TE PROGRAMA

IDENTIFICADOR= V1 = V2

P-PROGRAMA

PÁRRAFO-1

PÁRRAFO-2

= V3

PÁRRAFO-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 EVALUA TE Si tenemos un código que puede tener como valores: 1, 2, y 3. El siguiente árbol programático representa la estructura condicional anidada que verifica el valor del código y ejecuta el párrafo adecuado. VALOR-CÓDIGO

CÓDIGO 0 1

P-VALOR-CÓDIGO

F-VALOR-CÓDIGO

AÑADIR CÓDIGO = 2

BORRAR

FALSO

CODIGO = 3

MODIFICAR

LENGUAJE COBOL

ERROR

128

64

VERBO EVALUA TE VALOR-CÓDIGO

CÓDOGO = 1 =2

P-VALOR-CÓDIGO

AÑADIR

BORRAR

OTRO

=3

MODIFICAR

ERROR

F-VALOR-CÓDIGO

Si tenemos un código que puede tener como valores: 1, 2, y 3. El siguiente árbol programático también representa la estructura condicional que verifica el valor del código y ejecuta el párrafo adecuado.

129

LENGUAJE COBOL

VERBO EVALUA TE EVALUATE TRUE WHEN NOMBRE-DE-CONDICION instrucción imperativa-1 ........... WHEN OTHER instrucción imperativa-n DATA DIVISION. WORKING-STORAGE SECTION. 01 CODIGO PIC 9. 88 AÑADIR-REGISTRO 88 SUPRIMIR-REGISTRO 88 MODIFICAR-REGISTRO 88 ERROR-CODIGO EVALUATE TRUE WHEN añadir-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

AÑADIR SUPRIMIR MODIFICAR CODIGO-ERRONEO

130

65

VERBO EVALUA TE CONDICIÓN CÓDIGO

CALIFICACIÓN

ACCIÓN A REALIZAR

1o2 3 4 cualquier otro

A, B o C AoB cualquiera cualquiera

PÁRRAFO-1 PÁRRAFO-2 PÁRRAFO-3 PÁRRAFO-4

EVALUATE CÓDIGO ALSO WHEN 1 THRU 2 WHEN 3 WHEN 4 WHEN OTHER END-EVALUATE.

CALIFICACIÓN ALSO “A” THRU “C” ALSO “A” THRU “B” ALSO ANY

PERFORMPARRAFO-1 PERFORM PARRAFO-2 PERFORMPARRAFO-3 PERFORM PARRAFO-4

LENGUAJE COBOL

131

LENGUAJ E ORIENT ADO A SISTEMA S DE GESTI ÓN 

ESTRUCTURAS DE CONTROL

66

VERBO PERFORM PERFORM párrafo entero/identificador TIMES PROCEDURE DIVISION. PROGRAMA. .............................. PERFORM BUCLE 5 TIMES ............................. BUCLE. sentencia 1. sentencia 2.

BUCLE 5 VECES

133

LENGUAJE COBOL

VERBO PERFORM PERFORM párrafo [WITH TEST BEFORE] UNTIL condición PROGRAMA

P-PROGRAMA

F-PROGRAMA

PÁRRAFO CONDICIÓN

LENGUAJE COBOL

134

67

VERBO PERFORM PERFORM párrafo WITH TEST AFTER UNTIL condición PROGRAMA

P-PROGRAMA

PÁRRAFO

F-PROGRAMA CONDICIÓN (DESPUÉS)

LENGUAJE COBOL

135

VERBO PERFORM

PERFORM párrafo [WITH TEST BEFORE/AFTER] VARYING iden-1 FROM lit-1/iden-2 BY lit-2/iden-3 UNTIL condición-1

LENGUAJE COBOL

136

68

VERBO PERFORM 

La ejecución, si no se ha especificado la opción 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 evalúa la condición-1.

1. Si es cierta, se da por finalizada la ejecución 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 párrafo d) Se suma a identificador-1 el valor especificado por

identificador-3 que sigue a BY y se vuelve al punto b.

137

LENGUAJE COBOL

VERBO PERFORM PERFORM párrafo WITH TEST BEFORE VARYING iden-1 FROM iden-2 BY iden-3 UNTIL condición

PROGRAMA

IDEN-1 = IDEN-2 , IDEN-3 P-PROGRAMA

F-PROGRAMA

PÁRRAFO CONDICIÓN

LENGUAJE COBOL

138

69

VERBO PERFORM PERFORM párrafo [WITH TEST BEFORE/AFTER] VARYING iden-1 FROM lit-1/iden-2 BY lit-3/iden-3 UNTIL condición-1 AFTER iden-4 FROM lit-5/iden-5 BY lit-4/iden-6 UNTIL condición-2

LENGUAJE COBOL

139

VERBO PERFORM a) b)

El identificador-1 y el identificador-4 se inicializan a los valores respectivos que siguen a cada FROM. Se evalúa la condición-1. 1. 2.

c)

Se evalúa la condición-2. 1. 2.

d) e)

Si es cierta, se da por finalizada la ejecución de la sentencia PERFORM y se pasa a ejecutar la siguiente sentencia del programa. Si es falsa, se pasa al punto c. Si es cierta, el identificador-4 se inicializa al valor especificado por literal-5 o identificador-5 que sigue a FROM, también se suma a identificador-1 el valor especificado por identificador-3 que sigue a BY y se continúa en el punto b. Si es falsa se pasa al punto d.

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

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF