Vous êtes sur la page 1sur 85

Software

Submdulo I
IMPLEMENTA SISTEMAS CON LA APLICACIN DE LOS DIFERENTES TIPOS DE ESTRUCTURAS DE DATOS

Gua Profesional elaborada por: Oscar David Bustos Torres


DOCENTE DEL PLANTEL XOCHIMILCO

GESTIN DITORIAL

Clemente Mora Gonzlez Jefe de Departamento de Fomento Editorial Leticia Mejia Garca Coordinadora de Fomento Editorial Miguel Antonio Gonzlez Vidales Gestin Administrativa Ulises Ramrez Hernndez Coordinador de Diseo Grfico

DIRECCIN GENERAL Av. Panam #199 Esquina con Buenos Aires. Col. Cuauhtmoc Sur Tels. 01 (686) 9 05 56 00 al 08 Correo Electrnico: principal@cecytebc.edu.mx Pgina Web: www.cecytebc.edu.mx
CICLO ESCOLAR 2011-2 Prohibida la reproduccin total o parcial de esta obra incluido el diseo tipogrfico y de portada por cualquier medio, electrnico o mecnico, sin el consentimiento por escrito del editor.

Nota:
Al personal Docente interesado en enriquecer el contenido del presente documento, le agradecemos hacernos llegar sus comentarios o aportaciones a los siguientes correos:

fomentoeditorial@cecytebc.edu.mx acaro@cecytebc.edu.mx

TORIO DIREC
Jos Guadalupe Osuna Milln Gobernador del Estado de Baja California Javier Santilln Prez Secretario de Educacin y Bienestar Social del Estado CECYTE BC Hctor Montenegro Espinoza Director General Olga Patricia Romero Czares Directora de Planeacin Argentina Lpez Bueno Directora de Vinculacin Jess Gmez Espinoza Director Acadmico Ricardo Vargas Ramrez Director de Administracin y Finanzas Alberto Caro Espino Jefe del Departamento de Docencia MUNICIPIO DE MEXICALI Cristina de los ngeles Cardona Ramrez Directora del Plantel Los Pinos Carlos Zamora Serrano Director del Plantel Bella Vista Jess Ramn Salazar Trillas Director del Plantel Xochimilco Rodolfo Rodrguez Guilln Director del Plantel Compuertas Humberto Ignacio Ibarra Velazco Director del Plantel Misiones Francisco Javier Cabanillas Garca Director del Plantel Vicente Guerrero Cristopher Diaz Rivera Director del Plantel San Felipe MUNICIPIO DE TIJUANA Martha Xchitl Lpez Flix Directora del Plantel El Florido Mara de los ngeles Martnez Villegas Directora del Plantel Las guilas Jorge Ernesto Torres Moreno Director del Plantel Zona Ro Rigoberto Gernimo Gonzlez Ramos Director del Plantel Villa del Sol Joel Chacn Rodrguez Director del Plantel El Pacfico Efran Castillo Sarabia Director del Plantel El Nio Benito Andrs Chagoya Mortera Director del Plantel Cachanilla Gabriel Valdz Manjarrez Director del Plantel Altiplano Juan Martn Alcibia Martnez Director del Plantel la Presa MUNICIPIO DE ENSENADA Alejandro Mungarro Jacinto Director del Plantel Ensenada Emilio Rios Macias Director del Plantel San Quintn MUNICIPIO DE ROSARITO Manuel Ignacio Cota Meza Director del Plantel Primo Tapia Hctor Rafael Castillo Barba Director del Plantel Rosarito Bicentenario MUNICIPIO DE TECATE Oscar Ambrz Salinas Director del Plantel Tecate

MENSAJE DEL GOBERNADOR DEL ESTADO Jvenes Estudiantes de CECYTE BC: La educacin es un valuarte que deben apreciar durante su estancia en el Colegio de Estudios Cientficos y Tecnolgicos del Estado de Baja California, dado la formacin y calidad educativa que les ofrece la Institucin y sus maestros. Por ello, asuman el compromiso que el Gobierno del Estado hace para brindarles educacin media superior, a fin de que en lo futuro tengan mejores satisfacciones de vida, y se conviertan en impulsores y promotores del crecimiento exitoso, con la visin que tiene nuestra entidad en el plano nacional. Esta administracin tiene como objetivo crear espacios y condiciones apropiadas para que en un futuro inmediato, el campo laboral tenga profesionistas tcnicos de acuerdo al perfil de la industria que cada da arriba a nuestra entidad; por lo que los invito a ser mejores en sus estudios, en su familia y en su comunidad. En ustedes se deposita la semilla del esfuerzo y dedicacin que caracteriza a los bajacalifonianos. Son el estandarte generacional que habr de marcar la pauta de nuestro desarrollo.Como Gobierno del Estado, compartimos el reto de ser formadores de los futuros profesionistas tcnicos que saldrn de CECYTE BC. Unamos esfuerzos, Gobierno, Sociedad, Maestros y Alumnos, para brindar y recibir una mejor educacin en Baja California, ser punta de desarrollo humano, crecimiento industrial y econmico, y factor importante del progreso de Mxico.

MENSAJE DEL SECRETARIO DE EDUCACIN Alumno de CECYTE BC:


La educacin es una herramienta que aumenta tus oportunidades de desarrollo personal, y permite ampliar tu horizonte de posibilidades de progreso econmico y social. Bajo esa perspectiva, el Gobierno del Estado de Baja California asume con responsabilidad su compromiso con los jvenes en la tarea de crear espacios educativos en el nivel medio superior, y ofrecerles programas de estudios tecnolgicos que les permitan integrarse con competencia a fuentes de trabajo y/o continuar estudios superiores. El Colegio de Estudios Cientficos y Tecnolgicos del Estado de Baja California, es un ejemplo de lo anterior. En las escuelas de esta Institucin, los estudiantes pueden encontrar el camino de la superacin, y el apoyo para alcanzar las metas que visualizan para forjar su futuro. Entre esos apoyos se encuentran la publicacin y entrega de este material educativo, que el CECYTE BC distribuye, con el objetivo de que lo utilices en beneficio de tus estudios. La tarea que han desarrollado maestros, alumnos y autoridades aducativas en torno a CECYTE BC, han convertido a esta Institucin en un modelo para la formacin de generaciones de profesionistas tcnicos que demanda el sector productivo que se asienta en la regin. Adems de eso, el Colegio se ha destacado por alentar el acercamiento de los padres de familia con la escuela, como una accin tendiente a fortalecer los vnculos que deben existir entre ellos, los docentes y administrativos en el proceso educativo, por ser esta, una responsabilidad compartida. Por todo esto, te felicito por realizar tus estudios en un plantel de CECYTE BC. Te exhorto a valorar este esfuerzo que hace la sociedad a travs de la Administracin Estatal, y a que utilices con pertinencia los materiales que se te otorgan para apoyar tu formacin profesional.

PRESENTACIN El documento que tienes en las manos significa un esfuerzo realizado entre la Coordinacin Nacional de los CECyTEs y el Colegio de Estudios Cientficos y Tecnolgicos del Estado de Baja California por proporcionarte material de estudio de calidad para tu formacin media superior. Las Guas Profesionales de Mantenimiento, Electrnica, Mecatrnica, Turismo, Produccin, Anlisis y Tecnologa de los Alimentos, Laboratorista Qumico, Programador de Software, Gestin Administrativa, Contabilidad y Msica; comprenden mdulos y submdulos en donde encontrars lecturas, ejercicios y dinmicas que te servirn para adquirir un mayor entendimiento de la Profesin Tcnica que ejercers en lo futuro. El tiempo realizado por cada uno de los maestros involucrados en las Guas, represent horas de estudio, dedicacin y esmero para crear un documento fundamental en la educacin. Por ello, te invitamos a que obtengas el mejor provecho de estos materiales de estudio, que fueron diseados especialmente para lo ms preciado del Colegio: sus alumnos.

