Curso de Cobol y PowerCobol

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.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.