Algoritmos

Computación. Robótica. Aplicaciones científicas y administrativas. Estructuras de datos. Cadenas de caracteres. Productos computacionales

  • Enviado por: Salvador Alejandro
  • Idioma: castellano
  • País: México México
  • 21 páginas
publicidad
publicidad

Algoritmos

Trabajo de Unidad IX

Licenciatura en Informática. Primer Semestre

Fecha de entrega: 02 de Diciembre de 2002

Índice

Unidad IX. Aplicaciones

Algoritmos
Debido a la incursión de las computadoras en la modernidad, se ha desarrollado una disciplina tecnológica muy importante a nivel mundial, esta es la Informática.

Considero que antes de entrar en el campo de las aplicaciones es importante recordar y señalar algunos puntos importantes acerca de la informática.

El término informática se traduce como la unión de los vocablos información automática, y de ésta forma nos señala claramente el propósito general de su surgimiento y desarrollo: la automatización de procesos de manejo de información, contando como herramienta principal la computadora.

Algoritmos
Cuando se crean las computadoras, el hombre puede darse cuenta de la facilidad y rapidez con la que una máquina puede procesar grandes cantidades de información en procesos repetitivos y simplificables, es ahí cuando nace la informática. La primera aplicación importante de la informática, fue la de Herman Hollerith, un trabajador del censo de Estados Unidos, quien tras inventar una máquina basada en proceso por medio de tarjetas perforadas redujo notablemente el censo de 1890; debido al impacto que crea decide fundar una pequeña compañía que esperaba tuviera en éxito y la llamó Máquinas Internacionales de Negocios (International Business Machines: IBM).

Pero actualmente la informática se encamina más hacia la simplificación de cualquier proceso de información, es decir, se ocupa más de diseñar algoritmos que describan secuencias de pasos para resolver planteamientos de cuestión, de una forma sencilla para los usuarios, pero en muchos casos compleja en logística para los programadores.

Hoy en día, la herramienta informática más importante es la Internet, pues en ella se encuentran publicaciones de información de muchísimos países, y de un sin numero de temas que podemos consultar, y con los que además podemos contribuir.

Ahora bien, para comprender de una mejor forma el impulso que ha tenido la informática y su gran aportación al desarrollo tecnológico del mundo como lo conocemos, debemos examinar sus diversas aplicaciones.

9.1 Aplicaciones Científicas

El estudio de las ciencias se caracteriza por manejar grandes cantidades de información con diversas fuentes teóricas o practicas, y es un campo en el que la informática ha hecho una entrada triunfal.

Ciencias sociales

Algoritmos
Existen actualmente paquetes de archiveros bibliográficos y software de hemeroteca que permiten manejar grandes bases de datos de libros, periódicos o revistas que permiten ser clasificados por autor, tema, editorial y fecha entre otros. El manejo de bases de datos significa un gran apoyo en los campos de historia, filosofía, sociología y derecho por mencionar algunas.

Respecto a la psicología, podemos mencionar entre otras herramientas, la edición y publicación de encuestas, aplicándolas directamente, y difundiéndolas por medio de la Internet. Además de esto, tenemos la posibilidad de establecer criterios de evaluación con respecto a comportamientos en la solución de planteamientos psicológicos, de manera que la computadora pudiera realizar juicios de causas y efectos en los pacientes de un psicólogo.

Ingenierías

La informática ha contribuido a las ingenierías con software que optimiza el trabajo técnico. Por ejemplo, en la arquitectura, existen paquetes como el Autocad, que permiten editar planos e imprimirlos con ayuda de un plotter. También pueden capturarse planos de ciudades o carreteras por medio de fotografías satelitales que reducen días de trabajo a unos pocos minutos, además de que aumenta la exactitud.

Antropología y arqueología

Algoritmos
La contribución hacia ciencias como la antropología y la arqueología puede demostrarse con la gran cantidad de páginas de Internet que contiene mucha información acerca de diversas culturas de todo el mundo. Como ejemplo podemos mencionar el sitio de http://www.antropologia.com.ar que se describe como una ciudad virtual de antropología y arqueología en la Internet y de la que podemos destacar la sección de Arqueología de Perú en la dirección http://www.arqueologia.com.ar/peru/index.html que contiene una gran cantidad de información de la región e imágenes como la que se muestra.

