PROCEDURE DIVISION
Contiene todas las instrucciones que
la computadora ejecutará. Se divide en párrafos (módulos o rutinas)
independientes. Los nombres de los párrafos comienzan en el Area A, se escriben
en una línea independiente y terminan con un punto. Cada párrafo consiste de
instrucciones que empiezan con verbos (
Instrucciones:
OPEN – Accesa los archivos e indica cuáles son de Input y cuáles de Output.
Ej. OPEN INPUT EMPLOYEE-IN
OUTPUT
PAGA-OUT
CLOSE – Cierra los archivos al finalizar el proceso. No se indica si el archivo
fue usado para entrada (Input) o salida (Output).
Ej. CLOSE PAYROLL
PAYCHECKS
PERFORM UNTIL … END-PERFORM – Crea un ciclo o "loop",
que es una técnica de programación que ejecuta una serie de instrucciones un
número determinado de veces o hasta que una condición se cumpla. Las
instrucciones en medio son ejecutadas hasta que se cumpla la condición en la
cláusula UNTIL. Cuando se cumple la condición, el control
Ej. PERFORM UNTIL A = B
. (Se repite las instrucciones hasta
que A sea igual a B.
. En algún momento
se tiene que igualar A a B para que termine
. el ciclo. De lo
contrario, el ciclo será infinito y habrá error.)
END-PERFORM
READ – Transmite datos desde el equipo
de entrada o input (descritos en el Environment Division) al área de almacenar
los datos de entrada (descritos en el Data Division). Su función principal es
transmitir un record de datos al área de input reservada para ese archivo. Se
Ej. READ EMP-IN
AT END MOVE “N” TO
HAY-MAS-RECORDS
(opcional) NOT
AT END PERFORM 500-PROCESO
END-READ
STOP-RUN – Indica a la computadora que el
programa ha terminado. Es usualmente la última instrucción
WRITE – Toma datos
Ej. WRITE PAGA-OUT-RECORD
MOVE – Mueve (o copia) el valor de un
identificador (variable) a otro identificador. Al finalizar la instrucción,
ambos identificadores deben tener el mismo valor.
Ej. MOVE 123 TO NUMERO
MOVE “MARIA”
TO NOMBRE
MOVE NAME-IN TO NAME-OUT
Verbos Aritméticos
Es bien importante definir
correctamente la cláusula PICTURE al definir los campos en el Data Division
para asegurarse que el tamaño
ADD –
Ej. ADD 5 TO A (el valor de A cambia a 7)
ADD 5 TO B GIVING C (el
valor de C cambia a 8, B sigue igual a 3)
ADD B TO C GIVING A (el
valor de B y C no cambia, A cambia a 7)
ADD A TO B (el
valor de B cambia a 5)
SUBTRACT – Resta el primer identificador
Ej. SUBTRACT 1 FROM B (B = 2) (B-1)
SUBTRACT B FROM C (B = 3, C = 1) (C-B)
SUBTRACT B FROM C GIVING A (B = 3, C = 4, A = 1) (C-B)
MULTIPLY – Multiplica el primer identificador por el segundo identificador.
Ej. MULTIPLY 5 BY A (A = 10) (5*A)
MULTIPLY A BY C (A = 2,
C = 8) (A*B)
MULTIPLY A BY C GIVING B (A = 2, C = 4, B = 8) (A*C)
DIVIDE INTO – Divide el segundo identificador entre el primer
identificador.
Ej. DIVIDE 6 INTO B (B = 0.5) (B/6)
DIVIDE A INTO C (A =
2, C = 2) (C/A)
DIVIDE A INTO C GIVING B (A = 2, C = 4, B = 2) (C/A)
DIVIDE BY – Divide el primer identificador entre el segundo
identificador. Requiere el uso de la cláusula GIVING.
Ej. DIVIDE 6 BY B GIVING A (B = 3, A = 2) (6/B)
DIVIDE C BY A GIVING B (C = 4, A = 2, B =
2) (C/A)
DIVIDE C BY 2 GIVING A (C = 4, A = 2) (C/2)