Atentamente

Hctor Montenegro Espinoza


DIRECTOR GENERAL DEL CECYTE BC

Tcnico en Programador de Software


Mdulo II Estructurar los datos orientados a Objetos

Submdulo I Implementar Sistemas con la Aplicacin de los Diferentes Tipos de Estructuras de Datos

11

12

Oscar David Bustos Torres

Baja California

Oscar David Bustos Torres

Baja California

Lic. Rosalba Reyes Rosales Biol. Irasema G. Anaya Glvez Ing. Armando Mendoza Cruz

Responsable de normatividad acadmica Responsable de planes y programas de estudio rea acadmica

13

Al trmino del mdulo el alumno ser capaz de laborar en empresas pequeas que tengan la necesidad de un programa inicial teniendo por ende un control computarizado en diferentes reas de insercin tales como en el
sector pblico o privado ya sea en comercios, tiendas, consultorios, escuelas, etc. As mismo podrs Implementar sistemas con la aplicacin de los diferentes tipos de estructuras de datos siendo capaz de implementar sistemas con la aplicacin de los diferentes tipos de estructuras de datos, por medio de la elaboracin de sus algoritmos correspondientes. Teniendo en cuenta esto como utilidad para realizar mejores prcticas y dominando los diferentes tipos de estructuras como la manipulacin de estructuras bsicas tales como arreglos, pilas, colas etc. como centro de la carrera de tcnico programador de software.

14

15

Tcnico en Programador de Software

Mdulo Submdulo

II I

Estructurar los datos orientados a objetos Implementar sistemas con la aplicacin de los diferentes tipos de estructuras de datos.

Competencia 1
Manipular las estructuras de datos implementacin de programas. mediante la

Competencia 2
Analizar estructuras de datos enlazadas.

Atributos de la Competencia
Propiedades, caractersticas y reglas de la estructura de datos Introduccin a las estructuras de datos Arreglos Pilas Colas operaciones, tipos de cada una de ellas. Mtodos de ordenamiento. Listas

Atributos de la Competencia
Operaciones con listas. Tipos de listas Arboles Caractersticas, longitud. Tipos de arboles.

Saberes
Conocimientos de algoritmos Conocimiento del lenguaje de programacin. Dominio en el uso de internet

Saberes
Conocimiento de elaboracin de manuales. Utilizacin de las tics

16

17

Bienvenido, hoy iniciamos el mdulo 2 Estructurar los datos orientados a objetos de tu carrera de tcnico en programador de software, esta gua corresponde al sub mdulo 2 titulado Implementar sistemas con la aplicacin de los diferentes tipos de estructuras de datos y te servir de apoyo para que logres desarrollar conocimientos, habilidades, destrezas y actitudes, que te permitirn lograr las competencias laborales para tu vida.

Al trmino del mdulo el alumno ser capaz de aplicar los conceptos de programacin orientada a objetos utilizando la simbologa UML, teniendo en cuenta esto como utilidad para realizar mejores prcticas y dominando los diferentes tipos de estructura de datos as como la manipulacin de estructuras bsicas tales como arreglos, pilas, colas etc. como centro de la carrera de tcnico programador de software. As el estudiante ser capaz de laborar en reas que tengan la necesidad de un programa inicial teniendo por ende un control computarizado ya sea en diferentes reas de insercin tales como en el sector pblico o privado ya sea en comercios, tiendas, consultorios, escuelas, etc. Debes tener presente que para lograr las competencias propuestas, se requiere de todo tu esfuerzo y dedicacin, as como de una actitud y disciplina apropiada en las competencias que sern desarrolladas en el aula, taller y/o industria para ti.

18

19

Manipular las estructuras de datos mediante la implementacin de programas.

1. 2. 3. 4. 5. Introduccin a las estructuras de datos. Arreglos y operaciones Pilas y operaciones Colas y operaciones mtodos de ordenamiento.

1. 2. 3. 4. 5.

Introduccin a las estructuras de datos. Arreglos pilas colas mtodos de ordenamiento.

1. 2. 3. 4.

Arreglos pilas colas Mtodos de ordenamiento.

1. Arreglos 2. pilas 3. colas

20

Implementar sistemas con la aplicacin de los diferentes tipos de estructuras de datos.


Si observamos un poco nuestro entorno tanto en nuestras casas, oficinas, negocios y escuelas en cualquier parte puedes encontrar por lo menos una computadora en la cual se encuentra algn programa diseado y elaborado por algn programador sobre todo implementado en algn proceso administrativo u operativo por ende te invitamos a que en esta nueva etapa de tu carrera lograras implementar un pequeo programa en algn lugar donde se requiera la aplicacin de un programa. Como te comente anteriormente en cualquier parte vemos computadoras y es parte de nuestro mundo actual y vanguardista y cada vez es mayor frecuente el uso de programas y sistemas que faciliten nuestra tareas y funciones que faciliten nuestra vida actual y moderna siendo evidente la evolucin de las computadoras como los programas para estos se requiere el diseo de nuevos programas informticos en todas las reas ya sea administrativos, operativas, institucionales y sobre todo en negocios pequeos. As mismo realizaremos un recordatorio e iniciaremos con algunos planteamientos de algoritmos en vista de irte introduciendo a las estructuras de datos. Como inicio podras ir analizando la bsqueda de un lugar o establecimiento en el cual pudieses realizar un algoritmo para la solucin de un problema y en lo posterior puedas realizar un pequeo programa para dar solucin a un problemtica especfica, por el momento vamos a resolver algunos algoritmos prcticos con ayuda de tu maestro. Recuerda tambin sacar del baul aquellos algoritmos realizados anteriormente para que puedas practicar y ejercitar tu mente.

21

Tipos de Datos Simples Estructurados La principal caracterstica de los tipos de datos simples es que ocupan solo una casilla de memoria, por lo tanto una variable simple hace referencia a un nico valor a la vez. Dentro de este grupo de datos se encuentran: enteros, reales, caracteres, booleanos.

22

Introduccin a las estructuras de datos Propiedades, caractersticas y reglas de las estructuras de ATRIBUTOS DE LA COMPETENCIA datos. Arreglos Pilas Colas operaciones, tipos de cada una de ellas.

Mtodos de ordenamiento.

RESULTADO DE APRENDIZAJE

Al trmino del mdulo el alumno ser capaz de laborar en empresas pequeas que tengan la necesidad de un programa inicial teniendo por ende un control computarizado en diferentes reas de insercin tales como en el sector pblico o privado ya sea en comercios, tiendas, consultorios, escuelas, etc.

Como primera actividad es muy importante realizar un encuadre grupal para que el alumno comprenda los algoritmos en la implementacin de las estructuras de datos. El docente emplea fotografas, diapositivas, presentaciones en power point o pelculas donde se muestre el funcionamiento de distintos tipos estructuras de datos, explicando la utilidad que existe entre el algoritmo y la estructura de datos, as como la implementacin de sus aplicaciones.

El encuadre grupal ayuda a comprender la importancia de lograr la competencia.

23

Nombre Instrucciones para el Alumno

Introduccin a las estructuras de datos

No.

Resuelve cada una de las preguntas que aparecen en la parte inferior a este apartado.

Saberes a adquirir

Estructura de datos

Manera Didctica de Lograrlos

Investiga, comprende y resuelve cada una de las preguntas que a continuacin se presentan para el desarrollo de esta competencia.

Qu es un dato? Cuntos tipos de datos conoces? Cules son los tipos de datos? De qu tamao es cada uno de los tipos de datos?

24

Nombre Instrucciones para el Alumno Competencias Genricas a Desarrollar Manera Didctica de Lograrlas

Introduccin a las estructuras de datos.

No.

Analiza los ejemplos de los tipos de datos que se te muestra y aprenders a diferenciar entre un dato simple y uno estructurado.

