Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
VENTAJAS E INCONVENIENTES: .Ventajas: .facilidad para el manejo de ficheros .Las instrucciones son palabras del ingls. .Inconvenientes: .Incmodo de escribir ya que la sintaxis de las instrucciones es bastante amplia.
COMO CREAR UN PROGRAMA COBOL: 1.Escribir el cdigo fuente en lenguaje COBOL. .Editor de textoASCII (texto plano): .Ejemplo: el EDIT de MS-DOS, PSPad, Bloc de notas de Windows, etc... .Las instrucciones o comandos de cobol se debern escribir en dicho editor de texto cumpliendo todas las reglas del lenguaje que veremos a lo largo del curso. .Guardaremos el archivo asignndole un nombre y una extensin (.CBL o .COB) .A:\EJEM10.CBL o C:\EJEM20.COB
COMO CREAR UN PROGRAMA COBOL: 2.Compilar el cdigo fuente para convertirlo en cdigo mquina .Podemos hacerlo con cualquiera de las siguientes opciones: .Hacer doble clic sobre el fichero de texto. .Ejecutar el programa RMCOBOL V.7 / COMPILER. .Para evitar que el compilador nos realice preguntas respecto a las opciones de compilacin ser necesario poner [;] al final del fichero. .Si la compilacin fuera satisfactoria se generar un archivo, con el cdigo mquina, con extensin . COB y el mismo nombre que el archivo del cdigo fuente.
HOJA DE CODIFICACIN .La columna 7: En esta columna solo se puede escribir un * lo cual indica al compilador que la lnea es un comentario y debe ser ignorada; o un . que indica que una informacin literal no ha cabido entera en la lnea precedente, para ello el literal debe llegar a la columna 72 (y sin cerrar comillas) en la lnea siguiente poner . y en la columna 12, abrir de nuevo comillas y el resto del literal (estas comillas si deben ser cerradas).
NORMAS Y CONSEJOS .Losnombresdedivisin,seccinyprrafodebenirenunasolalnea. .Cadalneadelprogramadebeacabarenpunto. .Unalneadelprogramapuedeocuparmsdeunalneafsica. .Siunalneanoacabaenpunto,lasiguienteseconsideralacontinuacindelamisma. .Noesobligatoriollenartotalmenteunalneafsica. .Sepuedendejarlneasenblancoparamayorcompresindelmismo. .Losprogramascoboldebenserescritosenmaysculas(Hayversionesdelcompiladorenlasqueno esobligatorio).
SINTAXIS DEL LENGUAJE .Elementos bsicos del lenguaje: Caracteres: .Las letras maysculas y minsculas del alfabeto ingls: .A B C D E F G H I J K L M N O P Q R S T U V W X Y Z .a b c d e f g h i j k l m n o p q r s t u v w x y z .Los diez dgitos decimales: .0 1 2 3 4 5 6 7 8 9 .Los caracteres especiales: ., . ; ( ) < / + * -= > $ : .Y el espacio en blanco
SINTAXIS DEL LENGUAJE .Elementosbsicosdellenguaje: Palabras: .Creadasporelprogramador:Estassonutilizadasparadefinirvariables,campos,registros ,ficheros, prrafos,etc.Sesubdividenen: .Nombresdedatos:Eselnombreconelqueseidentificaaundeterminadocampoovariable,debern respetarlassiguientesreglas: .Debentenerentre1y30caracteres .Nopuedentenerningnespacioenblanco .Almenosunodeloscaracteresdebeserunaletra .Nopuedenusarsepalabrasreservadas
SINTAXIS DEL LENGUAJE .Elementosbsicosdellenguaje: Palabras: .Creadasporelprogramador:Estassonutilizadasparadefinirvariables,campos,registros ,ficheros, prrafos,etc.Sesubdividenen: .Nombresdeprrafososeccin:Eselnombreconelqueseidentificaaunprrafoounaseccin,deberespe tarlassiguientesreglas: .Debentenerentre1y30caracteres .Loscaracteresslopuedenserletras,nmerosyelguin .Elguinnopuedeirnielprimeronielltimo.
SINTAXIS DEL LENGUAJE .Elementosbsicosdellenguaje: Palabras: .Creadasporelprogramador:Estassonutilizadasparadefinirvariables,campos,registros ,ficheros,prrafos, etc.Sesubdividenen: .Constantes literales: Datos que no cambian su valor durante la ejecucin del programa. Pueden ser alfanumricos y numricos. Deben cumplir las siguientes normas: .Deben ir entre comillas si son alfanumricos. .Dentro de las comillas no pueden ir otras comillas en los alfanumricos. .Pueden usarse palabras reservadas en los alfanumricos. .Pueden tener entre 1 y 132 caracteres si son alfanumricos y 18 si son numricos .Pueden estar precedidos del signo si son numricos.
SINTAXIS DEL LENGUAJE .Elementosbsicosdellenguaje: Palabras: .Palabras Reservadas: Son palabras clave que tienen predefinido un significado especial para el compilador de COBOL que representan instrucciones o clusulas a realizar por este. .Verbos: Son palabras que expresan una accin a realizar con los datos o ficheros como MOVE, ADD, READ .Palabras clave: Son las que deben aparecer obligatoriamente en una clusula para que esta se ejecute como MOVE 1 TOA. .Palabras opcionales: Son aquellas que pueden omitirse en una clusula, dependen de la versin del compilador, como ACCESS MODEISRANDOM
SINTAXIS DEL LENGUAJE .Constantes figurativas: HIGH-VALUE/S: Designa el valor ms alto en un dato alfanumrico MOVE HIGH-VALUE TO VARIABLE. LOW-VALUE/S: Designa el valor ms bajo para un dato alfanumrico MOVE LOW-VALUE TO VARIABLE. ALL: Genera tantas veces un carcter como diga la longitud del dato 77 VARIABLE PIC X(10). ... MOVE ALL TO VARIABLE.
QUOTE:Genera unas comillas en las salidas de datos o en los literales DISPLAY El ingenioso hidalgo QUOTE Don Quijote QUOTE
Un programa COBOL est estructurado en cuatro DIVISIONES. Dos de estas DIVISIONES son obligatorias. Deben ir en riguroso orden. No es posible crear ms divisiones.
SINTAXIS DEL LENGUAJE ESTRUCTURADEUNPROGRAMACOBOL: PARRAFOS Un prrafo es la secuencia de una o ms oraciones. IDENTIFICATION DIVISION: est dividida en prrafos. PROCEDURE DIVISION: es habitual dividirla en prrafos, creados por el programador para una mejor compresin del programa.
SINTAXIS DEL LENGUAJE .IDENTIFICATIONDIVISION: Formato: IDENTIFICATIONDIVISION. PROGRAM-ID.Nombre_programa. [AUTHOR.Nombre_autor.] [INSTALLATION.Ordenador_de_instalacin.] [DATE-WRITTEN.Fecha_de_comienzo.] [DATE-COMPILED.Fecha_de_ltima_compilacin.] [SECURITY.Comentarios.] .Soloelnombredeladivisinyelprimerprrafosonobligatorios. .EnelprrafoPROGRAM-ID.seespecificarelnombredelprograma, estenombreseutilizarpararealizarllamadasentresubprogramas. .Elrestodeprrafosnosonobligatoriosysuusoessimplementeinformativo.
SINTAXIS DEL LENGUAJE .A partir de ahora el formato que utilizaremos para describir la estructura de un programa en COBOL ser: .Irn en maysculas las palabras reservadas. .En minsculas el nombre de las variables, campos o registros. .Entre [ ] irn aquellas expresiones que pueden ser opcionales. .Entre { } varias expresiones a elegir una obligatoriamente. .Los puntos suspensivos indicarn que se puede repetir la opcin tantas veces como sea necesaria.
SINTAXIS DEL LENGUAJE .EjemplosdeIDENTIFICATIONDIVISION Ejemplo1. IDENTIFICATION DIVISION. PROGRAM-ID. EJEMPLO1. AUTHOR. MANUEL CHACON. INSTALLATION. PC-COMPATIBLES. DATE-WRITTEN. 25/07/03. DATE-COMPILED. 25/07/03. SECURITY. EJEMPLO DE LA PRIMERA CLASE. Ejemplo2. IDENTIFICATION DIVISION. PROGRAM-ID. EJEMPLO2.
SINTAXIS DEL LENGUAJE .ENVIRONMENTDIVISION: Enestadivisin,ladelentornofsico,sepermitedefinireltipodeordenadorenelqueelprograma vaaserinstalado,ascomolosdispositivosperifricosyficherosnecesariosparaelfuncionami entodelmismo. Formato: ENVIRONMENTDIVISION. [CONFIGURATIONSECTION.](Seccin1) [SOURCE-COMPUTER.Modelo_ordenador.] [OBJECT-COMPUTER.Modelo_ordenador.] [SPECIAL-NAMES.] *Nombres_Especiales. [INPUT-OUTPUTSECTION.](Seccin2) [FILE-CONTROL.] *Descripciondeficheros. [I-O-CONTROL.] *Controldelaentrada/salida.
SINTAXIS DEL LENGUAJE .ENVIRONMENTDIVISION: Configurationsection(Seccindelaconfiguracin) Esopcional(comotodaladivisin)ysuutilidadesladedocumentarelprograma.Contienetresprr afos: .SOURCE-COMPUTER:Enelseespecificaelmodelodeordenadorenelquesecompilelprograma. .OBJECT-COMPUTER:Enelseespecificaelmodelodeordenadordondesevainstalarelprogramae jecutable. .SPECIAL-NAMES:Sepuedenponernombreespecialesadispositivosyconfigurareltipodealfa betoausar ,
STANDARD-1 STANDARD-2 ALPHABET nombre_alfabetoIS NATIVE ASCII EBCDIC Estaclusulanospermiteespecificarelnombredeljuegodecaracteresausarporelprograma.Do ndeelalfabetoSTANDARD-1eselcdigoASCII, STANDARD-2eselcdigoISO7bits,NATIVEestambinelcdigoASCIIylosotrosdossonexactamentelos cdigosreferidosASCIIyEBCDIC.
SINTAXIS DEL LENGUAJE .ENVIRONMENTDIVISION: Ejemplo ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. PC-COMPATIBLE. OBJECT-COMPUTER. PC-COMPATIBLE. SPECIAL-NAMES. SYSOUT IS PANTALLA CURRENCY IS E
SINTAXIS DEL LENGUAJE .DATADIVISION: .Esladivisindelosdatos. .Seutilizaparaespecificartodaslasvariablesqueseusanenelprograma,ascomolaspantalla sylosinformesdeimpresora. .Tambinseutilizaparaespecificarlosregistrosycamposdelosficheros. .NoesobligatoriosuusoenunprogramaCOBOL, peroenun99%delosprogramasserutilizada.
[DATADIVISION.] [FILESECTION.] *Secciondeficheros [WORKING-STORAGESECTION.] *Seccindedescripcindevariablesycampos [LINKAGESECTION.] *Seccindeenlacedevariablesycamposconotrosprogramas [COMMUNICATIONSECTION.] *Seccindelacomunicacin [REPORTSECTION.] *Seccindeinformesdeimpresora [SCREENSECTION.] *Seccindepantallas
Seutilizaconficheros. .Working-StorageSection(Seccindeltrabajo)
Seccinqueseusaparacompartiryusarlasvariablesdeunprogramaenunsubprograma. .CommunicationSection(Seccindelacomunicacin)
Estaseccinpermiteprocesarmensajesycontrolarelflujodelosmismos. .ReportSection(Seccindeinformes)
Estaseccinhasidolaltimaenincorporarseysirveparacrearinformesporimpresora. .ScreenSection(Seccindelaspantallas)
Conestaseccinsepodrncrearlarepresentacindelosdatosenpantallas.
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Ejemplos: PICX(n) DondeXsignificaqueelcampoesalfanumricoynlalongituddelcampo. PICA(n) DondeAsignificaqueelcampoesalfabticoynlalongituddelcampo. PIC9(n) Donde9significaqueelcampoesnumricoynlalongituddelcampo. PIC9(n)V9(m) Donde9significaqueelcampoesnumrico,laVqueelcampocontienedecimalesymlalongituddelo sdecimales. PICS9(n)oPICS9(n)V9(m) Igualquelosdosanteriores.LaSsignificaqueelcamposiemprellevarelsigno.
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Nmerosdenivel:sirvenparaclasificarlosdistintostiposdedatosausarenelprograma.Exist enlossiguientes: Nivel 77.Campos elementales: Para definir variables independientes o simples sin subdivisiones. El nmero de nivel usado para estos campos es el 77. Formato: 77 nom_datoPIC formato Ejemplo 4: 77 NOMBRE PIC X(20).
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Nmerosdenivel:sirvenparaclasificarlosdistintostiposdedatosausarenelprograma.Exist enlossiguientes: Niveles01-49.Camposcompuestos:Paradefinirunajerarquadedatos.Elcampodemayorniveles el01.Elformatoeselmismoqueeldelnivel77. ejercicio: Crearunajerarquadedatosconlasiguienteestructura:
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Nmerosdenivel:sirvenparaclasificarlosdistintostiposdedatosausarenelprograma.Exist enlossiguientes: Solucin: 01 DATOSEMPLEADO. 02 NOMBRE. 03 PILA PIC X(20). 03 APELLIDOS PIC X(40). 02 EMPLAZAMIENTO. 03 DIRECCION. 04 CALLE PIC X(20). 04 PISO PIC XXX. 04 PUERTA PIC XXX. 03 CIUDAD PIC X(20). 02 SUELDO PIC 9(4)V99. LosdatosdefinidosennivelessuperioresnonecesitandelaclusulaPICpuestoquesulongitude slasumadetodosloscampossubordinados.
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Nmerosdenivel:sirvenparaclasificarlosdistintostiposdedatosausarenelprograma.Exist enlossiguientes: Nivel 77.Constantes: Este nivel es usado para definir una constante con un nombre. El valor de la constante ser fijo a lo largo de todo el programa. Formato: 78 nom_constanteVALUE valor. Ejemplo 5: 78 PI VALUE 3.141592.
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Nmerosdenivel:sirvenparaclasificarlosdistintostiposdedatosausarenelprograma.Exist enlossiguientes: Nivel88.Estadosdeuncampo:Elnivel88suutilizaparadescribirlosestadosdeuncamposegnsu valor.Estosestadospodrnserluegoutilizadosenlascondicionesdelprograma,simplificand oyhaciendomscomprensivoelmismo. Formato: 88estadoVALUEvalor. Ejemplo6: 77 VEHICULO PIC 9. 88 BICICLETA VALUE 0. 88 MOTO VALUE 1. 88 COCHE VALUE 2. 88 CAMION VALUE 3.
SINTAXIS DEL LENGUAJE .DATADIVISION: En la PROCEDURE DIVISIN se podrn usar esto campos de la siguiente manera: IF BICICLETA...Si queremos comprobar si VEHCULO = 0 IF MOTO... Si queremos comprobar si VEHCULO = 1 IF COCHE... Si queremos comprobar si VEHCULO = 2 IF CAMION... Si queremos comprobar si VEHCULO = 3
SINTAXIS DEL LENGUAJE .DATADIVISION: Working-StorageSection(Seccindeltrabajo) Nmerosdenivel:sirvenparaclasificarlosdistintostiposdedatosausarenelprograma.Exist enlossiguientes: Nivel66.Permiteasignarunnuevonombreauncampoelementalconelcontenidodeunoovariosca mposdeuncampocompuesto.ParasuusoesimprescindiblelaclusulaRENAMES. TambinsepuedeusarlapalabraclaveTHRUparaasignarunrangodevalores. Formato: 66nom_dato1RENAMESnom_dato2THRUnom_dato3. Ejemplo: 01 REG-PERSONAL. 02 CODIGO PIX X(3). 02 NOMCOMP. 03 PILA PIC X(20). 03 APE1 PIC X(20). 03 APE2 PIC X(20). 03 PROVINCIA PIC X(20). 66 APELLIDOS RENAMES APE1 THRU APE2. Tras la descripcin del dato en el nivel 66 la variable APELLIDOS contendr el valor de APE1 y APE2.
SINTAXIS DEL LENGUAJE .PROCEDUREDIVISION: EstaDivisinesobligatoriaenunprogramaCOBOLylausaremosparaindicarlelasinstrucciones COBOLylalgicanecesariaspararesolverelproblemplanteado. LaPROCEDUREDIVISIONpuedeserdivididaenseccionesyestaasuvezenprrafos,odirectamentee nprrafos(estoesmsfrecuente). SepuedeusarlaseccindelasDECLARATIVEScuyafuncinufuncinesladeltratamientodeerrores;en casodeaparecer, stahadehacerloalprincipio.
SINTAXIS DEL LENGUAJE .PROCEDUREDIVISION: FORMATO: PROCEDURE DIVISION [USING nom_dato...]. [DECLARATIVES.] [nom_seccionSECTION.] [nom_prrafo.] sentencias. . . [END-DECLARATIVES.] [nom_seccionSECTION.] [nom_prrafo.] sentencias. . . Dentro de las secciones o prrafos el programa deber usar las instrucciones COBOL.
SENTENCIAS BSICAS I .DISPLAY LainstruccinDISPLAYpermitevisualizardatosyliteralesporpantalla,oredireccionarlosa laimpresora,conDISPLAYsepuedenvisualizarmsdeunavariableoliteral,tansolaseparndolos porunespacioenblanco. Formato: nom_datoLINEnmCOLUMNnm DISPLAY...[WITHopciones]. literalATfico .Lospuntossuspensivosnosindicanquepodemosvisualizarvariosliteralesovariablesenlam ismainstruccinDISPLAY.
SENTENCIAS BSICAS I .DISPLAY WITH:nospermitirnhacermsatractivalasalidadedatosporlapantalla.Sisequierenusardosoms opcionesenlamismainstruccinDISPLAY, estasdebenestarseparadasporunespacioenblanco. Lasopcionesson: .BEEPOBELL:Generaunpitido. .BLINK:Eldatovisualizadoparpadear. .HIGHLIGHT:Eldatoaparecerconunamayorintensidaddecolor.
SENTENCIAS BSICAS I .DISPLAY OpcionesdeWITH: .REVERSE-VIDEO:Eldatosevisualizarenvideoinverso,esdecirElcolordefondopordefectose usarparaelcolordelaletrayviceversa. .UNDELINE:Elelementoaparecesubrayado.Estaopcinsoloesvlidaparamonitoresmonocromo. .BLANKLINE:Borratodalalneadesdelaposicindelcursorhaciadelante .BLANKSCREEN:Borratodalapantalla.Colocaelcursorenfila1columna1. .SIZEnm:Especificaeltamaoquevaatenerlaentradaporteclado.SiesmayorquelePICdelavaria bleesignoradaperosiesmenorsolodejarentrartantosdatoscomodiganm .FOREGROUND-COLORISnm:Especificaelcolordelaletra. .BACKGROUND-COLORISnm:Especificaelcolordefondo.
SENTENCIAS BSICAS I .DISPLAY La tabla de colores es la siguiente: 0 negro; 1 azul; 2 verde; 3 celeste; 4 rojo; 5 violeta; 6 naranja; 7 gris. A FOREGROUND-COLOR si tambin se le especifica la opcin HIGHLIGHT el tono de los colores aparece ms brillante. As el 5 con HIGHLIGHT es el rosa. El 6 con HIGHLIGHT es el amarillo. A BACKGROUND-COLOR no le afecta HIGHLIGHT. Por ltimo hay que resear que para poder utilizar DISPLAY redireccionadoa la impres ora, hay que usar la palabra UPONy el nombre del dispositivo (la impresora el PRINTER). Esta opcin no ser utilizada, puesto que para imprimir utilizaremos la REPORT SECTION.
SENTENCIAS BSICAS I .EJEMPLO PROCEDURE DIVISION. INICIO. DISPLAY DISPLAY DISPLAY WITH BLANK SCREEN. HOLA DESDE COBOL . HOLA DESDE COBOL LINE 2 COLUMN 4.
DISPLAY HOLA WITH FOREGROUND-COLOR 4 BACKGROUNDCOLOR 5. DISPLAY HOLA DESDE COBOL AT 1212 WITH BLINK.
DISPLAY VARIABLE AT 1020 OTRAVARIABLE AT 1120. El usode DISPLAY no esmuycomnporlo queposteriormenteveremosSCREEN SECTION.
SENTENCIAS BSICAS I .ACCEPT Formato1: LINEnmCOLUMNnm ACCEPTnom_dato[WITHopciones]. ATfico Recogedatosintroducidosportecladoyselosasignaanom_dato(queserunavariableouncampod eunfichero) LasclusulasLINE,COLUMNyATsirvenparalomismoqueenlainstruccinDISPLAY. LasopcionesqueacompaanaACCEPTsonlasmismasqueenDISPLAY,exceptoBLANKSCREENyBLANKLIN E,ademsdelaspropiasdelaentradadedatosporteclado.Estasson:
SENTENCIAS BSICAS I .ACCEPT Opcionespropiasdelaentradadedatosporteclado: .PROMPTcarcter:Estableceelformatodelfondoparaelespaciodondesevanaescribirlosdatos . .AUTO:Finalizaautomticamentelaentradadedatosportecladocuandoelcampoestlleno,sinnec esidaddepulsarINTRO. .FULL:Obligaaqueelcampoquedetotalmentellenoovaco. .REQUIRED:Indicaqueelcamponopuedequedarvaco. .SECUREoNOECHO:Entradadedatossinreflejoenlapantalla,enlugardeloscaracterespulsad ossevernasteriscos. .UPDATE:Visualizaencontenidodelcampoantesdeserintroducido.
SENTENCIAS BSICAS I .ACCEPT Ejemplo: PROCEDURE DIVISION. INICIO. DISPLAY DISPLAY WITH BLANK SCREEN. DIME TU NOMBRE: LINE 10 COLUMN 3 WITH HIGHLIGHT.
ACCEPT NOMBRE LINE 10 COLUMN 19 WITH REVERSE-VIDEO REQUIRED. DISPLAY HOLA AT 1210 NOMBRE AT 1215.
SENTENCIAS BSICAS I .ACCEPT Formato2:Formatoparatomardatosdelsistema(nodeteclado) ACCEPT nom_datoFROM constante_del_sistema. Lasconstantesdelsistemapuedenser: DATE:Lafechadelsistema.EsunaconstantedeseiscifrasconelformatoAAMMDD. DAY:Losdastranscurridosdelaoactual.EsunaconstantedecincocifrasconformatoAANNN.Sien doAAelaoactualyNNNlosdasquehantranscurridodesdeel1deenerodeeseao. TIME:Lahoradelsistema.EsunaconstantedeochocifrasconformatoHHMMSSCC.SiendoHHlahor a,MMlosminutos,SSlossegundosyCClascentsimas.
SENTENCIAS BSICAS I .ACCEPT Ejemplo: IDENTIFICATION DIVISION. PROGRAM-ID. CONSTANTESDELSISTEMA. DATA DIVISION. WORKING-STORAGE SECTION. 01 FECHA. 02 ANNO PIC 99. 02 MES PIC 99. 02 DIA PIC 99. 01 NDIAS. 02 AA PIC 99. 02 DIAS PIC 999. 01 TIEMPO. 02 HORA PIC 99. 02 MIN PIC 99. 02 SEC PIC 99. 02 CEN PIC 99. PROCEDURE DIVISION. INICIO. DISPLAY WITH BLANK SCREEN.
ACCEPT FECHA FROM DATE. DISPLAY LA FECHA DE HOY ES: DIA / MES / ANNO.
ACCEPT NDIAS FROM DAY. DISPLAY LOS DIAS QUE HAN TRANCURRIDO DESDE EL 1 DE ENERO DE AA SON DIAS DIAS .
DISPLAY
MIN :
SEC.
STOP RUN.
SENTENCIAS BSICAS I .MOVE:Permitetransferirdatosdeuncampodememoriaaotrocampodememoria. Formato: literal MOVE[CORR]nom_dato1TOnom_dato2 constante_figurativa Ejemplo: MOVE SPACES TO NOMBRE APELLIDOS. MOVE A TO B. MOVE CORRECTO? TO PREGUNTA.
SENTENCIAS BSICAS I .MOVE: ParausarMOVEhayquetenerencuentaque: LaconstantefigurativaSPACEouncampoalfabticonosepuedemoveraunavariablenumrica. Lastransferenciasdeuncamponumricocondecimalesauncamponumricosindecimalesproducenun truncamientodelosdecimales. Sienlatransferenciaelcampoemisoresmayorqueelcamporeceptorseproducetruncamiento(p orladerechasisoncamposnumricosyporlaizquierdasisonalfanumricosoalfabticos).Delocont rario,serellenanloshuecosconceros,silatransferenciasehaceentrecamponumricosydeesp aciosenblanco,sisehaceentrecamposalfabticosoalfanumricos. LapalabraclaveCORRseusacuandosequierenmoverdatosdeuncampojerrquicoaotroconelmismo nombreenlosdatossimples.Parapoderhacerusodeloscampossimples,comosellamanigualsed ebenreferenciarconOF.
SENTENCIAS BSICAS I .MOVE: Ejemplo: IDENTIFICATION DIVISION. PROGRAM-ID. EJEMPLO12. DATA DIVISION. WORKING-STORAGE SECTION. 01 PERSONA1. 02 NOM PIC X(10). 02 APE PIC X(20). 01 PERSONA2. 02 NOM PIC X(10). 02 APE PIC X(20). PROCEDURE DIVISION. UNO. MOVE CORR PERSONA1 TO PERSONA2. DISPLAY NOM OF PERSONA1 WITH FOREGROUND-COLOR 1. STOP RUN.
SENTENCIAS BSICAS I .IF La sentencia condicional IF nos sirve para tomar una decisin dependiendo del resu ltado (verdadero o falso) de una comparacin. El formato de esta sentencia es: Formato: IF condicin [THEN] instrucciones... NEXT SENTENCE [ELSE] instucciones... NEXT SENTENCE [END-IF]. Si se cumple la condicin se realizarn las instrucciones del primer bloque y si no se cumple las del bloque de ELSE. La sentencia ELSE no es obligatoria. La finalizacin de la sentencia IF se puede realizar de dos maneras: Con END-IF (su uso es altamente recomendable, sobre todo a la hora de usar el IF dentro de otras sentencias). Con un punto (.). Con lo que se deja claro que en las oraciones e instrucciones de la sentencia IF no deben contener ningn punto. La condicin de esta sentencia ser una expresin booleana. Por tanto en ella se podr h acer uso de los operadores lgicos AND, OR y NOT para combinar condiciones.
SENTENCIAS BSICAS I .IF Para el correcto uso de las condiciones se debe seguir esta forma:
ACCEPT B WITH REVERSE-VIDEO. IF A = B DISPLAY ELSE DISPLAY END-IF. PROCEDURE DIVISION. INICIO. DISPLAY INTRODUCE VALOR DE A: . A Y B SON DISTINTAS A Y B SON IGUALES
ACCEPT B WITH REVERSE-VIDEO. IF A IS EQUAL TO B DISPLAY ELSE DISPLAY A Y B SON DISTINTAS . A Y B SON IGUALES
SENTENCIAS BSICAS I .IF Ejemplo: PROCEDURE DIVISION. INICIO. DISPLAY INTRODUCE UNA FRASE: .
ACCEPT FRASE. IF FRASE IS ALPHABETIC-UPPER DISPLAY ELSE DISPLAY END-IF. LA FRASE EST EN MINUSCULAS LA FRASE EST EN MAYUSCULAS
SENTENCIAS BSICAS I .IF La sentencia IF... ELSE pueden estar anidadas. Ejemplo: PRECEDURE DIVISION. INICIO. IF NOM = NOMBRE IF APE = APELLIDO DISPLAY END-IF ELSE DISPLAY END-IF NO ENCONTRADO ENCONTRADO
SENTENCIAS BSICAS I .IF Tambin es posible encadenar sentencias ELSE con IF y otra condicin. Ejemplo: PROCEDURE DIVISION. INICIO. IF VEHICULO = BICICLETA PRECIO = 25 ELSE IF VEHICULO = PRECIO = 40 ELSE IF VEHICULO = PRECIO = 50 ELSE IF VEHCULO = PRECIO = 60 ELSE PRECIO = 80 END-IF. CAMION COCHE MOTO
SENTENCIAS BSICAS I .IF Tambin es posible encadenar sentencias ELSE con IF y otra condicin. Ejemplo: PROCEDURE DIVISION. INICIO. IF VEHICULO = BICICLETA PRECIO = 25 ELSE IF VEHICULO = PRECIO = 40 ELSE IF VEHICULO = PRECIO = 50 ELSE IF VEHCULO = PRECIO = 60 ELSE PRECIO = 80 END-IF. CAMION COCHE MOTO
SENTENCIAS BSICAS I .PERFORM(Bucle) LasentenciaPERFORMesunadelasmsemblemticasdeCOBOL,suusoesvariado,sirveparahacerbucl esyparatransferirelcontroldelprogramaaotroprrafooseccin. Todoslosformatosdelosbuclestienenencomnunacosa:lascondicionessonsiemprehastaquese cumplelamisma. LasformasdeterminarunbuclePERFORMsonconENDPERFORM(lomsrecomendable)oconunpunto(.) igualqueenelIF porloquedentrodeunbuclePERFORM nodebehaberningnpunto.
SENTENCIAS BSICAS I .PERFORM(Bucle) Formato1: entero PERFORMTIMES nom_dato . .instrucciones . [END-PERFORM]. EsteformatorealizalasinstruccionesquehayentrePERFORMyEND-PERFORMunnumerodetermin adodeveces,lasvecesquedigaennmeroenterooelnombredeldato.
SENTENCIAS BSICAS I .PERFORM(Bucle) Ejemplo: PROCEDURE DIVISION. INICIO. PERFORM 80 TIMES DIPLAY * WITH NO AVANCING
END-PERFORM. Este ejemplo visualiza en pantalla 80 asteriscos en pantalla, la opcin NO AVANCING hace que cada DISPLAY no salte de lnea.
SENTENCIAS BSICAS I .PERFORM(Bucle) Formato2: AFTER PERFORM[WITH]TESTUNTILcondicion BEFORE . .instrucciones . [END-PERFORM]. DeestamaneraPERFORMejecutalasinstruccionesentrelyEND-PERFORMhastaquesecumpleunaco ndicin. ParaponercondicionesseutilizalamismaformaqueenlainstruccinIF. LaopcinTEST,indicaelmomentodecomprobarlacondicin;sivaacompaadodeAFTER,lacondicinseco mpruebaalfinaldelbucleysivaconBEFOREalprincipio. ConAFTERelbucleseejecutaralmenosunavezyconBEFOREpuedequenoseejecutenunca.LaopcinBE FOREeslapredeterminada,conloquenoesnecesariosuuso.
SENTENCIAS BSICAS I .PERFORM(Bucle) Ejemplo: PROCEDUREDIVISION. INICIO. PERFORMTESTAFTERUNTILNUMERO=0 DISPLAY INTRODUCEUNNUMERO: ACCEPTNUMERO END-PERFORM. Enelejemplosehacreadounbuclequeserepetirhastaqueunnmeroentradoportecladoseaigualac ero,comprobandolacondicinalfinaldelbucle.
SENTENCIAS BSICAS I .PERFORM(Bucle) Ejemplo: PROCEDURE DIVISION. INICIO. PERFORM VARYING MULT7 FROM 7 BY 7 UNTIL MULT7>200 DISPLAY MULT7 END-PERFORM. El ejemplo visualiza los mltiplos de 7 hasta el 200.
SENTENCIAS BSICAS I .STOP. Esta sentencia permite parar temporal o definitivamente la ejecucin de un program a. Formato: RUN [literal] STOP . literal Con STOP RUN se detiene totalmente el programa. Es decir est es la ltima sentencia que se ejecuta en un programa COBOL. El literal que puede acompaar a RUN es el valor que devuelve el programa al Sistema operativo. STOP literal suspende la ejecucin del programa temporalmente (hasta que se pulsa la tecla INTRO) visualizndose el literal.