Está en la página 1de 59

Estructura de un Programa COBOL

Ing. Ronald Pérez ronperez@ucab.edu.ve ronaldrr@cantv.net
Ing. Ronald Pérez
ronperez@ucab.edu.ve
ronaldrr@cantv.net
COBOL Ing. Ronald Pérez ronperez@ucab.edu.ve ronaldrr@cantv.net ronaldperezr@hotmail.com Procesamiento de Datos
COBOL Ing. Ronald Pérez ronperez@ucab.edu.ve ronaldrr@cantv.net ronaldperezr@hotmail.com Procesamiento de Datos
ronaldperezr@hotmail.com
ronaldperezr@hotmail.com
COBOL Ing. Ronald Pérez ronperez@ucab.edu.ve ronaldrr@cantv.net ronaldperezr@hotmail.com Procesamiento de Datos

Procesamiento de Datos

Notaciones sobre formatos de instrucciones COBOL Para definir la sintaxis de una instrucción se utiliza

Notaciones sobre formatos de

instrucciones COBOL

Para definir la sintaxis de una instrucción se

utiliza un formato estándar usado en todos los

manuales de Cobol, cuyos símbolos y

significados se explican en este punto. Para ello

usamos como ejemplo el formato de la

instrucción MULTIPLY que permite realizar

multiplicaciones.

Procesamiento de Datos

Notaciones sobre formatos de instrucciones COBOL MULTIPLY { literal-numérico-1 | identificador-1 } BY identificador-2

Notaciones sobre formatos de

instrucciones COBOL

MULTIPLY { literal-numérico-1 |

identificador-1 } BY identificador-2

[ ROUNDED ]

[, identificador-3 [ ROUNDED ] ]

[; ON SIZE ERROR instrucción- imperativa ]

Procesamiento de Datos

Estructura de un programa COBOL Un programa fuente Cobol es un conjunto de instrucciones, párrafos

Estructura de un programa COBOL

Un programa fuente Cobol es un conjunto de

instrucciones, párrafos y secciones que se

agrupan en cuatro DIVISIONES obligatorias

que, escritas en orden, son las siguientes:

oIDENTIFICATION DIVISION.

o ENVIRONMENT DIVISION.

oDATA DIVISION.

o PROCEDURE DIVISION.

Procesamiento de Datos

IDENTIFICATION DIVISION (División de identificación) Tiene que ser incluida en cada programa fuente. Sirve para

IDENTIFICATION DIVISION

(División de identificación)

Tiene que ser incluida en cada programa

fuente. Sirve para proporcionar un nombre para

identificar el programa. Opcionalmente se

puede especificar información acerca del autor,

fecha en que fue escrito, etc.

Consta de siete posibles párrafos siendo

obligatorio solamente el primero de ellos. Su

formato general es el siguiente:

Procesamiento de Datos

