
Introducir datos en la consola de COBOL
Capítulo 17: La entrada de datos por consola
En este capítulo vas a aprender a que tu programa interactúe con el usuario. Algo así como el prompt()
de JavaScript o el input()
de Python por poner algún ejemplo de similitud.
Este pequeño programa permitirá al usuario introducir su nombre, apellidos y edad y que se guarden en el programa para que se muestren después en la consola.
Entrada de datos del usuario en COBOL
Empecemos a crear un programa capaz de pedir al usuario ciertos datos y almacenarlos para después poder utilizarlos. Para empezar, podemos dejar las variables de los datos de usuario con espacios en blanco. Inicializadas pero sin ningún valor en especial.
IDENTIFICATION DIVISION.
PROGRAM-ID. Capitulo17.
ENVIRONMENT DIVISION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
*> Variables para datos de usuario.
01 Nombre PIC X(16) VALUE SPACES.
01 Apellidos PIC X(32) VALUE SPACES.
01 Edad PIC X(3) VALUE SPACES.
PROCEDURE DIVISION.
STOP RUN.
END PROGRAM Capitulo17.
En la PROCEDURE DIVISION
creamos un párrafo para solicitar datos al usuario.
El verbo ACCEPT de COBOL
Para que la consola nos pida algo y lo almacene en una variable debemos utilizar el verbo ACCEPT
.
IDENTIFICATION DIVISION.
PROGRAM-ID. Capitulo17.
ENVIRONMENT DIVISION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
*> Variables para datos de usuario.
01 Nombre PIC X(16) VALUE SPACES.
01 Apellidos PIC X(32) VALUE SPACES.
01 Edad PIC X(3) VALUE SPACES.
PROCEDURE DIVISION.
*> Solicitud de datos de usuario.
SolicitaDatos.
DISPLAY "Introduce tu nombre:".
ACCEPT Nombre.
STOP RUN.
END PROGRAM Capitulo17.
Ahora creamos un párrafo más para mostrar los datos. Esto es por organizar mejor el programa, ya que podrían ir en el mismo párrafo sin problemas.
IDENTIFICATION DIVISION.
PROGRAM-ID. Capitulo17.
ENVIRONMENT DIVISION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
*> Variables para datos de usuario.
01 Nombre PIC X(16) VALUE SPACES.
01 Apellidos PIC X(32) VALUE SPACES.
01 Edad PIC X(3) VALUE SPACES.
PROCEDURE DIVISION.
*> Solicitud de datos de usuario.
SolicitaDatos.
DISPLAY "Introduce tu nombre:".
ACCEPT Nombre.
*> Presentación de los datos de usuario.
MuestraDatos.
DISPLAY "Nombre: " Nombre.
STOP RUN.
END PROGRAM Capitulo17.
En la primera línea de la consola, se imprime el DISPLAY
de la línea 16
. Es aquí, donde se detiene la ejecución del programa, a la espera de que el usuario introduzca algo. Esto es gracias al ACCEPT
de la línea 17
que además, almacena ese dato en la variable que le hemos dicho, Nombre
.
Lo que introduce el usuario se ve en la segunda línea de la consola y se imprime en la siguiente gracias al DISPLAY
de la línea 21
.
Introduce tu nombre:
Enrique
Nombre: Enrique
Sigamos con el resto. Solo hay que añadir un ACCEPT
más por cada valor que queramos almacenar en el programa y los respectivos DISPLAY
para mostrarlos.
IDENTIFICATION DIVISION.
PROGRAM-ID. Capitulo17.
ENVIRONMENT DIVISION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
*> Variables para datos de usuario.
01 Nombre PIC X(16) VALUE SPACES.
01 Apellidos PIC X(32) VALUE SPACES.
01 Edad PIC X(3) VALUE SPACES.
PROCEDURE DIVISION.
*> Solicitud de datos de usuario.
SolicitaDatos.
*> Se solicita el nombre.
DISPLAY "Introduce tu nombre:".
ACCEPT Nombre.
*> Se solicitan los apellidos.
DISPLAY "Introduce tus apellidos:".
ACCEPT Apellidos.
*> Se solicita la edad.
DISPLAY "Introduce tu edad:".
ACCEPT Edad.
*> Presentación de los datos de usuario.
MuestraDatos.
DISPLAY "Nombre: " Nombre.
DISPLAY "Apellidos: " Apellidos.
DISPLAY "Edad: " Edad.
STOP RUN.
END PROGRAM Capitulo17.
Introduce tu nombre:
Enrique
Introduce tus apellidos:
Barros Fernández
Introduce tu edad:
30
Nombre: Enrique
Apellidos: Barros Fernández
Edad: 30
Haremos mucho más con la entrada de datos, de momento, seguimos con la reasignación de valores a las variables en el siguiente capítulo.
Comentarios
Si te quedan dudas sobre el temario, sobre Cobol, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.