Está en la página 1de 8

La Pgina de DriverOp

ndice Programacin Atesmo Ciencias Textos Mi ciudad Currculum Mi correo Tutoriales Delphi
Recomendar esto

Viene de: ndice Programacin Cobol

RM/COBOL 85
Contenido.
Cdigos fuente. Estructura general del lenguaje. Archivos en RM/COBOL 85. Reflexiones. Enlaces. Comentarios. Cdigos de excepcin en RM/COBOL 85.

Programas cdigo fuente incluido en RM/COBOL-85 (Ver. 5.36).


Descripcin Dos programas para manejar fechas, 'fromdate' devuelve la fecha actual del sistema pero con el ao a cuatro cifras, especial para versiones de RM/Cobol anterior al Y2K, 'validar' verifica que una fecha sea vlida y de serlo devuelve la cantidad de dias que hay entre la fecha actual y la validada. Descarga fechas.zip (5,3 Kb)

Estructura general de un fuente COBOL.


Un fuente de COBOL est separado en cuatro divisiones, cada una de ellas tiene un propsito especfico. Las divisiones estn ordenadas en secciones y las secciones en prrafo. Cada divisin y seccin contiene un mbito, es decir, no se pueden mezclar secciones que pertenecen a una divisin en otra y las divisiones no pueden estar desordenadas.

IDENTIFICATION DIVISION.
En esta divisin se declaran todos los datos identificatorios del programa en s, como ser el autor, el nombre interno del programa, los comentarios, etc... En esta divisin que es obligatoria la nica seccin obligatoria es PROGRAM-ID seguido del nombre interno del programa, por ejemplo Cdigo:
IDENTIFICATION DIVISION. PROGRAM-ID. HOLAMUND.

ENVIRONMENT DIVISION.
En esta seccin se declaran entre otras cosas los encabezados de los archivos de datos usando una seccin llamada INPUT-OUTPUT SECTION, prrafo FILE CONTROL. Un ejemplo:
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT OPTIONAL CLIENTES ASSIGN RANDOM, "CLIENTES.DAT" ORGANIZATION IS INDEXED ACCESS MODE DYNAMIC RECORD KEY CODIGO-CLIENTE ALTERNATE RECORD KEY CUIT WITH DUPLICATES ALTERNATE RECORD KEY NOMBRE-APELLIDO WITH DUPLICATES.

En este ejemplo he declarado un archivo con nombre lgico CLIENTES y nombre fsico "clientes.dat" con acceso random (si el sistema operativo lo permite), la organizacin interna sera indexada (hay que mantener ndices) el modo de acceso ser dinmico (en COBOL significa que se puede leer secuencialmente o aleatoriamente usando cualquiera de los ndices declarados a continuacin). La clave principal del archivo es CODIGO-CLIENTE y tiene dos claves secundarias. Esta divisin se puede omitir.

La tercera divisin es DATA DIVISION.


converted by Web2PDFConvert.com

En esta divisin se declaran las variables del programa, los encabezados de los archivos de datos, la estructura de registros del mismo, las tablas en memoria y las constantes. Hay dos secciones importantes en esta divisin, la primera es la FILE SECTION, en ella se declaran todos los registros que pertenecen a los archivos delcarados en el prrafo FILE-CONTROL de la seccin INPUT-OUTPUT de la divisin ENVIRONMENT. La otra seccin es WORKING-STORAGE SECTION, en esta se declaran las variables, constantes y tablas. Todas las variables en COBOL-85 son globales. Siguiendo con el ejemplo anterior:
DATA DIVISION. FILE SECTION. FD CLIENTES BLOCK 250 CHARACTERS RECORD 250 CHARACTERS LABEL RECORD STANDARD. 01 CLIENTE. 02 CODIGO-CLIENTE PIC 9(5). 02 CUIT PIC X(11). 02 NOMBRE-APELLIDO. 03 NOMBRE PIC X(30). 03 APELLIDO PIC X(30). WORKING-STORAGE SECTION. 77 ESPERA PIC X. 77 TECLA PIC 99. 77 FLAG PIC X.

