You are on page 1of 11

CARTILLA COBOL

FORMATO GENERAL PARA LA IDENTIFICATION DIVISION. IDENTIFICATION DIVISION. PROGRAM-ID. nombre-programa. [AUTHOR. [entrada comentario] ...] [INSTALLATION. [entrada comentario]... ] [DATE-WRITTEN. [entrada comentario]... ] [SECURITY. [entrada comentario]... ] FORMATO GENERAL PARA LA ENVIRONMENT DIVISION. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. nombre-computador. OBJECT COMPUTER. nombre-computador [, MEMORY SIZE numero { WORD CHARACTERS MODULES}] [, PROGRAM COLLATING SEQUENCE IS nombre-alfabeto]. [SPECIAL NAMES. [,SWITCH-n [is nombre-mnemonico] {,ON STATUS IS nombre-condicion-1 [, OFF STATUS IS nombre-condicion-2] , OFF STATUS IS nombre-condicion-2] [ , ON STATUS IS nombre-condicion-1]}] ... [,nombre-alfabeto IS {STANDARD-1 / NATIVE} ... [,CURRENCY SIGN IS literal] [, DECIMAL-POINT IS COMMA].] [INPUT-OUTPUT SECTION. FILE-CONTROL. {entrada-de-control-de-archivo} ... [I-O-CONTROL. [;SAME [RECORD] AREA FOR nombre-arch-1 {, nombre-arch-2} ...] ... .]]

