1 -Elementos del lenguaje COBOL.

      IDENTIFICATION DIVISION.

      ENVIRONMENT DIVISION.

      DATA DIVISION

      PROCEDURE DIVISION

    1. Constantes figurativas:
    2. Una constante figurativa es una constante predefinida en COBOL que puede utilizarse en cualquier parte de la WORKING-STORAGE SECTION o PROCEDURE DIVISION para asignar su valor a un campo.

      Zero- Designa el valor 0 en el caso de datos numéricos. También puede ser referenciada por los nombres ZEROS o ZEROES.

      Space- Esta constante se utiliza para asignar a un campo no numérico uno o mas espacios en blanco. También puede ser referenciada por el nombre SPACES.

      High-value- Se utiliza para asignar a literales alfanuméricos el valor mas alto posible del código de caracteres que estemos utilizando (Valor FF en ASCII). También puede ser referenciada por el nombre de HIGH-VALUES.

      Low-Value- Se utiliza para asignar a literales alfanuméricos el valor mas bajo posible del código de caracteres que estemos utilizando (Valor 00 en ASCII). También puede ser referenciada por el nombre de LOW-VALUES.

      ALL "literal"- representa una repetición del literal especificado.

      1. Constantes identificadas por un nombre.
      2. Están formadas por un identificador al que asociamos un valor. Se describen en la DATA DIVISION con nivel 78.

        Una constante identificada por un nombre se utiliza en cualquier lugar donde un literal pueda aparecer en un formato.

      3. Identificadores.

Los identificadores son nombres creados por el programador. Para formar un identificador hay que tener en cuenta las siguientes reglas:

  • Un identificador consta de un máximo de 30 caracteres. Estos caracteres pueden ser solamente letras, dígitos y el guión.
  • No deben empezar ni terminar en un guión.
  • Un identificador definido por el usuario no puede tener el mismo nombre que una palabra reservada.
  • Un identificador debe contener obligatoriamente al menos una letra, excepto cuando se trate de un nombre de párrafo o de sección.

Cualquier identificador utilizado en la PROCEDURE DIVISION debe estar previamente definido en la ENVIRONMENT DIVISION o en la DATA DIVISION.

      1. Operadores.
      2. Los operadores son símbolos que indican como son manipulados los datos.

        Carácter

        Significado

        Ejemplo

        +

        Suma

        A + B

        -

        Resta

        A – B

        *

        Multiplicación

        A * B

        /

        División

        A / B

        **

        Potenciación

        A ** B

        =

        Asignación

        C = A + B

        ( )

        Dar prioridad

        D = (A + B) * C

         

      3. Operadores de relación.
      4. Los operadores de relación se utilizan para comparar dos valores numéricos o dos valores alfanuméricos (no numéricos). El resultado puede ser verdadero o falso.

        Carácter

        Significado

        Ejemplo

        =

        Igual que

        A = B

        <

        Menor que

        A < B

        >

        Mayor que

        A > B

        <=

        Menor igual

        A <= B

        >=

        Mayor igual

        A >= B

        Estos operadores, tienen todos igual prioridad.

      5. Operadores de Lógicos.
      6. Los operadores lógicos nos permiten combinar varias expresiones de relación. Igual que los operadores de relación, se utilizan normalmente para tomar decisiones. Un operador lógico toma una combinación de valores verdaderos-falsos y devuelve un resultado verdadero o falso.

        Los operadores lógicos colocados en orden de prioridad son los siguientes: NOT, AND, OR.

        Las tablas de verdad correspondientes a estos operadores son las siguientes:

        A

        B

        Not A

        A AND B

        A OR B

        V

        V

        F

        V

        V

        V

        F

        F

        F

        V

        F

        V

        V

        F

        V

        F

        F

        V

        F

        F

         

      7. Expresiones aritméticas.
      8. Una expresión aritmética puede ser una constante, una variable o un conjunto de constantes y variables unidas por operadores aritméticos.

        Para su codificación hay que tener en cuenta que:

        * El paréntesis izquierdo no debe ir seguido de un espacio.

        * El paréntesis derecho no debe ir precedido de un espacio.

        * El signo = u los operadores +, -, *, - y ** deben ir precedidos y seguidos de un espacio.

      9. Orden de ejecución.
      10. A la hora de evaluar una expresión, la prioridad de las operaciones es la siguiente:

        1- Primero se evalúan las operaciones entre paréntesis, de los mas internos a los mas externos.

        2- Después, y siguiendo el orden que se describe a continuación se evalúan los operadores aritméticos:

        ** *, / +,-

        Los operadores escritos sobre una misma línea tienen la misma prioridad. Cuando en una expresión intervienen varios operadores con la misma prioridad, estos se evalúan de izquierda a derecha.

         

      11. Expresiones de BOOLE.