En COBOL existen tres tipos de datos principales, numricos, alfanumricos y alfabticos, los primeros se indican con un 9() en la declaracin, los segundos con X() y los terceros con A(). La sintaxis de la declaracin es:
NIVEL IDENTIFICADOR PICTURE TIPO-DE-DATO.

Donde NIVEL es un nmero entre el 1 y el 88 e indica la "profundidad" de la variable. Las variables entre los niveles 1 y 49 indican que se trata de una estructura de datos siendo la de mayor nivel el 01 (como se ve en la declaracin del registro de cliente) esto significa que se puede referenciar un conjunto de datos con un solo identificador. Las variables de nivel entre 77 y 87 son variables independientes. Los identificadores de nivel 88 son constantes y se declaran obligatoriamente como sigue:
88 ESTO-ES-UNA-CONSTANTE PIC 9(3) VALUE 100.

La clusula VALUE indica qu valor tomar la constante. En los identificadores de los otros niveles tambin se puede usar la clusula VALUE para inicializalos a algn valor (sin embargo no se permite esta clusula en la declaracin de registro de archivos). Las variables en COBOL se almacenan en formato BCD (cdigo decimal binario) es decir, en base 10 y ocupan un byte por cada espacio de memoria; el rango de valores est dado por la propia definicin, por ejemplo.
77 NOMBRE PIC X(20).

Ocupa 20 bytes en memoria *sin importar qu contenga la variable*. Para el caso de los datos numricos (PIC 9()) tambin sucede lo mismo. Por ejemplo:
77 NUMERO-ENTERO PIC 9(3).

Ocupa 3 bytes y puede almacenar un valor entre cero y 999. Si se le asigna un valor que excede el rango permitido por la declaracin el valor se trunca por la izquierda en su valor literal, por ejemplo:
MOVE 1000 TO NUMERO-ENTERO.

Aqu NUMERO-ENTERO tomar el valor cero. Es posible declarar variables de tipo numrico real sin signo como sigue:
77 NUMERO-REAL-SIN-SIGNO PIC 9(3)V99.

La "V" indica la posicin de la coma decimal. Tambin es posible declarar un tipo numrico real con signo como sigue:
77 NUMERO-REAL-CON-SIGNO PIC S9(3)V99.

La "S" indica que se debe reservar un lugar para almacenar el signo. El largo de los identificadores es ilimitado pero solo los primeros 30 caracteres son significativos. No pueden comenzar con nmeros pero s contenerlos, todas las letras son vlidas ms el guin.

Finalmente tenemos la PROCEDURE DIVISION.


Que es la divisin donde se escribe la parte "ejecutable" del programa. No est dividida en secciones sino en prrafos. Cada prrafo tiene un identificador nico asignado por el usuario. Toda PROCEDURE DIVISION debe tener al menos un prrafo. Por ejemplo:
PROCEDURE DIVISION.
converted by Web2PDFConvert.com

COMIENZO. ...sentencias...

Los nombres de prrafos son arbitrarios y sirven como puntos de saltos dentro del programa. Ahora s podemos crear un programa bien bsico, este es el cdigo:
IDENTIFICATION DIVISION. PROGRAM-ID. HOLAMUND. DATA DIVISION. WORKING-STORAGE SECTION. 77 ESPERA PIC X. 77 TECLA PIC 99. PROCEDURE DIVISION. COMIENZO. DISPLAY "Hola mundo!, por favor presiona una tecla". ACCEPT ESPERA NO BEEP ON EXCEPTION TECLA NEXT SENTENCE. DISPLAY "La tecla que presionaste fue: ". DISPLAY TECLA. EXIT PROGRAM. STOP RUN.

Despus de mi explicacin espero que les resulte obvio lo que hace este programa.

Re exiones acerca de COBOL.


