Un bloque en Cobol es similar a una función. Un bloque nos ayuda a dividir nuestro código y hacerlo más legible. Recordemos un poco la estructura básica de un programa en Cobol.
Recordar también que la extensión de un programa Cobol es *.cbl y/o *.cob.
¿Cómo podemos crear un bloque en Cobol?
La sintaxis es la siguiente:
¿Cómo podemos definir una variable y qué tipo está permitido?
Ejemplo. Se requiere un programa donde introduciremos datos de un empleado.
Definimos sus datos: nombre, apellido paterno, apellido materno y salario.
Definimos un bloque donde solicitaremos esos datos:
En muchos casos necesitaremos mostrar esos datos respetando el formato. Para imprimir en mayúsculas empleamos la siguiente función:
Además podemos asignar ese nuevo valor a una variable ya definida. Así tendremos:
Nota:
Es la variable que guarda todo los datos introducidos por teclado.
¿Cómo invocamos un bloque?
Sería entonces:
Programa completo:
progtrab.cbl
Compilamos y ejecutamos (desde terminal):
Links:
https://alquimistadecodigo.blogspot.com/2019/04/cobol-en-un-vistazo.html
https://alquimistadecodigo.blogspot.com/2019/04/cobol-estructura.html
https://alquimistadecodigo.blogspot.com/2019/04/instalando-open-cobol.html
IDENTIFICATION DIVISION. PROGRAM-ID. NOMBRE. AUTHOR AUTOR. INSTALLATION. ALQUIMISTA. DATE-WRITTEN. dd/mm/yy. DATE-COMPILED. SECURITY. NO ES CONFIDENCIAL. *>BLOQUE DE DATOS DATA DIVISION. WORKING-STORAGE SECTION. *> BLOQUE PRINCIPAL PROCEDURE DIVISION. STOP RUN.
Recordar también que la extensión de un programa Cobol es *.cbl y/o *.cob.
¿Cómo podemos crear un bloque en Cobol?
La sintaxis es la siguiente:
BLOQUE. *> CÓDIGO.
¿Cómo podemos definir una variable y qué tipo está permitido?
*> PARA COLOCAR VARIABLES DATA DIVISION. WORKING-STORAGE SECTION. *> SE PUEDE USAR PIC O PICTURE *> EJEMPLOS: *> NÚMERO CON SIGNO, VALUE PARA ASIGNAR UN VALOR AL INICIO 01 WS-NUMERO PICTURE S9(05)V99 VALUE -33.11. *> CARACTERES ALFANUMÉRICOS 01 WS-NOMBRE PIC X(10). *>...
Ejemplo. Se requiere un programa donde introduciremos datos de un empleado.
Definimos sus datos: nombre, apellido paterno, apellido materno y salario.
DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-DATOS-TRAB. 02 WS-NOMBRE-TRAB PIC X(50). 02 WS-APELLIDO-PAT PIC X(50). 02 WS-APELLIDO-MAT PIC X(50). 02 WS-SALARIO PIC S9(05)V99.
Definimos un bloque donde solicitaremos esos datos:
DATOS. DISPLAY "[NOMINA TRABAJADORES]". DISPLAY "INTRODUCE NOMBRE:". ACCEPT WS-NOMBRE-TRAB. DISPLAY "INTRODUCE APELLIDO PATERNO:". ACCEPT WS-APELLIDO-PAT. DISPLAY "INTRODUCE APELLIDO MATERNO:". ACCEPT WS-APELLIDO-MAT. DISPLAY "INTRODUCE SALARIO:". ACCEPT WS-SALARIO.
En muchos casos necesitaremos mostrar esos datos respetando el formato. Para imprimir en mayúsculas empleamos la siguiente función:
FUNCTION UPPER-CASE()
Además podemos asignar ese nuevo valor a una variable ya definida. Así tendremos:
*> MOVEMOS EL RESULTADO A LA VARIABLE YA DEFINIDA, AHORRANDO CREAR OTRA NUEVA. MOVE FUNCTION UPPER-CASE(WS-NOMBRE-TRAB) to WS-NOMBRE-TRAB. MOVE FUNCTION UPPER-CASE(WS-APELLIDO-PAT) to WS-APELLIDO-PAT. MOVE FUNCTION UPPER-CASE(WS-APELLIDO-MAT) to WS-APELLIDO-MAT.
Nota:
WS-DATOS-TRAB.
¿Cómo invocamos un bloque?
PERFORM BLOQUE.
Sería entonces:
PROCEDURE DIVISION. MAIN SECTION. PERFORM DATOS. STOP RUN.
Programa completo:
progtrab.cbl
IDENTIFICATION DIVISION. PROGRAM-ID. PROG-TRAB. AUTHOR ALQUIMISTA. INSTALLATION. ALQUIMISTA. DATE-WRITTEN. 26/04/19. DATE-COMPILED. SECURITY. NO ES CONFIDENCIAL. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-DATOS-TRAB. 02 WS-NOMBRE-TRAB PIC X(50). 02 WS-APELLIDO-PAT PIC X(50). 02 WS-APELLIDO-MAT PIC X(50). 02 WS-SALARIO PIC S9(05)V99. PROCEDURE DIVISION. MAIN SECTION. PERFORM DATOS. STOP RUN. DATOS. DISPLAY "[NOMINA TRABAJADORES]". DISPLAY "INTRODUCE NOMBRE:". ACCEPT WS-NOMBRE-TRAB. DISPLAY "INTRODUCE APELLIDO PATERNO:". ACCEPT WS-APELLIDO-PAT. DISPLAY "INTRODUCE APELLIDO MATERNO:". ACCEPT WS-APELLIDO-MAT. DISPLAY "INTRODUCE SALARIO:". ACCEPT WS-SALARIO. MOVE FUNCTION UPPER-CASE(WS-NOMBRE-TRAB) to WS-NOMBRE-TRAB. MOVE FUNCTION UPPER-CASE(WS-APELLIDO-PAT) to WS-APELLIDO-PAT. MOVE FUNCTION UPPER-CASE(WS-APELLIDO-MAT) to WS-APELLIDO-MAT. DISPLAY WS-DATOS-TRAB.
Compilamos y ejecutamos (desde terminal):
$ cobc -x -free progtrab.cbl -o progtrab.exe $ ./progtrab.exe
Links:
https://alquimistadecodigo.blogspot.com/2019/04/cobol-en-un-vistazo.html
https://alquimistadecodigo.blogspot.com/2019/04/cobol-estructura.html
https://alquimistadecodigo.blogspot.com/2019/04/instalando-open-cobol.html
Comentarios
Publicar un comentario