Participa y colabora de manera efectiva en equipos diversos

Lograras diferenciar entre el un dato simple y uno estructurado

Dato simple

Dato estructurado.

Recuerdaqueapartirdeeste momentotrabajarascondatos estructurados,yaqueesmuy fcilconfundirteconlosdatos simples.

25

Nombre Instrucciones para el Alumno

Introduccin a las estructuras de datos Identifica cules son datos estructurados

No.

Competencias Genricas a Desarrollar

Aprende por iniciativa e inters propio a lo largo de la vida.

Manera Didctica de Lograrlas

Encierra con un crculo los datos estructurados con color azul y subraya los datos simples con color rojo.

Char Nombre[30]

int edad[5]

char gato

Char perro[10] Char apellido Int jean[5]

char botella[12][5] float promedio[4] float promedio

Int silla

int mesa[3]

int saln[10]

Int zapatos[20]

int maestro[100]

int alumno

26

Nombre Competencia a Desarrollar Atributos de la competencia

Elabora un diagrama de flujo donde contenga datos simples y estructurados.

No.

Manipular las estructuras de datos mediante la implementacin de programas.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo.

Instrucciones Manipula una interface IDE para conocer la estructura de un programa con para el Alumno estructura de datos. Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporcionar la informacin as como el IDE necesario para que los alumnos elaboren la practica solicitada

Papel, lpiz, computadora y manejo de un IDE para el desarrollo del cdigo.

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

El alumno muestra su inters y participa de manera entusiasta para desarrollar el trabajo asignado.

27

Nombre

Arreglos y Operaciones con los arreglos.

No.

Instrucciones Conoce los conceptos y operaciones de un arreglo para estructura de datos para el Alumno Manera Didctica de Lograrlos

Saberes a adquirir

Manipulacin Arreglos.

de

Identifica y analiza las operaciones de las estructuras de datos.

Un arreglo es una coleccin de datos finita homognea y ordenada de elementos. Finita: todo arreglo tiene un lmite, es decir debe de determinarse cul ser el nmero mximo de elementos que podrn formar parte del arreglo. Homognea: todos los elementos de un arreglo son del mismo tipo (todos enteros, todos carcter, todos booleanos, pero nunca una combinacin de distintos tipos). Ordenada: se puede determinar cul es primer elemento, el segundo, el tercero,. Y el ensimo elemento. Tambin los arreglos son las estructuras de datos ms sencillas. Definicin: Los arreglos son un grupo de posiciones en memoria relacionadas entre s por el hecho de que todas tienen el mismo nombre y los datos que contiene son todos del mismo tipo. Los arreglos son entidades estticas ya que conservan el mismo tamao durante toda la ejecucin del programa. Para poder referirnos a una posicin en particular o a los datos dentro de esa

28

posicin del arreglo, se especifica el nombre del arreglo y el nmero de posicin del elemento. Las posiciones generalmente se cuentan a partir del cero como primera posicin.

Podemos clasificar a las operaciones en las que intervienen arreglos de la siguiente manera: Lectura/Escritura Asignacin Insercin Actualizacin Eliminacin Modificacin Ordenacin Bsqueda

29

Ejemplo de un arreglo de tipo entero de 10 posiciones.

30

Nombre Instrucciones para el Alumno

arreglos

No.

Identifica los tipos de arreglos en las siguientes figuras colocando el tipo de arreglo que se refiere.

Competencias Genricas a Desarrollar

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Manera Didctica de Lograrlas

Analiza, reflexiona y aplica los conocimientos adquiridos para la identificacin de los diferentes tipos de arreglos.

31

32

Nombre Competencia a Desarrollar Atributos de la competencia

Elabora un programa con las operaciones bsicas de un arreglo

No.

Manipular las estructuras de datos mediante la implementacin de programas.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo.

Desarrolla un programa en el lenguaje de programacin sugerido por tu maestro, Instrucciones donde utilices un arreglo de tipo entero de 5 posiciones utilizando la operacin de para el Alumno lectura y escritura, mostrando los datos capturados. Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporcionar la informacin as como el IDE necesario para que los alumnos elaboren la practica solicitada

Papel, lpiz, computadora y manejo de un IDE para el desarrollo del cdigo.

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

El alumno muestra su inters y participa de manera entusiasta para desarrollar el trabajo asignado.

33

Nombre Competencia a Desarrollar Atributos de la competencia

Elabora un programa con las operaciones bsicas de un arreglo

No.

Manipular las estructuras de datos mediante la implementacin de programas.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo.

Desarrolla un programa en el lenguaje de programacin sugerido por tu maestro, Instrucciones donde utilices un arreglo de tipo flotante de 5 posiciones utilizando la operacin de para el Alumno lectura y escritura, mostrando los datos capturados. Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporcionar la informacin as como el IDE necesario para que los alumnos elaboren la practica solicitada

Papel, lpiz, computadora y manejo de un IDE para el desarrollo del cdigo.

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

El alumno muestra su inters y participa de manera entusiasta para desarrollar el trabajo asignado.

34

Nombre Competencia a Desarrollar Atributos de la competencia

Elabora un programa con las operaciones bsicas de un arreglo

No.

Manipular las estructuras de datos mediante la implementacin de programas.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo.

Desarrolla un programa en el lenguaje de programacin sugerido por tu maestro, Instrucciones donde utilices un arreglo de tipo carcter de 7 posiciones utilizando la operacin de para el Alumno lectura y escritura, mostrando los datos capturados. Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporcionar la informacin as como el IDE necesario para que los alumnos elaboren la practica solicitada

Papel, lpiz, computadora y manejo de un IDE para el desarrollo del cdigo.

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

El alumno muestra su inters y participa de manera entusiasta para desarrollar el trabajo asignado.

35

Nombre Instrucciones para el Alumno

Pilas y Operaciones con los arreglos

No.

Analiza y comprende las operaciones con las pilas. Manera Didctica de Lograrlos

Saberes a adquirir

Manipulacin Arreglos.

de

Interpreta la informacin que se presenta a continuacin y determina la diferencia entre una pila y la de un arreglo.

Introduccin a las Pilas Cuando se introdujeron al tema de arreglos lineales se mencion que eran estructuras lineales, analizar las operaciones de lectura, escritura, asignacin, los datos pueden insertarse o eliminarse en cualquier posicin del arreglo. Pero en el caso de las pilas solo debern agregarse o quitarse solamente por un extremo, estas son estructuras de datos lineales tambin, que tienen restricciones en cuanto a la posicin en la cual puedan realizarse la insercin y eliminacin de elementos. Una pila es una lista de elementos a la cual se puede insertar o eliminar elementos solo por uno de los extremos. En consecuencia, los elementos de una pila sern eliminados en el orden inverso al que se insertaron, es decir, el ltimo elemento que se mete en la pila es el primero que se saca. Existen numerosos casos prcticos en los que se utiliza el concepto de pila por ejemplo: pilas de platos, pilas de latas en un supermercado, etc.

Las pilas son estructuras de datos que tienes dos operaciones bsicas: Push (para insertar un elemento) y pop (para extraer un elemento). Su Caracterstica fundamental es que al extraer se obtiene siempre el ltimo elemento que acaba de insertarse. Por esta razn tambin se conocen como estructuras de datos LIFO (del ingls Last In First Out). Una posible implementacin mediante listas enlazadas sera insertando y extrayendo siempre por el principio de la lista. Gracias a las pilas es posible el uso de la recursividad (lo veremos en detalle en el tema siguiente). La variable que llama al mismo procedimiento en el q est, habr que guardarla as como el resto de variables de la nueva llamada, para a la vuelta de la recursividad ir sacndolas, esto es posible a la implementacin de pilas. Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Por ejemplo, la gestin de ventanas en Windows (cuando cerramos Una ventana siempre recuperamos la que tenamos detrs). Otro ejemplo es la Evaluacin general de cualquier expresin matemtica para evitar tener que Calcular el nmero de variables temporales que hacen falta.

