En este tema, aprenderemos sobre la estructura básica de un programa COBOL. COBOL (Common Business-Oriented Language) es un lenguaje de programación diseñado para aplicaciones de negocios. Un programa COBOL se organiza en divisiones, secciones, párrafos y sentencias. A continuación, desglosaremos cada uno de estos componentes.

Divisiones de un Programa COBOL

Un programa COBOL se divide en cuatro divisiones principales:

  1. Identification Division
  2. Environment Division
  3. Data Division
  4. Procedure Division

  1. Identification Division

La Identification Division es la primera división de un programa COBOL. Aquí se especifica el nombre del programa y otra información de identificación.

IDENTIFICATION DIVISION.
PROGRAM-ID. HelloWorld.
AUTHOR. John Doe.

  1. Environment Division

La Environment Division describe el entorno en el que se ejecutará el programa. Esta división se divide en dos secciones: Configuration Section y Input-Output Section.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT input-file ASSIGN TO 'input.txt'.
    SELECT output-file ASSIGN TO 'output.txt'.

  1. Data Division

La Data Division se utiliza para definir las estructuras de datos que el programa utilizará. Esta división se divide en varias secciones, como File Section, Working-Storage Section, y Linkage Section.

DATA DIVISION.
FILE SECTION.
FD  input-file.
01  input-record PIC X(100).

FD  output-file.
01  output-record PIC X(100).

WORKING-STORAGE SECTION.
01  ws-variable PIC 9(4) VALUE 0.

  1. Procedure Division

La Procedure Division contiene el código ejecutable del programa. Aquí es donde se escriben las instrucciones que el programa debe seguir.

PROCEDURE DIVISION.
BEGIN.
    OPEN INPUT input-file.
    OPEN OUTPUT output-file.
    PERFORM UNTIL ws-variable = 10
        READ input-file INTO input-record
        AT END
            MOVE 'EOF' TO input-record
            EXIT PERFORM
        END-READ
        WRITE output-record FROM input-record
        ADD 1 TO ws-variable
    END-PERFORM.
    CLOSE input-file.
    CLOSE output-file.
    STOP RUN.

Ejemplo Completo de un Programa COBOL

A continuación, se muestra un ejemplo completo de un programa COBOL que lee un archivo de entrada y escribe su contenido en un archivo de salida.

IDENTIFICATION DIVISION.
PROGRAM-ID. FileCopy.
AUTHOR. John Doe.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT input-file ASSIGN TO 'input.txt'.
    SELECT output-file ASSIGN TO 'output.txt'.

DATA DIVISION.
FILE SECTION.
FD  input-file.
01  input-record PIC X(100).

FD  output-file.
01  output-record PIC X(100).

WORKING-STORAGE SECTION.
01  ws-variable PIC 9(4) VALUE 0.

PROCEDURE DIVISION.
BEGIN.
    OPEN INPUT input-file.
    OPEN OUTPUT output-file.
    PERFORM UNTIL ws-variable = 10
        READ input-file INTO input-record
        AT END
            MOVE 'EOF' TO input-record
            EXIT PERFORM
        END-READ
        WRITE output-record FROM input-record
        ADD 1 TO ws-variable
    END-PERFORM.
    CLOSE input-file.
    CLOSE output-file.
    STOP RUN.

Ejercicio Práctico

Ejercicio: Escribe un programa COBOL que lea un archivo de entrada llamado students.txt y escriba su contenido en un archivo de salida llamado students_copy.txt. El archivo de entrada contiene nombres de estudiantes, uno por línea.

Solución:

IDENTIFICATION DIVISION.
PROGRAM-ID. StudentCopy.
AUTHOR. Jane Doe.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT student-file ASSIGN TO 'students.txt'.
    SELECT student-copy-file ASSIGN TO 'students_copy.txt'.

DATA DIVISION.
FILE SECTION.
FD  student-file.
01  student-record PIC X(50).

FD  student-copy-file.
01  student-copy-record PIC X(50).

WORKING-STORAGE SECTION.

PROCEDURE DIVISION.
BEGIN.
    OPEN INPUT student-file.
    OPEN OUTPUT student-copy-file.
    PERFORM UNTIL student-record = 'EOF'
        READ student-file INTO student-record
        AT END
            MOVE 'EOF' TO student-record
            EXIT PERFORM
        END-READ
        WRITE student-copy-record FROM student-record
    END-PERFORM.
    CLOSE student-file.
    CLOSE student-copy-file.
    STOP RUN.

Conclusión

En esta lección, hemos aprendido sobre la estructura básica de un programa COBOL, incluyendo las cuatro divisiones principales: Identification Division, Environment Division, Data Division y Procedure Division. También hemos visto un ejemplo completo y realizado un ejercicio práctico para reforzar los conceptos aprendidos. En el próximo módulo, profundizaremos en la sintaxis básica de COBOL y los tipos de datos.

© Copyright 2024. Todos los derechos reservados