Algoritmos
Existen también muchas publicaciones de biografías informáticas, en cds multimedia o publicaciones de Internet que describen la vida de personajes famosos o que han tenido relevancia en la historia.

Podemos mencionar una biografía de Leonardo da Vinci en esta dirección http://www.artehistoria.com/frames.htm?http://www.artehistoria.com/genios/pintores/2516.htm y que es publicada por la desarrolladora Antehistoria.com, una empresa que se dedica a presentar versiones electrónicas de dos revistas muy famosas en Europa.

Aplicaciones médicas y biológicas

Todos los grandes estudios médicos de la actualidad han sido sostenidos en la capacidad de proceso de las computadoras, y son éstas quienes han hecho posible que pensamientos como el mapa completo del genoma humano, los teléfonos para sordos, el trasplante total de rostro, las operaciones quirúrgicas realizadas por dirección remota e incluso la colación humana, hayan dejado de ser hipótesis científicas, o pensamientos de gente demasiado soñadora para convertirse en realidades.

Inteligencia artificial

Existen muchas formas de definir el campo de la inteligencia artificial. He aquí una: El estudio de las computaciones que permiten percibir, razonar y actuar.

Es una de las áreas de las ciencias computacionales encargadas de la creación de hardware y software que tenga comportamientos inteligentes

Prueba de Turing:

