Logo Studenta

COBOL (Common Business Oriented Language) programa de ejemplo

¡Estudia con miles de materiales!

Vista previa del material en texto

IDENTIFICATION DIVISION.
PROGRAN-ID. Nombre de Programa.
ENVIRONMENT DIVISION.
[ CONFIGURATION SECTION.
SPECIAL-NAMES.
 DECIMAL-POINT IS COMMA.]
[INPUT-OUTPUT SECTION.
FILE-CONTROL.
* Para ficheros secuenciales
 SELECT Fichero ASSIGN TO DISK.
* Para ficheros Indexados
 SELECT Fichero ASSIGN TO DISK
ORGANIZATION INDEXED
RECORD KEY IS CLAVE
[ACCESS IS RANDOM / DYNAMIC
FILE STATUS IS ERR.]
* Para Impresora
 SELECT IMPRES ASSIGN TO PRINTER.]
DATA DIVISION.
[FILE SECTION.
* Para cada fichero en Disco 
FD Fichero LABEL RECORD STANDARD
 VALUE OF FILE-ID Nombre de fichero.DAT.
01 Nombre de registro.
 02 Nombre de Campo PIC ....
 02 Tabla OCCURS veces.
 	03 Campos repetidos PIC ....
 .
 .
* Para la Impresora
FD IMPRES	LABEL RECORD OMITTED
 LINAGE 60 FOOTING 60 TOP 3 BOTTOM 3.
01 RIMPRES PIC X(80).]
WORKING-STORAGE SECTION.
01 CAMPOS-DE-TRABAJO VALUE 0".
 02 Nombre de campo PIC ...
 02 Tabmes.
 03 FILLER PIC X(30) VALUE... 
 02 Tab REDEFINES TABMES.
 . 03 MES OCCURS 12 PIC X(10)
01 CABECERA1.
 .
 . Se definen las cabeceras si las hay
RESUMEN DE COBOL
	COBOL .-Resumen de Comandos
	Pagina: 1
PROCEDURE DIVISION.
MOVE Nombre de Campo TO Nombre de campo [Nombre de campo ....] Literal
ADD Nombre de Campo TO Nombre de campo 
 Literal GIVING
SUBTRACT Nombre de Campo FROM Nombre de campo 
 Literal Literal Numerico
 	
 GIVING Nombre de campo
MULTIPLY Nombre de Campo FROM Nombre de campo Literal Literal Numerico
 	
 GIVING Nombre de campo
DIVIDE Nombre de Campo FROM Nombre de campo 
 Literal Literal Numarico
 	
 GIVING Nombre de campo
 Nombre de Campo
COMPUTE Nombre de Campo = Literal Numerico
 Expresión Aritmética
STOP RUN
 Literal
 DATE
ACCEPT Nombre de Campo FROM DAY 
 TIME
ACCEPT Nombre de Campo
 LENGTH-CHECK
 AUTO-SKIP
ACCEPT (Fila, Columna) Nombre de Campo WITH PROMPT 
 BEEP
 UPDATE
 
 
 		 Literal 
DISPLAY (Fila, Columna) Nombre de Campo 
 ERASE
 
PERFORM Nombre de Parrafo THRU Nombre de Parrafo
 Nombre de seccion
PERFORM Rango Entero TIMES
 Nombre de campo
PERFORM Rango VARYING Nombre de Indice FROM Cantidad1
 BY Cantidad2 UNTIL Condicion.
IF Condicion Declaracion/es ELSE Declaracion/es.
 INPUT
OPEN OUTPUT Nombre de Fichero ...... .......
 I-O
 EXTEND
Lectura Secuencial
READ Fichero AT END Declaracion Imperativa.
Lectura Secuencial, si ACCESS IS DYNAMIC
READ Fichero NEXT AT END Declaracion Imperativa.
Lectura al azar (solo ficheros Indexados)
READ Fichero INVALID KEY Declaracion Imperativa.
 GREATER
START Fichero KEY IS [NOT] LESS CLAVE
 EQUAL
DELETE Fichero (Solo Indexados)
GESTINMATICA.- Centro Homologado de F.P.2. en Informatica de Gestión
	COBOL .-Resumen de Comandos
	Pagina: 7
WRITE Rimpres FROM Nombre de Grupo [AFTER/BEFORE] 
 [AT EOP Declaración Imperativa.] 
WRITE Registro de Fichero [ FROM Nombre de Grupo]
 [INVALID KEY Declaracion Imperativa.]
REWRITE Nombre de Registro
CLOSE Fichero ..... ......
STRING Emisor DELIMITED BY Literal
 INTO Receptor WITH POINTER Contador
SORT Fichero Sort ASCENDING/DESCENDING Nombre de Campo del Fsort
 INPUT PROCEDURE Nombre de Seccion(ENTRADA)
 OUTPUT PROCEDURE Nombre de Seccion(SALIDA).
	ANEXO DE FICHEROS