Una expresión de BOOLE da como resultado un valor verdadero o falso. Los operadores que intervienen en una expresión de BOOLE pueden ser: Operadores de relación y operadores lógicos.

Si en una expresión de BOOLE intervienen varios tipos de operadores primero se evalúan los operadores aritméticos, después los operadores de relación y por ultimo los operadores lógicos.

Ejemplo:

((A = 0) AND ((B*2) NOT = 0)) OR (C=0)

 

2- Estructura de un programa Cobol.

Descripción General.

Un programa fuente COBOL es un conjunto de sentencias COBOL sintácticamente correctas.

Las sentencias, entradas, párrafos y secciones de un programa COBOL son agrupadas en cuatro divisiones que forman la estructura general de dicho programa.

El formato general y el orden de presentación de las entradas y sentencias que constituyen un programa COBOL es:

IDENTIFICATION DIVISION.

ENVIRONMENT DIVISION.

DATA DIVISION.

PROCEDURE DIVISION.

[END PROGRAM id-programa]

Estos nombres representan las cabeceras de las cuatro divisiones mencionadas y la cabecera de final de programa que es opcional y valida bajo las normas ANS85. En esta ultima, id-programa debe coincidir con el nombre especificado en el parrafo PROGRAM-ID.

Identification division.

La division de IDENTIFICACION, sirve para proporcionar un nombre para identificar el programa. Opcionalmente se puede especificar información acerca del autor, fecha en que fue escrito, etc..

El formato general para la división es el siguiente.

IDENTIFICATION DIVISION.

PROGRAM-ID. Nombre del programa.

[AUTHOR. Nombre del programador.]

[INSTALATION. Lugar de instalación.]

[DATE-WRITTEN. Fecha en que fue escrito.]

[DATE-COMPILED. Fecha en que fue compilado.]

[SECURITY. Entrada de comentarios.]

Solo las dos primeras lineas, IDENTIFICATION DIVISION y PROGRAM-ID, son obligatorias.

Program-id.

Este parrafo sirve para espeficar el nombre del programa. Este nombre sera utilizado por el compilador o durante la ejecución para indicar en que programa ocurrio algun error.

El nombre del programa debe ajustarse a las reglas de formación de un identificador COBOL, vistas en el capitulo anterior.

El resto de los parrafos son opcionales, pueden aparecer en cualquier orden, y su utilización queda perfectamente definida en el formato descrito.

Si un comentario ocupa mas de una linea, no esta permitido utilizar el guión como caracter de continuación, sin embargo puede ser continuado en las lineas siguientes, comenzando en el margen B.

Environment division.

La division de ENTORNO permite definir el tipo de ordenador para el que fue escrito el programa, asi como los dispositivos perifericos necesarios para soportar los ficheros utilizados en el programa.

El formato general de la sección es el siguiente:

ENVIRONMENT DIVISION.

[CONFIGURATION SECTION.

SOURCE-COMPUTER. Modelo de ordenador.

OBJECT-COMPUTER. Modelo de ordenador.

SPECIAL-NAMES.

Nombres especiales.]

[INPUT-OUTPUT SECTION.

FILE-CONTROL.

Control de ficheros.

[I-O CONTROL.

Control de entrada / Salida.] ]

Seccion de configuración.

Esta sección es opcional. Su utilidad es documentar el programa COBOL, indicando el modelo de ordenador utilizado y asociar los nombres nemonicos especificados por el programador a nombres utilizados por el compilador. A continuación se describen los parrafos que la componen.

Parrafo SOURCE:

Sirve para especificar el modelo de ordenador que va a compilar el programa. Su formato es el siguiente:

SOURCE COMPUTER. Modelo de ordenador.

[WITH DEBUGING MODE.]

La opción WITH DEBUGING MODE permite introducir en el fichero fuente COBOL, codigo que nos servira de ayuda para depurar el programa.

Parrafo OBJECT:

Sirve para especificar el modelo de ordenador que va a ejecutas el programa. Su formato es el siguiente:

OBJECT COMPUTER. Modelo de ordenador.

[PROGRAM COLLATING SEQUENCE IS codigo]

[SEGMENT-LIMIT IS numero-segmento]. ]

La clausula MEMORY SIZE tiene como finalidad documentar el programa y especifica el tamaño de la memoria necesaria para poder ejecutar el programa expresado en palabras, caracteres o modulos.

La clausula SEQUENCE, especifica la secuencia de caracteres utilzada en comparaciones y clasificaciones no numericas. Si esta se omite se utiliza el codigo ASCII o EBCDIC. En nuestro caso se utiliza el codigo ASCII

La clausula SEGMENT-LIMIT solo sirve de comentario. La segmentación en COBOL tiene sentido en la PROCEDURE DIVISION, la cual y para este proposito, estara dividida completamentamente en secciones, cada una de las cuales estara clasificada como una porcion fija o como un segmento independiente del programa objeto. El numero de segmento esta comprendido entre 1 y 49.

Parrafo SPECIAL-NAMES:

El fomato de este parrafo es el siguiente:

SPECIAL-NAMES

[Nombre de función IS nombre nemónico]

[ALPHABET]

[DECIMAL-PIOINT IS COMMA]

[CURRENCY SIGN IS literal]

Nombre de función es un nombre reconocido por el compilador, por ejemplo PRINTER y nombre nemotecnico es un nombre creado por el programador.

La clausula ALPHABET se utiliza para asignar un nombre a un conjunto especifico de caracteres o a una determinada secuencia de clasificación.

El juego de caracteres STANDARD-1 o ASCII es el codigo American Standard Code for Information Interchange. STANDARD-2 es el codigo ISO 7-bit.

La clausula NATIVE se refiere al codigo ASCII o EBCDIC dependiendo de la version COBOL.

Cuando se especifica un nombre de alfabeto en una clausula CODE-SET en la descripción de fichero, es para especificar el codigo de caracteres que se quiere utilizar.

Si se especifica la opción de literal, el nombre de alfabeto no puede referenciarse en la clausula CODE-SET. La secuencia de clasificación identificada esta definida de acuerdo con las siguientes reglas:

1- El valor de cada literal especifica:

A) El valor ordinal de un caracter dentro del juego de caracteres nativo, si el literal es numerico.

B) El caracter actual dentro del juego de caracteres nativo, si el literal no es numerico. Si el literal no es numerico y esta formado por varios caracteres, cada caracter, comenzando con el caracter mas a la izquierda, es asignado a posiciones sucesivas, ascendentemente, en la secuencia de clasificación que esta especificando.

2- El orden en el que los literales aparecen en la clausula ALPHABET, en secuencia ascendente, especifica el número ordinal del caracter dentro de la secuencia de clasificación.

3- Cualquier caracter dentro de la secuenca nativa de clasificación que este explicitamente espresado en el literal, asume una posición, en la secuencia de clasificación, mayor que cualquiera de los caracteres explicitamente especificados.

4- Si se especifica la opción THRU, el conjunto de caracteres contiguos, del codigo nativo, que comienzan con el caracter especificado por el literal-1 y que termina con el caracter especificado por el literal-2, es asignado a posiciones sucesivas, ascendentemente, en la secuencia de clasificación que se esta especificando.

5- Si se especifica la opción ALSO, los caracteres del codigo nativo especificados por literal-1 y literal-3 se asignan a la misma posición en la secuencia de clasificación que se esta especificando.

Los caracteres que ocupan las posiciones mas baja y mas alta en la secuencia de clasificación definida, se asocian con las constantes figurativas LOW-VALUE y HIGH-VALUE respectivamente. Si estas posiciones son ocupadas por mas de un caracter, el valor de la constante figurativa correspondiente se asocia al ultimo caracter especificado.

La clausula DECIMAL-POINT IS COMMA permite transformar, en la edición de resultados, el punto decimal en los numeros, en coma.

La función de la clausula CURRENCY IS literal es la de reemplazar el signo $ de la moneda americana, que se usa en la clausula PICTURE, por el correspondiente signo de la moneda local. El literal esta limitado a un solo caracter, el cual debe especificarse en la clausula PICTURE correspondiente, en lugar del caracter $.

Seccion de entrada-salida.

Esta sección es opcional. Permite declarar los ficheros de E/S que utiliza el programa, asi como definir las tecnicas especiales de E/S.

Hosted by www.Geocities.ws

1