PerroCobolero

PerroCobolero

ADS

jueves, 22 de octubre de 2015

Sentencias Básicas COBOL

Sentencias Básicas

El verbo PERFORM

Permite variar el orden secuencial de instrucciones, provocando un salto con retorno.
Función
Invocar a un conjunto de instrucciones localizadas a continuación de un nombre de párrafo.

Formato 1

PERFORM nombre-de-párrafo

• El resultado del formato 1 del PERFORM es desviarse para el párrafo indicado, ejecutar la instrucción o las instrucciones en ese párrafo y regresar a
la declaración inmediata siguiente a la instrucción PERFORM. El párrafo a ejecutar puede incluir otro PERFORM.

Ejemplo

PROCEDURE DIVISION.
INICIO.
PERFORM INICIALIZACION.
PERFORM PROCESO.
….
INICIALIZACION.
MOVE 0 TO CONTADOR.
PROCESO. …

Formato 2
PERFORM nombre-de-párrafo-1 [THRU nombre-de-párrafo-2]
Este formato facilita la ejecución de dos o más párrafos consecutivos y luego el retorno a la declaración inmediata siguiente al PERFORM.
En el formato los nombre-de-párrafo-1 y 2 se refieren al primero y el último de una serie de párrafos consecutivos.


El Verbo EXIT

La serie de procedimientos especificados por el verbo PERFORM debe culminar en un simple punto final. Cuando no sea tal su función, el verbo EXIT
se usará para proveer un punto final artificial.
Ejemplo:
PROCEDURE DIVISION.
INICIO.
PERFORM INICIALIZACION THRU FIN-INICIALIZACION.
PERFORM PROCESO.
….
INICIALIZACION.
Curso Cobol Everis
41
MOVE 0 TO CONTADOR.
FIN-INICIALIZACION.
EXIT.
PROCESO......

Formato 3

PERFORM nombre-de-párrafo-1 [THRU nombre-de-párrafo-2]
{identificador ó entero} TIMES.
Este formato permite la ejecución repetida de segmentos de programa.

Ejemplo:

PERFORM PROCESAR-TABLA 100 TIMES.

Formato 4

PERFORM nombre-de-párrafo-1 [THRU nombre-de-párrafo-2]
UNTIL condición.

Este formato facilita la ejecución repetida del grupo de párrafos hasta que se cumpla la condición.
Ejemplo

PERFORM LECTURA-TABLA UNTIL K IS GREATER THAN 30.
PERFORM CUENTAS UNTIL CUENTA > 100.00 OR SUMA IS NEGATIVE.

Un posible peligro es que la condición o condiciones nunca sean satisfechas; en tal caso, se ha especificado una rutina infinita.
Cuando se emplea la opción UNTIL, ésta se evalúa antes de ser ejecutado por primera vez el o los párrafos invocados.

PERFORM nombre-de-párrafo-1 [THRU nombre-de-párrafo-2]
VARYING identificador-1
FROM {identificador-2 ó literal-1}
BY {identificador-3 ó literal-2}
UNTIL condición.

Este formato resulta adecuado para llevar a cabo tareas que incluyan tablas o índices.
Ejemplo

PROCESO.
PERFORM LECTURA-TABLA VARYING K FROM 1 BY 1 UNTIL K IS GREATER THAN 30.


LECTURA-TABLA.

MOVE TASA-DE-IMPUESTO TO TASA (K).

El procedimiento por medio del cual se lleva a cabo la opción VARYING es:

1. Primero, el identificador a variar es iniciado con un valor, el valor señalado por la cláusula: FROM {identificador-2 ó literal}

2. Entonces se hace una prueba para determinar si es hallada la condición especificada por el UNTIL. En caso de que lo sea, el PERFORM es
“brincado” y el control pasa a la siguiente declaración. Si la condición no es encontrada, los párrafos especificados son ejecutados una vez.

3. En seguida, el valor del identificador variable es incrementado en el aumento mostrado en la cláusula: BY {identificador-3 ó literal}

4. El procedimiento en los pasos 2 y 3 se repite.
La condición no necesita referirse al valor del identificador-1. Puede referirse a otros identificadores, pero en todos los casos es conveniente referir los
identificadores, que tienen sus valores alterados por los párrafos bajo control del PERFORM.