COBOL es, por llamarlo de alguna manera "el decano de los lenguajes de bases de datos", de hecho su nombre ya determina cul es su uso principal, COBOL, COmmon Business Oriented Languaje, es decir, Lenguaje Comn Orientado a Negocios, y todos sabemos que cualquier aplicacin de negocios hace un uso intenso de bases de datos. COBOL naci all por el ao 1960 a raz de una comisin organizada por el gobierno de EEUU y las principales empresas de la industria de la computacin de aquella epoca tal como IBM, Rand y Honeywell, llamada CODASYL. La intencin de esta comisin era establecer un estandar para un lenguaje orientado a los negocios, de all nace el COBOL 60 asi como el ALGOL 60, un lenguaje orientado al calculo cientifico (del cual nacera Pascal). En 1968 otra comisin, esta vez la ANSI, revisa al COBOL y establece el estandar 68 que luego devino en el estandar 74, este ltimo plante muy acertadamente a mi juicio, la implementacin de la programacin procedimental al lenguaje COBOL (los PERFORM, bah). Finalmente, en 1985 la ANSI saca un nuevo estandar para el lenguaje que es el que rige actualmente (hubo algunas mejoras y afinamientos en 1989). Entre los grandes logros de este lenguaje pueden contarse que es el lenguaje que mas lineas en ejecucin tiene en el mundo, ser el mas confiable para grandes aplicaciones de negocios y el lenguaje que mas plataformas soporta, siendo a la vez un estandar casi dogmatico a todos los niveles. Como curiosidad, el gobierno de EEUU a partir del nacimiento de COBOL estableci que para que un aparato electronico pueda llamarse computadora DEBE poder ejecutar un programa COBOL, es por eso que aparatos que hoy sabemos implicitamente que son computadoras, tal como los handheld, no llevan ese nombre pues no existen compiladores y/o interpretes de COBOL para esos aparatos. Quizas el mayor exito de COBOL sea su portabilidad a nivel de cdigo fuente (y en algunos casos hasta de codigo ejecutable), el mismo fuente casi sin modificaciones puede ser llevado de un sistema operativo a otro y de una arquitectura a otra. El concepto de diseo de bases de datos que naci con COBOL hasta hoy en da es materia de estudio en universidades y muchas de ellas an ensean COBOL como lenguaje. En 1990 IBM anunci tajantemente que declaraba a COBOL un lenguaje "muerto", eso significaba que ya nadie lo usara en el futuro, tambin anunci que dejara de dar soporte para l (y asi lo hizo, ese ao IBM vendi su compilador a una empresa pequea). Ironicamente poco despus al lanzar su linea de minicomputadoras AS/400 incluy COBOL como uno de los cuatro lenguajes estandar del mismo (junto con C, RPG y Pascal). Desde ese anuncio todo aquel que se declaraba "programador en COBOL" ha llevado el mote de "anticuado" y "sin futuro". Para empeorar las cosas el lanzamiento de sistemas operativos con entorno grfico y la revolucin de la programacin orientada a objetos llev casi a la extincin a COBOL, relegado unicamente a arcaicos mainframes y a oficinas de procesamiento de datos con un monton de "gurus" revolviendo fuentes con mas de 20 aos. Parecia que finalmente COBOL tenia sus dias contados. Pero, las pequeas empresas que an se sostenian gracias a la venta y soporte de compiladores COBOL, tales como Liant, Accu y Fujitsu, se dieron cuenta de esto y cada uno por su lado empez a transformar a COBOL en un lenguaje moderno, mas acorde a los tiempos que pasan. El mayor problema que debian enfrentar es la bendita compatibilidad hacia atrs y esto no es una cosa trivial para un lenguaje con casi 40 aos de antigedad en aquella poca. Pero si bien estas empresas pusieron a COBOL en la primera linea otra vez surgi un problema nuevo, COBOL, como ya antes dije, sobresalia por su portabilidad, como cada empresa se las arregl a su manera destruyeron en pocos aos lo que se habia logrado con decadas de minuciosos estandares y reuniones de empresas de la industria. Hoy en da, los modernos compiladores de COBOL, Objective Cobol, PowerCobol, WOW no son ni remotamente compatibles entre s, y algunos ni siquiera son multiplataforma. Para empeorar las cosas no hay intencin, siendo Ocubre de 2001 cuando escribo esto, de volver a revisar a COBOL como lenguaje y establecer un estandar para la programacin en entorno grfico. Todo esto me lleva a pensar que COBOL dejar de existir como tal y pasar a ser otra cosa, multitud de pseudocoboles surgirn, ya que ninguna empresa querr tirar abajo lo que han desarrollado para apegarse a un futuro estandar que quizas nunca llegue, sumado a que las soluciones propietarias nunca hicieron mella en la industria del software, tal vez IBM sabia de lo que hablaba cuando declar al COBOL un lenguaje muerto. Actualizacin! El grupo de trabajo de la ANSI encargada de establecer los estandares para COBOL, llamado J4 ya tiene el borrador para el COBOL ANSI 2002, entre sus cosas mas resaltables est la inclusin de la programacin orientada a objetos, esto pondr a COBOL nuevamente en el estado del arte de la programacin. El nuevo estandar tiene como fecha tentativa de publicacin Julio de 2002. Para ms
converted by Web2PDFConvert.com