36

Operaciones con pilas


Las operaciones que se pueden realizar con las pilas son las siguientes: Poner un elemento (push) Quitar un elemento (pop) Considerando que se tiene una pila que puede almacenar un mximo numero de elementos y el ltimos de ellos esta indicado por TOPE.

37

Nombre Instrucciones para el Alumno Competencias Genricas a Desarrollar Manera Didctica de Lograrlas

Pilas y sus operaciones bsicas

No.

Observa el siguiente ejemplo e identifica las operaciones de una pila


Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Analiza, reflexiona y comprende las operaciones existentes en una pila de datos.

38

Nombre Instrucciones para el Alumno

Pilas y operaciones bsicas

No.

Interpreta el siguiente pseudocdigo de insertar y eliminar un dato dentro de una pila

Competencias Genricas a Desarrollar

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Manera Didctica de Lograrlas

Analiza, reflexiona y aplica los conocimientos adquiridos para la solucin del problema planteado.

1.SiTOPE<MAX//verificaquehayaespaciolibre entonces hacerTOPETOPE+1//ActualizaTOPE PILA[TOPE]DATO//Poneunnuevoelementoenlapila sino 2.escribirespaciolleno

39

1.SiTOPE>0//verificaquelapilanoestevaca Entonces hacerDATOPILA[TOPE]y TOPETOPE1//Actualizatope Sino escribirespacioestavacio 2.Findelacondicional1

40

Nombre Competencia a Desarrollar Atributos de la competencia

Pilas y sus operaciones bsicas

No.

Manipular las estructuras de datos mediante la implementacin de programas.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo.

Realiza un programa que contenga las operaciones bsicas en una pila como Instrucciones para el Alumno insertar, eliminar y mostrar. Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporcionar la informacin necesaria para que los alumnos elaboren la practica solicitada.

Computadora, dispositivo de almacenamiento y el IDE para la elaboracin del cdigo. Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Analiza, reflexiona y aplica los conocimientos adquiridos para la solucin del problema planteado.

41

Nombre Instrucciones para el Alumno

Colas y operaciones bsicas Analiza e interpreta el concepto de una cola as como sus operaciones. Manera Didctica de Lograrlos

No.

Saberes a adquirir

Manipulacin de Arreglos.

Interpreta la informacin que se presenta y conoce la definicin de una cola as como sus operaciones bsicas.

Una cola es una coleccin de elementos homogneos (almacenados en dicha estructura), en la misma se pueden insertar elementos por uno de los extremos, llamado frente, y retirar los mismos por el otro extremo, denominado final. Es importante aclarar que, tanto el frente como el final de la cola, son los nicos indicados para retirar e insertar elementos, respectivamente. Esto nos indica que no podemos acceder directamente a cualquier elemento de la cola, sino solo al primero, o sea el que est o se encuentra en el frente, y no se pueden insertar elementos en cualquier posicin sino solo por el final, as el elemento insertado queda como ltimo. Por esta razn la cola es denominada una estructura F.I.F.O., o simplemente una lista F.I.F.O., esto representa el acrnimo de las palabras inglesas first in, first out (primero en entrar, primero en salir). Grficamente podemos representarla como: La cola fue recin creada y esta vaca. (Frente y final apuntan FINAL FRENTE a nil).

42

Si ahora le ingresamos el elemento A, la misma quedar se la siguiente manera: Como A es el nico A elemento, frente y final apuntan a l. FINAL nil FRENTE Si a continuacin se ingresa el elemento B, el frente de la cola continuar apuntando a A, pero ahora el final apuntar al elemento recin ingresado. B A El enlace se realiza desde el frente hacia el final. FINAL nil FRENTE Al retirar un elemento, el frente apuntar al siguiente del elemento retirado y en el caso que la cola quedara vaca, frente y final apuntarn a nil. B A elemento retirado. FINAL nil FRENTE FINAL FRENTE nil nil Ahora bien, una vez conocido el comportamiento de las colas veremos como se definen las mismas y su forma de manejo, o "comportamiento" de la cola. Para trabajar con una cola, as como para cualquier tipo de estructura abstracta, tendremos que definir las operaciones que representen el comportamiento de la misma, para de esta manera poder utilizarlas. Dichas operaciones son: Insertar elemento. Eliminar elemento. Podemos definir una cola en forma dinmica implementndola como una lista simple y respetando las restricciones de insercin (slo se puede realizar a travs del final) y extraccin (slo se puede realizar por el frente). A partir de la definicin dada, podremos implementar una estructura de tipo cola en una unidad de biblioteca de la siguiente manera.

43

Nombre

Colas y operaciones bsicas

No.

Instrucciones para el Alumno Analiza e interpreta las siguientes imgenes de colas de datos Competencias Genricas a Desarrollar Manera Didctica de Lograrlas
Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

A continuacin se muestran diferentes imgenes tipos de colas en diferentes situaciones.

44

45

Nombre Instrucciones para el Alumno

Colas y operaciones bsicas

No.

Elabora un mapa mental identificando las diferencias entre una pila y una cola as como donde se puede aplicar una cola de datos.

Competencias Genricas a Desarrollar

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Manera Didctica de Lograrlas

Analiza e interpreta la informacin anterior y comprende la forma de realizar las operaciones bsicas de una cola.

Las colas pueden representarse mediante el uso de: Arreglos Listas enlazadas

46

Nombre Competencia a Desarrollar Atributos de la competencia Instrucciones para el Alumno Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas

Colas y operaciones bsicas.


Manipular las estructuras de datos mediante la implementacin de programas.

No.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo.

1.

Proporcionar la informacin necesaria para que los alumnos elaboren la practica solicitada.

Computadora, dispositivo de almacenamiento y el IDE para la elaboracin del cdigo.


Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Nota: recuerda que en una cola el primero en entrar es elprimeroensalir.

47

Nombre Instrucciones para el Alumno

Mtodos de ordenamiento Analiza y aplica los mtodos de ordenamiento. Manera Didctica de Lograrlos

No.

Saberes a adquirir

Manipulacin de Arreglos.

Analiza e investiga los diferentes mtodos de ordenamientos.

Qu es ordenamiento? Es la operacin de arreglar los registros de una tabla en algn orden secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efecta con base en el valor de algn campo en un registro. El propsito principal de un ordenamiento es el de facilitar las bsquedas de los miembros del conjunto ordenado. Ej. De ordenamientos: Dir. telefnico, tablas de contenido, bibliotecas y diccionarios, etc. El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una secuencia tal que represente un orden, el cual puede ser numrico, alfabtico o incluso alfanumrico, ascendente o descendente. Cundo conviene usar un mtodo de ordenamiento? Cuando se requiere hacer una cantidad considerable de bsquedas y es importante el factor tiempo. Tipos de ordenamientos: Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos. Los internos:

48

Son aquellos en los que los valores a ordenar estn en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc). Los externos: Son aquellos en los que los valores a ordenar estn en memoria secundaria (disco, cinta, cilindro magntico, etc.), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la ltima posicin accesada (posicin 1, posicin 500, etc.).

Ordenamiento Burbuja (Bubblesort)


Descripcin.
Este es el algoritmo ms sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente a travs de la lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que est en la siguiente posicin se intercambian. Sencillo no? Ventajas:

Fcil implementacin. No requiere memoria adicional.

Desventajas:

Muy lento. Realiza numerosas comparaciones. Realiza numerosos intercambios.

Ordenamiento por Seleccin.


Descripcin.
Este algoritmo tambin es sencillo. Consiste en lo siguiente:

Buscas el elemento ms pequeo de la lista. Lo intercambias con el elemento ubicado en la primera posicin de la lista. Buscas el segundo elemento ms pequeo de la lista. Lo intercambias con el elemento que ocupa la segunda posicin en la lista. Repites este proceso hasta que hayas ordenado toda la lista. 49

