Ir al contenido principal

COBOL para principiantes #8

En esta serie de posts sobre el lenguaje COBOL hemos visto algunas sentencias importantes como ``PERFORM`` y ``GO TO``. En está ocasión continuaremos con lo visto anteriormente.

EXIT [PROGRAM]

La sentencia ``EXIT`` proporciona un punto final común para una serie de procedimientos. También proporciona una forma de salir de una sección, un párrafo o una sentencia ``PERFORM`` en línea.

       IDENTIFICATION DIVISION.

       PROGRAM-ID.                EJERCICIODOS.
       AUTHOR.                    ALQUIMISTA.
       INSTALLATION.              BLOGGER.
       DATE-WRITTEN.              15/06/24.
       DATE-COMPILED.
       SECURITY.                  NO ES CONFIDENCIAL.
      *> ------------------------------------------------------
      *> PROGRAMA QUE USA PERFORM
      *> ------------------------------------------------------

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.           LINUX-UBUNTU.
       OBJECT-COMPUTER.           LINUX-UBUNTU.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

       DATA DIVISION.
       FILE SECTION.

       WORKING-STORAGE SECTION.
       01 WS-VAR.
          05 WS-I      PIC 9(01). 
          05 WS-J      PIC 9(01).

       PROCEDURE DIVISION.
           DISPLAY "Antes de PERFORM...VARYING...AFTER". 
           PERFORM 1000-CALCULATION 
		      THRU 1000-EXIT 
                   VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 2 
                     AFTER WS-J FROM 1 BY 1 UNTIL WS-J > 6.
           DISPLAY "Despues de PERFORM...VARYING...AFTER"

           STOP RUN.
       1000-CALCULATION.
           DISPLAY "WS-I: " WS-I " , WS-J: " WS-J.
       1000-EXIT.
            EXIT.

GOBACK

Esta sentencia funciona como la sentencia ``EXIT PROGRAM``.

       IDENTIFICATION DIVISION.

       PROGRAM-ID.                PROGRAMA.
       AUTHOR.                    ALQUIMISTA.
       INSTALLATION.              BLOGGER.
       DATE-WRITTEN.              15/06/24.
       DATE-COMPILED.
       SECURITY.                  NO ES CONFIDENCIAL.
      *> ------------------------------------------------------
      *> UN SIMPLE ṔROGRAMA
      *> ------------------------------------------------------

       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.           LINUX UBUNTU.
       OBJECT-COMPUTER.           LINUX UBUNTU.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

       DATA DIVISION.
       FILE SECTION.

       WORKING-STORAGE SECTION.
       01  WS-CAMPO-COMPUESTO.
           05 WS-CAMPO-01         PIC X(07) VALUE "HERNAND".
           05 WS-CAMPO-02         PIC 9(05) VALUE 89098.

       PROCEDURE DIVISION.
       010-RAIZ.
           DISPLAY "[  HOLA COBOLEROS  ]"
           DISPLAY WS-CAMPO-01
           DISPLAY "CONTENIDO DE CAMPO 01: " WS-CAMPO-01
           DISPLAY "CONTENIDO DE CAMPO 02: " WS-CAMPO-02.
           GOBACK.

STOP [RUN]

La sentencia ``STOP`` detiene la ejecución del programa objeto de forma permanente o temporal.

       IDENTIFICATION DIVISION.
       PROGRAM-ID. EJERCICIOUNO.
       AUTHOR. ALQUIMISTA.

       INSTALLATION. ALQUIMISTA.
       DATE-WRITTEN. 15-06-2024.
       DATE-COMPILED. 15-06-2024,
       SECURITY. NO ES CONFIDENCIAL.

       ENVIRONMENT DIVISION. 
       CONFIGURATION SECTION. 
       SOURCE-COMPUTER. LINUX UBUNTU.
       OBJECT-COMPUTER. LINUX UBUNTU.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL. 

       DATA DIVISION.
       FILE SECTION. 

       WORKING-STORAGE SECTION.
       01 WS-COUNT PICTURE 9(01).
       
       *> EJEMPLO DEL USO DE PERFORM VARYING
       PROCEDURE DIVISION.
           DISPLAY "Antes del conteo...".
           PERFORM VARYING WS-COUNT FROM 1 BY 1 UNTIL WS-COUNT > 3
              DISPLAY "Hola, no.: " WS-COUNT
           END-PERFORM.
           DISPLAY "Despues del conteo.".
           STOP RUN.

CAMPOS EMPACADOS

Nos sirven para ahorrar espacio.

Algunos ejemplos:

 WORKING-STORAGE SECTION.
       01 WS-DATE.
          05 WS-YEAR     PIC 9(02). 
          05 WS-MONTH    PIC 9(02).
          05 WS-DAY      PIC 9(02).

El nombre del campo empacado en este caso es: WS-DATE. Este agrupará los subcampos:

  1. WS-YEAR.
  2. WS-MONTH.
  3. WS-DAY.

Podemos asignar un valor DATE en el campo empacado (DATE es una función propia del lenguaje, la cual provee la fecha actual del sistema):

ACCEPT WS-DATE FROM DATE.

Podemos imprimir cada uno de los valores de los subcampos:

DISPLAY "AÑO: ",WS-YEAR.
DISPLAY "MES: ",WS-MONTH.
DISPLAY "DÍA: ",WS-DAY.

Continuaremos con esta serie de entregas sobre le lenguaje COBOL.

Enlaces:

https://alquimistadecodigo.blogspot.com/2024/06/cobol-para-principiantes-7.html

Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...