Programación en COBOL
Download
Report
Transcript Programación en COBOL
Conceptos Básicos
del lenguaje de
programación
COBOL
Prof. Carlos Rodríguez Sánchez
COBOL
COmmon Business Oriented Language
Es un lenguaje muy utilizado dentro del
llamado “File Processing System”
Permite la utilización de varios archivos de
datos que interactúan con el programa.
Master File
Transaction File
History File
Table File
Sort File
COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. C6.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CUST-FILE ASSIGN TO "E:CUST.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT PRINT-FILE ASSIGN TO "PRN".
Un programa
codificado en el
lenguaje COBOL
consiste de cuatro
divisiones
principales.
IDENTIFICATION
DIVISION
ENVIRONMENT
DIVISION
DATA DIVISION
PROCEDURE
DIVISION
DATA DIVISION.
FILE SECTION.
FD CUST-FILE
LABEL RECORDS ARE STANDARD.
01 CUST-REC.
03 INITIAL1
PIC X.
03 INITIAL2
PIC X.
03 LAST-NAME
PIC X(10).
03 MONTH-TRANS
PIC XX.
03 YEAR-TRANS PIC X(2).
03 TRANS-AMOUNT PIC 9(6).
FD PRINT-FILE
LABEL RECORDS ARE OMMITED.
01 PRINT-LINE
PIC X(80).
WORKING-STORAGE SECTION.
01 MORE-RECORDS
PIC X VALUE "Y".
01 HEADING-1.
03
PIC X(5) VALUE SPACES.
03
PIC X(4) VALUE "NAME".
03
PIC X(6) VALUE SPACES.
03
PIC X(19)
VALUE "DATE OF TRANSACTION".
03
PIC X(24)
VALUE " AMOUNT OF TRANSACTION".
03
PIC X(23) VALUE SPACES.
01 DETAIL-LINE.
03
INITIAL1-OUT PIC X.
03
PIC X VALUE ".".
03 INITIAL2-OUT
PIC X.
03
PIC X VALUE ".".
03 LAST-NAME-OUT
PIC X(10).
03
PIC X(6) VALUE SPACES.
03 MONTH-OUT
PIC X(2).
03
PIC X VALUE "/".
03 YEAR-OUT
PIC X(2).
03
PIC X(13) VALUE SPACES.
03 AMOUNT-OUT
PIC $ZZZ,ZZ9.
03
PIC X(34) VALUE SPACES
COBOL
COBOL
PROCEDURE DIVISION.
RUTINA-PRINCIPAL.
OPEN INPUT CUST-FILE OUTPUT PRINT-FILE
WRITE PRINT-LINE FROM HEADING-LINE AFTER ADVANCING PAGE
PERFORM MOVE-AND-WRITE UNTIL MORE-RECORDS = "N"
CLOSE CUST-FILE PRINT-FILE
STOP RUN.
MOVE-AND-WRITE.
READ CUST-FILE AT END MOVE "N" TO MORE-RECORDS
MOVE INITIAL1 TO INITIAL1-OUT
MOVE INITIAL2 TO INITIAL2-OUT
MOVE LAST-NAME TO LAST-NAME-OUT
MOVE MONTH-TRANS TO MONTH-OUT
MOVE YEAR-TRANS TO YEAR-OUT
MOVE TRANS-AMOUNT TO AMOUNT-OUT
WRITE PRINT-LINE FROM DETAIL-LINE AFTER ADVANCING 1 LINE.
Manejo de Arreglos y
Tablas
WORKING-STORAGE SECTION.
01 TOTALES-DIARIOS.
03 TOTAL-DIA OCCURS 5 TIMES PIC 9(4)v99 VALUE ZEROS.
01 NOMBRES
VALUE "MONTUEWEDTHUFRI".
03 DIAS OCCURS 5 TIMES PIC X(3).
Manejo de Arreglos y
Tablas
IDENTIFICATION DIVISION.
PROGRAM-ID. EJEMPLO CAP 12.
AUTHOR. SCI 317.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VENTAS ASSIGN TO "C:DATAIN.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT REPORTE ASSIGN TO "PRN".
Manejo de Arreglos y
Tablas
DATA DIVISION.
FILE SECTION.
FD VENTAS
LABEL RECORDS ARE STANDARD.
01 RECORDS-VENTAS.
03 DAY-NO
PIC 9.
03 SLSNO
PIC X(3).
03 AMT-IN
PIC 9(3)v99.
FD REPORTE
LABEL RECORDS ARE OMITTED.
01 LINEA-DE-IMPRESION PIC X(80).
WORKING-STORAGE SECTION.
01 TOTALES-DIARIOS.
03 TOTAL-DIA OCCURS 5 TIMES PIC 9(4)v99 VALUE ZEROS.
01 NOMBRES
VALUE "MONTUEWEDTHUFRI".
03 DIAS OCCURS 5 TIMES PIC X(3).
01 LINEA-DE-SALIDA.
03
PIC X(15) VALUE SPACES.
03 DIA-OUT
PIC XXX.
03
PIC X(10) VALUE SPACES.
03 TOTAL-VENTAS
PIC $9,999.99.
03
PIC X(43) VALUE SPACES.
01 MORE-RECORDS
PIC X(3) VALUE "YES".
Manejo de Arreglos y Tablas
PROCEDURE DIVISION.
100-RUTINA-PRINCIPAL.
PERFORM 500-RUTINA-INICIAL
PERFORM UNTIL MORE-RECORDS = "NO"
READ VENTAS AT END MOVE "NO" TO MORE-RECORDS
NOT AT END
PERFORM 200-RUTINA-COMPUTOS
END-READ
END-PERFORM
PERFORM 600-RUTINA-FINAL
STOP RUN.
200-RUTINA-COMPUTOS.
IF DAY-NO < 1 OR DAY-NO > 5
PERFORM 800-RUTINA-ERROR
ELSE
ADD AMT-IN TO TOTAL-DIA (DAY-NO).
500-RUTINA-INICIAL.
OPEN INPUT VENTAS
OUTPUT REPORTE.
600-RUTINA-FINAL.
PERFORM 700-RUTINA-IMPRIMIR VARYING X FROM 1 BY 1
UNTIL X > 5
CLOSE VENTAS REPORTE.
700-RUTINA-IMPRIMIR.
MOVE DIAS (X) TO DIA-OUT
MOVE TOTAL-DIA (X) TO TOTAL-VENTAS
WRITE LINEA-DE-IMPRESION FROM LINEA-DE-SALIDA
AFTER ADVANCING 2 LINES.
800-RUTINA-ERROR.
DISPLAY "NUMERO DEL DIA INVALIDO", DAY-NO
CLOSE VENTAS REPORTE
STOP RUN.
Proceso de Compilación
Source program .CBL
Object program .COB