Para separar un nombre y los apellidos debemos usar la instrucción UNSTRING tal y como se indica a continuación:
IDENTIFICATION DIVISION.
PROGRAM-ID. SEPARAR-NAME.
AUTHOR. DESCONOCIDO.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WHOLE-NAME PIC X(25).
01 FIRST-NAME PIC X(25).
01 MIDDLE-NAME PIC X(25).
01 LAST-NAME PIC X(25).
PROCEDURE DIVISION.
MAIN-STREET.
MOVE 'MARIAN GONZALEZ MARTINEZ' TO WHOLE-NAME.
UNSTRING WHOLE-NAME
DELIMITED BY SPACE INTO FIRST-NAME MIDDLE-NAME LAST-NAME.
DISPLAY 'FIRST NAME: ' FIRST-NAME.
DISPLAY 'MIDDLE NAME: ' MIDDLE-NAME.
DISPLAY 'LAST NAME: ' LAST-NAME.
STOP RUN.
Vistas de página en total
martes, 26 de julio de 2011
jueves, 7 de julio de 2011
Cobol: redefines
El redefines en cobol es muy útil cuando a un tipo de dato le queremos dar un determinado formato o cambiarlo a otro tipo de dato. También se usa para crearnos "arrays" de elementos.
Ejemplo 1: es muy corriente que un dato que sea un PIC X lo queramos pasar a un PIC 9 -> esto se consigue mediante la cláusula redefines tal y como se indica a continuación:
Ejemplo 2: a veces queremos pasar un dato definido como PIC X a una estructura con varios campos -> esto se consigue mediante la cláusula redefines tal y como se indica a continuación:
01 WS-FEC PIC X(10).
01 WS-FECHA REDEFINES WS-FEC.
05 WS-FEC-A PIC X(4).
05 WS-FILLER PIC X(1) VALUE '-'.
05 WS-FEC-M PIC X(2).
05 WS-FILLER PIC X(1) VALUE '-'.
05 WS-FEC-D PIC X(2).
Ejemplo 3: para crearnos tablas de elementos -> esto se consigue mediante la cláusula redefines tal y como se indica a continuación:
01 TABLA-D.
05 FILLER PIC X(9) VALUE "LUNES ".
05 FILLER PIC X(9) VALUE "MARTES ".
05 FILLER PIC X(9) VALUE "MIERCOLES".
05 FILLER PIC X(9) VALUE "JUEVES ".
05 FILLER PIC X(9) VALUE "VIERNES ".
05 FILLER PIC X(9) VALUE "SABADO ".
05 FILLER PIC X(9) VALUE "DOMINIGO ".
01 TABLA-DIAS REDEFINES TABLA-D.
05 DIA PIC X(9) OCCURS 7 TIMES.
Cuando queramos hacer referencia a alguno de los días de la semana tenemos que hacer lo siguiente: DIA(X) siendo X un valor entre 1 y 7. Hay que tener mucho cuidado de no poner cosas como por ejemplo DIA(0) o poner cualquier otro valor mayor a 7 pues estaríamos haciendo referencia a posiciones de la tabla que no existen y el programa daría error de ejecución. Has leído bien, error de ejecución. No da error de compilación porque el compilador es incapaz de detectar que se está accediendo a una posición errónea.
Hay que tener en cuenta dos cosas:
1) La tabla de este ejemplo es una tabla 'cerrada', es decir, no se va a aumentar con más elementos pero nos podemos enfrentar en alguna ocasión a tablas que tengan que ser modificadas para incluir nuevos elementos. ¿Cómo se actuaría en este caso? Imagínate que tenemos la siguiente tabla con sólo 3 elementos:
01 TABLA-T.
05 FILLER PIC X(10) VALUE "VISA ORO ".
05 FILLER PIC X(10) VALUE "VISA GOLD ".
05 FILLER PIC X(10) VALUE "MASTERCARD".
01 TABLA-TARJETAS REDEFINES TABLA-T.
05 TARJETA PIC X(10) OCCURS 3 TIMES.
Y queremos incluir una nueva tarjeta. El hecho de incluir una nueva tarjeta supone que se deben incluir los cambios que se han marcado en rojo:
01 TABLA-T.
05 FILLER PIC X(10) VALUE "VISA ORO ".
05 FILLER PIC X(10) VALUE "VISA GOLD ".
05 FILLER PIC X(10) VALUE "MASTERCARD".
05 FILLER PIC X(10) VALUE "PLATINUM ".
01 TABLA-TARJETAS REDEFINES TABLA-T.
05 TARJETA PIC X(10) OCCURS 4 TIMES.
2) Hay que tener en cuenta el tema de índices. En este caso, para hacer referencia a un elemento de la tabla hay que hacer lo siguiente:
TARJETA(X)
siendo X -> un valor entre 1 y 3 (antes de añadir el elemento)
un valor entre 1 y 4 (tras añadir el nuevo elemento)
Es decir, la tabla se ha incrementado en una posición por lo que el índice que se emplea para acceder a la tabla puede acceder a una (y sólo a UNA!!!) posición más. Mucho ojo con acceder a la posición 0 o a posiciones superiores al máximo número de elementos existentes en la tabla pues vamos a provocar un error de ejecución en cuanto se ejecutase el programa.
01 WS-CADENA PIC X(3).
01 WS-CADENA-R REDEFINES WS-CADENA PIC 9(3).
01 WS-CADENA-R REDEFINES WS-CADENA PIC 9(3).
Ejemplo 2: a veces queremos pasar un dato definido como PIC X a una estructura con varios campos -> esto se consigue mediante la cláusula redefines tal y como se indica a continuación:
01 WS-FEC PIC X(10).
01 WS-FECHA REDEFINES WS-FEC.
05 WS-FEC-A PIC X(4).
05 WS-FILLER PIC X(1) VALUE '-'.
05 WS-FEC-M PIC X(2).
05 WS-FILLER PIC X(1) VALUE '-'.
05 WS-FEC-D PIC X(2).
Ejemplo 3: para crearnos tablas de elementos -> esto se consigue mediante la cláusula redefines tal y como se indica a continuación:
01 TABLA-D.
05 FILLER PIC X(9) VALUE "LUNES ".
05 FILLER PIC X(9) VALUE "MARTES ".
05 FILLER PIC X(9) VALUE "MIERCOLES".
05 FILLER PIC X(9) VALUE "JUEVES ".
05 FILLER PIC X(9) VALUE "VIERNES ".
05 FILLER PIC X(9) VALUE "SABADO ".
05 FILLER PIC X(9) VALUE "DOMINIGO ".
01 TABLA-DIAS REDEFINES TABLA-D.
05 DIA PIC X(9) OCCURS 7 TIMES.
Cuando queramos hacer referencia a alguno de los días de la semana tenemos que hacer lo siguiente: DIA(X) siendo X un valor entre 1 y 7. Hay que tener mucho cuidado de no poner cosas como por ejemplo DIA(0) o poner cualquier otro valor mayor a 7 pues estaríamos haciendo referencia a posiciones de la tabla que no existen y el programa daría error de ejecución. Has leído bien, error de ejecución. No da error de compilación porque el compilador es incapaz de detectar que se está accediendo a una posición errónea.
Hay que tener en cuenta dos cosas:
1) La tabla de este ejemplo es una tabla 'cerrada', es decir, no se va a aumentar con más elementos pero nos podemos enfrentar en alguna ocasión a tablas que tengan que ser modificadas para incluir nuevos elementos. ¿Cómo se actuaría en este caso? Imagínate que tenemos la siguiente tabla con sólo 3 elementos:
01 TABLA-T.
05 FILLER PIC X(10) VALUE "VISA ORO ".
05 FILLER PIC X(10) VALUE "VISA GOLD ".
05 FILLER PIC X(10) VALUE "MASTERCARD".
01 TABLA-TARJETAS REDEFINES TABLA-T.
05 TARJETA PIC X(10) OCCURS 3 TIMES.
Y queremos incluir una nueva tarjeta. El hecho de incluir una nueva tarjeta supone que se deben incluir los cambios que se han marcado en rojo:
01 TABLA-T.
05 FILLER PIC X(10) VALUE "VISA ORO ".
05 FILLER PIC X(10) VALUE "VISA GOLD ".
05 FILLER PIC X(10) VALUE "MASTERCARD".
05 FILLER PIC X(10) VALUE "PLATINUM ".
01 TABLA-TARJETAS REDEFINES TABLA-T.
05 TARJETA PIC X(10) OCCURS 4 TIMES.
2) Hay que tener en cuenta el tema de índices. En este caso, para hacer referencia a un elemento de la tabla hay que hacer lo siguiente:
TARJETA(X)
siendo X -> un valor entre 1 y 3 (antes de añadir el elemento)
un valor entre 1 y 4 (tras añadir el nuevo elemento)
Es decir, la tabla se ha incrementado en una posición por lo que el índice que se emplea para acceder a la tabla puede acceder a una (y sólo a UNA!!!) posición más. Mucho ojo con acceder a la posición 0 o a posiciones superiores al máximo número de elementos existentes en la tabla pues vamos a provocar un error de ejecución en cuanto se ejecutase el programa.
jueves, 30 de junio de 2011
Cobol: Lista de FILE STATUS
Cuando un programa cobol utiliza ficheros, éstos pueden dar un error. Dicho error, o FILE STATUS, es un númerico de dos posiciones.
Como es imposible saberse todos los FILE STATUS existentes, adjunto enlace con listado de FILE STATUS: Listado FILE STATUS
miércoles, 22 de junio de 2011
Cobol: Lista de SQLCODE
Es muy frecuente utilizar sentencias SQL en los programas cobol. Cuando dichas sentencias SQL no terminan correctamente devuelven un SQLCODE distinto de 0.
Como no nos sabemos todos los SQLCODE existentes, adjunto enlace con listado de SQLCODE: Lista SQLCODE
martes, 14 de junio de 2011
Cobol y Jcl
Para muchos programadores el cobol es un lenguaje tan arcacico que creen que ha desaparecido pero no es así, aún se sigue usando y muy especialmente en el sector bancario (entre otros sectores). Os recomiendo leer el siguiente artículo aparecido en la versión online del periódico El Pais (pinchar aquí), os sorprendereis de lo que se sigue usando cobol hoy en día...hasta va a haber Visual Cobol!!!
Cuando se utiliza en entorno HOST hay otro elemento tan importante como un programa cobol y es el JCL (Job Control Language). Un JCL se utiliza para ejecutar procesos batch en los que se ejecutan una serie de pasos, unos detrás de otros, y alguno de esos pasos puede ejecutar un programa cobol.
En esta entrada adjuntaré algunas páginas de interés, más adelante iré indicando cómo hacer determinadas cosas en un programa cobol o en un jcl.
Páginas de interés:
Si quieres descargarte un manual sencillo pero a la vez bastante completo, aquí tienes el siguiente enlace: Manual Cobol
martes, 7 de junio de 2011
Cursos Online de Informática
Existen diversas páginas Web en las que puedes realizar cursos online de informática. Una de ellas es Aula Fácil. Algunos de sus cursos pueden parecer muy simples e incluso incompletos. Un ejemplo es el curso de Excel al que, a mi parecer, le faltaría la parte de macros (ver Macros en excel).
Otras páginas que podrían estar bien a la hora de hacer cursos online de informática son: aulaclic y Cursos Informatica.
Y a vosotros, ¿qué os parecen estas páginas para ampliar vuestros conocimientos de informática? ¿Conoceis otras páginas que os gusten más o que os hayan resultado más útiles?
viernes, 3 de junio de 2011
Búsqueda de empleo
A la hora de buscar empleo sería una buena idea no centrarse en una única opción. Es decir, la inmensa mayoría de la gente centra buena parte de su tiempo en buscar a través de una única web de empleo (siendo la más utilizada Infojobs). Recomendaría utilizar tres métodos simultáneamente:
- Mantener un CV online. Existen diversas páginas a tal efecto como por ejemplo http://www.easy-cv.es/ o http://www.curriculum-web.com/
- Utilizar alguna página web de empleo de las cuales cabe destacar Infojobs, Monster, Tecnoempleo o Computrabajo.
- Acceder a las páginas web de las empresas. En ellas suele existir una sección del estilo Trabaja con nosotros, Contactar, Incorpórate o Trabajar en XXX (siendo XXX el nombre de la empresa en cuestión).
De este modo, tenemos varios frentes abiertos y nos aseguramos de que nos puedan llamar para una entrevista (quien dice una dice más de una) desde alguno de los métodos mencionados anteriormente.
En caso de que quieras redactar tu CV en inglés viene bien que conozcas el siguiente traductor: Linguee. En él podrás encontrar la traducción al inglés de todo aquello que necesites para redactar el CV como formación y títulos. Yo he probado con Ingeniería Informática, Técnico Superior en desarrollo de aplicaciones informáticas y Técnico Superior en administración de sistemas informáticos; y he encontrado lo siguiente:
- Computer Engineering
- Advanced Technician in software applications development
- Advanced Technician in Computer Systems Administration
En tu incesante búsqueda de empleo en el mundillo de la informática...sólo te puedo decir una cosa: SUERTE!!!! Si utilizas todas estas herramientas seguro que te llaman para muchas entrevistas.
martes, 31 de mayo de 2011
Oracle
Se adjuntan una serie de enlaces que te ayudarán a aprender Oracle y especialmente determinados aspectos como SQL, gestión de seguridad de una base de datos y de usuarios, vistas, PL/SQL, triggers, paquetes, forms, report:
http://www.desarrolloweb.com/manuales/tutorial-oracle.html
http://mygnet.net/manuales/oracle/oracle_form.608
http://flanagan.ugr.es/docencia/2005-2006/2/developer/reports.html
www.jorgesanchez.net/bd/oracleSQL.pdf (Manual de SQL para Oracle 9i)
http://www.recursosvisualbasic.com.ar/htm/tutoriales/manual-de-oracle.htm
http://www.zonaoracle.com/
FP bilingüe
Primero fueron las universidades las que comenzaron a darse cuenta de la importancia del inglés e impartían algunas de sus carreras en ese idioma. Luego fueron los colegios e institutos (con cada curso académico que empieza aumenta el número de centros bilingües). Y ahora le toca a la FP como puede verse en el siguiente artículo aparecido recientemente en la versión digital del periódico 20minutos: Formacion profesional bilingue.
Dentro de unos años todos aquellos que decidan estudiar informática (ya sea mediante carrera universitaria o FP) tendrán la opción de hacerlo en inglés con lo que su CV mejorará notablemente.
lunes, 30 de mayo de 2011
.NET FRAMEWORK Y LENGUAJES .NET
Cuando aprendí Visual Basic allá por el curso académico 2004-2005, no aprendí Visual Basic 6 sino Visual Basic .NET
Visual Basic .NET así como C#, ASP.NET o ADO.NET están integrados dentro del .NET Framework
En la época en la que estudié Visual Basic .NET me resultó de bastante utilidad la página del Guille (ver elguille) en donde hay un curso bastante interesante de Visual Basic .NET (curso curso VB.NET). A la hora de acceder a las bases de datos, lo hacíamos a través de ADO.NET (ver ADONET).
Durante las prácticas del CFGS tuve que programar una pequeña aplicación en VB .NET realizando accesos a bases de datos mediante ADO.NET y, posteriormente, tuve que migrar esa misma aplicación a C# y a ASP.NET (ver C# y ASPNET).
Ahora puedes seguir al Guille a través de su grupo en Facebook: elGuille.info en FACEBOOK
Para más información puedes consultar en otras páginas relacionadas:
Hay más páginas en las que se pueden consultar todas las dudas que se tengan así como encontrar apuntes y manuales. Puedes buscarlos a traves de google. Incluso alguien que conozcas te puede recomendar alguna página que esté bien sobre alguno de estos temas.
CFGS vs Ingeniería Informática
Tras tres años estudiando Ingeniería Técnica en Informática de Gestión en una universidad madrileña decidí estudiar el Ciclo Formativo de Grado Superior en Desarrollo de Aplicaciones Informáticas.
¿Diferencias que noté?
La relación teoría-práctica: en la carrera había mucha más teoría que práctica pero en el ciclo formativo era al revés. Cada uno tendrá su opinión pero en mi caso yo prefiero tener más horas prácticas que teóricas, especialmente en una rama que es eminentemente práctica. Una de las cosas que noté fue que gracias a tener más horas prácticas aprendí mejor determinadas cosas que en la carrera se quedaron un poco cojas.
Además, al final del ciclo formativo (durante el tercer trimestre del segundo curso) se realizan practicas en una empresa. Esto es un valor añadido que tiene el ciclo formativo ya que sirve para fijar determinados conocimientos adquiridos durante el tiempo que se ha ido a clase.
¿Que aprendí?
Durante el ciclo formativo de grado superior en Desarrollo de Aplicaciones Informáticas aprendí lo siguiente:
1) Análisis y diseño de Aplicaciones Informáticas
2) Sistemas Operativos: MS-DOS, Windos 2000 Profesional, Windows 2000 Server, Linux (Unix, Editor vi)
3) Programación: Turbo Pascal, C, Visual Basic .NET, C#, ASP .NET
4) ADO .NET
5) Crystal Report
6) Oracle: SQL* PLUS, Administración, PL/SQL, Developer (Form y Report)
Conclusión
En mi caso, me quedo con el CFGS porque en la informática prefiero aprender mediante la práctica, es decir, teniendo más horas prácticas que teóricas y eso lo encontré en el Ciclo Formativo de Grado Superior.
Más Información
Para más información acerca del CFGS en DAI, pinchar en el siguiente enlace: DAI
En FP puedes estudiar otros Ciclos Formativos de informática (tanto de grado superior como de grado medio): Consultar Ciclos Formativos
Otros enlaces de interés relacionados con la FP:
FP Informática
Otros enlaces de interés relacionados con la FP:
FP Informática
Suscribirse a:
Entradas (Atom)