|
COBOL básico 1.- INTRODUCCIÓN 1.1 EL ORDENADOR Es una máquina que recoge datos, los almacena en memoria y trabaja con ellos para obtener unos resultados:
DATOS
ORDENADOR
RESULTADOS En
un ordenador distinguiremos dos
partes: 1.2 LENGUAJES DE PROGRAMACIÓN LENGUAJE - Conjunto de palabras y símbolos establecidos para comunicar información al ordenador. El único lenguaje que entiende el ordenador es el LENGUAJE MÁQUINA , escrito en binario, es decir 0 y 1. LENGUAJES SIMBÓLICOS - Aparecen en un intento de hacer la programación más sencilla ya que se asemejan más al lenguaje hablado. Se dividen en: · LENGUAJES DE BAJO NIVEL: Lenguajes parecidos al de la máquina y orientados hacia ella, son largos y difíciles de leer y ejecutar. Ej. EMSAMBLADORES. · LENGUAJES DE ALTO NIVEL: Lenguajes que facilitan la programación por asemejarse al lenguaje humano. Son universales en tanto que son válidos para todos los ordenadores. Ej. FORTRAN, COBOL, C, PASCAL, BASIC,… COMPILADOR E INTERPRETE
- Se encargan de traducir el lenguaje fuente (BASIC, COBOL…) a lenguaje máquina
para que el ordenador lo pueda ejecutar. 1.3 DEFINICIÓN DE PROGRAMA Conjunto
de instrucciones escritas en secuencia, que aplicadas a un conjunto de datos y
ejecutadas por un ordenador permiten resolver un determinado problema. · El ANALISIS del problema - Se clasifica la información a tratar y se dan las soluciones previstas. · Elaboración de ALGORITMOS - Se desarrollan los planteamientos anteriores de manera genérica. · CODIFICACIÓN del programa - Traducción de los algoritmos al lenguaje adecuado. Análisis _ Algoritmo _ Codificación _ Compilación _ Depuración y Pruebas 1.4 COMPONENTES DE UN PROGRAMA La información manejada por un programa esta compuesta por objetos, expresiones e instrucciones. 1.4.1 OBJETOS DE UN PROGRAMA,
DATOS 1.4.2 EXPRESIONES 1.4.3 INSTRUCCIONES DE UN
PROGRAMA a) Instrucciones de DECLARACIÓN.- Declaran y definen los datos que va a manejar el programa. b) Instrucciones PRIMITIVAS.- Son aquellas que son ejecutadas de forma inmediata por el programa. Pueden ser: · Inst. de ASIGNACIÓN.- Almacenan en una variable el resultado de evaluar una expresión. Ej. a=a+1 · Inst. de ENTRADA.- Leen un dato de un periférico y lo almacenan en una variable definida en el programa. Ej. Leer a · Inst de SALIDA.- Escribe en un periférico el valor de un objeto del programa. Ej. Escribir a c) Instrucciones de CONTROL.- Son las encargadas de controlar la secuencia de ejecución de un programa, bien para que se ejecuten o no una serie de instrucciones, o bien para que estas se ejecuten más de una vez. Según su función pueden ser: · Inst. CONDICIONALES.- Evalúan el valor de una expresión de tipo lógico y en función del resultado permiten que se ejecute o no un grupo de instrucciones. Existen dos tipos de condicionales. CONDICIONAL SIMPLE
si P
Donde P es una expresión lógica
que devuelve V o F CONDICIONAL COMPUESTA
si P
Donde P es una expresión lógica
que devuelve V o F. · Inst REPETITIVAS o BUCLES.- Hacen que una o más instrucciones se repitan varias veces durante la ejecución de un programa. Existen tres tipos. REPETIR
repetir MIENTRAS
mientras P hacer La principal diferencia entre ambas estructuras es el lugar donde se comprueba la condición de salida (P). En la estructura mientras la condición se comprueba antes de entrar al bucle con lo que si la condición es falsa las instrucciones que estén dentro no se ejecutan nunca, por el contrario en las estructura repetir las instrucciones se ejecutan al menos una vez, pues la condición se comprueba después de pasar por las instrucciones contenidas dentro del bucle. PARA
para V = Vi hasta Vf hacer Esta estructura se utiliza cuando se sabe de antemano el número de veces que se va a repetir el bucle.
2.- ELEMENTOS DEL LENGUAJE COBOL 2.1 CARACTERES El
carácter es la partícula elemental de cualquier lenguaje. Son todos aquellos símbolos
que se permiten para representar palabras. 2.2 PALABRAS Están
formadas por los caracteres Cobol permitidos. Se agrupan en: NOMBRES DEL PROGRAMADOR O IDENTIFICADORES: Son nombres creados para el programa, para reconocer por ejemplo las variables. Para su formación se deben tener en cuenta las siguientes normas: 1. No pueden tener el mismo nombre que una palabra reservada del lenguaje. 2. No pueden exceder de 30 caracteres, y estos sólo pueden ser letras, dígitos y el guión. 3. Deben comenzar por una letra. 4.
No
pueden llevar dos guiones seguidos, y este no puede ser el último 5. No se les pueden intercalar espacios en blanco. 2.2 CONSTANTES O LITERALES Son
valores que no cambian a lo largo de la ejecución del programa. Se dividen en
tres grupos: 1. Se componen de dígitos, el signo + o - y la coma (punto) decimal. 2. El signo debe escribirse a la izquierda sin dejar espacio en blanco antes de la primera cifra. 3. La coma no puede ser ni el primer ni el último carácter de la constante. 4. Como máximo se permiten hasta 18 dígitos. Constantes ALFANUMÉRICAS – Expresan cualquier combinación de los caracteres Cobol permitidos, con las siguientes reglas de construcción: 1. No pueden exceder, en ningún caso, de 2047 caracteres. 2. Pueden contener cualquier carácter ASCII. 3. Deben ir encerrados entre comillas o apóstrofes. Constantes FIGURATIVAS – Son constantes predefinidas por el lenguaje que se utilizan para asignar valores iniciales a las variables. Son las siguientes: - SPACE o SPACES – Representa uno o más espacios en blanco. - ZERO
– Representa el valor cero. Puede utilizarse como valor numérico en - ALL ‘carácter’ – Asigna a una variables uno o varios de los caracteres que se especifican entre comillas. - LOW-VALUE – Representa el menor valor a asignar, a una variable alfanumérica. - HIGH-VALUE.- Representa el mayor valor a asignar, a una variable alfanumérica. 2.4 REGLAS DE PUNTUACIÓN 1. El punto gramatical, la coma y el punto y coma no pueden ir precedidos por un espacio en blanco, pero deben ir seguidos de él. 2. El paréntesis izquierdo debe llevar un espacio a su izquierda y ninguno a la derecha, y el derecho no puede llevar espacio a su izquierda y si a la derecha. 3. Los operadores aritméticos +,-,*,/.= y los relacionales <,>,=,>=,<= deben ir precedidos y seguidos de un espacio en blanco. 4. Entre dos palabras reservadas sucesiva debe existir al menos un espacio. 5. Los nombres de división, sección, párrafo y procedimiento deben terminar en punto. 2.5 HOJA DE CODIFICACIÓN La hoja de codificación nos indica como y en que columnas se codifican las instrucciones de los programas COBOL: Columnas 1 a 3 – Sirven para numerar las páginas del programa. Su uso no es obligatorio. Columnas 4 a 6 – Sirven para numerar las líneas de cada página. Tampoco es obligatorio usarlas. Columna 7 – En ella sólo pueden aparecer los caracteres * y – con la siguiente función: * Indica que la línea que viene a continuación es un comentario explicativo del programa. – Indica que en esa línea continua una constante alfanumérica que quedó interrumpida en la línea anterior. Columnas 8 a 72 – Es la parte donde se escribe el programa. Se divide a su vez en dos áreas: Columnas 8 a 11 – Area A. En este área deben comenzar: w Nombres de DIVISION. w Nombres de SECCION. w Nombres de PARRAFO. w Nombres de Procedimiento. w Indicador FD para descripción de archivos. w Los números de nivel 01 y 77de descripción de datos, y, opcionalmente los números de nivel del 02 al 49, el 66 y el 88, también de descripción de datos. Columnas 12 a 72 - Area B. En esta área deben comenzar: w El resto de declaraciones y sentencias del programa. Columnas 73 a 80 - Son ignoradas por el compilador. 2.6 NOTACIÓN 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. literal-numérico-1 [, identificador-3 [ ROUNDED ] ] … [; ON SIZE ERROR instrucción-imperativa ] Mayúsculas: Los términos escritos en mayúsculas son palabra reservadas del lenguaje. Subrayado: Las palabras reservadas subrayadas y no escritas entre llaves o corchetes son obligatorias al codificar la instrucción. Las no subrayadas son opcionales. Minúsculas: Especifican la información que debe suministrar el programador. Es obligatoria salvo que este entre corchetes. Llaves: Es obligatorio elegir una opción entre las escritas dentro de ellas. Corchetes: La información incluida en ellos es opcional. Puntos suspensivos: Indican que la información que les precede puede repetirse varias veces.
3.- ESTRUCTURA DE UN PROGRAMA COBOL 3.1 INTRODUCCIÓN 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: IDENTIFICATION
DIVISION. 3.2 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. IDENTIFICATION
DIVISION. PROGRAM-ID. Nombre del programa. Es el único párrafo
obligatorio y sirve para especificar el nombre del programa. Este nombre será
usado por el compilador o en la ejecución del programa para indicar algún
error. 3.3 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:
ENVIRONMENT
DIVISION. 3.3.1
CONFIGURATION SECTION (Sección de Configuración) ENVIRONMENT
DIVISION. 3.3.2
INPUT-OUTPUT SECTION (Sección de entrada/salida) 3.4 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: 3.4.1
FILE SECTION (Sección de Ficheros) 3.4.2
WORKING-STORAGE SECTION (Sección de Trabajo) Números
de nivel · Campos elementales. Un campo elemental es aquel que no puede subdividirse. · Campos compuestos. Un campo compuesto está formado por varios campos elementales. · Campos independientes. Un campo independiente es un campo de trabajo que no depende de ningún otro. Los
números de nivel que pueden utilizarse son del 01
al 49, 66, 77 y 88.
El nivel superior es el 01. · 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. Cláusula PICTURE nn identificador PIC IS especificación de formato. nn
especifica el numero de nivel. Campos
alfabéticos Campos alfanuméricos Campos numéricos 9
Representa
una cifra del 0 al 9, es decir un dígito decimal. 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. 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. PICTURE para edición 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. *
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. . El punto hace que se inserte un punto decimal para separar la parte entera de la parte fraccionaria al escribir el campo. , Hace
que se inserte este mismo carácter en el lugar que se indica de la especificación
de formato. B, 0 , / Permite insertar un espacio en blanco, un cero o una barra en el lugar que se indican de la picture. CR, DB Son símbolos bancarios indicativos de crédito y débito. Sólo pueden colocarse a la derecha de la especificación de formato. Se imprimen si el valor del campo es positivo, si no lo es en su lugar aparecen dos espacios en blanco. $
Colocado en primer lugar de la picture permite la aparición de este carácter
en el lugar indicado. +
Colocado en primer o último lugar de la picture permite la aparición de un +
para valores positivos , o un -
para negativos en el lugar indicado. -
Colocado en primer o último lugar lugar de la picture permite la aparición de
un espacio en blanco para valores positivos o un - para valores negativos en el
lugar indicado. Cláusula
VALUE 3.4.3 LINKAGE SECTION (Sección
de Enlace) 3.4.4 COMMUNICATION SECTION
(Sección de Comunicaciones) 3.4.5 SCREEN SECTION (Sección
de Pantalla) 3.5 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). 4.- SENTENCIAS BÁSICAS DE LA PROCEDURE DIVISION 4.1 VISUALIZAR DATOS. DISPLAY Esta
sentencia permite escribir datos en el dispositivos estándar de salida, la
pantalla. 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. Otras
opciones: 4.2 LEER DATOS. ACCEPT Permite asignar valores a uno o más variables
desde el teclado. Al
igual que DISPLAY, también permite efectuar la entrada de datos colocando el cursor en una determinada posición, usando LINE
y POSITION. También
funcionan con ACCEPT las opciones ERASE, HIGH, LOW, BLINK, REVERSE y CONTROL,
todas ellas con las mismas funciones que en DISPLAY. Además existen las
siguientes posibilidades: 4.3 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. 4.4 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 Opción
GIVING 4.5 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 |