Formato 6

PERFORM nombre-de-párrafo-1 [THRU nombre-de-párrafo-2]
VARYING identificador-1
FROM {identificador-2 ó literal-1}
BY {identificador-3 ó literal-2}
UNTIL condición-1
[AFTER identificador-4
FROM {identificador-5 ó literal-3}

Este formato permite al programador variar los tres identificadores en una rutina anidada.

Ejemplo:

01 TABLA-VENTAS.
02 VENTAS-TERRITORIO OCCURS 5 TIMES.
03 VENTAS-SUCURSAL OCCURS 4 TIMES PIC 9(5)V99.
77 TERRITORIO PICTURE 9.
77 SUCURSAL PICTURE 9.
PROCEDURE DIVISION.

PERFORM LECTURA
VARYING TERRITORIO FROM 1 BY 1 UNTIL TERRITORIO > 5
AFTER VARYING SUCURSAL FROM 1 BY 1 UNTIL SUCURSAL > 4.

LECTURA.

MOVE VALOR-TARJETA TO TABLA-VENTAS (TERRITORIO, SUCURSAL).



 El Verbo DISPLAY

La ejecución de esta sentencia tiene como resultado que el contenido del campo aparezca en la pantalla o en el dispositivo referenciado con un
nombre-nemónico. El nombre-nemónico se referencia en el párrafo SPECIAL-NAMES de la ENVIRONMENT DIVISION.

Formato

DISPLAY {identificador-1 ó literal-1}
[identificador-2 ó literal-2] ….

Ejemplo

DISPLAY IMPORTE, “ESTE ES EL IMPORTE”.


 ACCEPT

Instrucción utilizada como entrada de datos, tanto del teclado como del sistema.
Modo host : no usamos entrada datos por teclado.

Formato para aceptar datos del sistema .

ACCEPT variable FROM (DATE,DAY, TIME )
DATE : AAMMDD PIC 9(6)
DAY: AADDD PIC 9(5)
TIME: HHMMSSMM PIC 9(8)

Ejemplo

ACCEPT FECHA FROM DATE


 Verbo de Transferencia de Datos–Verbo MOVE, MOVE CORRESPONDING, INITIALIZE
Usado para mover un valor de una posición de memoria a otra.


El campo receptor no sea menor que el emisor. (truncado de información)
Formato

MOVE {identificador-1 o literal-1} TO identificador-2
[identificador-3]

Ejemplo

Si “A = 35” y “B = 831”, al ejecutar la línea de código:
MOVE A TO B

El resultado a obtener seria: “A = 35”, “B = 35”.

Otros Ejemplos:

MOVE MONTO TO CANTIDAD
MOVE 25.85 TO PRECIO
MOVE ZEROES TO TOTAL
MOVE SPACES TO BLANCOS
MOVE “EJEMPLO” TO ENCABEZADO
MOVE “PARA 1970” TO TITULO, ENCABEZADO, SUBENCABEZADO

Formato

MOVE { CORRESPONDING ó CORR } identificador-1

TO identificador-2.

Ejemplo

01 PAGOS.
02 MONTO PICTURE 9999V99.
02 NETO PICTURE 9999V99.
02 IMPUESTO PICTURE 999V99.
01 IMPRESION.
02 MONTO PICTURE ZZZ9.99.
02 IMPUESTO PICTURE ZZ9.99.
02 NETO PICTURE ZZZ9.99.

Se desea mover PAGOS a IMPRESIÓN

Solución: MOVE CORRESPONDING PAGOS TO IMPRESION.

INITIALIZE
Se usa para inicializar variables , es decir , poner las variables numéricas a 0 y las alfanuméricas y alfabéticas a blancos.

Formato

INITIALIZE dentificador-1 identificador-2 …. .

Ejemplo

01 CONTADORES.
05 CONT-LEIDOS PIC 999.
05 CONT-ESCRITOS PIC 999.
01 MENSAJES PIC X(80).
PROCEDURE DIVISION.
INITIALIZE CONTADORES MENSAJES.

La variable mensaje tendrá blancos, y los contadores CONT-LEIDOS y CONT-ESCRITOS tendrán ceros.

No hay comentarios.:

Publicar un comentario