1.- FICHEROS.
a) Definición en la SELECT
1.1.- Para ficheros secuenciales.
 SELECT Fichero ASSIGN TO DISK.
1.2.- Para ficheros Indexados.
 SELECT Fichero ASSIGN TO DISK
ORGANIZATION INDEXED
RECORD KEY IS CLAVE.
[ACCESS IS IS RANDOM/DYNAMIC]
b) Definiciones en la DATA DIVISION.
Para ambos ficheros es exactamente igual.
c) Creacion de un fichero.
Si secuencial 	se pueden añadir registros al final se se abre de EXTEND. No pueden darse altas entre 2 registros. Las altas se graban con WRITE.
Si indexado	se abre el fichero de I-O con acceso RANDOM, se pueden dar altas al final y entre registros. Se graban con WRITE.
NOTA: NO SE ABRIR UN FICHERO QUE YA EXISTA DE OUTPUT, SE BORRARIA.
Si un fichero indexado se desea crear y añadir registros en el mismo programa, se procede de la siguiente forma:
En la SELECT se incorpora la clausula FILE STATUS IS ERR. ERR es un campo de 2 octetos alfanumerico, donde el programa dejará un codigo de error si éste se produce durante la apertura del fichero. ERR = 30" significa, fichero no existente.
PROCEDURE DIVISION.
COMIENZO.
OPEN I-O FICHERO
IF ERR=30"
 OPEN OUTPUT FICHERO
 CLOSE FICHERO
 OPEN I-O FICHERO.
MENU.
 Etc.
d) Consulta de Ficheros.
1.1- En ficheros Secuenciales.
Solo se puede realizar secuencialmente.
Para obtener un listado de todo el fichero podemos realizar el siguiente seudocodigo:
FIN=N
LEER FICHERO
DO UNTIL FIN =S
 PROCESO
 MOVER CAMPOS A DETALLE
 LEER FICHERO AT END FIN=S.
 		ENDDO
1.2.- En ficheros Indexados.
 Se puede realizar de tres formas:
1.2.1.- Secuencialmente.
Se hace igual que para ficheros secuenciales.
1.2.2.- Al azar.
Se tiene que poner en la Select ACCESS IS RANDOM. El seudocodigo sería:
ENCONTRADO=S
CLAVE = INDICATIVO
LEER FICHERO INVALID KEY ENCONTRADO=S
IF ENCONTRADO = S
 VISUALIZAR REGISTRO
 ELSE
 VISUALIZAR ERROR.
1.2.3.- Entre limites (desde un indicativo hasta otro dados por teclado)	
El seudocodigo sería el siguiente:
 <COMIENZO>	
ACEPTAR DESDE
ACEPTAR HASTA
CLAVE=DESDE
ENCONTRADO=S
START FICHERO KEY IS NOT LESS CLAVEINVALID KEY ENCONTRADO=S
IF ENCONTRADO = S
 INVOCA <PROCESO>
 ELSE
 		 VISUALIZAR NO ENCONTRADO.
 <FIN>
 <PROCESO>	
 	 FIN=S
 LEER FICHERO NEXT
 DO UNTIL CLAVE > HASTA OR FIN=S
 PROCESO
 LISTAR
 LEER FICHERO NEXT AT END FIN=S
 ENDDO
 <FIN-PROCESO>
e) Modificacion de Registros.
Tanto en ficheros secuenciales como indexados se pueden REGRABAR, previa consulta, si el fichero está abierto de I-O.
Si la actualizacion es mediante teclado, se utiliza la orden:
ACCEPT CAMPO WITH UPDATE
Que visualiza el contenido del campo y permite modificarlo, de forma que un <ENTER> solo, no altere el contenido actual del campo.
f) Bajas de registros.
 En un fichero secuencial NO PUEDEN DARSE BAJAS. (Solo con Copia)
 En un fichero indexado se pueden dar bajas una vez consultado el registro, con la orden DELETE FICHERO.
image2.wmf
oleObject2.bin
oleObject3.bin
oleObject4.bin
oleObject5.bin
oleObject6.bin
oleObject7.bin
oleObject8.bin
oleObject9.bin
oleObject10.bin
oleObject11.bin
oleObject12.bin
oleObject13.bin
oleObject14.bin
oleObject15.bin
oleObject16.bin
oleObject17.bin
oleObject18.bin
oleObject19.bin
oleObject20.bin
oleObject21.bin
oleObject22.bin
oleObject23.bin
oleObject24.bin
oleObject25.bin
oleObject26.bin
oleObject27.bin
oleObject28.bin
oleObject29.bin
oleObject30.bin
oleObject31.bin
oleObject32.bin
oleObject33.bin
image3.wmf
oleObject34.bin
image1.wmf
oleObject1.bin

Continuar navegando

Contenido elegido para ti

39 pag.
Lenguaje SQL _DDL y DML_

User badge image

Materiales Generales

28 pag.
200 pag.
34 pag.
Clase_4_SQL_Parte_3

UNAM

User badge image

sanchezdavalos229