View
216
Download
0
Category
Preview:
Citation preview
SoftwareSubmódulo I
••• IMPLEMENTA SISTEMAS CON LA APLICACIÓNDE LOS DIFERENTES TIPOS DE ESTRUCTURAS DE DATOS •••
Guía Profesional elaborada por:Oscar David Bustos Torres
DOCENTE DEL PLANTEL XOCHIMILCO
Clemente Mora GonzálezJefe de Departamentode Fomento Editorial
Leticia Mejia GarcíaCoordinadora de Fomento Editorial
Miguel Antonio González VidalesGestión Administrativa
Ulises Ramírez HernándezCoordinador de Diseño Gráfico
DIRECCIÓN GENERALAv. Panamá #199 Esquina con Buenos Aires.Col. Cuauhtémoc SurTels. 01 (686) 9 05 56 00 al 08
Correo Electrónico: principal@cecytebc.edu.mxPágina Web: www.cecytebc.edu.mx
CICLO ESCOLAR 2011-2Prohibida la reproducción total o parcialde esta obra incluido el diseño tipográficoy de portada por cualquier medio,electrónico o mecánico, sin el consentimientopor escrito del editor.
GESTIÓNDITORIAL
Nota:Al personal Docente interesado en enriquecer el contenido del presentedocumento, le agradecemos hacernos llegar sus comentarios o aportacionesa los siguientes correos:
fomentoeditorial@cecytebc.edu.mxacaro@cecytebc.edu.mx
José Guadalupe Osuna MillánGobernador del Estado
de Baja California
Javier Santillán PérezSecretario de Educación
y Bienestar Social del Estado
CECYTE BC
Héctor Montenegro EspinozaDirector General
Olga Patricia Romero CázaresDirectora de Planeación
Argentina López BuenoDirectora de Vinculación
Jesús Gómez EspinozaDirector Académico
Ricardo Vargas RamírezDirector de Administración y Finanzas
Alberto Caro EspinoJefe del Departamento de Docencia
MUNICIPIO DE MEXICALI
Cristina de los Ángeles Cardona RamírezDirectora del Plantel Los Pinos
Carlos Zamora SerranoDirector del Plantel Bella Vista
Jesús Ramón Salazar TrillasDirector del Plantel Xochimilco
Rodolfo Rodríguez GuillénDirector del Plantel Compuertas
Humberto Ignacio Ibarra VelazcoDirector del Plantel Misiones
Francisco Javier Cabanillas GarcíaDirector del Plantel Vicente Guerrero
Cristopher Diaz RiveraDirector del Plantel San Felipe
MUNICIPIO DE TIJUANA
Martha Xóchitl López FélixDirectora del Plantel El Florido
María de los Ángeles Martínez VillegasDirectora del Plantel Las Águilas
Jorge Ernesto Torres MorenoDirector del Plantel Zona Río
Rigoberto Gerónimo González RamosDirector del Plantel Villa del Sol
Joel Chacón RodríguezDirector del Plantel El Pacífico
Efraín Castillo SarabiaDirector del Plantel El Niño
Benito Andrés Chagoya MorteraDirector del Plantel Cachanilla
Gabriel Valdéz ManjarrezDirector del Plantel Altiplano
Juan Martín Alcibia MartínezDirector del Plantel la Presa
MUNICIPIO DE ENSENADA
Alejandro Mungarro JacintoDirector del Plantel Ensenada
Emilio Rios MaciasDirector del Plantel San Quintín
MUNICIPIO DE ROSARITO
Manuel Ignacio Cota MezaDirector del Plantel Primo Tapia
Héctor Rafael Castillo BarbaDirector del Plantel Rosarito Bicentenario
MUNICIPIO DE TECATE
Oscar Ambríz SalinasDirector del Plantel Tecate
DIRECTORIO
MENSAJE DEL GOBERNADOR DEL ESTADO
Jóvenes Estudiantes de CECYTE BC:
La educación es un valuarte que deben apreciar durantesu estancia en el Colegio de Estudios Científicos y Tecnológicosdel Estado de Baja California, dado la formación y calidadeducativa que les ofrece la Institución y sus maestros.
Por ello, asuman el compromiso que el Gobierno del Estadohace para brindarles educación media superior, a fin de queen lo futuro tengan mejores satisfacciones de vida, y seconviertan en impulsores y promotores del crecimiento exitoso,con la visión que tiene nuestra entidad en el plano nacional.
Esta administración tiene como objetivo crear espaciosy condiciones apropiadas para que en un futuro inmediato, elcampo laboral tenga profesionistas técnicos de acuerdo al perfilde la industria que cada día arriba a nuestra entidad; por loque los invito a ser mejores en sus estudios, en su familiay en su comunidad.
En ustedes se deposita la semilla del esfuerzo y dedicación quecaracteriza a los bajacalifonianos. Son el estandarte generacionalque habrá de marcar la pauta de nuestro desarrollo.ComoGobierno del Estado, compartimos el reto de ser formadoresde los futuros profesionistas técnicos que saldránde CECYTE BC.
Unamos esfuerzos, Gobierno, Sociedad, Maestros y Alumnos,para brindar y recibir una mejor educación en Baja California,ser punta de desarrollo humano, crecimiento industrial yeconómico, y factor importante del progreso de México.
MENSAJE DEL SECRETARIO DE EDUCACIÓN
Alumno de CECYTE BC:
La educación es una herramienta que aumenta tus oportunidades dedesarrollo personal, y permite ampliar tu horizonte de posibilidadesde progreso económico y social.
Bajo esa perspectiva, el Gobierno del Estado de Baja California asumecon responsabilidad su compromiso con los jóvenes en la tarea decrear espacios educativos en el nivel medio superior, y ofrecerlesprogramas de estudios tecnológicos que les permitan integrarse concompetencia a fuentes de trabajo y/o continuar estudios superiores.
El Colegio de Estudios Científicos y Tecnológicos del Estado de BajaCalifornia, es un ejemplo de lo anterior. En las escuelas de estaInstitución, los estudiantes pueden encontrar el camino de lasuperación, y el apoyo para alcanzar las metas que visualizan paraforjar su futuro.
Entre esos apoyos se encuentran la publicación y entrega de estematerial educativo, que el CECYTE BC distribuye, con el objetivo deque lo utilices en beneficio de tus estudios.
La tarea que han desarrollado maestros, alumnos y autoridadesaducativas en torno a CECYTE BC, han convertido a esta Instituciónen un modelo para la formación de generaciones de profesionistastécnicos que demanda el sector productivo que se asienta en laregión.
Además de eso, el Colegio se ha destacado por alentar el acercamientode los padres de familia con la escuela, como una acción tendientea fortalecer los vínculos que deben existir entre ellos, los docentesy administrativos en el proceso educativo, por ser esta, unaresponsabilidad compartida.
Por todo esto, te felicito por realizar tus estudios en un plantel deCECYTE BC. Te exhorto a valorar este esfuerzo que hace la sociedada través de la Administración Estatal, y a que utilices con pertinencialos materiales que se te otorgan para apoyar tu formación profesional.
Héctor Montenegro EspinozaDIRECTOR GENERAL DEL CECYTE BC
Atentamente
PRESENTACIÓN
El documento que tienes en las manos significa un esfuerzorealizado entre la Coordinación Nacional de los CECyTEsy el Colegio de Estudios Científicos y Tecnológicos del Estadode Baja California por proporcionarte material de estudio decalidad para tu formación media superior.
Las Guías Profesionales de Mantenimiento, Electrónica,Mecatrónica, Turismo, Producción, Análisis y Tecnología de losAlimentos, Laboratorista Químico, Programador de Software,Gestión Administrativa, Contabilidad y Música; comprendenmódulos y submódulos en donde encontrarás lecturas, ejerciciosy dinámicas que te servirán para adquirir un mayorentendimiento de la Profesión Técnica que ejercerás en lofuturo.
El tiempo realizado por cada uno de los maestros involucradosen las Guías, representó horas de estudio, dedicación y esmeropara crear un documento fundamental en la educación.
Por ello, te invitamos a que obtengas el mejor provecho deestos materiales de estudio, que fueron diseñados especialmentepara lo más preciado del Colegio: sus alumnos.
11
Técnico en Programador de
Software
Módulo IIEstructurar los datos orientados a Objetos
Submódulo IImplementar Sistemas con la Aplicación de los Diferentes Tipos de
Estructuras de Datos
13
Oscar David Bustos Torres Baja California
Oscar David Bustos Torres Baja California
Lic. Rosalba Reyes Rosales Responsable de normatividad académica
Biol. Irasema G. Anaya Gálvez Responsable de planes y programas de estudio
Ing. Armando Mendoza Cruz Área académica
14
Al término del módulo el alumno será capaz de laborar en empresas
pequeñas que tengan la necesidad de un programa inicial teniendo por ende
un control computarizado en diferentes áreas de inserción tales como en el
sector público o privado ya sea en comercios, tiendas, consultorios, escuelas, etc. Así mismo podrás
Implementar sistemas con la aplicación de los diferentes tipos de estructuras de datos siendo capaz
de implementar sistemas con la aplicación de los diferentes tipos de estructuras de datos, por medio
de la elaboración de sus algoritmos correspondientes. Teniendo en cuenta esto como utilidad para
realizar mejores prácticas y dominando los diferentes tipos de estructuras como la manipulación de
estructuras básicas tales como arreglos, pilas, colas etc. como centro de la carrera de técnico
programador de software.
16
Técnico en Programador de Software
Módulo II Estructurar los datos orientados a objetos
Submódulo I Implementar sistemas con la aplicación de los diferentes tipos de estructuras de datos.
Competencia 1 Competencia 2
Manipular las estructuras de datos mediante la
implementación de programas. Analizar estructuras de datos enlazadas.
Atributos de la Competencia Atributos de la Competencia
Propiedades, características y reglas de la
estructura de datos
Introducción a las estructuras de datos
Arreglos
Pilas
Colas
operaciones, tipos de cada una de ellas.
Métodos de ordenamiento.
Listas
Operaciones con listas.
Tipos de listas
Arboles
Características, longitud.
Tipos de arboles.
Saberes Saberes
Conocimientos de algoritmos
Conocimiento del lenguaje de programación.
Dominio en el uso de internet
Conocimiento de elaboración de manuales.
Utilización de las tic’s
18
Bienvenido, hoy iniciamos el módulo 2 “Estructurar los datos orientados a
objetos” de tu carrera de técnico en programador de software, esta guía
corresponde al sub módulo 2 titulado “Implementar sistemas con la aplicación de
los diferentes tipos de estructuras de datos” y te servirá de apoyo para que logres
desarrollar conocimientos, habilidades, destrezas y actitudes, que te permitirán
lograr las competencias laborales para tu vida.
Al término del módulo el alumno será capaz de aplicar los conceptos de programación orientada a
objetos utilizando la simbología UML, teniendo en cuenta esto como utilidad para realizar mejores
prácticas y dominando los diferentes tipos de estructura de datos así como la manipulación de
estructuras básicas tales como arreglos, pilas, colas etc. como centro de la carrera de técnico
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 inserción tales como en el
sector público 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
dedicación, así como de una actitud y disciplina apropiada en las competencias que serán
desarrolladas en el aula, taller y/o industria para ti.
20
1. Introducción a las estructuras de datos. 2. Arreglos y operaciones 3. Pilas y operaciones 4. Colas y operaciones 5. métodos de ordenamiento.
1. Introducción a las estructuras de datos. 2. Arreglos 3. pilas 4. colas 5. métodos de ordenamiento.
1. Arreglos 2. pilas 3. colas 4. Métodos de ordenamiento.
1. Arreglos 2. pilas 3. colas
Manipular las estructuras de datos mediante la implementación de programas. 1
21
Implementar sistemas con la aplicación 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 algún programa diseñado y elaborado por algún programador sobre todo implementado en algún proceso administrativo u operativo por ende te invitamos a que en esta nueva etapa de tu carrera lograras implementar un pequeño
programa en algún lugar donde se requiera la aplicación 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 evolución de las computadoras como los programas para estos se requiere el diseño de nuevos programas informáticos en todas las áreas ya sea administrativos, operativas, institucionales y sobre todo en negocios pequeños.
Así mismo realizaremos un recordatorio e iniciaremos con algunos planteamientos de algoritmos en vista de irte introduciendo a las estructuras de datos. Como inicio podrías ir analizando la búsqueda de un lugar o establecimiento en el cual pudieses realizar un algoritmo para la solución de un problema y en lo posterior puedas realizar un pequeño programa para dar solución a un problemática específica, por el momento vamos a resolver algunos algoritmos prácticos con ayuda de tu maestro. Recuerda también sacar del baul aquellos algoritmos realizados anteriormente para que puedas practicar y ejercitar tu mente.
22
Tipos de Datos
Simples
Estructurados
La principal característica 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.
23
.
Como primera actividad es muy importante realizar un encuadre grupal para que el alumno comprenda los algoritmos en la implementación de las estructuras de datos.
El docente emplea fotografías, diapositivas, presentaciones en power point o películas 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 implementación de sus aplicaciones.
ATRIBUTOS DE
LA
COMPETENCIA
Introducción a las estructuras de datos
Propiedades, características y reglas de las estructuras de
datos.
Arreglos
Pilas
Colas
operaciones, tipos de cada una de ellas.
Métodos de ordenamiento.
RESULTADO DE
APRENDIZAJE
Al término del módulo el alumno será capaz de laborar en empresas pequeñas que tengan la necesidad de un programa inicial teniendo por ende un control computarizado en diferentes áreas de inserción tales como en el sector público o privado ya sea en comercios, tiendas, consultorios, escuelas, etc.
El encuadre grupal ayuda a comprender la importancia de lograr la
competencia.
24
¿Qué es un dato?
¿Cuántos tipos de datos conoces?
¿Cuáles son los tipos de datos?
¿De qué tamaño es cada uno de los tipos de datos?
Nombre Introducción a las estructuras de datos No. 1
Instrucciones para el Alumno
Resuelve cada una de las preguntas que aparecen en la parte inferior a este apartado.
Saberes a adquirir
Estructura de datos
Manera Didáctica
de Lograrlos
Investiga, comprende y resuelve cada una de las preguntas que a continuación se presentan para el desarrollo de esta competencia.
25
Dato simple
Dato estructurado.
Nombre Introducción a las estructuras de datos. No. 1
Instrucciones para el Alumno
Analiza los ejemplos de los tipos de datos que se te muestra y aprenderás a diferenciar entre un dato simple y uno estructurado.
Competencias Genéricas a Desarrollar
Participa y colabora de manera efectiva en equipos diversos
Manera Didáctica de
Lograrlas
Lograras diferenciar entre el un dato simple y uno estructurado
Recuerda que a partir de este
momento trabajaras con datos
estructurados, ya que es muy
fácil confundirte con los datos
simples.
26
Char Nombre[30] int edad[5] char gato
Char perro[10] char botella[12][5]
Char apellido float promedio[4]
Int jean[5] float promedio
Int silla int mesa[3] int salón[10]
Int zapatos[20] int maestro[100] int alumno
Nombre Introducción a las estructuras de datos No. 1
Instrucciones para el Alumno
Identifica cuáles son datos estructurados
Competencias Genéricas a Desarrollar
Aprende por iniciativa e interés propio a lo largo de la vida.
Manera Didáctica de
Lograrlas
Encierra con un círculo los datos estructurados con color azul y subraya los datos simples con color rojo.
27
Nombre Elabora un diagrama de flujo donde contenga datos simples y estructurados.
No. 1
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia
Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código.
Instrucciones para el Alumno
Manipula una interface IDE para conocer la estructura de un programa con estructura de datos.
Instrucciones para el
Docente
Proporcionar la información así como el IDE necesario para que los alumnos elaboren la practica solicitada
Recursos materiales de
apoyo Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
El alumno muestra su interés y participa de manera entusiasta para desarrollar el trabajo asignado.
28
Un arreglo es una colección de datos finita homogénea y ordenada de elementos.
Finita: todo arreglo tiene un límite, es decir debe de determinarse cuál será el número máximo de
elementos que podrán formar parte del arreglo.
Homogénea: todos los elementos de un arreglo son del mismo tipo (todos enteros, todos carácter,
todos booleanos, pero nunca una combinación de distintos tipos).
Ordenada: se puede determinar cuál es primer elemento, el segundo, el tercero,…. Y el enésimo
elemento.
También los arreglos son las estructuras de datos más sencillas.
Definición: 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 estáticas ya que conservan el mismo tamaño durante toda la ejecución del programa.
Para poder referirnos a una posición en particular o a los datos dentro de esa
Nombre Arreglos y Operaciones con los arreglos. No. 2
Instrucciones para el Alumno
Conoce los conceptos y operaciones de un arreglo para estructura de datos
Saberes a adquirir
Manipulación de Arreglos.
Manera Didáctica
de Lograrlos
Identifica y analiza las operaciones de las estructuras de datos.
29
posición del arreglo, se especifica el nombre del arreglo y el número de posición del elemento. Las posiciones generalmente se cuentan a partir del cero como primera posición.
Podemos clasificar a las operaciones en las que intervienen arreglos de la siguiente manera:
Lectura/Escritura
Asignación
Inserción
Actualización Eliminación
Modificación
Ordenación
Búsqueda
31
Nombre arreglos No. 3
Instrucciones para el Alumno
Identifica los tipos de arreglos en las siguientes figuras colocando el tipo de arreglo que se refiere.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Analiza, reflexiona y aplica los conocimientos adquiridos para la identificación de los diferentes tipos de arreglos.
33
Nombre Elabora un programa con las operaciones básicas de un arreglo No. 2
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código.
Instrucciones para el Alumno
Desarrolla un programa en el lenguaje de programación sugerido por tu maestro, donde utilices un arreglo de tipo entero de 5 posiciones utilizando la operación de lectura y escritura, mostrando los datos capturados.
Instrucciones para el
Docente
Proporcionar la información así como el IDE necesario para que los alumnos elaboren la practica solicitada
Recursos materiales de
apoyo Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
El alumno muestra su interés y participa de manera entusiasta para desarrollar el trabajo asignado.
34
Nombre Elabora un programa con las operaciones básicas de un arreglo No. 2
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código.
Instrucciones para el Alumno
Desarrolla un programa en el lenguaje de programación sugerido por tu maestro, donde utilices un arreglo de tipo flotante de 5 posiciones utilizando la operación de lectura y escritura, mostrando los datos capturados.
Instrucciones para el
Docente
Proporcionar la información así como el IDE necesario para que los alumnos elaboren la practica solicitada
Recursos materiales de
apoyo Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
El alumno muestra su interés y participa de manera entusiasta para desarrollar el trabajo asignado.
35
Nombre Elabora un programa con las operaciones básicas de un arreglo No. 2
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código.
Instrucciones para el Alumno
Desarrolla un programa en el lenguaje de programación sugerido por tu maestro, donde utilices un arreglo de tipo carácter de 7 posiciones utilizando la operación de lectura y escritura, mostrando los datos capturados.
Instrucciones para el
Docente
Proporcionar la información así como el IDE necesario para que los alumnos elaboren la practica solicitada
Recursos materiales de
apoyo Papel, lápiz, computadora y manejo de un IDE para el desarrollo del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
El alumno muestra su interés y participa de manera entusiasta para desarrollar el trabajo asignado.
36
Introducción a las Pilas Cuando se introdujeron al tema de arreglos lineales se mencionó que eran estructuras lineales, analizar las operaciones de lectura, escritura, asignación, los datos pueden insertarse o eliminarse en cualquier posición del arreglo. Pero en el caso de las pilas solo deberán agregarse o quitarse solamente por un extremo, estas son estructuras de datos lineales también, que tienen restricciones en cuanto a la posición en la cual puedan realizarse la inserción y eliminación 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 serán 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 prácticos 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
básicas: Push (para insertar un elemento) y pop (para extraer un elemento). Su Característica fundamental es que al extraer se obtiene siempre el último elemento que acaba de insertarse. Por esta razón también se conocen como estructuras de datos LIFO (del inglés Last In First Out). Una posible implementación mediante listas enlazadas sería 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 sacándolas, esto es posible a la implementación de pilas. Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Por ejemplo, la gestión de ventanas en Windows (cuando cerramos Una ventana siempre recuperamos la que teníamos detrás). Otro ejemplo es la Evaluación general de cualquier expresión matemática para evitar tener que Calcular el número de variables temporales que hacen falta.
Nombre Pilas y Operaciones con los arreglos No. 3
Instrucciones para el Alumno
Analiza y comprende las operaciones con las pilas.
Saberes a adquirir
Manipulación de Arreglos.
Manera Didáctica
de Lograrlos
Interpreta la información que se presenta a continuación y determina la diferencia entre una pila y la de un arreglo.
37
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 máximo numero de elementos y el
últimos de ellos esta indicado por TOPE.
38
Nombre Pilas y sus operaciones básicas No. 3
Instrucciones para el Alumno
Observa el siguiente ejemplo e identifica las operaciones de una pila
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Analiza, reflexiona y comprende las operaciones existentes en una pila de datos.
39
Nombre Pilas y operaciones básicas No. 3
Instrucciones para el Alumno
Interpreta el siguiente pseudocódigo de insertar y eliminar un dato dentro de una pila
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Analiza, reflexiona y aplica los conocimientos adquiridos para la solución del problema planteado.
1.Si TOPE<MAX // verifica que haya espacio libre
entonces
hacer TOPE TOPE+1 //Actualiza TOPE
PILA[TOPE] DATO //Pone un nuevo elemento en la pila
si no
2. escribir espacio lleno
40
1. Si TOPE>0 //verifica que la pila no este vacía
Entonces
hacer DATO PILA[TOPE] y
TOPE TOPE‐1 //Actualiza tope
Si no
escribir espacio esta vacio
2. Fin de la condicional 1
41
Nombre Pilas y sus operaciones básicas No. 2
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código.
Instrucciones para el Alumno
Realiza un programa que contenga las operaciones básicas en una pila como insertar, eliminar y mostrar.
Instrucciones para el
Docente
Proporcionar la información necesaria para que los alumnos elaboren la practica solicitada.
Recursos materiales de
apoyo
Computadora, dispositivo de almacenamiento y el IDE para la elaboración del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Analiza, reflexiona y aplica los conocimientos adquiridos para la solución del problema planteado.
42
Una cola es una colección de elementos homogéneos (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 posición sino solo por el final, así el elemento insertado queda como último.
Por esta razón la cola es denominada una estructura F.I.F.O., o simplemente una lista
F.I.F.O., esto representa el acrónimo de las palabras inglesas “first in, first out” (primero en entrar, primero en salir). Gráficamente podemos representarla como:
La cola fue recién creada y esta vacía. (Frente y final apuntan FINAL FRENTE a nil).
Nombre Colas y operaciones básicas No. 4
Instrucciones para el Alumno
Analiza e interpreta el concepto de una cola así como sus operaciones.
Saberes a adquirir
Manipulación de Arreglos.
Manera Didáctica
de Lograrlos
Interpreta la información que se presenta y conoce la definición de una cola así como sus operaciones básicas.
43
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 continuación se ingresa el elemento B, el frente de la cola continuará apuntando a A, pero ahora el final apuntará al elemento recién 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 vacía, frente y final apuntarán 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 dinámica implementándola como una lista simple y respetando las restricciones de inserción (sólo se puede realizar a través del final) y extracción (sólo se puede realizar por el frente).
A partir de la definición dada, podremos implementar una estructura de tipo cola en una unidad de biblioteca de la siguiente manera.
44
Nombre Colas y operaciones básicas No. 4
Instrucciones para el Alumno
Analiza e interpreta las siguientes imágenes de colas de datos
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
A continuación se muestran diferentes imágenes tipos de colas en diferentes situaciones.
46
Nombre Colas y operaciones básicas No. 4
Instrucciones para el Alumno
Elabora un mapa mental identificando las diferencias entre una pila y una cola así como donde se puede aplicar una cola de datos.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Analiza e interpreta la información anterior y comprende la forma de realizar las operaciones básicas de una cola.
Las colas pueden representarse mediante el uso de:
Arreglos
Listas enlazadas
47
Nombre Colas y operaciones básicas. No. 4
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código.
Instrucciones para el Alumno
1.
Instrucciones para el
Docente
Proporcionar la información necesaria para que los alumnos elaboren la practica solicitada.
Recursos materiales de
apoyo
Computadora, dispositivo de almacenamiento y el IDE para la elaboración del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Nota: recuerda que
en una cola el
primero en entrar es
el primero en salir.
48
¿Qué es ordenamiento?
Es la operación de arreglar los registros de una tabla en algún orden secuencial de acuerdo a un criterio de ordenamiento.
El ordenamiento se efectúa con base en el valor de algún campo en un registro.
El propósito principal de un ordenamiento es el de facilitar las búsquedas de los miembros del conjunto ordenado.
Ej. De ordenamientos:
Dir. telefónico, 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 numérico, alfabético o incluso alfanumérico, ascendente o descendente.
¿Cuándo conviene usar un método de ordenamiento?
Cuando se requiere hacer una cantidad considerable de búsquedas 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:
Nombre Métodos de ordenamiento No. 3
Instrucciones para el Alumno
Analiza y aplica los métodos de ordenamiento.
Saberes a adquirir
Manipulación de Arreglos.
Manera Didáctica
de Lograrlos
Analiza e investiga los diferentes métodos de ordenamientos.
49
Son aquellos en los que los valores a ordenar están 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 están en memoria secundaria (disco, cinta, cilindro magnético, etc.), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accesada (posición 1, posición 500, etc.).
Ordenamiento Burbuja (Bubblesort)
Descripción.
Este es el algoritmo más sencillo probablemente. Ideal para empezar. Consiste en ciclar repetidamente a través de la lista, comparando elementos adyacentes de dos en dos. Si un elemento es mayor que el que está en la siguiente posición se intercambian. ¿Sencillo no?
Ventajas:
Fácil implementación. No requiere memoria adicional.
Desventajas:
Muy lento. Realiza numerosas comparaciones. Realiza numerosos intercambios.
Ordenamiento por Selección.
Descripción.
Este algoritmo también es sencillo. Consiste en lo siguiente:
Buscas el elemento más pequeño de la lista. Lo intercambias con el elemento ubicado en la primera posición de la lista. Buscas el segundo elemento más pequeño de la lista. Lo intercambias con el elemento que ocupa la segunda posición en la lista. Repites este proceso hasta que hayas ordenado toda la lista.
50
Ventajas:
Fácil implementación. 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 Inserción Este algoritmo también es bastante sencillo. ¿Has jugado cartas?. ¿Cómo 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 (también me fijo en el color, pero omitiré esa parte para concentrarme en la idea principal). Después tomo la tercera y la comparo con las que tengo en la mano, desplazándola hasta que quede en su posición final. Continúo haciendo esto, insertando cada carta en la posición que le corresponde, hasta que las tengo todas en orden. ¿Lo haces así tú también? Bueno, pues si es así entonces comprenderás fácilmente 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 sería como la carta que tomamos) y desplazar todos los elementos mayores hacia la derecha. Luego copiamos el elemento guardado en la posición del último elemento que se desplazó.
Ventajas:
Fácil implementación. Requerimientos mínimos de memoria.
Desventajas:
Lento. Realiza numerosas comparaciones.
51
El método de ordenamiento Quick Sort es actualmente el más eficiente y veloz de los métodos de ordenación interna. Es también conocido con el nombre del método rápido y de ordenamiento por partición, en el mundo de habla hispana. Este método es una mejora sustancial del método 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 posición cualquiera del arreglo. Se trata de ubicar a x en la posición 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 posición 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 debería iniciarse en la misma posición donde se encuentra el elemento x, el proceso se termina ya que el elemento x, se encuentra en la posición correcta. A: 12, 08, 15, 16, 44, 27, 67, 35 1er 2do Conjunto Conjunto 16, 44, 27, 67, 35
52
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 xß44 (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 xß35 (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 xß12 (DER-IZQ) A[2]>=x Si hay intercambio EL VECTOR ORDENADO: 08,12,15,16,27,35,44,67
53
. 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
Nombre Ejemplo del método de la burbuja y quicksort. No. 2
Instrucciones para el Alumno
Analiza el método de la burbuja e implementa en donde se puede utilizar este método.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Analiza el siguiente método de ordenamiento.
54
El procedimiento de la burbuja es el siguiente:
Ir comparando desde la casilla 0 numero tras número 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 continuación se ilustra otro Ejemplo para una mejor comprensión del método:
Variables Vector
pos 0 1 2 3 4 5 6 7
i j a[j] a[j+1] inicio 44 55 12 42 94 18 6 67
0 1 55 12 cambio 44 12 55 42 94 18 6 67
0 2 55 42 cambio 44 12 42 55 94 18 6 67
0 4 94 18 cambio 44 12 42 55 18 94 6 67
0 5 94 6 cambio 44 12 42 55 18 6 94 67
0 6 94 67 cambio 44 12 42 55 18 6 67 94
1 0 44 12 cambio 12 44 42 55 18 6 67 94
1 1 44 42 cambio 12 42 44 55 18 6 67 94
1 3 55 18 cambio 2 42 44 18 55 6 67 94
1 4 55 6 cambio 12 42 44 18 6 55 67 94
2 2 44 18 cambio 12 42 18 44 6 55 67 94
2 3 44 6 cambio 12 42 18 6 44 55 67 94
3 1 42 18 cambio 12 18 42 6 44 55 67 94
3 2 42 6 cambio 12 18 6 42 44 55 67 94
4 1 18 6 cambio 12 6 18 42 44 55 67 94
5 0 12 6 ordenado 6 12 18 42 44 55 67 94
56
Nombre Investiga los diferentes tipos de métodos de ordenamiento. No. 2
Instrucciones para el Alumno
Investiga y analiza los diferentes métodos de ordenamiento.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Investiga los distintos tipos de de los métodos de ordenamiento e idéntica el más recomendable para la aplicación de un programa.
Nota: recuerda
encontrar el método de
ordenamiento que para
ti es el más indicado
utilizar en un programa.
57
Nombre Aplicación de estructuras de datos en problemas diversos. No. 1
Competencia a Desarrollar
Manipular las estructuras de datos mediante la implementación de programas.
Atributos de la
competencia
Aplicar las estructuras de control para resolver problemas de cómputo. Manejar un IDE para desarrollo de código. Analizar las necesidades de estructura de datos en problemas particulares. Estructurar arreglos para la manipulación de información.
Instrucciones para el Alumno
Elabora un programa donde se pueda utilizar los distintos tipos de datos en un arreglo, pila o cola, donde se pueda aplicar como herramienta administrativa en la vida real.
Instrucciones para el
Docente
Proporcionar la información necesaria para que los alumnos elaboren la practica solicitada.
Recursos materiales de
apoyo
Computadora, dispositivo de almacenamiento y el IDE para la elaboración del código.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Aprende por iniciativa en interés propio a lo largo de la vida.
Manera Didáctica de
Lograrlas
Elaborando programas con aplicación de una herramienta administrativa o tecnológica.
58
Como te habrás dado cuenta hasta el momento solo
hemos estudiado el funcionamiento las estructuras
de datos estáticas dentro del submodulo
implementar sistemas con la aplicación de los
diferentes tipos de estructuras de datos.
Llevándote por el interesante mundo del
programador, así como se te facilito esta primera
competencia esperamos sigas preparándote día a día por el mundo de la informática.
Te felicitamos porque si tú llegaste hasta aquí significa que sigues avanzando, y esperamos
que nada ni nadie te detenga. Te invitamos a que continúes, pregunta a tu maestro todas las
dudas que tengas y verás que el futuro dentro de la carrera de técnico programador de
software será mucho mejor para ti.
Date cuenta ahora, tú sabes utilizar y diferenciar las características 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…..
59
1. Listas enlazadas 2. Árbol
1. Listas enlazadas 2. Árbol
1. Listas enlazadas 2. Árbol
1. Práctica
Analizar estructuras de datos enlazadas. 2
60
Analizar estructuras de datos enlazadas.
Las estructuras de datos presentadas hasta el momento (Arreglos y Registros) y se le denominan estáticas, reciben ese nombre debido a que durante la compilación se le asigna un espacio de memoria y este permanece inalterable a lo largo de la ejecución del programa. Es decir las variables no pueden crearse o destruirse durante la ejecución del programa.
¿Cuál será la diferencia entre las estructura de datos dinámicas contra las estáticas? A continuación se muestra una grafica de los tipos de estructuras de datos lineales y las no lineales.
Estructuras lineales Estructuras no lineales
61
.
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 características y propiedades de los árboles y el funcionamiento de cada uno de los tipos de listas enlazadas dando conceptos básicos y realizando actividades para poder identificar los tres tipos de listas que conocerás así como las operaciones que podrás realizar cono cada una de ellas.
ATRIBUTOS DE
LA
COMPETENCIA
Listas
Operaciones con listas.
Tipos de listas
Arboles
Características, longitud.
Tipos de arboles.
RESULTADO DE
APRENDIZAJE
A lo largo de esta competencia el instructor diseñara actividades para que puedas conceptualizar e identificar los diferentes tipos de estructuras de datos enlazadas.
62
Recuerda: Que si el nodo fuera el último de la lista, este campo tendrá como valor Nil (vacío).
Ahora se introduce un nuevo concepto, el de estructuras dinámicas 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 colección 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 información 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.
Nombre Listas enlazadas No. 1
Instrucciones para el Alumno
Analiza y comprende el concepto de una lista enlazada así como sus operaciones
Saberes a adquirir
Listas
Operaciones con
listas.
Tipos de listas
Manera Didáctica
de Lograrlos
Identifica el concepto, operaciones y los tipos de listas enlazadas.
63
Crear
Insertar
Eliminar
Consultar (Búsqueda)
Modificar (actualizar)
Tipos de listas enlazadas
Una lista doblemente ligada es una colección de nodos en la cual cada nodo tiene dos punteros uno de ellos apuntando a su predecesor y otro a su sucesor.
Lista Circular
Listas Doblemente
Ligadas
Listas
64
p
Nil
El primer nodo de la lista esta apuntado por una variable P de tipo puntero (P almacena la dirección
del primer nodo). El campo liga del último nodo de la lista, tiene un valor Nil que indica que dicho
nodo no apunta a ningún otro.
Nombre Listas enlazadas. No. 1
Instrucciones para el Alumno
Identifica las listas enlazadas
Competencias Genéricas a Desarrollar
Utiliza las tecnológicas de la información y comunicación para procesar e interpretar información.
Manera Didáctica de
Lograrlas
Identifica los diferentes tipos de listas enlazadas en las estructuras de datos.
65
Listas Circulares
Las listas circulares tienen la característica 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
66
Es el caso más simple. Partiremos de una lista con uno o más 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 dirección 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 antes de actualizar Lista, después nos resultaría imposible liberar la memoria que ocupa. Si liberamos la memoria antes de actualizar Lista, perderemos el puntero al segundo nodo. Si la lista sólo tiene un nodo, el proceso es también válido, ya que el valor de Lista->siguiente es NULL, y después de eliminar el primer nodo la lista quedará vacía, 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é vacía. En todos los demás 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 válido, ya que anterior pasará a ser el último, y anterior->siguiente valdrá NULL.
67
Investiga los siguientes conceptos:
Estructuras dinámicas de datos
Puntero
Referencia
Nombre Listas enlazadas No. 2
Instrucciones para el Alumno
Investiga los conceptos que te indicara tu maestro para la comprensión del tema de listas enlazadas.
Competencias Genéricas a Desarrollar
Utiliza las tecnológicas de la información y comunicación para procesar e interpretar información.
Manera Didáctica de
Lograrlas
Realiza investigación para la comprensión de las estructuras dinámicas de datos.
Recuerda que debes entregar tu investigación en la fecha que te indique tu maestro.
68
Listas
Arboles
Es de observar que las pilas y las colas no fueron consideradas en esta clasificación, puesto que dependen de la estructura que utilice para implementarlas.
Arreglos
Registros
Conjuntos
Los arboles representan estructuras no-lineales y dinámicas de datos más importantes en
computación.
Dinámicas, porque la estructura árbol puede cambiar durante la ejecución de un programa.
No-lineales, porque cada elemento del árbol puedan seguirle varios elementos.
Representación de las estructuras de datos más importantes clasificadas de acuerdo a su
estaticidad y dinamismo.
Estructuras Estáticas Estructuras Dinámicas
Nombre Árbol No. 2
Instrucciones para el Alumno
Conoce y aplica el concepto de árbol así como sus características.
Saberes a adquirir
Arboles
Características,
longitud.
Tipos de arboles.
Manera Didáctica
de Lograrlos
Comprende el concepto de un árbol así como los diferentes tipos, características con que cuenta un árbol.
69
Árboles Binarios Completos árbol binario
Árbol binario en memoria
Nombre Representación grafica de las estructuras árbol. No. 1
Instrucciones para el Alumno
Identifica los tipos de representación grafica de las estructuras dinámicas.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Identifica los distintos tipos de arboles.
Al analizar la estructura
árbol se introduce al
concepto de estructuras de
ramificación entre nodos.
70
Inserción 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 código de inserción 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 continuación se ofrecen ejemplos concretos para ilustrar el mecanismo de inserción:
71
Codigo para Insertar un nodo en C
tipo_elmto = registro clave:tipo_clave; {los demás campos necesarios} freg; tipos_nodo = (hoja, interior); nodo_dos_tres = registro clase:tipos_nodo; selección 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 Inserción
algoritmo inserta1(e/s nodo:diccionario; ent x:tipo_elmto; {x se insertará en el subárbol de nodo} sal pt_nuevo:diccionario; {puntero al nodo recién creado a la derecha de nodo} sal menor:tipo_clave) {elmto más pequeño del subárbol 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 subárbol pertenece x; inserta1(w, x,pt_atrás,menor_atrás); si pt_atrás≠nil entonces inserta el puntero pt_atrás 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.*;
72
class TreeNode { String word; // Word being stored. int count = 1; // Count of words seen in text. TreeNode left; // Left subtree reference. TreeNode right; // 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 ();
73
// 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); } }
74
Diagrama de Venn
Anidación de Paréntesis
Notación Decimal de Dewey
Notación Identada
Grafo
Nombre Arboles No. 2
Instrucciones para el Alumno
Investiga el concepto y la representación de cada una de las formas de representar las estructuras de un árbol.
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Investiga las diferentes formas de representar un árbol
75
Escribe sobre la línea el tipo de árbol a que se hace referencia según su representación
grafica.
76
Los árboles binarios tienen múltiples 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 genealógico (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 múltiples usos.
Nombre Arboles con estructuras No. 1
Competencia a Desarrollar
Analizar las necesidades de estructura de datos en problemas particulares.
Atributos de la
competencia Identifica la utilización de estructuras de datos enlazadas.
Instrucciones para el Alumno
Desarrolla y Comprende de las estructuras de datos enlazadas en el planteamiento de un problema dando solución con ellas
Instrucciones para el
Docente
Proporciona las herramientas necesarias para desarrollar y dar solución a una problemática con las estructuras enlazadas.
Recursos materiales de
apoyo Computadora y su dispositivo de almacenamiento
Competencias Genéricas a Desarrollar
Desarrolla innovaciones y propone soluciones a problemas a partir de métodos establecidos.
Manera Didáctica de
Lograrlas
Investiga y desarrolla innovaciones dando solución administrativa a alguna problemática.
77
Como te habrás dado cuenta conocer las estructuras dinámicas
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 continúes, pregunta a tu maestro todas las dudas que tengas y verás 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 programación.
FELICIDADES!!!! Y TE INVITAMOS A QUE AHORA EMPRENDAS EL VIAJE AL MUNDO DE LA
PROGRAMACION Y PUEDAS IMPLEMENTAR LO HASTA AQUÍ APRENDIDO…
78
Esta guía fue concebida como un medio de aprendizaje en la educación técnica 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 dinámica del proceso de enseñanza aprendizaje, al orientar la actividad del alumno en el
aprendizaje desarrollador, a través de situaciones problemáticas y tareas que garanticen la apropiación activa, crítico - reflexiva y creadora de los contenidos, con la adecuada dirección y control de sus propios aprendizajes. La guía está integrada por dos competencias:
1. Manipular las estructuras de datos mediante la implementación de programas. 2. Analizar estructuras de datos enlazadas.
El desarrollo de estas competencias permite cubrir básicamente con el Resultado de Aprendizaje del Sub módulo uno, que es implementar sistemas con la aplicación de los diferentes tipos de estructuras de datos. La forma de evaluar el presente Submódulo es en primer término considerando los instrumentos de evaluación, los cuales determinan el producto y el desempeño, derivados de cada una de las prácticas plasmadas en la guía.
79
Estructura de datos, Osvaldo Cairo, Editorial Mc Graw Hill.
Metodología de la programación tomo II, Osvaldo Cairo, Editorial Computec
Metodología de la programación orientada a objetos, Leobardo López Román, Editorial Alfaomega.
Programación 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/arrays‐unidimensionales‐los‐vectores_9958_23_1.jpg
http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/Array1.svg/328px‐Array1.svg.png
http://ifxperu.com/wp‐content/uploads/2011/03/ArraysUniMulti.gif
http://www.mailxmail.com/curso‐aprende‐programar/metodos‐ordenamiento‐busqueda
Imágenes
http://logica‐digital.blogspot.com/2007/11/suplemento‐3‐cmo‐trabaja‐el.html
http://www.emezeta.com/articulos/dibujar‐grafos‐o‐estructuras‐de‐datos#axzz1Nay42PSR
http://tesciedd.blogspot.com/2011/01/unidad‐4‐arboles‐y‐grafos.html
http://www.zator.com/Cpp/E4_5_8.htm
http://designweb‐coepa.blogspot.com/2010/06/133‐estructuras‐de‐navagacion.html
http://lml.ls.fi.upm.es/~mcollado/xml/xml‐code.html
80
DATOS SIMPLES: Son aquellos que ocupan sólo 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 colección de registros, los cuales están conectados entre sí por medio de enlaces. Registro.- Es una colección de campos (atributos). Campos.- Contiene almacenado solamente un valor. Enlace.- Asociación entre dos registros, así que podemos verla como una relación estrictamente binaria. ESTRUCTURA DE DATOS: En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato elemental es la mínima información que se tiene en el sistema) con el objetivo de facilitar la manipulación de estos datos como un todo o individualmente. PILA: (stack) es una colección 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 homogéneos 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 colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos: • De una dimensión. • De dos dimensiones. • De tres o más dimensiones ARREGLOS UNIDIMENSIONALES: Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección 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 dirección base del arreglo, la cota superior y la inferior. COLAS: Es una estructura lineal de datos. Una cola es un grupo ordenado de elementos homogéneos en el que los nuevos elementos se añaden 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).
81
Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él.
82
Nombre del alumno: Campos de aplicación
Carrera: Técnico en programador de software. Lugares donde se pueden aplicar las estructuras de datos:
1. tiendas, 2. comercios 3. y/o consultorios.
Modulo II:. Estructura los datos orientados a objetos.
Submódulo I: Implementar sistemas con la aplicación de los diferentes tipos de estructura de datos.
Evidencia por desempeño: carpeta de evidencia con los programas y prácticas 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 aplicación así como su manual.
CRITERIOS CUMPLIO
OBSERVACIONES SI NO
1 ¿Entrego el proyecto en tiempo y forma y con el uso adecuado de ortografía? 2 ¿Aplicó los criterios para la entrega del manual como portada, índice, desarrollo conclusión y fuentes de información, etc.? 3 ¿Aplicó el proyecto con la utilización de las estructuras de datos vistas en clase? 4 ¿Aplicó la utilización adecuada del IDE propuesto en clase? 5 ¿Aplicó sintaxis extra clase de algún tema dentro del proyecto? 6 ¿Participó de manera activa en las estrategias de
construcción del aprendizaje recomendadas?
GUIA DE OBSERVACION: TPS-04/M2S1/
84
CUESTIONARIO PARA VISITAS GUIADAS
1.- ¿Escribe el nombre del sistema de aplicación que viste?
2.- ¿Escribe una lista de los lenguajes de programación 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 programación te gustaría desarrollarte.
5.- Cuantas computadoras pudiste localizar que son las dedicadas exclusivamente para la creación de programas y sistemas de aplicación.
6.- Describe que fue lo que más te intereso en la visita guiada.
85
Nombre del Estudiante:
Materia:
Lista de Cotejo
Carpeta de Evidencia a Estudiantes
Cumplió Aplica No Aplica
Portada
Misión y Visión
Índice
Desarrollo de temas
Incluyo temas extras desarrolladas
Contiene Exámenes Calificados
Ejercicios en clase
Contiene Prácticas y/o Reportes de los laboratorios
Incluye tareas y trabajos investigación
Incluye su Proyecto
Incluye Conclusión
Observaciones:
Firma del estudiante Docente
Recommended