Ventajas:

Fcil implementacin. No requiere memoria adicional. Realiza pocos intercambios. Rendimiento constante: poca diferencia entre el peor y el mejor caso.

Desventajas:

Lento. Realiza numerosas comparaciones.

Ordenamiento por Insercin


Este algoritmo tambin es bastante sencillo. Has jugado cartas?. Cmo las vas ordenando cuando las recibes? Yo lo hago de esta manera: tomo la primera y la coloco en mi mano. Luego tomo la segunda y la comparo con la que tengo: si es mayor, la pongo a la derecha, y si es menor a la izquierda (tambin me fijo en el color, pero omitir esa parte para concentrarme en la idea principal). Despus tomo la tercera y la comparo con las que tengo en la mano, desplazndola hasta que quede en su posicin final. Contino haciendo esto, insertando cada carta en la posicin que le corresponde, hasta que las tengo todas en orden. Lo haces as t tambin? Bueno, pues si es as entonces comprenders fcilmente este algoritmo, porque es el mismo concepto. Para simular esto en un programa necesitamos tener en cuenta algo: no podemos desplazar los elementos as como as o se perder un elemento. Lo que hacemos es guardar una copia del elemento actual (que sera como la carta que tomamos) y desplazar todos los elementos mayores hacia la derecha. Luego copiamos el elemento guardado en la posicin del ltimo elemento que se desplaz. Ventajas:

Fcil implementacin. Requerimientos mnimos de memoria.

Desventajas:

Lento. Realiza numerosas comparaciones.

50

El mtodo de ordenamiento Quick Sort es actualmente el ms eficiente y veloz de los mtodos de ordenacin interna. Es tambin conocido con el nombre del mtodo rpido y de ordenamiento por particin, en el mundo de habla hispana. Este mtodo es una mejora sustancial del mtodo de intercambio directo y recibe el nombre de Quick Sort por la velocidad con que ordena los elementos del arreglo. Su autor C.A. Hoare lo bautiz as. La idea central de este algoritmo consiste en los siguiente: Se toma un elemento x de una posicin cualquiera del arreglo. Se trata de ubicar a x en la posicin correcta del arreglo, de tal forma que todos los elementos que se encuentran a su izquierda sean menores o iguales a x y todos los elementos que se encuentren a su derecha sean mayores o iguales a x. Se repiten los pasos anteriores pero ahora para los conjuntos de datos que se encuentran a la izquierda y a la derecha de la posicin correcta de x en el arreglo.

Ejemplo: A: 15,67,08,16,44,27,12,35 Se selecciona A[i] x=15 Primera pasada (DER-IZQ) A[8] >= x 35 >= 15 No hay intercambio A[7] >= x 12 >= 15 Si hay intercambio A: 12,67,08,16,44,27,15,35 (IZQ-DER) A[2] < = X 67 < = 15 Si hay intercambio A:12,15,08,16,44,27,67,35 2da. Pasada (DER-IZQ) A[6] >= x 27 >= 15 No hay intercambio A[5] >= x 44 >= 15 No hay intercambio A[4] >= x 16 >= 15 No hay intercambio A[3] >= x 08 >= 15 Si hay intercambio A: 12,08,15,16,44,27,67,35 Como el recorrido de izquierda a derecha debera iniciarse en la misma posicin donde se encuentra el elemento x, el proceso se termina ya que el elemento x, se encuentra en la posicin correcta. A: 12, 08, 15, 16, 44, 27, 67, 35 1er 2do Conjunto Conjunto 16, 44, 27, 67, 35 51

x16 (DER-IZQ) A[8]>=x No hay intercambio A[7]>=x No hay intercambio A[6]>=x No hay intercambio A[5]>=x No hay intercambio A: 12, 08, 15, 16, 44, 27, 67, 35 x44 (DER-IZQ) A[8]>= x Si hay intercambio A: 12, 08, 15, 16, 35, 27, 67, 44 (IZQ-DER) A[6] < = x No hay intercambio A[7] < = x Si hay intercambio 12, 08, 15, 16, 35, 27, 44, 67 12, 08, 15, 16, 35, 27, 44, 67 35, 27, 44, 67 x35 (DER-IZQ) A[8] >= x No hay intercambio A[7] >= x No hay intercambio A[6] >= x Si hay intercambio 12, 08, 15, 16, 27, 35, 44, 67 12,08 x12 (DER-IZQ) A[2]>=x Si hay intercambio EL VECTOR ORDENADO: 08,12,15,16,27,35,44,67

52

Nombre

Ejemplo del mtodo de la burbuja y quicksort.

No.

Analiza el mtodo de la burbuja e implementa en donde se puede utilizar este Instrucciones mtodo. para el Alumno Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Analiza el siguiente mtodo de ordenamiento.

. Un ejemplo
Vamos a ver un ejemplo. Esta es nuestra lista: 4-3-5-2-1 Tenemos 5 elementos. Es decir, TAM toma el valor 5. Comenzamos comparando el primero con el segundo elemento. 4 es mayor que 3, as que intercambiamos. Ahora tenemos: 3-4-5-2-1 Ahora comparamos el segundo con el tercero: 4 es menor que 5, as que no hacemos nada. Continuamos con el tercero y el cuarto: 5 es mayor que 2. Intercambiamos y obtenemos: 3-4-2-5-1 Comparamos el cuarto y el quinto: 5 es mayor que 1. Intercambiamos nuevamente: 3-4-2-1-5 Repitiendo este proceso vamos obteniendo los siguientes resultados: 3-2-1-4-5 2-1-3-4-5 1-2-3-4-5 53

El procedimiento de la burbuja es el siguiente:

Ir comparando desde la casilla 0 numero tras nmero hasta encontrar uno mayor, si este es realmente el mayor de todo el vector se llevar hasta la ltima casilla, si no es as, ser reemplazado por uno mayor que l. Este procedimiento seguir as hasta que haya ordenado todas las casillas del vector. Una de las deficiencias del algoritmo es que ya cuando a ordenado parte del vector vuelve a compararlo cuando esto ya no es necesario.

A continuacin se ilustra otro Ejemplo para una mejor comprensin del mtodo:

Variables i 0 0 0 0 0 1 1 1 1 2 2 3 3 4 5 j 1 2 4 5 6 0 1 3 4 2 3 1 2 1 0 a[j] 55 55 94 94 94 44 44 55 55 44 44 42 42 18 12

Vector pos a[j+1] inicio 12 42 18 6 67 12 42 18 6 18 6 18 6 6 6 cambio cambio cambio cambio cambio cambio cambio cambio cambio cambio cambio cambio cambio cambio 0 44 44 44 44 44 44 12 12 2 12 12 12 12 12 12 1 55 12 12 12 12 12 44 42 42 42 42 42 18 18 6 12 2 12 55 42 42 42 42 42 44 44 44 18 18 42 6 18 18 3 42 42 55 55 55 55 55 55 18 18 44 6 6 42 42 42 4 94 94 94 18 18 18 18 18 55 6 6 44 44 44 44 44 5 18 18 18 94 6 6 6 6 6 55 55 55 55 55 55 55 6 6 6 6 6 94 67 67 67 67 67 67 67 67 67 67 67 7 67 67 67 67 67 94 94 94 94 94 94 94 94 94 94 94

ordenado 6

54

55

Nombre Instrucciones para el Alumno

Investiga los diferentes tipos de mtodos de ordenamiento. Investiga y analiza los diferentes mtodos de ordenamiento.

No.

Competencias Genricas a Desarrollar

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Manera Didctica de Lograrlas

Investiga los distintos tipos de de los mtodos de ordenamiento e idntica el ms recomendable para la aplicacin de un programa.

Nota: recuerda encontrar el mtodo de ordenamiento que para ti es el ms indicado utilizarenunprograma.

56