informacin dirigirse a www.cobolstandards.com o bin a http://www.ncits.org/tc_home/j4.htm Actualizacin! Ya est aprobado el estandar ANSI 2002.

Enlaces.
COBOL en espaol. Imprescindible pgina sobre COBOL totalmente en espanol. Diego Romero - Sbado, 09 de Septiembre de 2006

Comentarios
Orden: Ms recientes primero Ver 30 comentarios. Agregar comentario
83.50.75.54

Domingo, 17 de Octubre de 2010 a las 09:00:39

Por: Marie Hola, necesitaria modelos de ejemplos sencillos de consulta, modificacin, borrado y listado del programa cobol, gracias.

Lunes, 23 de Agosto de 2010 a las 17:01:45

190.132.80.133

Por: Enrique Tengo programas en rm/cobol 84-85 versin 2.1a. quisiera saber si existe algun programa de conversin, que tome los fuenes de ese cobol y los convierta a otro lenguaje o a otro cobol para ambiene windows

Martes, 29 de Junio de 2010 a las 23:14:36

186.28.116.252

Por: Juan Corredor (juanelaspero@hotmail.com) me gusto mucho la explicacion!!! stubo muy buena, me gustaria saber mas, si alguien pudiera ayudarme ocn manueales, se lo agradezco....

Lunes, 24 de Agosto de 2009 a las 18:59:49

64.76.174.10

Por: Christian uf !!! despus de casi 11 aos. llegue a una empresa que tiene cobol y ahora tengo que aprender... despues de estar casi 12 aos trabajando con genexus.... uf !!! algun manual, tutorial,tips !!! help !!! Salu2.-

Lunes, 13 de Julio de 2009 a las 08:35:56

88.2.223.253

Por: Carlos Buenas. Mi problema con cobol es que tengo una serie de archivos .idx y .dat de los cuales no conozco su estructura y necesito recuperar la informacin contenida en los mismos. Por dnde empiezo? Estoy bastante perdido...

Viernes, 26 de Junio de 2009 a las 16:06:56

190.25.225.131

Por: Sarita Necesito verificar la fecha de modificacin de un archivo .gnt es decir un ejecutable de Micro focus NetExpres, de tal manera que pueda hacer validacines en el Menu. El menu tambien esta desarrollado en MicroFocus y la idea es validar el programa que se va a ejecutar con la fecha de la ultima actualizacin del programa. Muchas gracias si me pueden ayudar.
converted by Web2PDFConvert.com

Domingo, 31 de Mayo de 2009 a las 21:48:45

201.229.169.62

Por: Mike tengo una archivo donde cobol guarda la data el archivo es binario como puedo saber la estructura del archivo osea sabe como estan compuesto los campos

Viernes, 22 de Mayo de 2009 a las 22:18:10

200.88.190.137

Por: Norberto Muy buena tu explicacion sobre el cobol

Domingo, 22 de Febrero de 2009 a las 15:44:26

200.45.119.110