FORMATO GENERAL PARA LA ENTRADA DE CONTROL DE ARCHIVO. FORMATO 1: (ARCHIVOS SECUENCIALES) SELECT nombre-archivo ASSIGN TO{ INPUT / INPUT-OUTPUT / OUTPUT /PRINT / RANDOM} , nombre-archivo-externo nombre-dato-1 [;RESERVE numero [{AREA / AREAS}]] [;ORGANIZATION IS { [LINE]/[BINARY]} SEQUENCIAL] [;ACCESS MODE IS SEQUENTIAL ] [;FILE STATUS IS nombre-dato-3]. FORMATO 2: (ARCHIVOS RELATIVOS) SELECT nombre-archivo ASSIGN TO RANDOM, nombre-archivo-externo nombre-dato-1 [;RESERVE numero [{AREA / AREAS}]] [;ORGANIZATION IS RELATIVE [;ACCESS MODE IS {SEQUENTIAL [,RELATIVE KEY IS nombre-dato-2] / {random/dynamic}, RELATIVE KEY is nombre-dato-2}] [;FILE STATUS IS nombre-dato-3]. FORMATO 3: (ARCHIVOS INDEXADOS) SELECT nombre-archivo ASSIGN TO RANDOM}, nombre-archivo-externo nombre-dato-1 [;RESERVE numero [{AREA / AREAS}]] [;ORGANIZATION IS INDEXED [;ACCESS MODE IS {SEQUENTIAL / RANDOM / DYNAMIC} ] ;RECORD KEY IS nombre-dato-2 [ALTERNATIVE RECORD KEY IS nombre-dato-3 [WITH DUPLICATES]] ... [;FILE STATUS IS nombre-dato-4].

FORMATO GENERAL PARA DATA DIVISION DATA DIVISION. [FILE SECTION. [FD nombre-archivo [BLOCK CONTAINS [numero-1 TO] numero-2 { RECORDS / CHARACTERS}] ; LABEL {RECORD IS / RECORDS ARE} {STANDARD/ OMITTED} [;VALUE OF LABEL is literal-1 [;DATA { RECORD IS / RECORDS ARE} nombre-dato-1 [, nombre-dato-2] ...] [;CODE-SET IS nombre-alfabeto] {entrada-descripcion-registro} ...] ...] [WORKING-STORAGE SECTION. {entrada-descripcion-nivel-77 / entrada-descripcion-registro} ...] [LINKAGE SECTION. {entrada-descripcion-nivel-77 / entrada-descripcion-registro} ...]

FORMATOS GENERALES PARA ENTRADA DE DESCRIPCION DE DATOS. (Para FILE , WORKING-STORAGE y LINKAGE SECTIONS) FORMATO 1: numero-nivel {nombre-dato-1 / FILLER} [;{PICTURE / PIC } IS hilera-caracteres] [;USAGE IS] { COMPUTACIONAL / COMP / COMPUTACIONAL-1 / COMP-1 / COMPUTACIONAL-3 / COM-3 / COMPUTACIONAL-6 / COMP-6 / DISPLAY / INDEX}] [; [SIGN IS {LEADING /TRAILING} [SEPARATE CHARACTER]] [;OCCURS { numero-1 TO numero-2 TIMES / numero-1 TIMES} DEPENDING ON nombre-dato-3 [INDEXED BY nombre-indice-1 [, nombre-indice-2] ...]] [;{SYNCHRONIZED / SYNC } {LEFT / RIGHT}] [;{JUSTIFIED / JUST} RIGHT] [;BLANK WHEN ZERO] [;VALUE IS literal]. FORMATO 2: 66 nombre-dato-1; RENAMES nombre-dato-2 [{THROUGH/THRU} nombre-dato-3] FORMATO 3: 88 nombre-condicion; {VALUE IS / VALUES ARE} literal-1 [{THROUGH/THRU} nombre-dato-2] [, literal-3 [ { THROUGH / THRU} literal-4]] ... .

FORMATOS GENERALES PARA PROCEDURE DIVISION. FORMATO 1: PROCEDURE DIVISION [USING nombre-dato-1] [, nombre-dato-2] ...]. [DECLARATIVES. {nombre-seccion SECTION [ numero-segmento]. Sentencia-declarativa. [nombre-parrafo. [sentencia] ...] ...} ... END DECLARATIVES.] {nombre-seccion SECTION [ numero-segmento]. [nombre-parrafo. [sentencia] ...] ...} ... END PROGRAM. FORMATO 2: PROCEDURE DIVISION [USING nombre-dato-1] [, nombre-dato-2] ...]. [nombre-parrafo. [sentencia] ...] ...} ... END PROGRAM. FORMATOS GENERALES PARA LOS VERBOS. ACCEPT {identif-1 [, UNIT {identif-2 / literal-1}] [,LINE{ identif-3 / literal-2}] POSITION { identif-4 / literal-3}] [,SIZE { identif-5 / literal-4} [,{PROMPT [literal-5] / UPDATE}] [,ECHO] [,CONVERT] [,TAB] [,ERASE{ [EOL]/[EOS]}] [, NO BEEP] [,OFF] [,BLINK] [,REVERSE] [,{HIGH/LOW}]} ... [,ON EXCEPTION identif-6 sentencia-imperativa] ACCEPT identificador FROM { DATE / DAY / TIME} ADD {identif-1 / literal-1} {,identif-2 / ,literal-2} ... TO identif-m [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] ADD {identif-1 / literal-1} {,identif-2 / ,literal-2} {,identif-2 / ,literal-2} ... GIVING identif-m [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] ADD {CORRESPONDING / CORR} identif-1 TO identif-2 [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] ALTER nombre-proced-1 TO [PROCEED TO] nombre-proced-2 [, nombre-procer-3 TO [PROCEED TO] nombre-proced-4] ...

CALL { identif-1 / literal-1} [USING nombre-dato-1 [, nombre-dato-2] ...] [ ON OVERFLOW sentencia-imperativa ] CANCEL { identif-1 / literal-1} { identif-2 / literal-2} ... CLOSE nombre-archivo-1 [ { REEL / UNIT} WITH NO REWIND | WITH { NO REWIND / LOCK } ] [. Nombre-archivo-2 [ { REEL / UNIT} WITH NO REWIND | WITH { NO REWIND / LOCK } ]] ... COMPUTE identif-1 [ROUNDED] = expresion-aritmetica [; ON SIZE ERROR sentencia-imperativa] DELETE nombre-archivo RECORD [INVALID KEY sentencia-imperativa] DISPLAY {{identif-1 / literal-1 } [, UNIT { identif-2 / literal-2 } ] [, LINE { identif-3 / literal-3 } ]] [, POSITION { identif-4 / literal-4 }] [, SIZE { identif-5 / literal-5 } [, BEEP] [, ERASE { [EOL] / [EOS] }] [, {HIGH / LOW} ] [, REVERSE] } ... DIVIDE { identif-1 / literal-1 } INTO identif-2 [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] DIVIDE { identif-1 / literal-1 } INTO {identif-2 / literal-2} GIVING identif-3 [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] DIVIDE { identif-1 / literal-1 } BY {identif-2 / literal-2} GIVING identif-3 [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] DIVIDE { identif-1 / literal-1 } INTO {identif-2 / literal-2} GIVING identif-3 [ROUNDED] [REMAINDER identif-4] [; ON SIZE ERROR sentencia-imperativa] EXIT [PROGRAM]. GO TO nombre-proced-1 GO TO nombre-proced-1 [, nombre-proced-2] ... , nombre-proced-n DEPENDING ON identificador