Nombre Competencia a Desarrollar Atributos de la

Aplicacin de estructuras de datos en problemas diversos.

No.

Manipular las estructuras de datos mediante la implementacin de programas.

Aplicar las estructuras de control para resolver problemas de cmputo. Manejar un IDE para desarrollo de cdigo. Analizar las necesidades de estructura de datos en problemas particulares. competencia Estructurar arreglos para la manipulacin de informacin. Elabora un programa donde se pueda utilizar los distintos tipos de datos en un Instrucciones arreglo, pila o cola, donde se pueda aplicar como herramienta administrativa en la para el Alumno vida real. Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporcionar la informacin necesaria para que los alumnos elaboren la practica solicitada.

Computadora, dispositivo de almacenamiento y el IDE para la elaboracin del cdigo.


Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos. Aprende por iniciativa en inters propio a lo largo de la vida.

Elaborando programas con aplicacin de una herramienta administrativa o tecnolgica.

57

Como te habrs dado cuenta hasta el momento solo hemos estudiado el funcionamiento las estructuras de datos estticas dentro del submodulo implementar sistemas con la aplicacin de los

diferentes tipos de estructuras de datos. Llevndote por el interesante mundo del

programador, as como se te facilito esta primera competencia esperamos sigas preparndote da a da por el mundo de la informtica. Te felicitamos porque si t llegaste hasta aqu significa que sigues avanzando, y esperamos que nada ni nadie te detenga. Te invitamos a que contines, pregunta a tu maestro todas las dudas que tengas y vers que el futuro dentro de la carrera de tcnico programador de software ser mucho mejor para ti. Date cuenta ahora, t sabes utilizar y diferenciar las caractersticas entre los arreglos, pilas y colas as como desarrollar y realizar operaciones entre los diferentes estructuras de control.

FELICIDADES!!!! Y TE INVITAMOS A QUE AHORA APRENDAS A UTILIZAR LAS LISTAS ENLAZADAS DE DATOS ASI COMO LOS ARBOLES..

58

Analizar estructuras de datos enlazadas.

1. Listas enlazadas 2. rbol

1. Listas enlazadas 2. rbol

1. Listas enlazadas 2. rbol

1. Prctica

59

Analizar estructuras de datos enlazadas.


Las estructuras de datos presentadas hasta el momento (Arreglos y Registros) y se le denominan estticas, reciben ese nombre debido a que durante la compilacin se le asigna un espacio de memoria y este permanece inalterable a lo largo de la ejecucin del programa. Es decir las variables no pueden crearse o destruirse durante la ejecucin del programa.

Cul ser la diferencia entre las estructura de datos dinmicas contra las estticas? A continuacin se muestra una grafica de los tipos de estructuras de datos lineales y las no lineales.

Estructuras lineales

Estructuras no lineales

60

Listas ATRIBUTOS DE LA COMPETENCIA Operaciones con listas. Tipos de listas Arboles Caractersticas, longitud.

Tipos de arboles. A lo largo de esta competencia el instructor diseara actividades para que puedas conceptualizar e identificar los diferentes tipos de estructuras de datos enlazadas.

RESULTADO DE APRENDIZAJE

. Como primera actividad es muy importante realizar un encuadre grupal para que el alumno comprenda las posibles aplicaciones de las estructura de datos enlazadas. El docente muestra las operaciones con que cuentan las estructuras de datos enlazadas as como las caractersticas y propiedades de los rboles y el funcionamiento de cada uno de los tipos de listas enlazadas dando conceptos bsicos y realizando actividades para poder identificar los tres tipos de listas que conocers as como las operaciones que podrs realizar cono cada una de ellas.

61

Nombre Instrucciones para el Alumno

Listas enlazadas

No.

Analiza y comprende el concepto de una lista enlazada as como sus operaciones Listas Manera Didctica de Lograrlos

Saberes a adquirir

Operaciones con listas. Tipos de listas

Identifica el concepto, operaciones y los tipos de listas enlazadas.

Ahora se introduce un nuevo concepto, el de estructuras dinmicas de datos. Este tipo de estructura es generado a partir de un tipo de dato conocido con el nombre de puntero o referencia.

Concepto de una lista.


Una lista es una coleccin de elementos generalmente llamados nodos. El orden entre los nodos se establece por medio de punteros, es decir, por direcciones o referencias a otros nodos. En la siguiente figura se presenta la estructura de un nodo.

En general un nodo consta de dos partes: 1. Un campo informacin que ser el tipo de datos se quiera almacenar en la lista. 2. Un campo liga de tipo puntero, que se utiliza para establecer la liga o el enlace con otro nodo de la lista.

Recuerda: Que si el nodo fuera el ltimo de la lista, este campo tendr como valor Nil (vaco).

62

Crear Insertar Eliminar Consultar (Bsqueda) Modificar (actualizar)

Tipos de listas enlazadas

Listas

Lista Circular

Listas Doblemente Ligadas

Una lista doblemente ligada es una coleccin de nodos en la cual cada nodo tiene dos punteros uno de ellos apuntando a su predecesor y otro a su sucesor.

63

Nombre Instrucciones para el Alumno Competencias Genricas a Desarrollar Manera Didctica de Lograrlas

Listas enlazadas. Identifica las listas enlazadas

No.

Utiliza las tecnolgicas de la informacin y comunicacin para procesar e interpretar informacin.

Identifica los diferentes tipos de listas enlazadas en las estructuras de datos.

Nil El primer nodo de la lista esta apuntado por una variable P de tipo puntero (P almacena la direccin del primer nodo). El campo liga del ltimo nodo de la lista, tiene un valor Nil que indica que dicho nodo no apunta a ningn otro.

64

Listas Circulares
Las listas circulares tienen la caracterstica de que el ltimo elemento de la misma apunta al primero.

Ejemplo grafico de una lista circular con nodo de cabecera

Ejemplo de una lista doblemente ligada

65

Es el caso ms simple. Partiremos de una lista con uno o ms nodos, y usaremos un puntero auxiliar, nodo: 1. Hacemos que nodo apunte al primer elemento de la lista, es decir a Lista. 2. Asignamos a Lista la direccin del segundo nodo de la lista: Lista->siguiente. 3. Liberamos la memoria asignada al primer nodo, el que queremos eliminar. Si no guardamos el puntero al primer nodo de actualizar Lista, despus nos resultara imposible liberar la memoria que ocupa. Si liberamos la memoria antes de actualizar perderemos el puntero al segundo nodo. antes Lista,

Si la lista slo tiene un nodo, el proceso es tambin vlido, ya que el valor de Lista->siguiente es NULL, y despus de eliminar el primer nodo la lista quedar vaca, y el valor de Lista ser NULL. De hecho, el proceso que se suele usar para borrar listas completas es eliminar el primer nodo hasta que la lista est vaca. En todos los dems casos, eliminar un nodo se puede hacer siempre del mismo modo. Supongamos que tenemos una lista con al menos dos elementos, y un puntero al nodo anterior al que queremos eliminar. Y un puntero auxiliar nodo.

El proceso es parecido al del caso anterior: 1. Hacemos que nodo apunte al nodo que queremos borrar. 2. Ahora, asignamos como nodo siguiente del nodo anterior, el siguiente al que queremos eliminar: anterior->siguiente = nodo->siguiente. 3. Eliminamos la memoria asociada al nodo que queremos eliminar.

Si el nodo a eliminar es el ltimo, es procedimiento es igualmente vlido, ya que anterior pasar a ser el ltimo, y anterior->siguiente valdr NULL.

66

Nombre Instrucciones para el Alumno

Listas enlazadas

No.

Investiga los conceptos que te indicara tu maestro para la comprensin del tema de listas enlazadas.

Competencias Genricas a Desarrollar

Utiliza las tecnolgicas de la informacin y comunicacin para procesar e interpretar informacin.

Manera Didctica de Lograrlas