Por: Curulo Tengo un ABM y cuando lo quiero compilar me da este error. OPEN ERROR FOR FILE ABM****. PODRIAS DECIRME DONDE TENGO EL ERROR GRACIAS. ME INTERESARIA LOS MANUALES .OK. GRACIAS.
Mircoles, 21 de Enero de 2009 a las 12:07:22
200.84.201.227

Por: Enmascarado SAS que por queria de ayuda

Lunes, 19 de Enero de 2009 a las 17:05:04

200.121.223.33

Por: Hector Excelente tu explicacin y el detalle de los ejemplos, sobretodo para los que programan en cobol o desean conocer sobre este compilador. Mis felicitaciones y agradecimientos por tu aporte

Mircoles, 24 de Diciembre de 2008 a las 09:51:35

83.50.179.175

Por: Campiki Para JoeAccion. Para vaciar una archivo de RmCobol slo debes hacer un OPEN OUTPUT archivo. Para pasar una dat a txt o excel. Create un archivo organization line sequential, y entre campo y campo de este, crea un campo adicional PIC X. Haces lectura sequencial del archivo origen, grabando en el destino, a cada campo adicional creado le pasas un valor p.ej ":". Este archivo creado lo puedes capturar en excel sin problema. Espero haberte ayudado aunque algo tarde. Campiki
Viernes, 21 de Noviembre de 2008 a las 16:31:13
189.142.146.177

Por: Joeaccion Vaciar un archivo Dat creado por RMcobol. ( mi experiencia en Cobol es nula ) Deseo pasar un archivo Dat a Txt o Excel lo que sea mas fcil, como puedo hacerlo? hay una utileria gratuita? puede ser por medio de Excel? tendras un programa base para modificarlo, correrlo y me pueda mandar mi informacin?
converted by Web2PDFConvert.com

Gracias por toda la ayuda que me puedan dar.


Sbado, 13 de Septiembre de 2008 a las 12:15:23
201.228.170.208

Por: Victor Tengo un problema con RMCOBOL /85 ver. 5.36 cuando utilizo el ACCEPT (VARIABLE) FROM TIME. Cuando la rutina vuelve a pasar por ese comando a veces se queda la hora anterior. Por ejemplo si en el computador la HOra es 10:30 am me deja la hora del hace 15 minutos me marca las 10;15 am. este programa es para el control de ingresos y salidas de vehiculos de un parqueadero. Al tomar mal la hora liquida mal elprecio del servicio. Alguien me podra a yudar?
Viernes, 25 de Abril de 2008 a las 00:04:32
190.100.158.6

Por: Pedro (pedrocortesd@hotmail.com) Alguien tiene la rutina para generar codigos de barra en cobol. si la tuvieran porfavor, se los agradeceria muchisimo... Gracias

Domingo, 06 de Abril de 2008 a las 01:17:22

190.42.230.43

Por: Victor Muy buena explicacion Soy cobolero todavia trabajo con la version 5.2 y por exigencias del mercado estoy tratando de pasarloa powercobol 5 que es el que me parece se semeja mas a la version anterior, pero tengo problemas para majesjar el detalle de un documento, es decir, donde van los item, he probado con tablas, creando lineas de texto, etc.pero nada, a ver si alguien me da alguna sujerencia, por lo demas todo bien
Martes, 25 de Marzo de 2008 a las 00:35:22
190.31.115.236

Por: Seba BUENA EXPLICACION. GRACIAS

Lunes, 17 de Marzo de 2008 a las 02:27:31

201.223.92.222

Por: Ortografia A Sebastian: eSplicacion = eXplicacion haVer = haBer Espero que te ayude a no cometer la misma falta. Saludos.
Lunes, 10 de Marzo de 2008 a las 11:48:30
201.250.103.30

Por: Sebastian bien echo la esplicacin de como se conformma una ABM. Yo necesitara si me pueden ayudar,como se hace un ejercicio donde se usa el caso especial de ABM, es decir no va a haver (altas-bajas-mod),es todo modificaciones;por ejemplo q un ejerc. pida calcular el ingreso y egreso de mercadera?., ese es uno.y su estructura de: archivo original y archivo con la actualizacin no son iguales, el q va a actualizar al original tiene mas campos.
Viernes, 07 de Marzo de 2008 a las 11:07:00
200.117.29.77