IF condicion; {sentencia-1 / NEXT SENTENCE} ; ELSE {sentencia-2 / NEXT SENTENCE} INSPECT identif-1 TALLYNG Identif-2 FOR { ALL identif-3 / LEADING literal-1 / CHARACTERS} [{ BEFORE / AFTER} INITIAL { identif-4 / literal-2}] INSPECT identif-1 REPLACING { ALL / LEADING / FIRST / CHARACTERS } {, identif-2 / literal-1 } BY {, identif-3 / literal-2 } [ {BEFORE / AFTER} INITIAL { identif-4 / literal-3 } INSPECT identif-1 TALLYNG Identif-2 FOR { ALL identif-3 / LEADING literal-1 / CHARACTERS} [{ BEFORE / AFTER} INITIAL { identif-4 / literal-2}] REPLACING { ALL / LEADING / FIRST / CHARACTERS } {, identif-5 / literal-3 } BY {, identif-6 / literal-4 } [ {BEFORE / AFTER} INITIAL { identif-7 / literal-5 } MOVE { identif-1 / literal-1 } TO identif-2 [,identif-3] ... MOVE { CORRESPONDING / CORR} identif-1 TO identif-2 MULTIPLY { identif-1 / literal-1 } BY identif-2 [ROUNDED ] [; ON SIZE ERROR sentencia-imperativa] MULTIPLY { identif-1 / literal-1 } BY {identif-2/ literal-2} GIVING identif-3 [ROUNDED ] [; ON SIZE ERROR sentencia-imperativa] OPEN { INPUT nombre-arch-1 [WITH LOCK] [WITH NO REWIND] [, nombre-arch-2 [WITH LOCK] [WITH NO REWIND]]... / OUTPUT nombre-arch-3 [WITH LOCK] [WITH NO REWIND] [, nombre-arch-4 [WITH LOCK] [WITH NO REWIND]]... / I-O nombre-arch-5 [WITH LOCK] [, nombre-arch-6 [WITH LOCK]]... / EXTEND nombre-arch-7 [WITH LOCK] [WITH NO REWIND] [, nombre-arch-8 [WITH LOCK] [WITH NO REWIND]]... } PERFORM nombre-proced-1 [{THROUGH / THRU} nombre-proced-2] PERFORM nombre-proced-1 [{THROUGH / THRU} nombre-proced-2] { identif-1 / numero-1} TIMES PERFORM nombre-proced-1 [{THROUGH / THRU} nombre-proced-2] UNTIL condicion-1

PERFORM nombre-proced-1 [{THROUGH / THRU} nombre-proced-2] VARYING {identif-1 /nombre-indice-1} FROM {identif-2 / nombre-indice-2 / literal-1} BY {identif-3 / literal-2} UNTIL condicion-1 [AFTER {identif-3 / nombre-indice-3} FROM {identif-4 / nombre-indice-4 / literal-3} BY {identif-5 / literal-4} UNTIL condicion-2 [AFTER {identif-5 / nombre-indice-5} FROM {identif-6 / nombre-indice-6 / literal-5} BY {identif-7 / literal-6} UNTIL condicion-3]] READ nombre-archivo RECORD [INTO identificador] [;AT END sentencia imperativa] READ nombre-archivo [NEXT] RECORD [WITH NO LOCK] [INTO identificador] [;AT END sentencia imperativa] READ nombre-archivo RECORD [WITH NO LOCK] [INTO identificador] [; KEY IS nombre-dato] [; INVALID KEY sentencia-imperativa] REWRITE nombre-registro [FROM { identificador / literal} [; INVALID KEY sentencia-imperativa] SET { identif-1 [, nombre-indice-2] ... / nombre-indice-1 [, nombre-indice-2] ...} TO { identif-3 / nombre-indice-3 / numero-1} SET nombre-indice-1 [, nombre-indice-2] ... {UP BY / DOWN BY identif-4 / numero 2}

START nombre-archivo [KEY { IS EQUAL / IS= / IS GREATER THAN / IS > / IS NOT LESS THAN/ IS NOT <} nombre-dato] [; INVALID KEY sentencia imperativa] STOP RUN { [, identificador] [, literal]} STOP literal SUBSTRACT { identif-1 / literal-1}, { identif-2 / literal-2} ... FROM identif-m [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] SUBSTRACT { identif-1 / literal-1}, { identif-2 / literal-2} ... FROM {identif-m / literal-m} GIVING identif-n [ROUNDED] [; ON SIZE ERROR sentencia-imperativa]

SUBSTRACT { CORRESPONDING / CORR} identif-1 TO identif-2 [ROUNDED] [; ON SIZE ERROR sentencia-imperativa] UNLOCK nombre-archivo RECORD WRITE nombre-registro [FROM { identif-1 / literal-1}] {BEFORE / AFTER} ADVANCING { identif-2 / numero / PAGE WRITE nombre-registro [FROM { identif-1 / literal-1}] [; INVALID KEY sentencia imperativa] FORMATO GENERAL PARA LA SENTENCIA DECLARATIVA USE AFTER STANDARD {EXCEPTION / ERROR} PROCEDURE ON { nombre-archivo-1 [, nombre-archivo-2] ... / INPUT / OUTPUT / I-O / EXTEND} FORMATO GENERAL PARA LA INSTRUCCIN COPY COPY { nombre-texto / nombre-archivo-externo} FORMATO GENERAL PARA CONDICIONES CONDICION DE RELACION {Identif-1 / literal-1 / nombre-indice-1} { { IS [NOT] GREATER THAN / IS [NOT] EQUAL TO / IS [NOT] LESS THAN/ IS [NOT] < / IS [NOT] > / IS [NOT] =} { identif-2 / literal-2 / nombre- indice-2} CONDICION DE CLASE Identificador IS [NOT] {NUMERIC / ALPHABETIC} CONDICION NOMBRE CONDICION Nombre-condicion CONDICION LLAVE LOGICA Nombre-condicion LINES / LINE }

CONDICION NEGADA SIMPLE NOT condicion-simple CONDICION COMBINADA Condicion-1 {AND / OR} condicion-2 ... OTROS FORMATOS {nombre-dato-1 / nombre-condicion} [ { OF/IN} nombre-dato-2] ... npmbre-parrafo [ {OF / IN} nombre-seccion] SUBINDICES {nombre-dato / nombre-condicion} (subindice-1 [, sunbindice-2 [, suiindice-3]] ) INDICES { nombre-dato / nombre-condicion} ({nombre-indice-1 [{+ -} literal-2] / literal-1} [, {nombre-indice-2 [{+ -} literal-4] / literal-3} [, {nombre-indice-3 [{+ -} literal-6] / literal-5}]] ) IDENTIFICADOR: FORMATO 1 nombre-dato-1 [{OF / IN} nombre-dato-2] ... [(subindice-1 [, subindice-2 [, subindice-3]] )] IDENTIFICADOR: FORMATO 2 nombre-dato-1 [{OF / IN} nombre-dato-2] ... [({ nombre-indice-1 [{+ -} literal-2] / literal-1} [,{ nombre-indice-2 [{+ -} literal-4] / literal-3} [,{ nombre-indice-2 [{+ -} literal-6] / literal-5}]] )]

VALORES DEVUELTOS EN LA VARIABLE DE ESTADO DE ARCHIVOS DIGITO IZQUIERDO 0 1 SIGNIFICADO Operacin Exitosa Fin de Archivo (o un archivo OPTIONAL no estaba disponible al hacer un OPEN) Clave invalida DIGITO DERECHO 0 2 0 SIGNIFICADO

Clave Duplicada (permitida)

1 2 3 4

Fuera de Secuencia Clave Duplicada (no permitida) No se encontro registro Disco lleno (Archivo indexado o relativo) Disco lleno ( Archivo secuencial o secuencial de linea) Estructura de archivo invalida Archivo o registro bloqueado No esta disponible sistema ISAM (Archivos indexados)

Error permanente (o no se encontro el archivo y no se lo declaro OPTIONAL) Otros errores

0 4 1 4 5

You might also like