informe final_leon zarate

Upload: tomy-mo-d

Post on 14-Apr-2018

236 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/27/2019 Informe Final_leon Zarate

    1/300

    I N D I C EPg.

    INDICE 1

    RESUMEN 5

    INTRODUCCION 6

    MARCO TEORICO 9

    MATERIALES Y METODOS 11

    RESULTADOS 12

    CAPTULO I

    1. HARDWARE Y SOFTWARE. 13

    1.1 Hardware 13

    1.2 Software. 33

  • 7/27/2019 Informe Final_leon Zarate

    2/300

    CAPITULO III

    3. PROGRAMACIN ESTRUCTURADA. 54

    3.1 Secuenciales 54

    3.2 Selectivas 55

    3.3 Repetitivas. 58

    3.4 Relacin de ejercicios 62

    CAPTULO IV

    4. ESTRUCTURA DE DATOS. 65

    4.1 Tipos de datos 65

    4.2 Estructura de datos 68

    4.2.1Estaticas. 68

    4.2.2 Dinmicas 102

    4.3 Relacin de Ejercicios. 133

  • 7/27/2019 Informe Final_leon Zarate

    3/300

    CAPTULO VII

    7. SOFTWARE DE PROGRAMACIN MATLAB. 168

    7.1 Introduccin. 168

    7.2 Operadores 169

    7.3 Variables. 171

    7.4 Expresiones. 171

    7.5 Matlab y el algebra lineal. 172

    7.6 Comandos de programacin. 192

    7.7 Grficos 2-D. 199

    7.8 Grficos 3-D. 204

    7.9 Relacin de ejercicios. 212

    CAPTULO VIII

    8. LENGUAJE DE PROGRAMACIN C++. 220

  • 7/27/2019 Informe Final_leon Zarate

    4/300

    8.13 Cadenas de caracteres en C++. 278

    8.14 Grficos en C++. 282

    8.15 Relacin de ejercicios. 287

    DISCUSION 297

    REFERENCIAS BIBLIOGRAFICAS 298

    APENDICE 300

    Diagrama de las estructuras de datos 300

  • 7/27/2019 Informe Final_leon Zarate

    5/300

    RESUMEN

    En este trabajo de investigacin se ha elaborado un texto de naturaleza terico-prctico

    que expone de forma sistemtica y detallada, las definiciones y ejemplos ms importantes de

    las Estructuras de datos, Herramientas de programacin, Ordenamiento y bsqueda de datos,

    Software Matlab y el Lenguaje de programacin C++, permitiendo el dictado de la asignatura

    de programacin de computadoras correspondiente al cuarto ciclo acadmico del currculo de

    estudios de la Escuela profesional de Matemtica de la Facultad de Ciencias Naturales y

    Matemtica de la Universidad Nacional del Callao.

    El texto Programacin de computadoras y sus aplicaciones procura hacer

    comprender la asignatura en referencia y as mismo pretende preparar al estudiante para que

    emprenda con xito el estudio de asignaturas de ciclos posteriores, tales como: Investigacin

    Operativa I y II, Matemtica Computacional I, II y III, Mtodos matemticos y los Cursos de

  • 7/27/2019 Informe Final_leon Zarate

    6/300

    INTRODUCCION

    Con el avance de la ciencia y la tecnologa nos enfrentamos a una manera diferente de

    ensear las matemticas y sus aplicaciones.

    La asignatura de programacin de computadoras proporciona las herramientas

    necesarias para la utilizacin de la computadora como un complemento para el estudio de las

    ciencias e ingeniera.

    No podemos estar al margen del avance de la tecnologa informtica que se ha

    convertido en una herramienta de investigacin para la resolucin de complejos problemas

    planteados en la realizacin y aplicacin de modelos matemticos de Ingeniera u otras

    disciplinas. Por tanto es necesario contar con un texto que nos permita utilizar de forma

    eficiente sus aplicaciones a la matemtica e ingeniera.

    Es muy limitado la bibliografa, especialmente en textos que logren compilar y

  • 7/27/2019 Informe Final_leon Zarate

    7/300

    El presente trabajo constituye una investigacin de gabinete (bsqueda, recopilacin,

    ordenacin y centralizacin de material bibliogrfico). Es necesario indicar que con el

    presente texto no se pretende agotar un tema bastante extenso, complejo y que guarda relacin

    con otras reas tanto en ciencia e ingenieras, por el contrario se desea exponer de manera

    pragmtica y accesible los temas contenidos en el syllabus de Programacin de

    Computadoras para que sirva de gua y referencia preferencialmente para los estudiantes

    universitarios de la especialidad matemtica y afines.

    OBJETIVO GENERAL

    Desarrollar - preparar, redactar y editar - un texto de Programacin de Computadoras

    y sus aplicaciones en el que se compile informacin tcnica y cientfica existente, que sirva

    de gua y referencia bibliogrfica para los estudiantes de ciencias e ingenieras principalmente

    de la Universidad Nacional del Callao.

  • 7/27/2019 Informe Final_leon Zarate

    8/300

    La informacin que se recopilar, est frecuentemente dispersa en libros, revistas y

    manuales, entre otros, de procedencia nacional e internacional. Se compilar despus de una

    exhaustiva revisin y anlisis del material utilizado, es all donde radica la importancia del

    presente trabajo, porque permitir generar una fuente bibliogrfica de constante consulta de

    los estudiantes de matemtica y ramas afines.

    El Texto: Programacin de computadoras y sus aplicaciones permitir cubrir parte

    de la brecha existente por la falta de bibliografa aplicada, donde se incluyan los nuevos

    avances de la tecnologa informtica.

  • 7/27/2019 Informe Final_leon Zarate

    9/300

    MARCO TEORICO

    Existen pocos textos que logren compilar y tratar todos los temas relacionados con la

    programacin acadmica del curso de programacin de computadoras, se encuentra

    bibliografa que ponen nfasis en algunos temas y en otros no.

    Todos los captulos en su integridad contienen material aprovechable (teora-practica)

    para los estudiantes de ciencias e ingenieras.

    Los temas ms importantes acorde con la programacin acadmica y que se trataran en

    este texto son los siguientes:

    PROGRAMACION ESTRUCTURADA

    La programacin estructurada es una forma de escribir programas de ordenador de

    forma clara. Para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin;

  • 7/27/2019 Informe Final_leon Zarate

    10/300

    TEORIA DE GRAFOS

    La teora de grafos estudia las propiedades de los grafos (tambin llamadas grficas).

    Un grafo es un conjunto, no vaco, de objetos llamados vrtices (o nodos) y una seleccin de

    pares de vrtices, llamados aristas que pueden ser orientados o no. Tpicamente, un grafo se

    representa mediante una serie de puntos (los vrtices) conectados por lneas (las aristas).

    SOFTWARE MATLAB

    MATLAB es un software desarrollado en un ambiente de algoritmo de interaccin,

    visualizacin y anlisis de datos.Con esta herramienta se puede resolver problemas

    computacionales tcnicos ms rpido que con los tradicionales lenguajes de programacin,

    tales como: C, C++ y Fortran.

    Es usado para una gran variedad de clculos cientficos y de ingeniera, especialmente

    para control automtico y diseo de procesos adems de otra variedad de aplicaciones tales

  • 7/27/2019 Informe Final_leon Zarate

    11/300

    MATERIALES Y MTODOS

    MATERIALES

    El texto PROGRAMACION DE COMPUTADORAS Y SUS APLICACIONES no

    est sujeto a experimento de laboratorio, sin embargo se ha desarrollado sobre la base de

    textos, que se propone en la referencia: Nakamura Choichiro(2000), Stroustrup Bjarne(2002),

    Delores Etter(1998), software especializado y experiencias propias en el dictado de la

    asignatura Programacin de Computadoras.

    Adems tambin se ha usado material de tipo tcnico en el diseo e impresin de

    informes trimestrales y final. Toda la informacin ha sido procesada en una computadora

    personal, usando Microsoft Word y en concordancia con las directivas vigentes, mediante el

    cual se han editado y elaborado los esquemas y dibujos relacionados a los diversos temas

  • 7/27/2019 Informe Final_leon Zarate

    12/300

    RESULTADOS

    El resultado del presente trabajo de investigacin es el texto:

    PROGRAMACION DE COMPUTADORAS Y SUS APLICACIONES cuyo contenido se

    expone en ocho captulos distribuidos en el orden sealado en el ndice y que se presenta en

    las paginas siguientes.

    En cada captulo se exponen, en forma clara y directa, los conceptos y leyes

    asociados a los temas tratados, a fin de que el estudiante pueda tener una buena referencia

    para comprender la solucin de los problemas que se presentan al final del captulo.

    Por otro se han elaborado algunas figuras de diagramas de flujo con el fin de

    facilitar la comprensin de los programas desarrollados y luego poder codificarlo en el

    Lenguaje de programacin C++.

    Adicionalmente se disearon por cada captulo una relacin de ejercicios que

  • 7/27/2019 Informe Final_leon Zarate

    13/300

    CAPITULO I

    HARDWARE Y SOFTWARE

    1.1 HARDWARE

    QU ES UNA COMPUTADORA?

    Figura 1.1 Computadora

  • 7/27/2019 Informe Final_leon Zarate

    14/300

    Lic. Elmer Alberto Len Zrate

    Definicin 1.2 El ordenador es una mquina de propsito general que gracias a su

    velocidad recibe todo tipo de informacin, la procesa o sea la ordena y una vez procesada la

    emite ya digerida para su interpretacin.

    Definicin 1.3 El ordenador es un conjunto de circuitos electrnicos comprimidos en una

    pastilla de silicio (llamada Chip), siendo su funcin fundamental la de encausar las seales

    electromagnticas de un dispositivo a otro.

    Definicin 1.4 El ordenador es en realidad el MICROPROCESADOR, o sea un

    conmutador, es el cerebro y razn de ser del ente denominado computadora. Todo lo dems

    que le rodea y se le es conectado no es ms que dispositivos mediante los cuales el cerebro se

    alimenta de energa e interacta con el medio ambiente y por lo tanto con nosotros los

    usuarios.

  • 7/27/2019 Informe Final_leon Zarate

    15/300

    CAPITULO I: Hardware y Software

    La unidad fundamental de trabajo de este reloj es la cantidad de instrucciones que el

    microprocesador puede ejecutar en un segundo. As uno de 12 Mhz. Puede realizar 12

    millones de ciclos por segundo.

    Figura 1.2 Unidad Central de proceso

  • 7/27/2019 Informe Final_leon Zarate

    16/300

    Lic. Elmer Alberto Len Zrate

    VELOCIDAD de sincronizacin con la cual stas son realizadas. As entre una computadora

    286 y una 486 hay una notable diferencia de poder y velocidad incomparable ya que a la

    primera no podremos agregarle u ordenarle tantas cosas como a la segunda; y por otro lado

    entre una 486 de 25 Mhz y una 486 de 50 Mhz estamos hablando que las dos tienen el mismo

    poder, pero la segunda dobla la velocidad a la primera.

    1.1.2 TARJETA PRINCIPAL

    Definicin 1.6 Tambin llamada Tarjeta Madre o Motherboard es donde se encuentran las

    conexiones bsicas para todos los componentes de la computadora, los cuales giran en torno

    al microprocesador. Es bsicamente la que permite o no el futuro crecimiento de las

    habilidades de cualquier computadora, una tarjeta con una arquitectura muy cerrada terminar

    con la vida de todo el equipo en el momento que sta requiera una reparacin o mejora, ste

  • 7/27/2019 Informe Final_leon Zarate

    17/300

    CAPITULO I: Hardware y Software

    Figura 1.3 Tarjeta principal

    1.1.3 EL COPROCESADOR MATEMTICO O NUMRICO

    Definicin 1.7 Es un microprocesador de instalacin opcional, tambin denominado

  • 7/27/2019 Informe Final_leon Zarate

    18/300

    Lic. Elmer Alberto Len Zrate

    Que su motherboard cuente con un slot disponible especfico para el

    coprocesador matemtico.

    Que el que le venden sea de la misma marca que el Microprocesador Principal

    de su computadora

    Que trabaje a la misma velocidad que lo hace el Microprocesador Principal de

    su computadora. Esto es, si usted cuenta con una computadora 486 SX de 25

    Mhz, el coprocesador debe ser un 487 SX de 25 Mhz. Como puede usted

    observar el coprocesador es algo as como la mitad del microprocesador

    completo.

    Figura 1.4 Coprocesador matemtico

  • 7/27/2019 Informe Final_leon Zarate

    19/300

    CAPITULO I: Hardware y Software

    Figura 1.5 Memorias

    TIPOS DE MEMORIAS:

    a) MEMORIA ROM

  • 7/27/2019 Informe Final_leon Zarate

    20/300

    Lic. Elmer Alberto Len Zrate

    Por lo tanto, programa que se desea ejecutar en la computadora, programa que

    mximo debe ser del mismo tamao que la capacidad de dicha memoria, de lo contrario se

    ver imposibilitada de ejecutarlo.

    Observacin 1.1

    Cuando se vea en la necesidad de adquirir un programa de cmputo,

    independientemente de cual o para que sea, lea muy bien las instrucciones antes de pagarlo,

    puesto que en ellas debe especificar claramente la cantidad recursos mnimos necesarios que

    debe tener su equipo para trabajar con ste. Bsquelos con el ttulo,

    Observacin 1.2

    Como puede usted ver, si al momento de apagar nuestra computadora se volatilizan

  • 7/27/2019 Informe Final_leon Zarate

    21/300

    CAPITULO I: Hardware y Software

    a) EL DISQUETE, FLOPPY O DISCO FLEXIBLE

    Definicin 1.11 Es un medio o soporte de almacenamiento de datos formado por una pieza

    circular de material magntico, fina y flexible encerrada en una cubierta de plstico cuadrada

    o rectangular. Esta tecnologa actualmente muy poco se utiliza.

    b) CINTA DE RESPALDO

    Definicin 1.12 Son como las cintas de cassette de audio y pueden almacenar desde 20

    Mbytes hasta 2 Gigabytes o ms. Son medios de almacenamiento muy econmicos y sobre

    todo muy rpidos, ya que pueden almacenar todo un disco duro en un pequeo cassette en

    unos cuantos minutos.

    Figura 1.6 Cintas de respaldo

  • 7/27/2019 Informe Final_leon Zarate

    22/300

    Lic. Elmer Alberto Len Zrate

    Figura 1.7 Disco duro

    d) CD-ROM o DISCO COMPACTO

    Definicin 1.14 Son de mayor capacidad ya que mnimo son de 720 Mbytes y pueden

    llegar a almacenar en el futuro alrededor de algunos Terabytes. Se recomienda ir comprando

    equipo que contengan ste dispositivo, ya que gracias a las grandes cantidades de informacin

  • 7/27/2019 Informe Final_leon Zarate

    23/300

    CAPITULO I: Hardware y Software

    1.1.6 FUENTE DE PODER

    Definicin 1.15 Una fuente de poder o alimentacin es un dispositivo que convierte la

    tensin alterna de la red de suministro, en una o varias tensiones, prcticamente continuas,

    que alimentan los distintos circuitos del ordenador al que se conecta.Tanto el microprocesador como todos los circuitos que forman los dispositivos se

    alimentan de cantidades muy pequeas de energa necesitan de una fuente que les suministre

    y regule la cantidad necesaria. Ya que cualquier variacin en el voltaje podra ser suficiente

    para quemar dichos circuitos.

    Figura 1.9 Fuente de poder

  • 7/27/2019 Informe Final_leon Zarate

    24/300

    Lic. Elmer Alberto Len Zrate

    1.1.8 DISPOSITIVOS DE ENTRADA DE INFORMACIN

    Son todos aquellos que permiten al microprocesador la obtencin de la informacin e

    instrucciones a seguir en determinado momento. Gracias a ellos, nosotros podemos

    comunicarnos con la computadora. Entre los ms utilizados se encuentran:

    a) EL TECLADO

    Definicin 1.17 Es un perifrico de entrada o dispositivo, en parte inspirado en el teclado

    de las mquinas de escribir, que utiliza una disposicin de botones o teclas, para que acten

    como palancas mecnicas o interruptores electrnicos que envan informacin a la

    computadora. Despus de las tarjetas perforadas y las cintas de papel, la interaccin a travs

    de los teclados al estilo teletipo se convirti en el principal medio de entrada para las

    computadoras. El teclado tiene entre 99 y 127 teclas aproximadamente.

  • 7/27/2019 Informe Final_leon Zarate

    25/300

    CAPITULO I: Hardware y Software

    sobre una superficie plana mueve la flecha en la direccin que se haga sobre la pantalla. Una

    vez sealado, permite escoger objetos e incluso tomarlos y cambiarlos de lugar.

    Figura 1.11 Mouse

    c) LOS RASTREADORES PTICOS O ESCANNERS

    Definicin 1.19 Son prcticamente pequeas copiadoras, que mediante haces de luz

    digitalizan punto por punto una imagen y la transfieren a la memoria de la computadora en

  • 7/27/2019 Informe Final_leon Zarate

    26/300

    Lic. Elmer Alberto Len Zrate

    de espacio disponible en su disco duro, as como el tamao de la memoria RAM de su

    mquina, ya que de no coincidir nunca podr usar su rastreador ms all de las capacidades de

    su equipo.

    Una de las funciones ms sobresalientes de los rastreadores de imgenes son las de

    permitir que programas inteligentes de reconocimiento de caracteres conviertan la imagen del

    documento rastreado en texto libre que puede, una vez convertido ser modificable incluso

    letra por letra.

    1.- Escner manual: Se parece al ratn y a medida que se desplaza por una

    superficie lisa va convirtiendo la imagen en archivo, son muy lentos y requieren de

    mucha precisin para evitar errores en la imagen obtenida.

    2.- Escner de cama: Son bsicamente pequeas copiadoras que al igual qu stas,

    rastrean el documento depositado en su pantalla. Son muy rpidos, precisos y cada

  • 7/27/2019 Informe Final_leon Zarate

    27/300

    CAPITULO I: Hardware y Software

    1.1.9 DISPOSITIVOS DE SALIDA DE INFORMACIN

    Son todos aquellos que nos permiten obtener la informacin procesada por la

    computadora, y entre los ms comunes se encuentran:

    a) EL MONITOR

    Definicin 1.20 Es un aparato de los llamados CTR (Tubo de rayos Catdicos) en los

    cuales se pueden representar los datos de tipo texto o grficos procesados por la computadora.

    El estndar en vdeo de las modernas computadoras se basa en el sistema VGA, el cual le da

    al usuario la capacidad de poder representar en la pantalla no slo imgenes de mejor calidad

    sino que incluso se pueden apreciar en calidad normal fotografas autnticas, dicha capacidad

    no la tena ninguno de los sistemas de vdeo anteriores a ste.

  • 7/27/2019 Informe Final_leon Zarate

    28/300

    Lic. Elmer Alberto Len Zrate

    Por si fuera poco si no fuera de la calidad que necesitamos no nos va a servir en el

    momento de usar programas que generen represente imgenes detalladas, realsticas o

    precisas. Esto deben tomarlo en cuenta sobre todo aquellas personas que requieren equipo de

    cmputo para prestar servicios de Diseo Grfico, Arquitectura, Edicin de Vdeo, Imprentas,

    etc.

    A la capacidad de generar imgenes de calidad de un monitor se le llama resolucin y

    se determina por la cantidad de puntos o pixeles que contenga la pantalla. As un monitor

    de 640x480 (El estndar en VGA) representar con menor calidad y cantidad de colores las

    imgenes realsticas que uno de 1024x768 comnmente denominado SuperVGA. Tambin loshay intermedios de 800x600 puntos.

    Adems un monitor de sistema VGA normal puede representar imgenes mximo

    hasta 256 tonalidades diferentes en cambio uno mejor podr manejar hasta 16 millones de

  • 7/27/2019 Informe Final_leon Zarate

    29/300

    CAPITULO I: Hardware y Software

    1.- MATRICIAL DE PUNTOS

    Definicin 1.21 Son las ms rpidas y vendidas, buenas para el trabajo comn de oficina,

    aunque ruidosas son las ms econmicas por hoja impresa y baratas en el mercado. Tambin

    se denominan as porque su sistema de impresin esta basado en el mismo de la maquina de

    escribir, esto es, un rodillo, papel normal, una cinta entintada, pero en lugar de una cua con

    el tipo de letra aqu se substituye por una cabeza de agujas, las cuales salen en secuencia

    vertical punzando los puntos indicados para formar la letra.

    Esto lo hacen lnea vertical por lnea vertical por letra por palabra por rengln. Como

    puede usted observar en cualquier momento, esto lo hacen tan rpido que apenas alcanzamos

    a apreciar como se va dibujando el rengln de letras dejando atrs ese tpico ruido de oficina

    computarizada.

    La medida de rapidez y calidad es la cantidad de caracteres que pueden imprimir por

  • 7/27/2019 Informe Final_leon Zarate

    30/300

    Lic. Elmer Alberto Len Zrate

    2.- INYECCION DE TINTA

    Definicin 1.22 Estas funcionan muy parecido a las de matriz de puntos, solo que en vez

    de agujas tienen pequesimos microtubos decenas de veces ms delgados que un cabello

    humano por donde arrojan pequeos chorros o gotas de tinta que al tocar el papel se dispersan

    y forman una imagen del texto de muy buen calidad, aunque son baratas son por lo general

    ms lentas que la de agujas, pero tiene la gran ventaja de manejar alta calidad, incluso las de

    colores son las ms populares sobre todo en uso profesional, estudiantil y domstico.

    Por un precio razonable se pueden encontrar impresoras de calidad tal a colores que

    pueden representar con un muy buen porcentaje de fidelidad una fotografa real a 720x720

    DPI (puntos por pulgada).

    Figura 1.15 Impresora inyeccin de tinta

  • 7/27/2019 Informe Final_leon Zarate

    31/300

    CAPITULO I: Hardware y Software

    Aunque siguen bajando rpidamente de precio, son las ms caras por hoja impresa, sin

    embargo son las nicas con calidad de imprenta, son la herramienta imprescindible para una

    imprenta, edicin fotogrfica o negocio de diseo grfico. La velocidad de stas como de las

    de inyeccin de tinta se mide en Hojas por minuto.

    Figura 1.16 Impresora laser

    4.-LOS PLOTTERS

  • 7/27/2019 Informe Final_leon Zarate

    32/300

    Lic. Elmer Alberto Len Zrate

    1.1.10 DISPOSITIVOS DE ENTRADA Y SALIDA DE INFORMACIN

    Son aquellos mediante los cuales podemos tanto accesar como introducir informacin

    o instrucciones al microprocesador. Entre los ms comunes:

    a) UNIDADES DE LECTURA/ESCRITURA DE DISQUETES

    Definicin 1.25 Estas se especializan en leer la informacin almacenada en los disquetes,

    as como escribir en estos los datos a ser almacenados. Segn su densidad de escritura ser el

    tipo de disquete que podrn leer o escribir.

    b) MONITORES ITERATIVOS

    Definicin 1.26 Existen monitores especiales que presentan informacin como cualquier

    monitor lo hace, permitiendo adems introducir informacin sealando con nuestro dedo

  • 7/27/2019 Informe Final_leon Zarate

    33/300

    CAPITULO I: Hardware y Software

    aprovechar la infraestructura telefnica existente en nuestro mundo para enviar por la misma

    va, voz, datos, imgenes y una vez del otro lado demodula dichas seales convirtindolas de

    nuevo en bits que al ser interpretados reproducen en la computadora la informacin recibida

    desde el otro lado del mundo.

    Aunada a sta capacidad las nuevas computadoras vienen con una tarjeta de mdem

    con fax combinado, al cual le llaman fax-mdem lo cual significa que adems de poder

    conectarse con cualquier computadora sincronizada con nosotros en cualquier parte del

    mundo, tambin podemos conectarnos con otras personas, empresas o instituciones que

    aunque no tengan computadora si tengan un fax convencional como el que ya esimprescindible en cualquier empresa.

    Si observamos detenidamente un fax convencional encontraremos qu ste dispositivo

    es 3 aparatos en uno, o sea:

  • 7/27/2019 Informe Final_leon Zarate

    34/300

    Lic. Elmer Alberto Len Zrate

    la tecnologa y por tanto de los costos, en direccin completamente opuesta aumenta la

    inversin de los servicios y programas necesarios para optimizar dichos equipos.

    En sus orgenes la programacin de los ordenadores era hecho slo, para y por los

    mismos cientficos que las construan para propsitos muy especficos. El clculo de la

    trayectoria de los proyectiles usados en la II Guerra Mundial, y posteriormente usos muy

    parecidos, hasta que mucho despus que fue utilizada en el Censo de los Estados Unidos fue

    reconocindose su valor en el campo administrativo donde estuvo hasta hace 2 dcadas,

    cuando gracias a la Computadora Personal pasaron al dominio pblico donde con tantas

    necesidades fueron surgiendo las aplicaciones diversas para cada oficio.

    1.2.1 LOS SISTEMAS OPERATIVOS

    Para que una maquina basada completamente en electrnica y un ser humano, ser con

  • 7/27/2019 Informe Final_leon Zarate

    35/300

    CAPITULO I: Hardware y Software

    Definicin 1.30 El MS-DOS Microsoft(Disk Operative System) es un sistema operativo

    con cual de una u otra forma hemos estado ms familiarizados desde la aparicin de las

    Computadoras Personales y sobre el cul trabajan la mayora de los programas usados tanto

    en la pequea, mediana y grande empresa, as como en Industrias, Instituciones y hogares por

    millones de gentes alrededor del mundo. Su versin ms nueva a la fecha es la 6.22

    Definicin 1.31 El OS/2 WARP Diseado por IBM es el competidor ms cercano de MS-

    DOS sobre todo por sus grandes capacidades de interconexin de equipos y facilidad de uso

    bajo ambiente grfico.

    Definicin 1.32 El Netware diseado por Novell, lder mundial en sistemas operativos

    para redes de computadoras que ha conquistado al mundo de la informtica por el poder y

    versatilidad de sus funciones, as como su extremada capacidad de interconectar

    computadoras y recursos de tan variadas capacidades y marcas.

  • 7/27/2019 Informe Final_leon Zarate

    36/300

    Lic. Elmer Alberto Len Zrate

    que trabajamos en Instituciones o Empresas y an para los particulares existe un nmero

    preciso de aplicaciones, que como herramientas no deben faltar en ninguna computadora de

    uso personal.

    1.2.2 PROCESADORES DE TEXTO

    Definicin 1.34 Tambin llamados Procesadores de palabras, fueron los primeros en servir

    de atraccin en la adquisicin de una computadora, ya que sustituyen absolutamente el trabajo

    de una tradicional maquina de escribir, a nuestras fechas han evolucionado tanto que ya slo

    les falta tomar dictado, - y no les falta mucho para hacerlo pero dentro de las necesidades de

    escritura actuales en la mayora de ellos podemos encontrar las siguientes funciones:

    Escribir de corrido y una sola vez todo nuestro documento

    Permiten con suma rapidez y flexibilidad hacer modificaciones al contenido, como:

  • 7/27/2019 Informe Final_leon Zarate

    37/300

    CAPITULO I: Hardware y Software

    Se pueden crear cartas o documentos de tipo constante, ya sea para circulares o

    formatos especficos incluso de facturacin y manipularlos rpidamente.

    Analizar el documento desde distintos ngulos sin necesidad de imprimirlo.

    Permitir que el programa corrija automticamente nuestra ortografa o incluso nos

    ayude a escribir ms pronto mediante palabras que va aprendiendo.

    Crear Documentos estilo periodstico a base de columnas, con grficos, imgenes o

    fotografas e incluso en formato cuadricular.

    Cuentan palabras, deshacen los cambios, imprimen partes, etc.

    COMPA A QUE LO PRODUCE NOMBRE Y VERSI N

    Microsoft Notepad, WordPad, Word para Windows

    Novell Wordperfect para DOS y Windows

    Software Libre OpenOffice, Latex

  • 7/27/2019 Informe Final_leon Zarate

    38/300

    Lic. Elmer Alberto Len Zrate

    Inmensa cantidad de funciones automticas para necesidades financieras, cientficas,

    matemticas, lgicas, de texto, etc.

    Diseo y formato fcil de corregir y ampliar

    Estilo, tipo y tamao de letra fcilmente modificables

    Manipulacin de hojas en libros de trabajo

    Implementacin avanzada de varios grficos estadsticos

    Incrustacin de texto e imgenes de diseo grfico

    Impresin inteligente fcilmente controlable

    Poder en la manipulacin de grandes cantidades de registros de informacin

    Diseo, Generacin e Impresin rpida de reportes y listados.

    Herramientas flexibles de proyeccin y anlisis para la planeacin y la oportuna toma

    de decisiones

  • 7/27/2019 Informe Final_leon Zarate

    39/300

    CAPITULO I: Hardware y Software

    registros basadas en criterios de bsqueda que satisfagan la necesidad inmediata del jefe del

    departamento diciendo .... !!Quiero un listado de todos los clientes de la zona norte del pas,

    que sean del sexo masculino, con edad mayor a 40 aos, que tengan saldo menor a N$100,000

    y ventas anuales promedio, etc.

    Entre sus funciones principales tenemos las siguientes:

    Permiten crear fcilmente cualquier estructura de registro y comenzar a capturar la

    informacin deseada

    Mediante sofisticados pero sencillos lenguajes o procedimientos facilitan la

    programacin de sistemas especficos

    Sus consultas son muy rpidas

    Permiten ordenar grandes cantidades de informacin en poco tiempo.

    Son muy tiles para las listas y reportes basados en condiciones de bsqueda.

  • 7/27/2019 Informe Final_leon Zarate

    40/300

    Lic. Elmer Alberto Len Zrate

    1.2.5 OTRAS APLICACIONES POPULARES EN LAS EMPRESAS

    NOMBRE COMPA A QUE LO PRODUCE REA DE APLICACI N

    Autocad 2011 Autodesk Diseo Arquitectnico 3D

    Bancos Apemex, Compaq, Microsip Control de Bancos y conciliaciones

    Caja Apemex Sistema de punto de venta

    Contpaq Computacin en Accin Sistema de Contabilidad Integral

    Coreldraw Corel Diseo Grfico Publicitario

    MegaPak Computacin en Accin Facturacin, Inventarios, CxC y CxP

    Money 2.0 Microsoft Administracin de finanzas personales

  • 7/27/2019 Informe Final_leon Zarate

    41/300

    CAPITULO I: Hardware y Software

    1.3 CONCEPTOS BASICOS

    1.3.1 INFORMTICA

    Definicin 1.37 Ciencia que se encarga de la organizacin y mantenimiento de la

    informacin haciendo uso de las sistemas integrados de Cmputo.

    1.3.2 COMPUTACIN

    Definicin 1.38 Conjunto de mtodos y tcnicas que permiten administrar, manipular y

    controlar en forma automtica y correcta la informacin utilizando para ello la ayuda de un

    Computador

    1.3.3 SECUENCIA PARA EL PROCESAMIENTO DE DATOS

    Ilustracin 1.1 Procesamiento de datos

  • 7/27/2019 Informe Final_leon Zarate

    42/300

    Lic. Elmer Alberto Len Zrate

    El uso de los algoritmos tiene un gran valor estratgico en las computadoras, ya que ellas

    pueden resolver un determinado problema despus de que se le ha dicho como resolverlo.

    Todo algoritmo debe cumplir las siguientes caractersticas fundamentales:

    Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.

    Un algoritmo debe estar bien definido. Si se elabora varios algoritmos todos deben

    dar el mismo resultado.

    Un algoritmo debe ser finito. Todo algoritmo tiene que terminar en algn

    momento, es decir tiene un nmero determinado de pasos.

    1.3.6 PROGRAMA

    Definicin 1.41 Es el conjunto de instrucciones escritas en un orden lgico y codificados

    en un determinado Lenguaje de Programacin, las cuales permiten llevar a cabo un

    determinado proceso previamente establecido.

  • 7/27/2019 Informe Final_leon Zarate

    43/300

    CAPITULO I: Hardware y Software

    c) Calculadoras.

    d) Microcomputadoras y minicomputadoras.

    3. Tienen un poder similar al de la minicomputadora, pero representan solo una fraccin

    de su costo.

    a) Macrocomputadora.

    b) Estacin de trabajo.

    c) Computadoras de propsito especial.

    d) Ninguna de las anteriores.

    4. Son utilizadas comnmente por bancos y aerolneas.

    a) Estacin de trabajo.

    b) Computadoras de propsito especial.

    c) Macrocomputadoras.

  • 7/27/2019 Informe Final_leon Zarate

    44/300

    Lic. Elmer Alberto Len Zrate

    b) Monitor.

    c) Teclado.

    d) CPU.

    8. Consiste en presionar rpidamente dos veces el botn primario del ratn.

    a) Clic sostenido.

    b) Clic.

    c) Clic arrastrado.

    d) Ninguna de las anteriores.

    9. Consiste en mantener presionado el botn primario del ratn y mover el ratn para

    desplazar algn elemento en la pantalla.

    a) Clic.

    b) Clic arrastrado.

  • 7/27/2019 Informe Final_leon Zarate

    45/300

    CAPITULO I: Hardware y Software

    12. algunas de las funciones del sistema operativo son:

    a) Proporcionar una interfaz con el usuario.

    b) Administrar los dispositivos de hardware en la computadora.

    c) Administrar y mantener los sistemas de archivo de disco.

    d) Todas las anteriores.

    13. Cul de los siguientes no es un tipo de sistema operativo de interfaz grfica?

    a) MS-DOS.

    b) Windows 2000.

    c) Windows XP.

    d) Macintosh.

    14. Es un programa que traduce un lenguaje de alto nivel a lenguaje mquina y genera un

    archivo programa o ejecutable.

  • 7/27/2019 Informe Final_leon Zarate

    46/300

    Lic. Elmer Alberto Len Zrate

    17. Un archivo es un smbolo en pantalla que representa un programa, un archivo de datos

    u otra entidad o funcin de la computadora.

    a) Verdadero.

    b) Falso.

    18. Un acceso directo es un vnculo con cualquier elemento al que puede tener acceso

    desde una computadora, como un programa, archivo, carpeta, unidad de disco,

    impresora u otra computadora.

    a) Verdadero.

    b) Falso.

    19. Una ventana es un smbolo en pantalla que presenta la ubicacin actual del ratn.

    a) Verdadero.

    b) Falso.

  • 7/27/2019 Informe Final_leon Zarate

    47/300

    CAPITULO II

    HERRAMIENTAS DE PROGRAMACION

    2.1 ANALISIS DEL PROBLEMA

    Requisitos:

    Comprensin de la Naturaleza del problema.

    El Problema debe estar bien definido.

    Las especificaciones de Entrada y Salida de los datos sean descritas con

    detalle.

    Deber responder a las siguientes preguntas:

    a) Que informacin debe proporcionar la resolucin del problema?

    La respuesta que obtenga aqu indicara los resultados deseados o las salidas

  • 7/27/2019 Informe Final_leon Zarate

    48/300

    Lic. Elmer Alberto Len Zrate

    2.2 DISEO DEL ALGORITMO

    La informacin o dato proporcionada al algoritmo constituye su entrada y la

    informacin producida por el algoritmo constituye su Salida.

    Ejemplo 2.2

    Leer el radio de un crculo y calcular su superficie y la longitud de la circunferencia.

    Inicio

    Ingresar valor de la Radio del crculo

    Calcular Superficie

    Superficie 3.141592 * Radio ^ 2

    Calcular Circunferencia

    Circunferencia 3.141592 * Radio * 2

  • 7/27/2019 Informe Final_leon Zarate

    49/300

    CAPITULO II: Herramientas de programacin

    SMBOLOS PRINCIPALES DE UN DIAGRAMA DE FLUJO

    SIMBOLO DESCRIPCION

    TERMINAL: Representa el inicio y el Final de un

    programaENTRADA/SALIDA: Todo tipo de Introduccin de

    Datos en la memoria desde entrada (Leer) o Salida

    (imprimir) de informacin.

    PROCESO: Cualquier tipo de operacin que pueda

    originar cambio de valor almacenada en la memoria,

    operaciones aritmticas, etc.

    DECISI N: Indica operaciones Lgicas o de

  • 7/27/2019 Informe Final_leon Zarate

    50/300

    Lic. Elmer Alberto Len Zrate

    Ejemplo 2.3

    Realizar el Diagrama de Flujo de la Suma de todos los nmeros pares entre 2 y 100.

    Ilustracin 2.1 Diagrama de flujo de suma de pares

  • 7/27/2019 Informe Final_leon Zarate

    51/300

    CAPITULO II: Herramientas de programacin

    2.4 PSEUDOCODIGO

    Definicin 2.2 Es un lenguaje de descripcin del algoritmo, esto es la traduccin de un

    problema a un lenguaje de Programacin escogido por el usuario.

    La ventaja de un Pseudocdigo es que al usarlo en la planificacin de un programa, el

    programador se puede concentrar en la Lgica y en las estructuras de control y no

    preocuparse de las reglas de un Lenguaje de Programacin.

    Todo algoritmo empieza con la palabra Inicio y termina con la Palabra Fin. Entre estas

    palabras se escriben las instrucciones o acciones por lnea.

    Ejemplo 2.4

    Pseudocdigo para determinar e imprimir el mayor valor de DOS nmeros ingresados.

    Inicio

  • 7/27/2019 Informe Final_leon Zarate

    52/300

    Lic. Elmer Alberto Len Zrate

    Mientras CONTADOR

  • 7/27/2019 Informe Final_leon Zarate

    53/300

    CAPITULO II: Herramientas de programacin

    6. Definir un Algoritmo para escribir un programa que pida el ingreso de N nmeros que

    calcule su promedio.

    7. Definir un Algoritmo que ingrese las edades de tres personas y contar cuantos son

    mayores y menores de Edad.

    8. Definir un Algoritmo que ingrese un monto por capital a una cuenta, si el Capital se

    excede en 1000 Soles aumentar en 5% al Capital de lo Contrario reducir el 2% al

    Capital.

    9. Definir el Algoritmo para hallar el elevado ensimo de un nmero cualquiera.

    10. Definir el algoritmo para ordenar ascendentemente el ingreso de 20 nmeros enteros

    positivos.

  • 7/27/2019 Informe Final_leon Zarate

    54/300

    CAPITULO III

    PROGRAMACION ESTRUCTURADA

    La programacin estructurada hace los programas ms fciles de escribir, verificar,

    leer y mantener. Los programas deben estar dotados de una estructura que puede ser:

    Secuenciales

    Selectivas

    Repetitivas

    3.1 ESTRUCTURAS SECUENCIALESDefinicin 3.1 Es aquella en la que la una instruccin sigue a otra en secuencia. Las tareas

    se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente

    hasta el final del proceso.

  • 7/27/2019 Informe Final_leon Zarate

    55/300

    CAPITULO III: Programacin estructurada

    3.2 ESTRUCTURAS SELECTIVAS

    Definicin 3.2 En las estructuras selectivas se evala una condicin y en funcin del

    resultado de la misma se realiza una opcin u otra. Las condiciones se especifican usando

    expresiones lgicas.

    Las estructuras selectivas pueden ser:

    Simples

    Dobles

    Mltiples

    3.2.1 ESTRUCTURA SIMPLE (SI-ENTONCES)

    Ejecuta una determinada accin cuando se cumple una condicin.

    Tener en cuenta:

  • 7/27/2019 Informe Final_leon Zarate

    56/300

    Lic. Elmer Alberto Len Zrate

    PSEUDOCODIGO

    SI CONDICION ENTONCES

    ACCION 1

    ACCION 2

    FIN_SI

    PSEUDOCODIGO EN INGLES

    IF CONDICION THEN

    ACCION 1

    ACCION 2

    ENDIF

    3.2.2 ESTRUCTURA DOBLE (SI ENTONCES SINO)

  • 7/27/2019 Informe Final_leon Zarate

    57/300

    CAPITULO III: Programacin estructurada

    PSEUDOCODIGO

    SI CONDICION ENTONCES

    ACCION VERDADERAS

    SINO

    ACCIONES FALSAS

    FIN_SI

    PSEUDOCODIGO EN INGLES

    IF CONDICION THEN

    ACCION VERDADERAS

    ELSE

    ACCIONES FALSAS

    ENDIF

  • 7/27/2019 Informe Final_leon Zarate

    58/300

    Lic. Elmer Alberto Len Zrate

    PSEUDOCODIGO EN INGLES

    CASE CONDICION OF

    Expresin 1 : Accin 1

    Expresin 2 : Accin 2

    Expresin 3 : Accin 3

    OTHERWISE // ELSE

    Action

    END_CASE

    OBSERVACIONES DE LA ALTERNATIVA MULTIPLE

    - Algunos lenguajes de programacin delimitan las acciones para las instrucciones

    compuestas con las palabras Inicio Fin (pascal Begin End).

    - Los valores que toman las expresiones no siempre sern consecutivos o nicos,

  • 7/27/2019 Informe Final_leon Zarate

    59/300

    CAPITULO III: Programacin estructurada

    3.3.1 ESTRUCTURA MIENTRAS-HACER (WHILE - DO)

    Permite al programa llevar a cabo la ejecucin secuencial de un proceso

    mientras la condicin establecida se cumpla o sea verdad.

    Ilustracin 3.4 Estructura Repetitiva Mientras-Hacer

  • 7/27/2019 Informe Final_leon Zarate

    60/300

    Lic. Elmer Alberto Len Zrate

    3.3.2 ESTRUCTURA REPETIRHASTA (REPEAT - UNTIL)

    Permite al programa llevar a cabo la ejecucin secuencial de un proceso

    mientras que la condicin establecida no se cumpla.

    Cuando la condicin se cumpla se continuara la ejecucin del programa

    despus de HASTA.

    Ilustracin 3.5 Estructura Repetitiva Repetir - Hasta

    ACCIONES O

    INSTRUCCIONES

  • 7/27/2019 Informe Final_leon Zarate

    61/300

    CAPITULO III: Programacin estructurada

    3.3.3 ESTRUCTURA DESDEHACER O PARAHACER (FOR.TO.DO)

    Permite ejecutar un bloque de instrucciones un numero especifico de veces,

    luego se continuara la ejecucin del programa de FIN_PARA.

    Ilustracin 3.6 Estructura Repetitiva Para - Hacer

  • 7/27/2019 Informe Final_leon Zarate

    62/300

    Lic. Elmer Alberto Len Zrate

    3.4 RELACION DE EJERCICIOS:

    1. Realizar el ingreso de 4 notas para un alumno y promediarlos.

    2. Calcular el factorial de un numero N

    3. Ingrese un nmero entero y genere la tabla de multiplicar de dicho nmero.

    4. Calcular:

    !!21

    2

    n

    nxx

    5. Calcular la suma de los N nmeros enteros positivos y terminar con nmero negativo.

    6. Sumar los nmeros enteros de 100 a 200 mediante a) Estructura Repetir b) Estructura

    Mientras c) Estructura Desde

    7. Se desea leer las calificaciones de una clase y contar l nmero total de aprobados.

    8. Representar las siguientes condiciones en forma de alternativa simple, en pseucodigo y

    diagrama de flujo:

  • 7/27/2019 Informe Final_leon Zarate

    63/300

    CAPITULO III: Programacin estructurada

    Colocar un mensaje a cada uno.

    para los mayores y menores de edad

    para los aprobados y desaprobados en su promedio

    para numero par e impar

    para los mayores y menores de 30 aos

    10. Hacer su diagrama de flujo y pseudocdigo para la suma de los N primeros nmeros

    enteros cuadrados 12+22+32...n2

    11. Hacer su diagrama de flujo y pseudocdigo para calcular la planilla de una empresa, se

    ingresa el nmero de los empleados y para cada uno de ellos se ingresa el nmero dehoras y el salario por hora, se calcula el pago y se acumula para el total de la planilla.

    12. Hacer su diagrama de flujo y pseudocdigo para un restaurant ofrece un descuento del

    10% para consumos de hasta 30 nuevos soles, un descuento de 20% para consumos

  • 7/27/2019 Informe Final_leon Zarate

    64/300

    Lic. Elmer Alberto Len Zrate

    18. Realizar un Pseudocdigo que solo permita el ingreso de nmeros enteros y cuando

    ingrese un impar se termina el ingreso.

    19. Desarrollar un Pseudocdigo que permita ingresar los datos de N alumnos. Para cada

    alumno se ingresara su nombre y 6 notas. Calcular el promedio para cada uno de estos

    alumnos. El proceso terminara cuando se ingrese la palabra FIN como un nombre de

    un alumno. Al final mostrara el promedio general de todos los alumnos.

    20. Realizar un Pseudocdigo que permita el ingreso de una clave de acceso, si la clave

    ingresada es correcta, entonces mostrar el mensaje BIENVENIDO AL SISTEMA,

    en caso contrario CLAVE INCORRECTA, se debe permitir mximo 3 intentos.

  • 7/27/2019 Informe Final_leon Zarate

    65/300

    CAPITULO IV

    ESTRUCTURAS DE DATOS

    4.1TIPOS DE DATOS

    Definicin 4.1 El Tipo de Datos de una variable es el conjunto de valores que dicha

    variable puede asumir

    Todos lo Lenguajes de Programacin de alto nivel tienen incorporados Tipos de Datos

    bsicos tales como enteros, reales, caracteres y lgicos.

    El tipo de Datos de una variable en un programa para un lenguaje de alto nivel

    requiere de una Declaracin de Tipo la cual tiene 2 objetivos:

    1. Separar el espacio de memoria que los valores de la variable requieran.

  • 7/27/2019 Informe Final_leon Zarate

    66/300

    Lic. Elmer Alberto Len Zrate

    A) ENTEROS

    Definicin 4.3 El tipo entero es un subconjunto finito de los nmeros enteros. Los enteros

    son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser

    negativos o positivos. Ejm: 5, -5

    Los nmeros enteros mximos y mnimos de una computadora suelen ser 32768 a

    +32767, los nmeros enteros fuera de este rango no se suelen representar como nmeros

    enteros, sino como reales, en algunos lenguajes de Programacin hay excepciones.

    B) REALES

    Definicin 4.4 El tipo real consiste en un subconjunto de los nmeros reales. Los nmeros

    reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real

    consta de un entero y una parte decimal. Ejm:

  • 7/27/2019 Informe Final_leon Zarate

    67/300

    CAPITULO IV: Estructuras de datos

    Ejemplo 4.1

    Si el numero fuera 123456700000000000000 (14)

    Descomponer en Cifras 123 456 700 000 000 000 000

    Y luego en forma de potencia de 10 1.234567 * 1020

    Ejemplo 4.2

    Si el nmero fuera 0.0000000000123456

    Y luego en forma de potencia de 10 1.23456 * 10-11

    4.1.2. DATOS LOGICOS (BOOLEANOS)

    Definicin 4.5 El tipo Lgico es aquel que solo puede tomar uno de dos valores.

    Verdadero (TRUE) False (FALSE)

  • 7/27/2019 Informe Final_leon Zarate

    68/300

    Lic. Elmer Alberto Len Zrate

    CARACTERES ESPECIALES: (+ - * / ^, < > $...)

    4.2 ESTRUCTURA DE DATOS

    Definicin 4.7 Es una coleccin de datos que pueden ser caracterizados por su

    organizacin y las operaciones que se definan en ella.

    Estticos: arreglos, registro, archivo, conjunto, cadena.

    Dinmicos: Listas, Pilas, Colas, Listas enlazadas, rboles.

    4.2.1 ESTRUCTURA DE DATOS ESTATICAS

    A) ARREGLOS

    Definicin 4.8 Es una estructura de Datos utilizado para almacenar datos de un mismo

    tipo.Un arreglo se define como el conjunto de datos finito, ordenado y homogneo.

  • 7/27/2019 Informe Final_leon Zarate

    69/300

    CAPITULO IV: Estructuras de datos

    Observacin 4.1

    El arreglo unidimensional tiene un solo nombre de variable que representa a todos los

    elementos.

    Observacin 4.2

    En algunos casos el ndice del arreglo empieza en 0 1

    Observacin 4.3

    El ndice indica la posicin ordenada de cmo se ingresan los datos

    Observacin 4.4

  • 7/27/2019 Informe Final_leon Zarate

    70/300

    Lic. Elmer Alberto Len Zrate

    El valor mnimo permitido de un vector se denomina LIMITE INFERIOR del vector

    y el valor mximo permitido se denomina LIMITE SUPERIOR.

    Cada elemento de un vector se puede procesar como si fuese una variable simple al

    ocupar una posicin de memoria.

    NUMERO [10] 100

    NUMERO [20] DIEZ

    La salida seria ESCRIBIR (NUMERO [10])

    NOTACIONES ALGORITMICAS PARA VECTORES UNIDIMENSIONALES

    EN ALGORITMOS

    Ejemplo 4.3

    En pascal:

  • 7/27/2019 Informe Final_leon Zarate

    71/300

    CAPITULO IV: Estructuras de datos

    Dim sumas (100 to 200) as long // (entero largo)

    OPERACIONES BASICAS CON VECTORES O ARREGLOS

    ESCRIBIR (NUMERO [10]) Visualiza el valor Numero con ndice 10

    NUMERO [4] 50 Almacena el valor 50 en NUMERO [4]

    SUMANUMERO [1]+NUMERO[5] Almacena la suma de NUMERO[1] y

    NUMERO[2] en la variable SUMA.

    SUMASUMA+NUMERO[5] Aade en la variable SUMA el valor de NUMERO[5]

    X[5] X[5] + 3.5 Suma 3.5 a X[5]

    X[11] X[2] + X[4] Almacena la suma de X[2] y X[4]

    Observacion 4.5

    Los Arreglos pueden tener por ndice:

  • 7/27/2019 Informe Final_leon Zarate

    72/300

    Lic. Elmer Alberto Len Zrate

    Pero si se desea asignar elementos a un vector, se debe utilizar estructuras

    Repetitivas (desde, mientras o repetir) o selectivas como l (Si entonces)

    Ejemplo 4.6

    Si se introducen los valores 10,11,10 mediante asignaciones

    A[1] 10 A(1) 10

    A[2] 11 A(2) 11

    A[3] 10 A(3) 10

    b) LECTURA Y ESCRITURA

    Normalmente la Lectura y escritura se realizan con estructuras repetitivas como el

    FOR (para o desde), las instrucciones simples se representan as:

  • 7/27/2019 Informe Final_leon Zarate

    73/300

    CAPITULO IV: Estructuras de datos

    Ejemplo 4.7

    Pseudocdigo para permitir el INGRESO de 5 nmeros

    Inicio

    PARA ndice=1 HASTA 5 HACER

    LEER nmeros [ndice]

    FIN_PARA

    Fin

    Ejemplo 4.8

    Pseudocdigo para IMPRIMIR los 5 nmeros ingresados anteriormente

    Inicio

  • 7/27/2019 Informe Final_leon Zarate

    74/300

    Lic. Elmer Alberto Len Zrate

    ndice ndice + 1

    FIN_MIENTRAS

    FIN

    d) AADIR

    Un arreglo llamado PROMEDIO se ha dimensionado a seis elementos pero

    solo han sido llenados cuatro valores, se podrn aadir dos elementos ms con una

    simple operacin de asignacin.

    PROM [1] PROM [2] PROM [3] PROM [4] PROM [5] PROM [6]

    10 11 20 11

    En la realizacin del Pseudocdigo:

    PROM [5] 20

  • 7/27/2019 Informe Final_leon Zarate

    75/300

    CAPITULO IV: Estructuras de datos

    INDICE CANTIDAD DE ELEMENTOS LLENOS // INDICE = 6

    MIENTRAS INDICE > = POSICION HACER

    LETRAS [INDICE + 1] LETRAS [INDICE]

    INDICE INDICE1

    FIN_MIENTRAS

    LEER LETRAS [INDICE]

    FIN

    f) BORRAR

    La operacin de borrar provoca el movimiento hacia arriba de los elementos

    inferiores.

    2.- ARREGLO DE VARIAS DIMENSIONES

    Los Arreglos no Unidimensionales se dividen en 2 grupos:

  • 7/27/2019 Informe Final_leon Zarate

    76/300

    Lic. Elmer Alberto Len Zrate

    Nombre del Arreglo : NOTAS

    Cantidad de Filas : 4

    Cantidad de Columnas : 5

    Total de elementos : 20

    Los elementos de un Arreglo Bidimensional tienen la siguiente referencia:

    NOMBRE_DE_LA_MATRIZ [ I , J ]

    Donde: I es el elemento que representa a las filas y J representa la Columnas.

    En Notacin Algortmica se Representa:

    NOMBRE_DE_LA_MATRIZ[ I..N,J..N]

    NOTACIONES ALGORITMICAS PARA VECTORES BIDIMENSIONALES

    En pascal :

  • 7/27/2019 Informe Final_leon Zarate

    77/300

    CAPITULO IV: Estructuras de datos

    b) ARREGLOS MULTIDIMENSIONALES

    Puede ser definido de tres, cuatro o ms dimensiones.

    Ejemplo 4.11

    Un arreglo de tres dimensiones puede tener:

    - 5 Cursos de un alumno

    - Tipo de sexo

    - 6 ciclos aos

    B) REGISTROS

    Definicin 4.11 Es una coleccin de informacin, normalmente relativa a una entidad

    particular. Un registro es una coleccin de campos lgicamente relacionado, que pueden ser

    tratados como una unidad por algn programa.

  • 7/27/2019 Informe Final_leon Zarate

    78/300

    Lic. Elmer Alberto Len Zrate

    A [1].Nombre Oscar Ibez

    A [1].Promedio 17.4

    A [1].Edad 29

    Ingresar 5 datos al registro declarado:

    PARA INDICE 1 HASTA 5 HACER

    INICIO

    LEER A[INDICE].CODIGO

    LEER A[INDICE].NOMBRE

    LEER A[INDICE].PROMEDIO

    LEER A[INDICE].EDAD

    FIN

    FIN_PARA

  • 7/27/2019 Informe Final_leon Zarate

    79/300

    CAPITULO IV: Estructuras de datos

    INICIO

    LEER CODIGO

    LEER NOMBRE

    LEER PROMEDIO

    LEER EDAD

    FIN_CON

    FIN_PARA

    DECLARACION DE UN REGISTRO DE DATOS EN UN PSEUDOCODIGO

    // DEFINIR ESTRUCTURA DE REGISTROS

    CAMPO 1 : TIPO DE DATOS

    CAMPO 2 : TIPO DE DATOS

    CAMPO 3 : TIPO DE DATOS

  • 7/27/2019 Informe Final_leon Zarate

    80/300

    Lic. Elmer Alberto Len Zrate

    registros. Todos los registros de un archivo son del mismo tipo, es decir, un archivo est

    formado por un conjunto de registros homogneos. Cada registro est formado por campos

    que contienen informacin referente a un elemento o caracterstica en particular dentro del

    archivo. Adems un registro puede tener un campo clave cuyo valor sirve para identificar de

    forma nica el registro, y por tanto, dicho valor no puede aparecer repetido en otro registro

    diferente.

    CLASIFICACIN DE LOS ARCHIVOS SEGN SU USO

    Archivos permanentes.- Contienen informacin que vara poco a lo largo del tiempo.

    Archivos de movimientos.- En ellos se almacena la informacin que se utilizar para

    actualizar los archivos maestros. Sus registros denominados movimientos son de tres

    clases: altas, bajas y cambios.

    Archivos de maniobra o trabajo.- Tienen una vida limitada, normalmente igual a la

  • 7/27/2019 Informe Final_leon Zarate

    81/300

    CAPITULO IV: Estructuras de datos

    1. ORGANIZACIN SECUENCIAL

    Definicin 4.13 Es aqulla en la cual los registros ocupan posiciones consecutivas de

    memoria, y slo se puede acceder a ellos de uno en uno a partir del primero.

    En un archivo secuencial no se pueden hacer operaciones de escritura cuando se est

    leyendo, ni operaciones de lectura cuando se est escribiendo.

    Por otro lado, para actualizarlos es preciso crear nuevos archivos donde se copien los

    registros que vayan a permanecer, modificados o no, junto con los nuevos.

    Acceso secuencial

    Registro 1 Registro 2 Registro 3 Registro 4 Registro 5

    2. ORGANIZACIN DIRECTA O ALEATORIA

  • 7/27/2019 Informe Final_leon Zarate

    82/300

    Lic. Elmer Alberto Len Zrate

    Acceso directo

    Registro 2 Registro 1 Registro 5

    Posicin 1 Posicin 2 Posicin 3 Posicin 4 Posicin 5

    3. ORGANIZACIN SECUENCIAL INDEXADA

    Un archivo con esta organizacin consta de 3 reas:

    rea de ndices

    rea primaria

    rea de excedentes (overflow)

    Definicin 4.15 El rea primaria contendr los registros de datos, clasificados en orden

    ascendente por su campo clave.

    Definicin 4.16 El rea de ndices es un archivo secuencial creado por el sistema, en el

  • 7/27/2019 Informe Final_leon Zarate

    83/300

    CAPITULO IV: Estructuras de datos

    Los inconvenientes que presenta son la necesidad de espacio adicional para el rea de

    ndices y el desaprovechamiento de espacio que resulta de quedar huecos intermedios libres

    despus de sucesivas actualizaciones.

    rea de ndices

    01

    AC

    04

    CH

    06

    GF

    rea primaria

    AA - AB - AC - BC - CH - FA - GF -

    01 02 03 04 05 06

    rea de excedentes

  • 7/27/2019 Informe Final_leon Zarate

    84/300

    Lic. Elmer Alberto Len Zrate

    CLASIFICACIN

    Definicin 4.21 Es la operacin consistente en reubicar los registros de tal forma que

    queden ordenados con respecto a los valores de un campo que denominamos clave de

    ordenacin.

    CONCATENACIN

    Definicin 4.22 Dados dos archivos con registros de igual estructura, se trata de obtener

    uno solo en que figuren todos los registros del primero y a continuacin todos los del

    segundo.

    INTERSECCIN

    Definicin 4.23 Dados dos archivos de igual estructura se trata de obtener otro en el que

    figuren lo registros comunes a ambos.

  • 7/27/2019 Informe Final_leon Zarate

    85/300

    CAPITULO IV: Estructuras de datos

    ACTUALIZACIN

    Definicin 4.26 Es la operacin de modificar un archivo por medio de un archivo de

    movimientos, conteniendo altas, bajas y modificaciones que hay que realizar sobre el archivo

    maestro.

    REORGANIZACIN

    Definicin 4.27 Reubica los registros de un archivo que ha sufrido actualizaciones, para

    ocupar los posibles huecos libres intermedios resultantes de bajas de registros para optimizar

    la ocupacin de la memoria, liberando la que no estaba aprovechada.

    BORRADO

    Definicin 4.28 Eliminacin total del archivo, cuando ya no se necesite, dejando libre la

    memoria del dispositivo de almacenamiento utilizado.

  • 7/27/2019 Informe Final_leon Zarate

    86/300

    Lic. Elmer Alberto Len Zrate

    BEGIN

    CH: =UPCASE (Texto[C]);

    IF (CH='A') OR (CH='E') OR (CH='I') OR (CH='O') OR (CH='U') THEN

    CONTADOR:=CONTADOR +1;

    END;

    Sin embargo, sera ms cmodo aislarel conjunto de caracteres 'A', 'E', 'I', 'O' y 'U' y,

    para cada carcter del texto, decidir si pertenece o no al conjunto de vocales:

    Ejemplo 4.13

    Para cada carcter Texto[C] ....

    Si UPCASE (Texto[C]) pertenece a VOCALES, entonces ..

    Incrementar contador de vocales,

    En caso contrario, no realizar ninguna accin.

  • 7/27/2019 Informe Final_leon Zarate

    87/300

    CAPITULO IV: Estructuras de datos

    Para definir una constante de tipo CONJUNTO, despus de la palabra CONST, el

    identificador de la constante y el signo igual, se escriben todos los elementos del tipo base que

    queremos que constituyan el conjunto, separados por comas y encerrados entre corchetes.

    Ejemplo 4.14

    Conjuntos constantes (constantes de tipo SET) vlidos seran:

    CONST VOCALES = ['A','E','I','O','U'];

    PARES = [2,4,6,8,0];

    De esta manera, con el identificador VOCALES hemos aislado un conjunto de

    elementos del tipo base CHAR, y con el identificador PARES lo hemos hecho del tipo base

    BYTE.

    Se obtendra el mismo resultado si la especificacin de los elementos constituyentes se

    realizase en distinto orden;

  • 7/27/2019 Informe Final_leon Zarate

    88/300

    Lic. Elmer Alberto Len Zrate

    Para declarar variables de tipo CONJUNTO, despus de la palabra VAR, el

    identificador de la variable y los dos puntos, se escriben las palabras reservadas SET OF

    seguidas del identificador del tipo base o subrango del mismo. As,

    VAR LETRAS : SET OF CHAR;

    NUMERO: SET OF BYTE;

    MAYUS : SET OF 'A'....Z';

    DECEN : SET OF 10...99;

    BOOLE : SET OF BOOLEAN;

    Seran declaraciones vlidas de variables de tipo SET. LETRAS es una variable que

    podr contener cualquier conjunto de caracteres; NUMERO podr contener cualquier

    conjunto de nmeros que pertenezcan al rango 0..255; MAYUS podr contener cualquier

    conjunto de caracteres pertenecientes al rango 'A'..'Z', DECEN cualquier conjunto de nmeros

    pertenecientes al rango 10..99 y BOOLE cualquier subconjunto del conjunto

  • 7/27/2019 Informe Final_leon Zarate

    89/300

    CAPITULO IV: Estructuras de datos

    MAYUS := ['A','B','S'];

    DECEN := [10,20,30,40,50,60,70,80,90];

    BOOLE := []; { conjunto vaco }

    Como hemos dicho, el tipo base no puede tener ms de 256 valores posibles y los

    valores ordinales de los valores menor y mayor del tipo base deben estar en el rango 0..255.

    Por esta razn el tipo base de un SET no puede ser de los tipos SHORTINT, INTEGER,

    LONGINT ni WORD. Igualmente no puede serlo el subrango -100..100, por ejemplo, as

    como algn tipo abs-tracto con ms de 256 valores enumerados.

    Ya sabemos definir constantes y declarar variables de tipo SET. Tambin es posible,

    como para otros tipos de datos, definir tipos SET, con TYPE:

    TYPE NOMBRE = STRING [15];

    CALEN = SET OF 1...31;

    VAR NAME : NOMBRE;

  • 7/27/2019 Informe Final_leon Zarate

    90/300

    Lic. Elmer Alberto Len Zrate

    OPERADORES RELACIONALES PARA EL TIPO SET

    Con el tipo SET se pueden utilizar los siguientes operadores binarios de comparacin

    (que por tanto, dan resultado BOOLEAN), con los siguientes significados:

    OPERADOR OPERACION TIPO DE OPERANDOS

    =

    =

    IN

    Igualdad de ConjuntosDesigualdad de Conjuntos

    Subconjunto de

    Superconjunto de

    Pertenencia a

    Tipos Set compatiblesTipos Set compatibles

    Tipos Set compatibles

    Tipos Set compatibles

    Operador izd.: cualquier tipo ordinal T

    Operador der.: Set cuyo tipo base sea

    compatible con T.

    Tipos SET compatibles son aquellos que tienen el mismo tipo base o tipos base

  • 7/27/2019 Informe Final_leon Zarate

    91/300

    CAPITULO IV: Estructuras de datos

    iv) A >= B : es TRUE si y slo si cada miembro de B lo es tambin de A; i.e., si A incluye a

    B (A es superconjunto de B).

    v) T IN A : retorna TRUE cuando el valor del operando de tipo ordinal, T, es un miembro

    del operando de tipo SET, A; en caso contrario devuelve FALSE.

    Ejemplos 4.19

    Si A = ['a','e','i','o','u']; B = ['a','i','u']; T = 'o', entonces:

    WRITE (A = B); {FALSE}

    WRITE (A B); {TRUE}

    WRITE (A = B); {TRUE}

    WRITE (T IN A); {TRUE}

    WRITE (T IN B); {FALSE}

    Podemos ya codificar en Pascal el programa, del que hablamos al principio del tema,

  • 7/27/2019 Informe Final_leon Zarate

    92/300

    Lic. Elmer Alberto Len Zrate

    OPERADOR OPERACION TIPO DE OPERANDOS

    +

    -

    *

    Unin de Conjuntos

    Diferencia de Conjuntos

    Interseccin de Conjuntos

    Tipos Set compatibles

    Tipos Set compatibles

    Tipos Set compatibles

    El resultado de estas operaciones sigue las reglas de la lgica de conjuntos: si A y B son

    SET's compatibles, entonces:

    i) A + B : resulta un conjunto formado por los elementos que estn en A, en B o en

    ambos conjuntos.

    ii) A - B : resulta un conjunto formado por los elementos que estn en A y no estn en

    B.

    iii) A * B : resulta un conjunto formado por los elementos que estn simultneamente

    en A y B.

  • 7/27/2019 Informe Final_leon Zarate

    93/300

    CAPITULO IV: Estructuras de datos

    El juego de caracteres:

    Los Lenguajes de Programacin utilizan juego de caracteres para comunicarse con las

    computadoras.

    Los cdigos de comunicacin con las PC son 2:

    ASCII (American Standard Code for Information Interchange)

    El cdigo Ascii bsico utiliza 7 bits para cada carcter a representar que supone a 128

    caracteres distintos, el cdigo Ascii ampliado utiliza 8 bits y en este caso consta de 256

    caracteres.

    El cdigo ASCII se compone de los siguientes tipos de caracteres:

    Alfabticos (a,b,c...z, A,B,C...Z)

    Numricos (0,1,2,3,4,5,6,7,8,9)

    Especiales (+,-,*, /, {,}, [,], ...)

  • 7/27/2019 Informe Final_leon Zarate

    94/300

    Lic. Elmer Alberto Len Zrate

    52 4 123 {

    53 5 124 54 6 125 }

    55 7 126 ~

    56 8 127

    57 9 128

    58 : 129

    59 ; 130

    60 < 154

    61 = 160

    62 > 161

    63 ? 162

    64 @ 163

    65 A 164

    *********** *********** 165

  • 7/27/2019 Informe Final_leon Zarate

    95/300

    CAPITULO IV: Estructuras de datos

    Utiliza 8 bits por carcter y tambin consta de 256 caracteres, solo es utilizado por la

    firma IBM y sus componentes.

    Nota:

    En general, un carcter de cualquier tipo ocupara un byte de almacenamiento de

    memoria.

    1. CADENAS DE LONGITUD FIJA

    Definicin 4.30 Son cadenas con longitud declarada al inicio de la Programacin en la cual

    cuenta blancos a la izquierda o derecha o en la separacin de letras.

    V I S U A L B A S I C V I

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

  • 7/27/2019 Informe Final_leon Zarate

    96/300

    Lic. Elmer Alberto Len Zrate

    15 es la longitud actual del Arreglo

    3. CADENAS DE LONGITUD INDEFINIDA

    Definicin 4.32 Son aquellas que se unen a travs de un puntero estas listas contienen

    caracteres empaquetados de la forma (2/elemento carcter).

    6 V I S U A L

    DONDE

    6 es la Longitud Actual

    OPERACIONES CON CADENAS

    Las operaciones ms usadas son:

    CALCULO DE LA LONGITUD

  • 7/27/2019 Informe Final_leon Zarate

    97/300

    CAPITULO IV: Estructuras de datos

    Ejemplo 4.21

    M i c r o s o f t V i s u a l S t u d i otiene 23 caracteres

    La operacin de determina la longitud de la cadena se representara por la funcin

    cuyo formato es:

    LONGITUD (Cadena de Caracteres)

    Dicha formula tiene acceso a datos tipo carcter pero el resultado ser

    numrico.

    Ejemplos:

    LONGITUD (MICROSOFT VISUAL STUDIO') 23 caracteres

    LONGITUD ( ') 3 caracteres

    LONGITUD ( ESTRUCTURA DE DATOS) 21 caracteres

    (19 letras) y (3 espacios)

  • 7/27/2019 Informe Final_leon Zarate

    98/300

    Lic. Elmer Alberto Len Zrate

    Ejemplo 4.23

    A > B

    A = a

    COMPARACION DE IGUALDAD: Utilizar el Signo Igual

    AREVALO = AREVALO verdadero

    AREVALO = Arvalo falso

    AREVALO = Arvalo falso

    Ejemplo 4.24

    COMPARACION DE DESIGUALDAD: Utilizar

    Arvalo < AREVALO

    Cceres > Arvalo

    AREVALO > Arvalo

  • 7/27/2019 Informe Final_leon Zarate

    99/300

    CAPITULO IV: Estructuras de datos

    d) EXTRACCION DE SUBCADENAS

    Definicin 4.36 Es aquella que permite la extraccin de una parte especfica de una

    cadena llamndose as Subcadena.

    Utilizar la siguiente funcin:

    SUBCADENA (Cadena , Posicin Inicial, longitud de la subcadena)

    En este caso la Subcadena estar compuesta por la cantidad de caracteres que

    extraiga desde la posicin actual y la longitud de la misma.

    SUBCADENA (Cadena , Posicin Inicial)

    En este caso la Subcadena estar formado por caracteres de la cadena desde la

    posicin inicial hacia al final de la misma.

    Ejemplo 4.25

    Subcadena (abcdefg, 2,4) bcde

  • 7/27/2019 Informe Final_leon Zarate

    100/300

    Lic. Elmer Alberto Len Zrate

    Funcin:

    Cadena = Funcin Cambiante a cadena (valor numrico)

    Numero = Funcin cambiante a numero (Valor de texto)

    EN C: ATOI (CADENA) ITOA, FCVT

    EN BASIC:

    - VAL: Devuelve los nmeros contenidos en una cadena.

    VAL (cadena)

    - STR: Devuelve la representacin de cadena en nmeros.

    STR (numero)

    g) INSERTAR CADENAS

    Definicin 4.39 Inserta una subcadena dentro de una cadena ms larga = y en

  • 7/27/2019 Informe Final_leon Zarate

    101/300

    CAPITULO IV: Estructuras de datos

    Ejemplo 4.26

    CADENA= E S T R U C T U R A I N F O R M A C I O N, debemos agregar las

    letras que faltan para que la nueva cadena sea ESTRUCTURA DE LA

    INFORMACIN

    Subcadena (cadena, 1, (12-1)) ESTRUCTURA_

    Cadena a insertar DE LA_

    Subcadena (cadena, 12, (22-12+1) INFORMACION

    h) BORRAR CADENAS

    Definicin 4.40 Elimina determinados caracteres de cuerdo a una posicin y la

    cantidad de caracteres a borrar.

    Sintaxis: BORRAR (Cadena, posicin, Longitud a eliminar)

    Idea: Si el texto es: ABCD El nuevo texto ser: AD

  • 7/27/2019 Informe Final_leon Zarate

    102/300

    Lic. Elmer Alberto Len Zrate

    i) CAMBIAR CADENAS

    Sustituye un texto por otro.

    Sintaxis: CAMBIAR (Cadena, Subcadena a sustituir, Subcadena nueva)

    Idea: Si el texto es: ABCD El nuevo texto ser: AXYD

    CAMBIAR (ABCDEF,BC,XY) AXYDEF

    Algoritmo para CAMBIAR cadenas:

    Inicio

    A POSICION (cadena, Subcadena) Entero

    B BORRAR (cadena, A, LONGITUD (CADENA)) string

    DEVOLVER (INSERTAR (cadena, A, Subcadena) string

    Fin

  • 7/27/2019 Informe Final_leon Zarate

    103/300

    CAPITULO IV: Estructuras de datos

    Una manera simple de implementar una lista es utilizando un arreglo. Sin embargo, las

    operaciones de insercin y borrado de elementos en arreglos son ineficientes, puesto que para

    insertar un elemento en la parte media del arreglo es necesario mover todos los elementos que

    se encuentren delante de l, para hacer espacio, y al borrar un elemento es necesario mover

    todos los elementos para ocupar el espacio desocupado. Una implementacin ms eficiente

    del TDA se logra utilizando listas enlazadas.

    A continuacin se presenta una implementacin en Java del TDA utilizando listas

    enlazadas y sus operaciones asociadas:

    estaVacia (): devuelve verdadero si la lista esta vaca, falso en caso contrario.

    insertar(x, k): inserta el elementox en la k-sima posicin de la lista.

    buscar(x): devuelve la posicin en la lista del elemento x.

    b scarK (k) d l l k i l t d l li t

  • 7/27/2019 Informe Final_leon Zarate

    104/300

    Lic. Elmer Alberto Len Zrate

    que el previo del primer elemento es la cabecera. Una lista vaca corresponde, en este caso, a

    una cabecera cuya referencia siguiente es null.

    Ilustracin 4.1 Esquema de una lista

    Los archivos NodoLista.java, IteradorLista.java y Lista.java contienen una

    implementacin completa del TDA lista. La clase NodoLista implementa los nodos de la lista

    enlazada, la clase Lista implementa las operaciones de la lista propiamente tal, y la clase

    IteradorLista implementa objetos que permiten recorrer la lista y posee la siguiente interfaz:

    Avanzar (): avanza el iterador al siguiente nodo de la lista.

  • 7/27/2019 Informe Final_leon Zarate

    105/300

    CAPITULO IV: Estructuras de datos

    Ilustracin 4.2 Esquema de una pila

    La interfaz de este TDA provee las siguientes operaciones:

    apilar(x): inserta el elementox en el tope de la pila (push en ingls).

    desapilar (): retorna el elemento que se encuentre en el tope de la pila y lo elimina de

    sta (pop en ingls).

    tope (): retorna el elemento que se encuentre en el tope de la pila, pero sin eliminarlo

  • 7/27/2019 Informe Final_leon Zarate

    106/300

    Lic. Elmer Alberto Len Zrate

    IMPLEMENTACIN DEL TDA PILA

    A continuacin se muestran dos maneras de implementar una pila: utilizando un

    arreglo y utilizando una lista enlazada. En ambos casos el costo de las operaciones es de O

    (1).

    1.- IMPLEMENTACIN UTILIZANDO ARREGLOS

    Para implementar una pila utilizando un arreglo, basta con definir el arreglo del tipo de

    dato que se almacenar en la pila. Una variable de instancia indicar la posicin del tope de la

    pila, lo cual permitir realizar las operaciones de insercin y borrado, y tambin permitir

    saber si la pila esta vaca, definiendo que dicha variable vale -1 cuando no hay elementos en

    el arreglo.

  • 7/27/2019 Informe Final_leon Zarate

    107/300

    CAPITULO IV: Estructuras de datos

    if (tope+1

  • 7/27/2019 Informe Final_leon Zarate

    108/300

    Lic. Elmer Alberto Len Zrate

    {

    if (tope==-1)

    {

    return true;

    }

    else

    {

    return false;

    }

    }

    }

    El inconveniente de esta implementacin es que es necesario fijar de antemano el

  • 7/27/2019 Informe Final_leon Zarate

    109/300

    CAPITULO IV: Estructuras de datos

    else

    {

    MAX_ELEM=MAX_ELEM*2;

    Object[] nuevo_arreglo=new Object[MAX_ELEM];

    for (int i=0; i

  • 7/27/2019 Informe Final_leon Zarate

    110/300

    Lic. Elmer Alberto Len Zrate

    private NodoLista lista;

    public PilaLista()

    {

    lista=null;

    }

    public void apilar(Object x)

    {

    lista=new NodoLista(x, lista);

    }

    public Object desapilar() //si esta vacia se produce UNDERFLOW

    {

    if (!estaVacia())

    {

  • 7/27/2019 Informe Final_leon Zarate

    111/300

    CAPITULO IV: Estructuras de datos

    }

    }

    public boolean estaVacia()

    {

    return lista==null;

    }

    }

    Dependiendo de la aplicacin que se le de a la pila es necesario definir que accin

    realizar en caso de que ocurra overflow (rebalse de la pila) o underflow (intentar desapilar

    cuando la pila esta vaca). Java posee un mecanismo denominado excepciones, que permite

    realizar acciones cuando se producen ciertos eventos especficos (como por ejemplo overflow

  • 7/27/2019 Informe Final_leon Zarate

    112/300

    Lic. Elmer Alberto Len Zrate

    Ilustracin 4.3 Esquema de recursividad

    Si la llamada recursiva es lo ltimo que hace la funcin F, entonces dicha llamada se

    puede substituir por un ciclo while. Este caso es conocido como tail recursion y en lo posible

    hay que evitarlo en la programacin, ya que cada llamada recursiva ocupa espacio en la

    memoria del computador, y en el caso del tail recursion es muy simple eliminarla.

    void imprimir(int[] a, int j) // versin recursiva

  • 7/27/2019 Informe Final_leon Zarate

    113/300

    CAPITULO IV: Estructuras de datos

    j=j+1;

    }

    }

    En el caso general, cuando el llamado recursivo se realiza en medio de la funcin F, la

    recursin se puede eliminar utilizando una pila.

    Ejemplo 4.29

    Recorrido en preorden de un rbol binario.

    // "raiz" es la referencia a la raiz del arbol

    // Llamado inicial: preorden(raiz)

    // Versin recursiva

  • 7/27/2019 Informe Final_leon Zarate

    114/300

    Lic. Elmer Alberto Len Zrate

    Nodo aux;

    Pila pila=new Pila(); // pila de nodos

    pila.apilar(nodo);

    while(!pila.estaVacia()) // mientras la pila no este vacia

    {

    aux=pila.desapilar();

    if (aux!=null)

    {

    System.out.print(aux.elemento);

    // Primero se apila el nodo derecho y luego el izquierdo

    // Para mantener el orden correcto del recorrido

    // Al desapilar los nodos

    pila apilar(aux der);

    CAPITULO IV E d d

  • 7/27/2019 Informe Final_leon Zarate

    115/300

    CAPITULO IV: Estructuras de datos

    Nodo aux;

    Pila pila=new Pila(); // pila de nodos

    pila.apilar(nodo);

    while(!pila.estaVacia()) // mientras la pila no este vacia

    {

    aux=pila.desapilar();

    while (aux!=null)

    {

    System.out.print(aux.elemento);

    pila.apilar(aux.der);

    aux=aux.izq;

    }

    }

    Li El Alb L Z

  • 7/27/2019 Informe Final_leon Zarate

    116/300

    Lic. Elmer Alberto Len Zrate

    C) COLAS

    Definicin 4.43 Una cola (queue en ingls) es una lista de elementos en donde siempre se

    insertan nuevos elementos al final de la lista y se extraen elementos desde el inicio de la lista.

    Tambin se conoce a las colas como listas FIFO (FIRST IN - FIRST OUT: el primero que

    entra es el primero que sale).

    Ilustracin 4.4 Esquema de cola

    Las operaciones bsicas en una cola son:

    ( )

    CAPITULO IV E d d

  • 7/27/2019 Informe Final_leon Zarate

    117/300

    CAPITULO IV: Estructuras de datos

    ultimo: indica el ndice de la posicin de ltimo elemento de la cola. Si se invoca

    encolar, el elemento debe ser insertado en el casillero siguiente al que indica la

    variable.

    numElem: indica cuntos elementos posee la cola. Definiendo MAX_ELEM como el

    tamao mximo del arreglo, y por lo tanto de la cola, entonces la cola esta vaca si

    numElem==0 y est llena si numElem==MAX_ELEM.

    Ilustracin 4.5 Esquema de elementos en una cola

    Li El Alb t L Z t

  • 7/27/2019 Informe Final_leon Zarate

    118/300

    Lic. Elmer Alberto Len Zrate

    Ilustracin 4.6 Esquema de elementos en una cola para implementar con arreglo circular

    class ColaArreglo

    {

    private Object[] arreglo;

    private int primero, ultimo, numElem;

    private int MAX_ELEM=100; /maximo numero de elemento en la cola

    bli C l A l ()

    CAPITULO IV E t t d d t

  • 7/27/2019 Informe Final_leon Zarate

    119/300

    CAPITULO IV: Estructuras de datos

    arreglo[ultimo]=x;

    numElem++;

    }

    }

    public Object sacar()

    {

    if (!estaVacia()) // si esta vacia se produce UNDERFLOW

    {

    Object x=arreglo[primero];

    primero= (primero+1) %MAX_ELEM;

    numElem--;

    return x;

    }

    Lic Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    120/300

    Lic. Elmer Alberto Len Zrate

    D) LISTAS ENLAZADAS

    Definicin 4.44 En Ciencias de la Computacin, una lista enlazada es una de las

    estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de

    datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios

    y una o dos referencias (punteros) al nodo anterior y/o posterior. El principal beneficio de las

    listas enlazadas respecto a los arreglos convencionales es que el orden de los elementos

    enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco,

    permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento.

    Una lista enlazada es un tipo de dato auto-referenciado porque contienen un puntero o

    link a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminacin de

    nodos en cualquier punto de la lista en tiempo constante (suponiendo que dicho punto est

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    121/300

    CAPITULO IV: Estructuras de datos

    TIPOS DE LISTAS ENLAZADAS

    1.-LISTAS SIMPLES ENLAZADAS

    Definicin 4.45 La lista enlazada bsica es la lista enlazada simple la cual tiene un enlace

    por nodo. Este enlace apunta al siguiente nodo en la lista, o al valor NULL o a la lista vaca, si

    es el ltimo nodo.

    Ilustracin 4.7 Esquema de lista enlazada simple

    Una lista enlazada simple contiene dos valores: el valor actual del nodo y un enlace al

    siguiente nodo

    2.- LISTA DOBLEMENTE ENLAZADA

    Lic Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    122/300

    Lic. Elmer Alberto Len Zrate

    En algn lenguaje de muy bajo nivel, XOR-Linking ofrece una va para implementar

    listas doblemente enlazadas, usando una sola palabra para ambos enlaces, aunque el uso de

    esta tcnica no se suele utilizar.

    3.- LISTAS ENLAZADAS CIRCULARES

    Definicin 4.47 En una lista enlazada circular, el primer y el ltimo nodo estn unidos

    juntos. Esto se puede hacer tanto para listas enlazadas simples como para las doblemente

    enlazadas. Para recorrer un lista enlazada circular podemos empezar por cualquier nodo y

    seguir la lista en cualquier direccin hasta que se regrese hasta el nodo original. Desde otro

    punto de vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni

    fin. Este tipo de listas es el ms usado para dirigir buffers para ingerir datos, y para visitar

    todos los nodos de una lista a partir de uno dado.

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    123/300

    CAPITULO IV: Estructuras de datos

    ltimo elemento en una lista enlazada circular simple, esto nos permite rpidas inserciones al

    principio, y tambin permite accesos al primer nodo desde el puntero del ltimo nodo.[1]

    b) Lista Enlazada Doblemente Circular

    Definicin 4.49 En una lista enlazada doblemente circular, cada nodo tiene dos enlaces,

    similares a los de la lista doblemente enlazada, excepto que el enlace anterior del primer nodo

    apunta al ltimo y el enlace siguiente del ltimo nodo, apunta al primero. Como en una lista

    doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde cualquier

    punto con acceso a algn nodo cercano. Aunque estructuralmente una lista circular

    doblemente enlazada no tiene ni principio ni fin, un puntero de acceso externo puede

    establecer el nodo apuntado que est en la cabeza o al nodo cola, y as mantener el orden tan

    bien como en una lista doblemente enlazada.

    Lic Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    124/300

    Lic. Elmer Alberto Len Zrate

    El campo de datos de un nodo puede ser otra lista enlazada. Mediante este mecanismo,

    podemos construir muchas estructuras de datos enlazadas con listas; esta prctica tiene su

    origen en el lenguaje de programacin Lisp, donde las listas enlazadas son una estructura de

    datos primaria (aunque no la nica), y ahora es una caracterstica comn en el estilo de

    programacin funcional.

    A veces, las listas enlazadas son usadas para implementar arreglos asociativos, y estas

    en el contexto de las llamadas listas asociativas. Hay pocas ventajas en este uso de las listas

    enlazadas; hay mejores formas de implementar stas estructuras, por ejemplo con rboles

    binarios de bsqueda equilibrados. Sin embargo, a veces una lista enlazada es dinmicamente

    creada fuera de un subconjunto propio de nodos semejante a un rbol, y son usadas ms

    eficientemente para recorrer sta serie de datos

    VENTAJAS

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    125/300

    CAPITULO IV: Estructuras de datos

    independientemente de la posicin en la que se inserte, solo se debe crear el nodo y modificar

    los enlaces. Esto no es as en los arreglos, ya que si el elemento lo insertamos al inicio o en

    medio, tenemos un tiempo lineal debido a que se tienen que mover todos los elementos que se

    encuentran a la derecha de la posicin donde lo vamos a insertar y despus insertar el

    elemento en dicha posicin; solo al insertar al final del arreglo se obtienen tiempos constantes.

    Al eliminar un elemento paso lo mismo que se menciono en el punto anterior.

    DESVENTAJAS DE USAR LISTAS:

    El acceso a un elemento es ms lento, debido a que la informacin no est en

    posiciones contiguas de memoria, por lo que no podemos acceder a un elemento con base en

    su posicin como se hace en los arreglos.

    OPERACIONES EN LISTAS ENLAZADAS

    Lic Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    126/300

    Lic. Elmer Alberto Len Zrate

    c) BORRADO. La operacin de borrado consiste en quitar un nodo de la lista,

    redefiniendo las ligas que correspondan. Se pueden presentar cuatro casos:

    Eliminar el primer nodo.

    Eliminar el ltimo nodo.

    Eliminar un nodo con cierta informacin.

    Eliminar el nodo anterior o posterior al nodo cierta con informacin.

    d) BSQUEDA. Esta operacin consiste en visitar cada uno de los nodos, tomando al

    campo liga como puntero al siguiente nodo a visitar.

    E) RBOLES

    Definicin 4.51 Un rbol se define como una coleccin de nodos organizados en forma

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    127/300

    CAPITULO IV: Estructuras de datos

    Definicin 4.52 Los nodos que no poseen hijos se denominan hojas. Dos nodos que tienen

    el padre en comn se denominan hermanos.

    Definicin 4.53 Un camino entre un nodo n1 y un nodo nk est definido como la secuencia

    de nodos n1, n2,..., nk tal que ni es padre de ni+1, 1

  • 7/27/2019 Informe Final_leon Zarate

    128/300

    Lic. Elmer Alberto Len Zrate

    Ilustracin 4.11 Esquema de los elementos de un rbol

    A es la raz del rbol.

    A es padre de B, C y D.

    E y F son hermanos puesto que ambos son hijos de B

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    129/300

    CAPITULO IV: Estructuras de datos

    RBOLES BINARIOS

    Definicin 4.55 Un rbol binario es un rbol en donde cada nodo posee 2 referencias a

    subrboles (ni ms, ni menos). En general, dichas referencias se denominan izquierda y

    derecha, y consecuentemente se define el subrbol izquierdo y subrbol derecho del rbol.

    Ilustracin 4.12 Esquema de un rbol binario

    Lic. Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    130/300

    n a

    Ilustracin 4.13 Esquema de un rbol binario con nodos internos y externos

    PROPIEDADES DE LOS RBOLES BINARIOS

    Propiedad 4.1

    Si se define i = nmero de nodos internos, e = nmero de nodos externos, entonces se

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    131/300

    En = In+2n

    Propiedad 4.3

    Cuntos rboles binarios distintos se pueden construir con n nodos internos?

    n 0 1 2 3

    bn 1 1 2 5

    bn?

    Ejemplo 4.31

    Lic. Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    132/300

    Ejemplo 4.32

    La siguiente figura muestra un ejemplo de un rbol de expresiones matemticas. En un

    rbol de expresiones las hojas corresponden a los operandos de la expresin (variables o

    constantes), mientras que los nodos restantes contienen operadores. Dado que los operadores

    matemticos son binarios (o unarios como en el caso del operador signo -), un rbol de

    expresiones resulta ser un rbol binario.

    Ilustracin 4.14 Esquema de un rbol binario de expresiones matemticas

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    133/300

    RECORRIDOS DE RBOLES BINARIOS

    Existen tres formas principales para recorrer un rbol binario en forma recursiva. Estas

    son:

    Preorden: raz - subrbol izquierdo - subrbol derecho.

    Inorden: subrbol izquierdo - raiz - subrbol derecho.

    Postorden: subrbol izquierdo - subrbol derecho - raz.

    Ejemplos 4.33

    Recorrido del rbol de expresiones anterior enpreorden se obtiene: * + a b - c d

    Recorrido del rbol de expresiones en inorden se obtiene: a + b * c - d

    Recorrido del rbol de expresiones enpostorden se obtiene: a b + c d - *

    Lic. Elmer Alberto Len Zrate

  • 7/27/2019 Informe Final_leon Zarate

    134/300

    4. Realizar el algoritmo para ingresar un arreglo bidimensional de numero y luego

    determine:

    La suma de la primera fila

    La multiplicacin de la ltima fila

    La suma de primera columna

    La multiplicacin de la ltima columna

    La suma de la diagonal principal

    La multiplicacin de la diagonal secundaria

    5. Escribir un pseudocdigo que permita sumar el nmero de elementos positivos y el de

    negativos de una matriz n.

    6. De una lista de n elementos escribir el pseudocdigo que permita insertar el valor x en

    un lugar ingresado por el usuario.

    CAPITULO IV: Estructuras de datos

  • 7/27/2019 Informe Final_leon Zarate

    135/300

    A B C D E E F

    12. Programa en Visual Basic donde se ingrese un texto en los Cuadros TEXT1 Y TEXT2

    y luego se unan en un cuadro de TEXT3 al presionar Clic en un botn command que

    se llame Concatenacin.

    Text3.Text = Text1.Text + Text2.Text

    Text3.Text = Text1.Text & Text2.Text

  • 7/27/2019 Informe Final_leon Zarate

    136/300

    CAPITULO V

    TEORIA DE GRAFOS

    5.1 CONCEPTOS BASICOS

    Definicin 5.1 Un grafo es un objeto matemtico que se utiliza para representar circuitos,redes, etc. Los grafos son muy utilizados en computacin, ya que permiten resolver problemas

    muy complejos.

    Definicin 5.2 Un grafo consta de vrtices (o nodos) y aristas. Los vrtices son objetos que

    contienen informacin y las aristas son conexiones entre vrtices. Para representarlos, se

    suelen utilizar puntos para los vrtices y lneas para las conexiones, aunque hay que recordar

    siempre que la definicin de un grafo no depende de su representacin.

    CAPITULO V: Teoria de grafos

  • 7/27/2019 Informe Final_leon Zarate

    137/300

    reduccin del grafo en el que solo entran a formar parte el nmero mnimo de aristas que

    forman un rbol y conectan a todos los nodos.

    Definicin 5.5 Un grafo es completo si cuenta con todas las aristas posibles (es decir, todos

    los nodos estn conectados con todos), disperso si tiene relativamente pocas aristas y denso si

    le faltan pocas para ser completo.

    Definicin 5.6 Un grafo no dirigido es cuando las aristas son la mayor parte de las veces

    bidireccionales, es decir, si una arista conecta dos nodos A y B se puede recorrer tanto en

    sentido hacia B como en sentido hacia A.

    Definicin 5.7 Un grafo dirigido es cuando las aristas son unidireccionales. Estas uniones

    se suelen dibujar con una flecha.

    Lic. Elmer Alberto Len Zrate

  • 7/27/2019 Informe F