COBOL
Ejercicio:
Programa para calcular la nota de un grupo de estudiantes. Se utiliza el
archivo de datos estudiantes.txt, que se debe encontrar en el
disco que se especifique en el Environment Division.
123456*89012
IDENTIFICATION DIVISION.
PROGRAM-ID. ARCHIVOS-NOTAS.
AUTHOR. SU NOMBRE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ESTUDIANTES-IN
ASSIGN TO "E:\UMET\COSC
350\ESTUDIANTES.TXT"
ORGANIZATION IS LINE
SEQUENTIAL.
SELECT FILE-NOTAS-OUT
ASSIGN TO "E:\UMET\COSC
350\FILE-NOTAS.TXT"
ORGANIZATION IS LINE
SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD ESTUDIANTES-IN
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 41 CHARACTERS.
01 ESTUDIANTES-REC.
05 NOMBRE-IN PIC X(20).
05 SEGURO-SOCIAL-IN PIC X(9).
05 EX1 PIC 9(3).
05 EX2 PIC 9(3).
05 EX3 PIC 9(3).
05 EX4 PIC 9(3).
FD FILE-NOTAS-OUT
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 34 CHARACTERS.
01 NOTAS-OUT-REC.
05 NOMBRE-OUT PIC X(20).
05 SEGURO-SOCIAL-OUT PIC X(9).
05 PROMEDIO-OUT PIC 9(3)V9.
05 NOTA-OUT PIC X(1).
WORKING-STORAGE SECTION.
01 HAY-MAS-RECORDS PIC X VALUE 'Y'.
PROCEDURE DIVISION.
100-PARRAFO-PRINCIPAL.
OPEN INPUT ESTUDIANTES-IN
OUTPUT FILE-NOTAS-OUT
PERFORM UNTIL HAY-MAS-RECORDS = "N"
READ ESTUDIANTES-IN
AT END MOVE 'N' TO HAY-MAS-RECORDS
NOT AT END PERFORM 200-PROCESO
END-READ
END-PERFORM
CLOSE ESTUDIANTES-IN
FILE-NOTAS-OUT
STOP RUN.
200-PROCESO.
COMPUTE PROMEDIO-OUT = (EX1 + EX2 + EX3 + EX4) / 4
MOVE NOMBRE-IN TO NOMBRE-OUT
MOVE SEGURO-SOCIAL-IN TO SEGURO-SOCIAL-OUT
IF PROMEDIO-OUT >= 89.5
MOVE "A" TO NOTA-OUT
ELSE
IF PROMEDIO-OUT >= 79.5
MOVE "B" TO NOTA-OUT
ELSE
IF PROMEDIO-OUT >= 69.5
MOVE "C" TO NOTA-OUT
ELSE
IF PROMEDIO-OUT >= 59.5
MOVE "D" TO NOTA-OUT
ELSE
MOVE "F" TO NOTA-OUT
END-IF
END-IF
END-IF
END-IF
WRITE NOTAS-OUT-REC.
Datos
del archivo de entrada estudiantes.txt
Eddie
Hernandez 555697718100085078100
Marinelva
Roman 546852312095080078080
Armando
Gonzalez 225587723099100089085
Javier
Ortiz 478967730085079088065
Juan
Valenzuela 578252316075085091079
Dalila
Ramos 476362242078080099100
Nancy
Martinez 556527717072068065067
Pedro
Perez 556789004065055066050