Realiza investigacin para la comprensin de las estructuras dinmicas de datos.

Investiga los siguientes conceptos: Estructuras dinmicas de datos Puntero Referencia

Recuerda que debes entregar tu investigacin en la fecha que te indique tu maestro.

67

Nombre Instrucciones para el Alumno

rbol

No.

Conoce y aplica el concepto de rbol as como sus caractersticas.

Arboles Saberes a adquirir Caractersticas, longitud. Tipos de arboles.

Manera Didctica de Lograrlos

Comprende el concepto de un rbol as como los diferentes tipos, caractersticas con que cuenta un rbol.

Los arboles representan estructuras no-lineales y dinmicas de datos ms importantes en computacin. Dinmicas, porque la estructura rbol puede cambiar durante la ejecucin de un programa. No-lineales, porque cada elemento del rbol puedan seguirle varios elementos. Representacin de las estructuras de datos ms importantes clasificadas de acuerdo a su estaticidad y dinamismo. Estructuras Estticas
Arreglos

Estructuras Dinmicas

Listas
Registros

Conjuntos

Arboles

Es de observar que las pilas y las colas no fueron consideradas en esta clasificacin, puesto que dependen de la estructura que utilice para implementarlas.

68

Nombre Instrucciones para el Alumno Competencias Genricas a Desarrollar Manera Didctica de Lograrlas

Representacin grafica de las estructuras rbol.

No.

Identifica los tipos de representacin grafica de las estructuras dinmicas.

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Identifica los distintos tipos de arboles.

rboles Binarios Completos

rbol binario

rbol binario en memoria


Alanalizarlaestructura rbolseintroduceal conceptodeestructurasde ramificacinentrenodos.

69

Insercin
A la hora de insertar un nuevo dato en un rbol 2-3 se hace de forma que se mantenga el equilibrio en el rbol. La capacidad de tener uno o dos elementos en cada nodo ayuda a conseguirlo. Pseudo cdigo de insercin en un rbol 2-3
Si el rbol esta vaci Entonces crea un nuevo nodo y colocar el en el lado izquierdo del nodo. Si ya hay un elemento y existe espacio en el nodo hacer Si r1 es menos que el elemento Entonces el elemento 0 se coloca a la derecha. Sino Si r1 es mayor que el elemento Entonces el elemento se coloca del lado izquierdo y r1 del lado derecho. Sino Si el nodo esta lleno se parte en dos nodos del mismo nivel, se crea un nuevo nodo y se reparten los tres elementos (dos elementos del nodo y el nuevo elemento)

Ejemplos
A continuacin se ofrecen ejemplos concretos para ilustrar el mecanismo de insercin:

70

Codigo para Insertar un nodo en C


tipo_elmto = registro clave:tipo_clave; {los dems campos necesarios} freg; tipos_nodo = (hoja, interior); nodo_dos_tres = registro clase:tipos_nodo; seleccin clase=hoja:(elmto:tipo_elmto); clase=interior:(primer_hijo,segundo_hijo, tercer_hijo: diccionario; menor_de_segundo, menor_de_tercero:tipo_clave) fsel freg diccionario = nodo_dos_tres

Pseudocodigo de Insercin
algoritmo inserta1(e/s nodo:diccionario; ent x:tipo_elmto; {x se insertar en el subrbol de nodo} sal pt_nuevo:diccionario; {puntero al nodo recin creado a la derecha de nodo} sal menor:tipo_clave) {elmto ms pequeo del subrbol al que apunta pt_nuevo}

Pseudocodigo del programa principal:


principal pt_nuevo:=nil; si nodo es una hoja entonces si x no es el elemento que est en nodo entonces crea un nodo nuevo apuntado por pt_nuevo; pone x en el nodo nuevo; menor:=x.clave fsi sino {nodo es un nodo interno} sea w el hijo de nodo a cuyo subrbol pertenece x; inserta1(w, x,pt_atrs,menor_atrs); si pt_atrsnil entonces inserta el puntero pt_atrs entre los hijos de nodo justo a la derecha de w; si nodo tiene cuatro hijos entonces crea un nodo nuevo apuntado por pt_nuevo; da al nuevo nodo los hijos 3 y 4 de nodo; ajusta menor_de_segundo y menor_de_tercero en nodo y el nodo nuevo; coloca menor como la menor clave entre los hijos del nodo nuevo fsi fsi fsi fin

// WC.java import java.io.*;

71