Por: Fabian (fabianconte@yahoo.com.ar) hola trabajo con microfocus cobol y quisiera usar algo que pueda graficar o usar el mouse habra algo compatible con esto ... gracias espero alguna repuesta de alquien

converted by Web2PDFConvert.com

Martes, 04 de Marzo de 2008 a las 03:40:46

201.140.160.177

Por: Erick apenas empiezo a utilizar cobol es buen programa saludos

Viernes, 29 de Febrero de 2008 a las 17:52:23

201.228.129.42

Por: Luis Miguel Figueroa solicito la descarga del compilador y utilitarios de: powercobol version 5, objetive cobol

Martes, 15 de Enero de 2008 a las 16:27:53

200.8.110.107

Por: Beyker (beykerpreteroti@hotmail.con) porf cual es la sentencia para el sato de paguina

Martes, 18 de Septiembre de 2007 a las 15:08:07

190.137.199.44

Por: Luis Casiello Estoy probando FujitsuCobol y me esta interesando bastante....no pude hacer funcionar Fuji con base de datos....Algun ejemplo a mano para poder aprender??? Gracias a quien lo provea!!!

Mircoles, 08 de Agosto de 2007 a las 18:06:02

146.82.88.135

Por: Giani pucha estoy super complicada con cobol.... quien me puede indicar donde sacar un buen manual please es urgente!!!!!!

Jueves, 24 de Mayo de 2007 a las 17:37:56

209.124.116.248

Por: Ronald Cuales son las cuatro Divisiones que tiene COBOL

Viernes, 18 de Mayo de 2007 a las 10:51:53

200.85.222.70

Por: Victor Muoz Hola encontre esta pagina por casulaidad, me alegra que todavia querdemos COBOLIANOS de corazon, ha de tener en cuenta que el el COBOL es mas viejo que el Hilo negro y todavia funciona.....GRACIAS COBOL, nosotros trabajamos todo en Cobol y otras aplicaciones pero la empresda basicamenbte se maneja en COBOL ....Gracias felkicidades... CHILE

Jueves, 17 de Mayo de 2007 a las 15:34:07

190.31.223.82

Por: Mauricio Mss hola, estoy haciendo un programa de liquidacion de sueldos. yo quiero guardar una formula en la base de datos; tipo= (total*cant)/algo. y despues leer los datos de una persona y esjecutar la formula. si alguien sabe como hacerlo le dejo mi mail pra que me informen. desde ya gracias. mauriciomss@hotmail.com
converted by Web2PDFConvert.com

Martes, 01 de Mayo de 2007 a las 22:35:20

190.74.201.229

Por: Andres Eloy Vnzla Si de hecho es de los mejores para trabajar todo tipo de archivos y muy usado en bancos. solo soy estudiante y hay pocas pag de cobol quisiera pedir dos tipos de programas mas complejos 1 como trabaja con vectores y otro con archivos indexados leidos desde una base de datos gracias si es esto posible me ayudarias mucho = P

Sbado, 28 de Abril de 2007 a las 01:40:36

200.82.57.20

Por: Diego Romero Roberto A. Hombre, ac no hay malos comentarios acerca de COBOL y creme que a mi tambin me gusta, me ha dado de comer los ltimos 10 aos :D. Si no, no tendra esta pgina dedicada a COBOL ;).

1 2

Programacin
Pascal Cobol Delphi / object pascal Php / htm l Javascript Textos y consejos tiles SQL y Base de datos

Atesmo
Teologa Atesm o Crtica a las religiones Filosofa

Ciencias
Fsica Biologa Historia Escepticism o

Textos
Form ulario de contacto Currculum Mi ciudad - gualeguaych Poltica Pensam ientos Sociedad Literatura de ficcin Poesa

Tutoriales Delphi
Tutorial para principiantes Multithreading - A la m anera de Delphi Hooks o Ganchos

converted by Web2PDFConvert.com

También podría gustarte