Experimento para demostrar si un computador piensa o no, el cual consiste de :

  • Dos personas y un computador, una de las personas es un interrogador y la otra persona y el computador son los elementos a ser identificados.

  • Cada uno de los elementos del experimento esta en un cuarto distinto.

  • La comunicación entre los elementos es escrita y no se puede ver.

  • Después de un cierto numero de preguntas y respuestas el interrogador no puede identificar quien es el computador y quien es la persona, entonces podemos decir que el computador piensa.

  • En un juicio personal, considero que esta prueba es ampliamente cuestionable y muy probablemente sea totalmente refutable y a través de la historia ha habido muchos pensadores que la han descartado rotundamente.

    Robótica

    Si bien desde la antigüedad se conocen ingenios mecánicos con formas más o menos humanas cuyo propósito fue proveer diversión en las cortes o llamar la atención de la gente, estos ingenios, carecen de importancia desde el punto de vista tecnológico, precisamente por su destino. El término robot fue acuñado por el escritor checoslovaco Carlos Chapek, fallecido en 1938, que adquirió fama mundial con su obra RUR en la que presenta al obrero moderno como un esclavo mecánico, es allí donde justamente emplea la palabra robot, tomada del eslavo robota, que significa trabajo. Aristóteles, el cerebro de más vasta concepción en la historia del pensamiento, refiriéndose a una forma particular de la tarea repetitiva acuño una frase que aún tiene vigencia, "cuando los telares tejan por si mismos, habrá terminado la esclavitud del hombre". Norber Winer, matemático norteamericano, que introdujo el término cibernética y su teoría, refiriéndose al mismo tema, expresó: “es una degradación para un ser humano encadenarlo a un remo y usarlo como fuente de energía; pero es casi igual degradación asignarle tareas puramente repetitivas en una fábrica, que exigen menos de una millonésima de su poder cerebral”.

    El RIA Robot Institute of America define al robot como “un manipulador multifuncional reprogramable, diseñado para mover materiales, partes, herramientas o dispositivos especializados a través de movimientos variables programados para la performance de una variedad de labores”

    Los científicos desarrolladores de robots esperan crear máquinas los suficientemente inteligentes como para desarmar una bomba, rescatar personas en derrumbes y otras situaciones para las que en la actualidad, la utilización de hombres es muy peligrosa

    Juegos Informáticos

    Un sector en el que la informática ha incursionado indudablemente ha sido en el de los juegos informáticos. Las recientes tecnologías ofrecen un espacio para el juego, pero hay que buscar, también, el aprendizaje de conceptos, destrezas cognitivas como la resolución de problemas, el razonamiento, el desarrollo de capacidades creativas y de expresión gráfica y musical.

    ¿Cuáles son las habilidades y destrezas que los videojuegos nos ayudan a ejercitar? He aquí algunas:

    • Capacidad de concentración.

    • Coordinación visual y manual.

    • Visualización espacial.

    • Habilidades lógico/matemáticas.

    • Reconocimiento de relaciones causa/efecto.

    • Toma de decisiones.

    • Manejo de la computadora.

    La mayor parte de quienes han estudiado el juego y sus implicaciones, señala como características comunes a todo tipo de juego las siguientes:

    Algoritmos
    Es placentero, espontáneo y voluntario; exige la participación activa de quién lo hace y guarda relación con actividades como creatividad, solución de problemas e imaginación, entre otras.

    Jugando, la gente se entiende, se comunica y se relaciona con los demás. El compartir los trucos de algún juego con otros aficionados nos da oportunidad de encontrar más diversión y, a la vez, hacer amigos. Existen clubes de videojugadores, donde puedes consultar a los más experimentados o decir tu opinión de la nueva versión de tu juego favorito. El desarrollo de la capacidad simbólica en los niños puede enriquecerse mediante actividades lúdicas cuyos juguetes sean de naturaleza tecnológica, virtual o electrónica, como pueden ser los videojuegos.

    9.2 Aplicaciones Administrativas

    Contabilidad y administración

    Algoritmos
    La informática es actualmente la herramienta más útil que puede tener un contador, pues con paquetes de software contable, su trabajo se simplifica enormemente. Existen muchos paquetes contables, podemos mencionar los desarrollados por la empresa mexicana Microsip que desarrolla paquetería administrativa principalmente contable.

    Los sistemas que ofrece principalmente son los siguientes:

    Algoritmos
    Algoritmos
    Algoritmos
    Algoritmos
    Algoritmos

    Algoritmos
    Algoritmos
    Algoritmos
    Algoritmos

    Puede adquirir un demo de alguno de los productos dirigiéndose a la dirección http://www.microsip.com/dowdem.htm.

    INEGI

    Algoritmos
    La informática es una rama relativamente nueva en cuanto a administración pública se refiere, pues el gobierno tuvo que crear un sector que se encargara de aplicar los cambios que se estaban dando con respecto al manejo de información. El Instituto Nacional de Estadística, Geografía e Informática (INEGI) tiene la responsabilidad de coordinar los Sistemas Nacionales Estadístico y de Información Geográfica de México, además de promover y orientar el desarrollo informático en el país. Para cumplir con esta responsabilidad, el Instituto ha incrementado de forma sustantiva la capacidad de obtener y difundir información mediante la colaboración de personal preparado profesionalmente, el uso de tecnología y su presencia en las 32 entidades federativas de la República Mexicana. El INEGI fue creado por decreto presidencial el 25 de enero de 1983, e integró en su estructura a las direcciones generales de Estadística (instituida en 1882),y de Geografía (fundada en 1968), lo que la convierte en una Institución con gran tradición en captar, procesar y difundir información estadística y geográfica de México. En adición a esto, el reconocimiento internacional del que goza el INEGI le ha permitido presidir la Comisión de Estadística de la Organización de las Naciones Unidas (1995-1999) y, en la actualidad, la Conferencia Cartográfica Regional de las Naciones Unidas para las Américas.

    Principales empresas desarrolladoras de productos computacionales

    Para que la informática se desarrolle es necesario que exista y soporte de hardware que le permita crecer. A continuación algunas empresas de hardware que han permitido el desarrollo de la informática con sus productos; además una breve reseña.

    Algoritmos
    Okidata trabaja en el desarrollo de una Redes Nacionales de Servicio que cumplan con las necesidades de los usuarios y permitan la oportuna provisión de consumibles para sus equipos. Okidata tiene como meta corporativa, ofrecer servicio técnico a sus clientes en un máximo de 72 horas, para todos sus equipos y accesorios, buscando siempre confiabilidad y rendimiento a un costo sumamente competitivo.

    Algoritmos
    Como líder mundial de la industria de computadoras personales, Compaq está enfrentando activamente los nuevos desafíos de sus clientes comerciales y consumidores, manteniendo al mismo tiempo su sello de calidad ya establecido. Con la mirada en el futuro, la meta de Compaq es llegar al año 2000 como una de las tres empresas más importantes de la industria a nivel mundial.

    Algoritmos
    Desde 1942, Hewlett Packard, ha desarrollado la mejor tecnología en el campo de la informática, las comunicaciones y los instrumentos de medición; esto le ha permitido tener el prestigio durante más de cinco décadas de empresa líder en los Estados Unidos y en todo el mundo.

    Algoritmos
    La Tecnología Japonesa más depurada en equipos de cómputo portátiles y computadoras para negocios es ahora privilegio de los usuarios y ejecutivos mexicanos. C-SERCOMP ofrece los mejores productos de esta marca.

    Algoritmos
    NIB Ltd, está dedicado a traer a los negocios lo último en herramientas "Risk Managment". Sus productos están destinados a incrementar su rentabilidad en cada paso del proceso de decisión. Crédito, operaciones, acceso a extensa información y decremento financiero son sólo algunos puntos que el Software NIB puede hacer para incrementar sus ingresos.

    Algoritmos
    En Lanix Technology S.A de C.V., la misión es satisfacer las expectativas y deseos de sus clientes en lo que a tecnología de manejo y almacenamiento se refiere, creando soluciones de valor agregado que simplifiquen y mejoren la toma de decisiones. Lanix cree en el trabajo en equipo, como vehículo para acercarse a los clientes a fin de entender, establecer y responder a sus necesidades, expectativas y deseos de la manera más rápida, segura y económica, con los mejores productos y servicios que garantizan su inversión.

    Algoritmos
    Desde sus inicios en 1987, Sybase se ha caracterizado por mantener un liderazgo marcado hasta ser hoy la sexta compañía más importante de Software en el mundo. Como líder mundial en soluciones corporativas en entornos Cliente/Servidor y plataforma Internet, nos ofrece los diversos productos de sus divisiones como: Servidores de bases de datos, productos de conectividad, productos de replicación, herramientas de desarrollo, almacenamiento de datos, distribución masiva de datos, comercio electrónico e Internet.

    Algoritmos
    New Bridge Network Corp. diseña y produce una amplia gama de productos y sistemas. Transmite el poder de la comunicación vía multimedia a organizaciones y empresas en más de 100 países. New Bridge es líder mundial en TDM y Frame Relay y pionero en introducir la tecnología ATM al mercado.

    Algoritmos
    Empresa con más de 25 años en el mercado de las telecomunicaciones, se esfuerza día con día en estar a la vanguardia en todo lo que se refiere a los avances tecnológicos dentro de esta área. La línea de productos manufacturados por Multitech está fabricada para proporcionar diversos servicios de comunicación, de datos y fax con la tecnología más avanzada para todo tipo de usuarios.

    Algoritmos
    SIEMENS es una empresa especializada en el desarrollo, diseño, instalación y operación de redes telefónicas de voz y datos. Cuenta con sistemas tanto de uso doméstico, para pequeñas, medianas y grandes empresas extendiéndose también a las grandes corporaciones. La tecnología que SIEMENS utiliza, es tecnología de punta comprobada y cuenta además con el soporte técnico, de servicio y de refacciones a lo largo de la República Mexicana.

    Algoritmos
    GLOBALSTORE DATA CORPORATION, es líder en la industria de almacenamiento masivo de imagen e información con tecnología de punta. La capacidad de almacenamiento en los sistemas de GLOBALSTORE, es él más importante recurso en esta línea de productos

    Algoritmos
    Fabricante desde 1969 y líder mundial de reconocido prestigio por su calidad e innovación en toda su gama de productos de almacenamiento de datos en soporte magneto-óptico; en cintas y en consumibles de impresoras. Perteneciente al grupo Mitsubishi Chemical Co., ofrece a través de C-SERCOMP su amplia gama de productos de la más alta cálida.

    Algoritmos
    GLK SYSTEM Inc., fue fundado en 1987 en Los Angeles, Cal. por George L. Kass. La razón fue porque estaba frustrado de trabajar para las compañías "Fortune 500" como director ejecutivo de M.I.S. El quería proveer al cliente con software fácil de usar y diseñado para el trabajo requerido. George L. Kass tiene mas de 28 años en el diseño de sistemas, programación, dirección e implementación de proyectos, ha trabajado con todos los paquetes de Software que se encuentran en el mercado: Mapics, Mapics II, Bpics-Data-3-idms/r y muchos otros.

    9.3 Manejo de cadenas y caracteres

    Una cadena de caracteres, es una secuencia de caracteres ASCII, encerrados entre comillas simples o dobles. A continuación algunas sentencias para el manejo de cadenas de caracteres.

    Sentencia INSPECT

    Permite contar, reemplazar o contar y reemplazar ocurrencias de caracteres simples o grupos de caracteres en un campo de datos.

    Formato 1:

    INSPECT identificador-1 TALLYING estructura-1 ...

    Formato 2:

    INSPECT identificador-1 REPLACING estructura-1 ...

    Formato 3:

    INSPECT identificador-1 TALLYING estructura-1 ... REPLACING estructura-2 ...

    Formato 4:

    INSPECT identificador-1 CONVERTING identificador-2 ... TO {identificador-3 | literal-1} {BEFORE | AFTER } INITIAL { identificador-4 | literal-2 } ...

    Estructura 1:

    identificador-1 FOR {CHARACTERES estructura-1 {ALL | LEADING} {{identificador-2 | literal-1} estructura-1}...}...

    Estructura 2:

    {CHARACTERES BY {identificador-1 | literal-1} estructura-1 | {ALL | LEADING | FIRST} {{identificador-1 | literal-1} BY {identificador-2 | literal-2} estrucutra-1} ... }

    Estructura 3:

    [ {BEFORE | AFTER} INITIAL {identificador-1 | literal-1} ] ...

    TALLYING indica que hay que contar el números de veces que aparece la cadena de caracteres designada por identificador que acompañe a la instrucción.

    CHARACTERS indica que hay que contar todos los caracteres del campo indicado.

    Ejemplo:

    CAMPO-A PIC 9(10) VALUE 102340567

    INSPECT CAMPO-A TALLYING CONTA FOR CHARACTERS

    Después de ejecutarse esta sentencia, el campo CONTA valdrá 10, ya que en CAMPO-A hay 10 dígitos contando los 0 de relleno por la izquierda.

    ALL indica que hay que contar todas las ocurrencias.

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1110ABBC"

    INSPECT CAMPO-A TALLYING CONTA FOR ALL "11"

    Después de ejecutarse esta sentencia, el campo CONTA valdrá 2, ya que en CAMPO-A la ocurrencia "11" aparece dos veces. Después de la primera igualdad queda "1/111ABC" que da una segunda igualdad, quedando "1ABC", donde no hay más repeticiones.

    Cuando se da una igualdad, estos caracteres no se pueden volver a utilizar para verificar si se cumple una segunda igualdad.

    LEADING indica que sólo se desean contar las primeras ocurrencias contiguas.

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1110ABC"

    INSPECT CAMPO-A TALLYING CONTA FOR LEADING "11"

    Después de ejecutarse esta sentencia, el campo CONTA valdrá 1, yaque al principio de CAMPO-A, consecutivamente, sólo se da una ocurrencia.

    BEFORE INITIAL indica que el recuento se debe interrumpir después de la primera ocurrencia designada por el identificador que le acompaña.

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1110ABC"

    INSPECT CAMPO-A TALLYING CONTA FOR ALL "11" BEFORE INITIAL "/"

    Después de ejecutarse esta sentencia, el campo CONTA valdrá 1, ya que hasta el carácter "/" sólo hay una ocurrencia "11",

    AFTER INITIAL indica que el recuento debe comenzar después de la primera ocurrencia designada por el identificador que le acompaña.

    REPLACING indica que en el campo denominado por el identificador que le acompaña hay que reemplazar algunos o todos los caracteres por otros especificados en la sentencia INSPECT. Las opciones que se pueden especificar con REPLACING son las mismas que se han especificado para TALLYING y tienen el mismo significado, si pensamos que hay que reemplazar en lugar de contar. Aparece una opción más que es FIRST.

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1110ABC"

    INSPECT CAMPO-A REPLACING ALL "11" BY "**" AFTER INITIAL "/"

    Después de ejecutarse esta sentencia el campo CONTA valdrá "111/**10ABC".

    FIRST indica que sólo se reemplaza la primera ocurrencia del campo denominado por identificador-1.

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1110ABC"

    INSPECT CAMPO-A REPLACING FIRST "B" BY "A"

    Después de ejecutar esta sentencia el campo CONTA valdrá "111/1110AABC".

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1111ABBC"

    INSPECT CAMPO-A TALLYING CONTA FOR LEADING "11"

    REPLACING FIRST "11" BY "**" AFTER INITIAL "/"

    Después de ejecutarse esta sentencia, el campo CONTA valdrá 1 y CAMPO-A valdrá "111/**11ABBC".

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "111/1111ABBC"

    INSPECT CAMPO-A TALLYING CONTA FOR LEADING "11"

    REPLACING BEFORE INITIAL "/" CONTA-1 FOR LEADING "11"

    AFTER INITIAL "/"

    Después de esta sentencia, el campo CONTA valdrá 1 y el campo CONTA-1 valdrá 2.

    CONVERTING indica que hay que convertir cada carácter de una cadena de caracteres a los correspondientes caracteres de otra. Ambas cadenas deben tener la misma longitud.

    Ejemplo:

    CAMPO-A PIC X(20) VALUE "10A/1110ABBC"

    INSPECT CAMPO-A CONVERTING "1ª" TO "*/" AFTER INITIAL "/"

    Después de ejecutarse esta sentencia CAMPO-A valdrá "10A/***0/BBC" ya que los caracteres "1" se convertirán a "*" y las "A" a "/."

    Ejemplo:

    77 RESPUESTA PIC XX.

    PERFORM TEST AFTER UNTIL RESPUESTA = "SI" OR RESPUESTA = "NO"

    DISPLAY "Desea continuar SI/NO " LINE 24, POSITION 01

    ACCEPT RESPUESTA LINE 24, POSITION 25

    INSPECT RESPUESTA CONVERTING "sino" TO "SINO"

    END-PERFORM

    Para permitir que la respuesta pueda ser introducida indistintamente en mayúsculas o en minúsculas, convertimos la respuesta dada a mayúsculas y realizamos entonces la comparación.

    Sentencia STRING

    Esta sentencia permite enlazar (concatenar) el contenido total o parcial de dos o más campos y almacenar el resultado en un solo campo.

    STRING {{identificador-1 | literal-1} ...

    DELIMITED BY {identificador-2 | literal-2 | SIZE}} ...

    INTO identificador-3 ...

    [WITH POINTER identificador-4]

    [ON OVERFLOW sentencia-1]

    [NOT ON OVERFLOW sentencia-2]

    [END-STRING]

    identificador-1 o literal-1: Representa la cadena a concatenar.

    identificador-3: Es el campo donde se almacenará el resultado (sin símbolos de edición).

    Tanto los campos emisores como el receptor deben ser no numéricos.

    DELIMITED BY: Indica hasta dónde se ha de concatenar (excluido este carácter).

    SIZE: Si se especifica esta opción el número de caracteres a mover es como máximo igual al tamaño del campo receptor.

    POINTER: Por medio de identificador-4, se indica la posición en la que va a ser transferido. Por defecto es 1, este valor se va incrementando automáticamente.

    Si identificador-4 es menor que uno o mayor que el tamaño del campo receptor, la transferencia se interrumpe y se ejecuta sentencia-1 si se ha especificado ON OVERFLOW. En caso contrario, la transferencia se realiza totalmente y se ejecuta sentencia-2 si se ha especificado NOT ON OVERFLOW.

    END-STRING: Indica el fin del ámbito de la sentencia STRING.

    Ejemplo:

    01 CAMPO-A PIC X(45) VALUE SPACES.

    01 FECHA.

    02 DIA PIC X(7) VALUE "DIA 15 ".

    02 MES PIC X(10) VALUE "DEL MES 1 ".

    01 ANNO PIC X(4) VALUE "1998".

    STRING FECHA "correspondiente al año" SPACE ANNO

    DELIMITED BY SIZE INTO CAMPO-A.

    Resultado:

    CAMPO-A: DIA 15 DEL MES 1 correspondiente al año 1998.

    Ejemplo:

    STRING FECHA "correspondiente al año" SPACE ANNO

    DELIMITED BY "1" INTO CAMPO-A.

    Resultado:

    CAMPO-A: DIA correspondiente al año.

    DELIMITED: Se aplica a todos los campos y literales que le preceden.

    Ejemplo:

    STRING DIA MES "correspondiente al año" SPACE ANNO

    DELIMITED BY "1" INTO CAMPO-A.

    Resultado:

    CAMPO-A: DIA DEL MES correspondiente al año.

    Ejemplo:

    STRING FECHA DELIMITED BY SIZE "correspondiente al año"

    SPACE ANNO DELIMITED BY "98" INTO CAMPO-A.

    Resultado:

    CAMPO-A: DIA 15 DEL MES 1 correspondiente al año 19.

    Sentencia UNSTRING

    Divide el contenido de un campo en varios.

    UNSTRING identificador-1

    [DELIMITED BY [ALL] {identificador-2 | literal-1}

    [OR [ALL] {identificador-3 | literal-2}] ... ]

    INTO {identificador-4

    [DELIMITER IN identificador-5]

    [COUNT IN identificador-6]

    }...

    [WITH POINTER identificador-7]

    [TALLYING IN identificador-8]

    [ON OVERFLOW sentencia-1]

    [NOT OVERFLOW sentencia-2]

    [END-SUBSTRING]

    identificador-1: Es la cadena que hay que separar.

    identificador-4: Es el campo o campos que almacenan el resultado.

    identificador-2, literal-1, identificador-3, literal-2: Son campo elementales alfanuméricos que indican por donde hay que separar la cadena.

    Si se utiliza ALL las ocurrencias consecutivas indicadas por estos campos se tratan como si fueran una sola. Es decir, con ALL "AB", las cadenas "AB", "ABAB", "ABABAB", ... son consideradas como una única ocurrencia AB.

    Si se utilizan dos o más delimitadores hay que hacer uso de la disyuntiva OR.

    Ejemplo:

    01 CADENA.

    02 LITERAL PIC X(10) VALUE "FECHA:".

    02 FECHA PIC X(10) VALUE "15/01/98".

    77 POSICION PIC 99 VALUE 11.

    77 DIA PIC XX.

    77 MES PIC XX.

    77 ANNO PIC XXXX.

    77 DELI PIC X.

    77 CONTA PIC 99.

    77 CAMPOS PIC 9.

    UNSTRING CADENA DELIMITED BY SPACE OR "/"

    INTO DIA MES DELIMITER IN DELI ANNO COUNT IN CONTA

    WITH PONTER POSICION

    TALLYING CAMPOS.

    Contenido después de ejecutar esta sentencia:

    DIA: 15

    MES: 01

    DELI: / (delimitardor después del MES 01)

    ANNO: 1998

    CONTA: 04 (4 caracteres del año)

    CAMPOS: 3 (número de campos afectados: DIA, MES y ANNO)

    La exploración en CADENA comienza en el carácter 11, que corresponde a la primera cifra de DIA.

    Los literales han de ser no numéricos o constantes figurativas.

    Si se especifica la opción DELIMITER IN, los caracteres delimitadores son tratados como datos alfanuméricos elementales y almacenados en los campos referenciados por identificador-5.

    Si se especifica la opción COUNT IN, el valor correspondiente al número de caracteres examinados, excluyendo los delimitadores, se almacena en el campo referenciado por identificador-6.

    DELIMITER y COUNT solamente pueden utilizarse si se especifica la opción DELIMITED BY.

    Si se especifica POINTER, la cadena identificada por identificador-1 es examinada a partir de la posición especificada por el identificador-7. Esta posición por defecto es 1. Este campo es incrementado automáticamente en una unidad por cada carácter examinado.

    Si se especifica la opción TALLYING, el valor correspondiente al número de campos receptores activados durante la ejecución de una sentencia UNSTRING se almacena en identificador-8.

    Si se especifica la opción ON OVERFLOW y el valor del campo identificador-7 es menor que 1 o mayor que el tamaño del campo emisor, o bien todos los campos receptores se han activado y aún quedan caracteres por examinar en el campo emisor, la sentencia-1 se ejecuta. Si no se da una condición de ON OVERFLOW y se ha especificado la opción NOT ON OVERFLOW, entonces se ejecuta la sentencia-2.

    La cláusula END-UNSTRING delimita el ámbito de esta sentencia.

    Comparación de cadenas de caracteres

    Cobol, permite comparar cadenas de caracteres, para hacer uso de esta característica hay que saber que una cadena de caracteres es menor que otra si la primera está antes que la otra alfanuméricamente. Hay que tener presente que las letras mayúsculas son menores que las minúsculas y los dígitos son menores que las letras.

    Un carácter es menor que otro si está antes que él en el juego de caracteres que estemos utilizando.

    En una comparación, todos los caracteres ASCII son válidos, esto es, el carácter nulo (ASCII 0), el carácter blanco (ASCII 32), etc., son caracteres válidos que se deben tener en cuenta.

    Ejemplo: Realizar un segmento de programa que partiendo de dos nombres los escriba ordenados alfabéticamente por apellidos.

    01 NOM-AP-1.

    02 NOMBRE PIC X(15).

    02 APELLIDOS PIC X(20).

    01 NOM-AP-2.

    02 NOMBRE PIC X(15).

    02 APELLIDOS PIC X(20).

    77 CADENA PIC X(35).

    PROCEDURE DIVISION.

    INICIO.

    MOVE "Francisco" TO NOMBRE IN NOM-AP-1.

    MOVE "Anasagasti Sola" TO APELLIDOS IN NOM-AP-1.

    MOVE "Javier" TO NOMBRE IN NOM-AP-2.

    MOVE "Anasagasti Rubio" TO APELLIDOS IN NOM-AP-2.

    IF APELLIDOS IN NOM-AP-1 > APELLIDOS IN NOM-AP-2

    MOVE NOM-AP-1 TO CADENA

    MOVE NOM-AP-2 TO NOM-AP-1

    MOVE CADENA TO NOM-AP-2

    END-IF.

    DISPLAY NOM-AP-1.

    DISPLAY NOM-AP-2.

    STOP RUN.

    La comparación se realiza por el campo elemental APELLIDO, mientras que la permutación de los nombres completos se hace utilizando los campos compuestos correspondientes y apoyándonos en un tercer campo denominado CADENA.

    Bibliografía

    9.1 Aplicaciones científicas

    9.2 Aplicaciones administrativas

    9.3 Manejo de cadenas de caracteres

    • Trabajo sobre sentencias para el manejo de cadenas de caracteres. Efraín Diaz ITESM. Enviado en formato HTML

    www.cnnenespanol.com/2002/tec/11/26/telecomunicaciones.sordos.reut/index.html Un programa de computadora permite a los sordos usar teléfonos móviles. CNN en español.com / Tecnología y Ciencia

    www.cnnenespanol.com/2002/salud/11/27/transplante.rostro.reut/index.html El trasplante total de rostro ya no pertenece a la ciencia ficción. CNN en español. Salud

    www.cnienlinea.com.mx/Noticias/Columna/16_205.html Riesgos de la clonación humana. CNI en línea

    www.monografias.com/trabajos10/intelart/intelart.shtml ¿Que es la Inteligencia Artificial? Monografías.com

    www.ciberhabitad.com Ciudad de la informática. Artículo sobre el juego y la informática.

    www.microsip.com/f.product.htm Sistemas. Productos Microsip

    www.inegi.gob.mx/difusion/espanol/faiintro.html Acerca del INEGI. Introducción

    www.c-sercomp.com/index1.htm Productos. Centro de Servicio de Cómputo S.A. de C.V.

    Trabajo sobre sentencias para el manejo de cadenas de caracteres. Efraín Diaz ITESM

    21