IDENTIFICATION DIVISION (División de identificación) IDENTIFICATION DIVISION. PROGRAM-ID. Nombre del programa. [AUTHOR.

IDENTIFICATION DIVISION

(División de identificación)

IDENTIFICATION DIVISION. PROGRAM-ID. Nombre del programa.

[AUTHOR. Nombre programador.]

[INSTALLATION. Instalación.] [DATE-WRITTEN. Fecha de escritura.]

[DATE-COMPILED. Fecha de compilación.]

[SECURITY. Comentario.] [REMARKS. Comentario.]

Procesamiento de Datos

ENVIR0NMENT DIVISION (División de entorno) Permite definir el tipo de ordenador para el que fue

ENVIR0NMENT DIVISION

(División de entorno)

Permite definir el tipo de ordenador para el que

fue escrito el programa, así como los

dispositivos periféricos necesarios para soportar

los ficheros utilizados en el programa. El

formato general para esta división es el

siguiente:

Procesamiento de Datos

ENVIR0NMENT DIVISION (División de entorno) ENVIRONMENT DIVISION. [CONFIGURATION SECTION. [SOURCE-COMPUTER. Nombre

ENVIR0NMENT DIVISION

(División de entorno)

ENVIRONMENT DIVISION.

[CONFIGURATION SECTION.

[SOURCE-COMPUTER. Nombre ordenador.]

[OBJECT-COMPUTER. Nombre ordenador.]

[SPECIAL-NAMES. Nombre especiales.] ]

[INPUT-OUTPUT SECTION.

FILE-CONTROL.

Control de archivos. [I-O CONTROL. Control de entrada / salida.] ]

Procesamiento de Datos

ENVIR0NMENT DIVISION (División de entorno) CONFIGURATION SECTION Esta sección es opcional. Su utilidad es indicar

ENVIR0NMENT DIVISION

(División de entorno)

CONFIGURATION SECTION

Esta sección es opcional. Su utilidad es indicar al

programa el modelo de ordenador a utilizar y asociar

nombres especiales que van a ser usados en el programa.

Para esta última opción se utiliza el párrafo SPECIAL-

NAMES siendo interesante la posibilidad de

intercambiar la función de la coma y el punto decimal :

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

Procesamiento de Datos

ENVIR0NMENT DIVISION (División de entorno) INPUT-OUTPUT SECTION (Sección de entrada / salida) Esta sección es

ENVIR0NMENT DIVISION

(División de entorno)

INPUT-OUTPUT SECTION

(Sección de entrada / salida)

Esta sección es también opcional. Proporciona

información al compilador sobre los archivos

utilizados en el programa y su relación con los

dispositivos externos. Se explicará con detalle a

la hora de trabajar con ficheros.

Procesamiento de Datos

DATA DIVISION (División de datos) Se utiliza para realizar una descripción completa de los ficheros

DATA DIVISION (División de datos)

Se utiliza para realizar una descripción

completa de los ficheros que intervienen en el

programa, de sus registros lógicos y de las

variables de trabajo. Su formato es el siguiente:

Procesamiento de Datos

DATA DIVISION (División de datos) DATA DIVISION. [FILE SECTION. [Declaración del archivo. [Declaración del registro.

DATA DIVISION (División de datos)

DATA DIVISION.

[FILE SECTION. [Declaración del archivo. [Declaración del registro. ] ] ] [WORKING-STORAGE SECTION.

[77 Declaración de variables independientes.]

[01 Declaración de registros.] ]

[LINKAGE SECTION.

[77 Declaración de variables independientes.]

[01 Declaración de registros.] ]

[COMMUNICATION SECTION. [Descripción comunicación.] [Declaración de registros. ] ] [SCREEN SECTION.

[01 Descripción de pantallas.]]

Procesamiento de Datos

DATA DIVISION (División de datos) FILE SECTION (Sección de Ficheros) En esta sección se describen

DATA DIVISION (División de datos)

FILE SECTION

(Sección de Ficheros)

En esta sección se describen detalladamente

toda la información referente a los archivos

utilizados en el programa, así como los

registros junto con sus campos y el tipo de

datos que se va a almacenar en ellos. Se verá

con más detalle en los apuntes de ficheros.

Procesamiento de Datos

DATA DIVISION (División de datos) WORKING-STORAGE SECTION (Sección de Trabajo) En ella se describen las

DATA DIVISION (División de datos)

WORKING-STORAGE SECTION

(Sección de Trabajo)

En ella se describen las variables usadas por el

programa, ya sea con estructura de registro o

como campos independientes.

Para declarar una variable es necesario

especificar su número de nivel, su nombre, su

tipo y longitud, opcionalmente también se le

puede asignar un valor inicial.

Procesamiento de Datos

DATA DIVISION (División de datos) Números de nivel Sirven para indicar la relación que existe

DATA DIVISION (División de datos)

Números de nivel

Sirven para indicar la relación que existe un campo

y otros campos. Los campos de datos pueden

clasificarse en:

Campos elementales: Un campo elemental es

aquel que no puede subdividirse.

Campos compuestos: Un campo compuesto está

formado por varios elementales.

Campos independientes: Un campo

independiente es un campo de trabajo que no

depende de ningún otro.

Procesamiento de Datos

DATA DIVISION (División de datos) Números de nivel Los números de nivel que pueden utilizarse

DATA DIVISION (División de datos)

Números de nivel

Los números de nivel que pueden utilizarse son

del 01 al 49, 66, 77 y 88. El nivel superior es el

01.

Las normas a seguir para utilizar los números de nivel

son las siguientes:

El número de nivel 01 sólo puede ir delante del

nombre de registro.

Los números de nivel 02 a 49 pueden preceder a

cualquier campo del registro, elemental o compuesto. El número de nivel 77 se utiliza para describir los

campos independientes, las variables

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula PICTURE Permite declarar el nombre, el tipo y el

DATA DIVISION (División de datos)

Cláusula PICTURE

Permite declarar el nombre, el tipo y el tamaño

de un campo elemental. Su formato es el

siguiente:

nn identificador PIC IS especificación de formato.

nn especifica el numero de nivel.

identificador es el nombre que se le da a ese

campo. Nombre al que podremos hacer

referencia posteriormente.

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula PICTURE nn identificador PIC IS especificación de formato .

DATA DIVISION (División de datos)

Cláusula PICTURE

nn identificador PIC IS especificación de formato.

El tipo del campo depende de los caracteres que

se empleen para definir la especificación de

formato.

La longitud de un campo viene dada por el

número de caracteres empleados en la

especificación de formato para declarar el campo.

Los campos pueden ser alfabéticos,

alfanuméricos y numéricos.

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula PICTURE nn identificador PIC IS especificación de formato .

DATA DIVISION (División de datos)

Cláusula PICTURE

nn identificador PIC IS especificación de formato.

El tipo del campo depende de los caracteres que

se empleen para definir la especificación de

formato.

La longitud de un campo viene dada por el

número de caracteres empleados en la

especificación de formato para declarar el campo.

Los campos pueden ser alfabéticos,

alfanuméricos y numéricos.

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula PICTURE Campos alfabéticos Permiten almacenar letras y/o espacios en

DATA DIVISION (División de datos)

Cláusula PICTURE

Campos alfabéticos

Permiten almacenar letras y/o espacios en blanco. Para

definirlos se emplea el carácter A. 77 NOMBRE PIC A(10).

Campos alfanuméricos

Permiten almacenar cualquier carácter del alfabeto que

se esté utilizando. El carácter empleado para definirlos

es la X.

77 NIF PIC X(10).

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula PICTURE Campos numéricos Almacenan cualquier valor numérico que no

DATA DIVISION (División de datos)

Cláusula PICTURE

Campos numéricos

Almacenan cualquier valor numérico que no tenga más de 18 cifras. Los caracteres que se emplean para definir un campo de este tipo son 9, S y V. El 9 representa una

cifra del 0 al 9, es decir un dígito decimal.

77 PRECIO PIC 9(6).

La S indica la aparición de signo. No es obligatorio,

pero si conveniente porque si no Cobol, después de

cada operación lo suprime. No ocupa espacio en memoria y cuando se pone, debe ser el primer carácter

de la especificación de formato.

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula PICTURE Campos numéricos 77 SALDO PIC S9(7). La V

DATA DIVISION (División de datos)

Cláusula PICTURE

Campos numéricos

77 SALDO PIC S9(7).

La V representa la posición del punto decimal. Se

denomina punto decimal implícito ya que no ocupa

espacio en memoria y sólo se usa internamente para

alinear las partes decimales de los campos cuando se

quiere realizar una operación.

77 NOTA PIC 99V99.

Procesamiento de Datos

DATA DIVISION (División de datos) PICTURE para edición Los caracteres descritos hasta ahora para definir

DATA DIVISION (División de datos)

PICTURE para edición

Los caracteres descritos hasta ahora para definir los

datos numéricos, no sirven para ser visualizados por pantalla. Para se utilizan los caracteres de edición, que

son los siguientes:

La Z representa una cifra del 0 al 9. Si la cifra a escribir

se corresponde con un 0 no significativo, en su lugar se

escribe un espacio en blanco.

El * (asterisco) representa una cifra del 0 al 9. Si la cifra

a escribir se corresponde con un 0 no significativo, se escribe en su lugar un asterisco.

Procesamiento de Datos

DATA DIVISION (División de datos) PICTURE para edición Los caracteres Z y * no pueden

DATA DIVISION (División de datos)

PICTURE para edición

Los caracteres Z y * no pueden ir precedidos, pero si

seguidos, del carácter 9.

El . (punto) hace que se inserte un punto decimal para separar la parte entera de la parte fraccionaria al

escribir el campo.

La , (coma) hace que se inserte este mismo carácter en

el lugar que se indica de la especificación de formato.

Procesamiento de Datos

DATA DIVISION (División de datos) Cláusula VALUE Permite asignar un valor inicial para un campo

DATA DIVISION (División de datos)

Cláusula VALUE

Permite asignar un valor inicial para un campo que se

define con PICTURE dentro de la WORKING- STORAGE SECTION.

77 TOTAL PIC 9(5) VALUE 0.

Procesamiento de Datos

DATA DIVISION (División de datos) LINKAGE SECTION (Sección de Enlace) Permite declarar campos de memoria

DATA DIVISION (División de datos)

LINKAGE SECTION (Sección de Enlace)

Permite declarar campos de memoria para ser

utilizados por otros programas y por consiguiente,

conservar los datos de un programa para otro.

COMMUNICATION SECTION (Sección de

Comunicaciones)

Permite procesar mensajes y controlar el flujo de

los mismos.

SCREEN SECTION (Sección de Pantalla)

Controla la representación de los datos en la

pantalla de la forma más optima.

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) Indica la secuencia de operaciones necesarias para resolver un problema

PROCEDURE DIVISION

(División de procedimientos)

Indica la secuencia de operaciones necesarias

para resolver un problema dado. Es la parte del

programa que se ejecuta (el algoritmo).

Puede ser dividida en secciones y estás a su

vez en párrafos. Cada párrafo generalmente

agrupará varias sentencias. La división en

secciones es opcional y poco utilizada, en

cambio, la división en párrafos es muy

frecuente.

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) VISUALIZAR DATOS: DISPLAY Esta sentencia permite escribir datos en el

PROCEDURE DIVISION

(División de procedimientos)

VISUALIZAR DATOS: DISPLAY

Esta sentencia permite escribir datos en el dispositivos estándar de salida, la pantalla.

DISPLAY “RESULTADO:A

Permite visualizar un dato en una posición de pantalla

determinada. LINE y POSITION sirven para especificar

la fila y la columna donde va a comenzar la operación de escritura.

DISPLAY “ENTRADA DE DATOS:LINE 10 POSITION 20

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) VISUALIZAR DATOS: DISPLAY Otras opciones: ERASE: Borra la pantalla

PROCEDURE DIVISION

(División de procedimientos)

VISUALIZAR DATOS: DISPLAY Otras opciones:

ERASE: Borra la pantalla completa. Si se escribe ERASE

EOL borrar desde la posición del cursor hasta el final de

esa línea, y si se escribe ERASE EOS borra desde la

posición del cursor hasta el final de la pantalla.

NO ADVANCING: Hace que el cursor no avance de línea, una vez que se ha ejecutado la sentencia DISPLAY. HIGH y LOW: Permite visualizar la información en alta (HIGH) o baja (LOW) intensidad de vídeo. El valor por

defecto es HIGH.

BLINK: Hace parpadear los datos visualizados.

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) VISUALIZAR DATOS: DISPLAY Otras opciones: REVERSE: Los elementos

PROCEDURE DIVISION

(División de procedimientos)

VISUALIZAR DATOS: DISPLAY Otras opciones:

REVERSE: Los elementos visualizados aparecerán en

vídeo inverso.

CONTROL: Permite especificar el color de fondo y el color

de los caracteres que se escriben.

FCOLOR = color: Especifica el color de los caracteres. BCOLOR = color: Especifica el color de fondo. color puede ser una constante de las siguientes: BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN o

WHITE.

DISPLAY ‘HOLA MUNDO’ CONTROL

‘FCOLOR=WHITE,BCOLOR=BLUE’

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) LEER DATOS: ACCEPT Permite asignar valores a uno o más

PROCEDURE DIVISION

(División de procedimientos)

LEER DATOS: ACCEPT Permite asignar valores a uno o más variables desde el

teclado.

ACCEPT A

Al igual que DISPLAY, también permite efectuar la entrada de datos colocando el cursor en una determinada posición, usando LINE y POSITION.

ACCEPT A LINE 10 POSITION 20

También funcionan con ACCEPT las opciones ERASE, HIGH, LOW, BLINK, REVERSE y CONTROL, todas ellas

con las mismas funciones que en DISPLAY.

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) LEER DATOS: ACCEPT Además existen las siguientes posibilidades: TAB:

PROCEDURE DIVISION

(División de procedimientos)

LEER DATOS: ACCEPT

Además existen las siguientes posibilidades:

TAB: Obliga a pulsar Enter cuando tecleando la entrada

del campo leído se llega al final del campo. Si no se

especifica TAB no es necesario.

NO SEP: Suprime el sonido emitido por defecto al ejecutar la orden.

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) LEER DATOS: ACCEPT Además existen las siguientes posibilidades: PROMPT [

PROCEDURE DIVISION

(División de procedimientos)

LEER DATOS: ACCEPT

Además existen las siguientes posibilidades:

PROMPT [literal]: Marca sobre pantalla con el carácter

especificado las posiciones vacías mientras se ejecuta la

orden. Si no se indica carácter por defecto se utiliza el

subrayado.

UPPER - Convierte la entrada a mayúsculas. Tiene que utilizarse con CONTROL.

ACCEPT

NOMBRE

NO

BEEP

“UPPER,BCOLOR=BLUE"

Procesamiento de Datos

CONTROL

PROCEDURE DIVISION (División de procedimientos) INTRUCCIÓN DE ASIGNACIÓN: MOVE Esta sentencia permite transferir datos

PROCEDURE DIVISION

(División de procedimientos)

INTRUCCIÓN DE ASIGNACIÓN: MOVE

Esta sentencia permite transferir datos de una variable a otra u otras. Los datos que se transfieren deben ser

del mismo tipo que la variable a la que se mueven.

Después de realizarse la operación de mover, las dos

variables contendrán los mismos datos.

MOVE 0 TO SUMA

SUMA=0

MOVE A TO MAYOR MAYOR=A

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA ADD Permite sumar dos o más operandos numéricos y

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA ADD

Permite sumar dos o más operandos numéricos y almacenar el resultado en uno o más campos de datos.

Opción TO

Esta opción hace que los valores de los operandos a su

izquierda sean añadidos a los valores de los operandos

a su derecha. Todos los operandos tienen que ser

numéricos de trabajo.

ADD 1 TO CONT CONT = CONT + 1

ADD A TO B C

B = B + A C = C + A

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA ADD Opción GIVING La suma de los valores de

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA ADD

Opción GIVING

La suma de los valores de los operandos que preceden

a GIVING se almacenan en los campos que están a

continuación. Los campos que están a continuación de

GIVING pueden ser numéricos de trabajo o de edición.

ADD A B GIVING CONT CONT = A + B

ADD A B GIVING S T

S = A + B T = A + B

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA SUBTRACT Se utiliza para restar un dato numérico, o

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA SUBTRACT

Se utiliza para restar un dato numérico, o la suma de dos o más datos numéricos, del valor de una o más

variables, dejando el resultado en uno o más campos.

Opción FROM

Los operandos que preceden a FROM se suman y el

total se resta del valor actual de la variable que esta a continuación, almacenando el resultado en ella misma.

El proceso se repite para el resto de variables que sigan a FROM.

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA SUBTRACT SUBTRACT SUBTRACT A B FROM R SUBTRACT A

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA SUBTRACT

SUBTRACT

SUBTRACT A B FROM R

SUBTRACT A B FROM R T R = R- ( A + B) T = T - (

A + B)

1 FROM A

A = A - 1 R = R - ( A + B)

Opción GIVING

Los operandos que preceden a FROM se suman y el

total se resta del valor actual de la variable que esta a continuación, almacenando el resultado en las variables

que siguen a la palabra GIVING. SUBTRACT 1 FROM A GIVING B B = A - 1

SUBTRACT A B FROM R GIVING T T = R - ( A + B )

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA MULTIPLY Es utilizada para multiplicar un dato numérico por

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA MULTIPLY

Es utilizada para multiplicar un dato numérico por otro u otros datos numéricos y dejar el resultado en una o más

variables.

Opción BY

El operando que precede a BY se multiplica por el valor

actual de la variable que se indica a continuación,

almacenando el resultado en ella misma. El proceso se repite para el resto de variables que siguen a BY.

MULTIPLY 2 BY A A = A * 2 MULTIPLY A BY P T P = P * A T = T * A

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA MULTIPLY Opción GIVING El operando que precede a BY

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA MULTIPLY

Opción GIVING

El operando que precede a BY se multiplica por el que

está a continuación suya, almacenando el resultado en

las variables que siguen a la palabra GIVING.

MULTIPLY 2 BY A GIVING P P = A * 2

MULTIPLY A BY P GIVING T T = P * A

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA DIVIDE Se utiliza para dividir uno o más datos

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA DIVIDE

Se utiliza para dividir uno o más datos numéricos por otro y dejar el resultado en uno o más campos.

Opción INTO

El operando que precede a INTO actúa como divisor del

valor actual del dato que va a continuación suyo,

almacenando el resultado en este mismo campo y repitiendo el proceso para el resto de los campos que

siguen a la palabra INTO. DIVIDE 5 INTO A A = A / 5

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA DIVIDE Opción GIVING El operando que precede a INTO

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA DIVIDE

Opción GIVING

El operando que precede a INTO actúa como divisor del

valor actual del dato que va a continuación suyo,

almacenando el resultado de dicha división en las

variables que aparecen después de GIVING.

DIVIDE 5 INTO A GIVING R A = A / 5

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA DIVIDE Opción BY El operando que precede a BY

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA DIVIDE

Opción BY

El operando que precede a BY se divide por valor del

dato que va a continuación suyo, almacenando el

resultado de dicha división en las variables que

aparecen después de GIVING.

DIVIDE A BY 5 GIVING R R = A / 5

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA DIVIDE Opción REMAINDER Se encarga de recoger el resto

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA DIVIDE

Opción REMAINDER

Se encarga de recoger el resto de una división entre

dos datos de tipo entero. Se puede usar tanto con INTO

como con BY, pero en ambos casos con la opción

GIVING.

DIVIDE 5 INTO A GIVING A REMAINDER R

A = A div 5

R = A mod 5

DIVIDE A BY 10 GIVING R REMAINDER V

R = A div 10 V = A mod 10

Procesamiento de Datos

PROCEDURE DIVISION (División de procedimientos) SENTENCIA COMPUTE Permite asignar a una o más variables numéricas

PROCEDURE DIVISION

(División de procedimientos)

SENTENCIA COMPUTE

Permite asignar a una o más variables numéricas el valor de una constante numérica, de otro campo

numérico o de una expresión aritmética.

COMPUTE A = 0

COMPUTE AUX = A

COMPUTE RESULTADO = A * B + (B - 2) / 5

Procesamiento de Datos

SENTENCIAS DE CONTROL Procesamiento de Datos

SENTENCIAS DE CONTROL

SENTENCIAS DE CONTROL Procesamiento de Datos

Procesamiento de Datos

SENTENCIA IF Permite tomar una decisión referente a una acción a ejecutar en un programa,

SENTENCIA IF

Permite tomar una decisión referente a una acción a ejecutar en un programa, basándose en el resultado, verdadero o falso, de una determinada condición.

IF A > 0

MOVE 1 TO A Se ejecuta si la condición es verdadera.

END-IF

Procesamiento de Datos

SENTENCIA IF Si el resultado de la condición es falso la instrucción no se ejecuta.

SENTENCIA IF

Si el resultado de la condición es falso la instrucción no se ejecuta.

IF A + 1 > B AND B > C * 2

MOVE 0 TO A Se ejecuta si la condición es verdadera.

ELSE

ADD 1 TO A Se ejecuta si la condición es falsa.

END-IF

Procesamiento de Datos

SENTENCIA IF El ámbito de una sentencia IF finaliza de cualquiera de las dos formas

SENTENCIA IF

El ámbito de una sentencia IF finaliza de cualquiera de las dos formas siguientes:

1- Por un punto.

IF B NOT = 0 DISPLAY "B es distinto de 0".

2- Por una cláusula END-IF

IF B NOT = 0 DISPLAY "B es distinto de 0" END-IF

Cuando dentro del condicional hay varias sentencias, solamente puede llevar punto la última, ya que este es

el que indica el final de la sentencia.

Procesamiento de Datos

SENTENCIA IF IF A < B COMPUTE C = B – A DISPLAY "B -

SENTENCIA IF

IF A < B

COMPUTE C = B A

DISPLAY "B - A = " NO ADVANCING

ELSE

COMPUTE C = A B

DISPLAY "A - B = " NO ADVANCING

DISPLAY C.

Procesamiento de Datos

SENTENCIA IF Las sentencias anidadas. IF A = 0 IF … IF B NOT =

SENTENCIA IF

Las

sentencias

anidadas.

IF A = 0

IF

IF B NOT = 0

ADD B TO C

END-IF

ELSE

ADD A TO C

END-IF

ELSE

Procesamiento de Datos

pueden

estar

SENTENCIA PERFORM Es la sentencia COBOL que se adapta a la construcción de estructura repetitivas.

SENTENCIA PERFORM

Es la sentencia COBOL que se adapta a la construcción de estructura repetitivas. Tiene varios formatos que estudiaremos a continuación.

Formato 1

Nos permite llamar a un párrafo para que se ejecute

una vez. Un párrafo está formado por una serie de

instrucciones encabezadas por un nombre de párrafo.

Después de ejecutadas dichas instrucciones, el programa seguirá en la siguiente a la instrucción PERFORM ejecutada.

Procesamiento de Datos

SENTENCIA PERFORM Formato 1 PERFORM CONTAR CONTAR. Area ADD 1 TO I DISPLAY I. Procesamiento

SENTENCIA PERFORM

Formato 1

PERFORM CONTAR

CONTAR. Area

ADD 1 TO I

DISPLAY I.

Procesamiento de Datos

SENTENCIA PERFORM Formato 2 Permite ejecutar un grupo de instrucciones un cierto número de veces.

SENTENCIA PERFORM

Formato 2

Permite ejecutar un grupo de instrucciones un cierto número de veces.

PERFORM CONTAR 10 TIMES

CONTAR.

ADD 1 TO I DISPLAY I.

También se podría ejecutar bajo el siguiente formato, con

igual resultado.

PERFORM 10 TIMES

ADD 1 TO I DISPLAY I

END-PERFORM

Procesamiento de Datos

SENTENCIA PERFORM Formato 3 Ejecuta un conjunto de instrucciones hasta que la condición especificada sea

SENTENCIA PERFORM

Formato 3

Ejecuta un conjunto de instrucciones hasta que la condición especificada sea cierta.

MOVE 0 TO I

PERFORM CONTAR UNTIL I = 10

CONTAR.

ADD 1 TO I DISPLAY I.

Procesamiento de Datos

SENTENCIA PERFORM Formato 3 También puede ejecutarse utilizando la sentencia END- PERFORM. MOVE 0 TO

SENTENCIA PERFORM

Formato 3

También puede ejecutarse utilizando la sentencia END- PERFORM.

MOVE 0 TO I

PERFORM UNTIL I = 10

ADD 1 TO I

DISPLAY I

END-PERFORM

Procesamiento de Datos

SENTENCIA PERFORM Formato 3 En ambos casos la condición de salida se evalúa antes de

SENTENCIA PERFORM

Formato 3

En ambos casos la condición de salida se evalúa antes de entrar (mientras). Si es cierta, se da por finalizada la ejecución de la sentencia PERFORM y se pasa a la sentencia siguiente. Si es falsa se ejecutan las sentencias que se encuentran dentro de la estructura repetitiva.

Procesamiento de Datos

SENTENCIA PERFORM Formato 3 La opción TEST AFTER evalúa la condición después de la primera

SENTENCIA PERFORM

Formato 3

La opción TEST AFTER evalúa la condición después de la primera ejecución (repetir).

MOVE 7 TO I

PERFORM WITH TEST AFTER UNTIL I > 5

DISPLAY I Las instrucciones del bucle se ejecutan

una vez.

ADD 7 TO I END-PERFORM

Procesamiento de Datos

SENTENCIA PERFORM Formato 3 MOVE 7 TO I PERFORM UNTIL I > 5 DISPLAY I

SENTENCIA PERFORM

Formato 3

MOVE 7 TO I

PERFORM UNTIL I > 5

DISPLAY I Sin la opción TEST AFTER, no se ejecutan nunca.

ADD 7 TO I

END-PERFORM

Procesamiento de Datos