class TreeNode { String word; int count = 1; TreeNode left; TreeNode right;

// Word being stored. // Count of words seen in text. // Left subtree reference. // Right subtree reference.

public TreeNode (String word) { this.word = word; left = right = null; } public void insert (String word) { int status = this.word.compareTo (word); if (status > 0) { // word argument precedes current word

// If left-most leaf node reached, then insert new node as // its left-most leaf node. Otherwise, keep searching left. if (left == null) left = new TreeNode (word); else left.insert (word); } else if (status < 0) { // word argument follows current word

// If right-most leaf node reached, then insert new node as // its right-most leaf node. Otherwise, keep searching right. if (right == null) right = new TreeNode (word); else right.insert (word); } else this.count++; } } class WC { public static void main (String [] args) throws IOException { int ch; TreeNode root = null; // Read each character from standard input until a letter // is read. This letter indicates the start of a word. while ((ch = System.in.read ()) != -1) { // If character is a letter then start of word detected. if (Character.isLetter ((char) ch)) { // Create StringBuffer object to hold word letters. StringBuffer sb = new StringBuffer ();

72

// Place first letter character into StringBuffer object. sb.append ((char) ch); // Place all subsequent letter characters into StringBuffer // object. do { ch = System.in.read (); if(Character.isLetter ((char) ch)) sb.append((char) ch); else break; } while (true); // Insert word into tree. if (root == null) root = new TreeNode (sb.toString ()); else root.insert (sb.toString ()); } } display (root); } static void display (TreeNode root) { // If either the root node or the current node is null, // signifying that a leaf node has been reached, return. if (root == null) return; // Display all left-most nodes (i.e., nodes whose words // precede words in the current node). display (root.left); // Display current node's word and count. System.out.println ("Word = " + root.word + ", Count = " + root.count); // Display all right-most nodes (i.e., nodes whose words // follow words in the current node). display (root.right); } }

73

Nombre Instrucciones para el Alumno

Arboles Investiga el concepto y la representacin de cada una de las formas de representar las estructuras de un rbol.

No.

Competencias Genricas a Desarrollar

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Manera Didctica de Lograrlas

Investiga las diferentes formas de representar un rbol

Diagrama de Venn Anidacin de Parntesis Notacin Decimal de Dewey Notacin Identada Grafo

74

Escribe sobre la lnea el tipo de rbol a que se hace referencia segn su representacin grafica.

75

Nombre Competencia a Desarrollar Atributos de la competencia

Arboles con estructuras

No.

Analizar las necesidades de estructura de datos en problemas particulares.

Identifica la utilizacin de estructuras de datos enlazadas.

y Comprende de las estructuras de datos enlazadas en el Instrucciones Desarrolla para el Alumno planteamiento de un problema dando solucin con ellas Instrucciones para el Docente Recursos materiales de apoyo Competencias Genricas a Desarrollar Manera Didctica de Lograrlas Proporciona las herramientas necesarias para desarrollar y dar solucin a una problemtica con las estructuras enlazadas.

Computadora y su dispositivo de almacenamiento

Desarrolla innovaciones y propone soluciones a problemas a partir de mtodos establecidos.

Investiga y desarrolla innovaciones dando solucin administrativa a alguna problemtica.

Los rboles binarios tienen mltiples aplicaciones ya que se les puede utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos de un proceso, para representar un rbol genealgico (construido en forma ascendente y donde muestran los ancestros de un individuo dado), para representar la historia de un campeonato de tenis (construido en forma ascendente y en donde existe un ganador, 2 finalistas, 4 semifinalistas y as sucesivamente) para representar expresiones algebraicas construidas con operadores binarios , con esto citamos algunos ejemplos de sus mltiples usos.

76

Como te habrs dado cuenta conocer las estructuras dinmicas como las listas enlazadas y las estructuras rbol resulta interesante y por tal motivo te seguiremos llevando por el mundo del desarrollo del software. Por lo te felicitamos porque si t llegaste hasta aqu significa que sigues avanzando, y esperamos que nada ni nadie te detengas. Te invitamos a que contines, pregunta a tu maestro todas las dudas que tengas y vers que el futuro ser mucho mejor para ti. Date cuenta ahora, t sabes analizar, investigar y estructurar datos con un entorno de un lenguaje de programacin.
FELICIDADES!!!! Y TE INVITAMOS A QUE AHORA EMPRENDAS EL VIAJE AL MUNDO DE LA PROGRAMACION Y PUEDAS IMPLEMENTAR LO HASTA AQU APRENDIDO

77

Esta gua fue concebida como un medio de aprendizaje en la educacin tcnica de nivel medio superior, y de ninguna manera se pretende que sea un sustituto del docente, por el contrario, se busca que sirva como un medio de apoyo a la dinmica del proceso de enseanza aprendizaje, al orientar la actividad del alumno en el aprendizaje desarrollador, a travs de situaciones problemticas y tareas que garanticen la apropiacin activa, crtico - reflexiva y creadora de los contenidos, con la adecuada direccin y control de sus propios aprendizajes. La gua est integrada por dos competencias: 1. Manipular las estructuras de datos mediante la implementacin de programas. 2. Analizar estructuras de datos enlazadas. El desarrollo de estas competencias permite cubrir bsicamente con el Resultado de Aprendizaje del Sub mdulo uno, que es implementar sistemas con la aplicacin de los diferentes tipos de estructuras de datos. La forma de evaluar el presente Submdulo es en primer trmino considerando los instrumentos de evaluacin, los cuales determinan el producto y el desempeo, derivados de cada una de las prcticas plasmadas en la gua.

78

Estructura de datos, Osvaldo Cairo, Editorial Mc Graw Hill. Metodologa de la programacin tomo II, Osvaldo Cairo, Editorial Computec Metodologa de la programacin orientada a objetos, Leobardo Lpez Romn, Editorial Alfaomega. Programacin en C, Byron Gottfried, Editorial McGraw Hill.

Links:
http://www.iuma.ulpgc.es/users/jmiranda/docencia/programacion/Tema4_ne.pdf http://2.bp.blogspot.com/_XpBh0uz0ZPw/SPvlg5V548I/AAAAAAAAAKA/w8F9ZQNHAUg/s400/arreglo.png http://imagenes.mailxmail.com/cursos/imagenes/8/5/arraysunidimensionaleslosvectores_9958_23_1.jpg http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/328pxArray1.svg.png http://ifxperu.com/wpcontent/uploads/2011/03/ArraysUniMulti.gif

http://www.mailxmail.com/cursoaprendeprogramar/metodosordenamientobusqueda

Imgenes http://logicadigital.blogspot.com/2007/11/suplemento3cmotrabajael.html http://www.emezeta.com/articulos/dibujargrafosoestructurasdedatos#axzz1Nay42PSR http://tesciedd.blogspot.com/2011/01/unidad4arbolesygrafos.html http://www.zator.com/Cpp/E4_5_8.htm http://designwebcoepa.blogspot.com/2010/06/133estructurasdenavagacion.html http://lml.ls.fi.upm.es/~mcollado/xml/xmlcode.html

79

DATOS SIMPLES: Son aquellos que ocupan slo una localidad de memoria. DATOS ESTRUCTURADOS: Son un conjunto de casillas de memoria a las cuales hacemos referencia mediante un identificador nico. BASE DE DATOS: Est formado por una coleccin de registros, los cuales estn conectados entre s por medio de enlaces. Registro.- Es una coleccin de campos (atributos). Campos.- Contiene almacenado solamente un valor. Enlace.- Asociacin entre dos registros, as que podemos verla como una relacin estrictamente binaria. ESTRUCTURA DE DATOS: En programacin, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mnima informacin que se tiene en el sistema) con el objetivo de facilitar la manipulacin de estos datos como un todo o individualmente. PILA: (stack) es una coleccin ordenada de elementos en la cual se pueden insertar nuevos elementos por un extremo y se pueden retirar otros por el mismo extremo; ese extremos se llama ``la parte superior'' de la pila. ARREGLOS: Es un conjunto de datos o una estructura de datos homogneos que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal). Un arreglo puede definirse como un grupo o una coleccin finita, homognea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos: De una dimensin. De dos dimensiones. De tres o ms dimensiones ARREGLOS UNIDIMENSIONALES: Un arreglo unidimensional es un tipo de datos estructurado que est formado de una coleccin finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se debe proporcionar la direccin base del arreglo, la cota superior y la inferior. COLAS: Es una estructura lineal de datos. Una cola es un grupo ordenado de elementos homogneos en el que los nuevos elementos se aaden por un extremo (el final) y se quitan por el otro extremo (el frente). RBOL: Es una estructura de datos ampliamente usada que emula la forma de un rbol (un conjunto de nodos conectados).

80

Un nodo es la unidad sobre la que se construye el rbol y puede tener cero o ms nodos hijos conectados a l.

81

GUIA DE OBSERVACION: TPS-04/M2S1/


Nombre del alumno: Carrera: Tcnico en programador de software. Modulo II:. Estructura los datos orientados a objetos. Submdulo I: Implementar sistemas con la aplicacin de los
diferentes tipos de estructura de datos.

Campos de aplicacin Lugares donde se pueden aplicar las estructuras de datos: 1. tiendas, 2. comercios 3. y/o consultorios.

Evidencia por desempeo: carpeta de evidencia con los


programas y prcticas donde est aplicando su proyecto.

Evidencia de actitud asociada: orden, disciplina y


honestidad

Instrucciones para el alumno: implementa las estructuras de datos con su respectivo ABC y el medio
de aplicacin as como su manual.

CRITERIOS CUMPLIO SI
1 Entrego el proyecto en tiempo y forma y con el uso adecuado de ortografa? 2 Aplic los criterios para la entrega del manual como portada, ndice, desarrollo conclusin y fuentes de informacin, etc.? 3 Aplic el proyecto con la utilizacin de las estructuras de datos vistas en clase? 4 Aplic la utilizacin adecuada del IDE propuesto en clase? 5 Aplic sintaxis extra clase de algn tema dentro del proyecto? 6 Particip de manera activa en las estrategias de construccin del aprendizaje recomendadas?

NO

OBSERVACIONES

82

Observaciones generales Evalu (Nombre y Firma) Lugar y fecha de la aplicacin

83

CUESTIONARIO PARA VISITAS GUIADAS

1.- Escribe el nombre del sistema de aplicacin que viste?

2.- Escribe una lista de los lenguajes de programacin que utilizan?

3.- Describe para quienes o que empresas elaboran programas y/o sistemas la que visitaste.

4.- Describe en qu parte del proceso de la programacin te gustara desarrollarte.

5.- Cuantas computadoras pudiste localizar que son las dedicadas exclusivamente para la creacin de programas y sistemas de aplicacin.

6.- Describe que fue lo que ms te intereso en la visita guiada.


84

NombredelEstudiante: Materia:

ListadeCotejo CarpetadeEvidenciaaEstudiantes CumpliAplicaNoAplica

Portada Misin y Visin ndice Desarrollo de temas Incluyo temas extras desarrolladas Contiene Exmenes Calificados Ejercicios en clase Contiene Prcticas y/o Reportes de los laboratorios Incluye tareas y trabajos investigacin Incluye su Proyecto Incluye Conclusin

Observaciones:

Firma del estudiante

Docente

85