software mód ii sub i - p�gina web de cecyte...

85
Software Submódulo I ••• IMPLEMENTA SISTEMAS CON LA APLICACIÓN DE LOS DIFERENTES TIPOS DE ESTRUCTURAS DE DATOS ••• Guía Profesional elaborada por: Oscar David Bustos Torres DOCENTE DEL PLANTEL XOCHIMILCO

Upload: vanthuy

Post on 27-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

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: [email protected]á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:

[email protected]@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

12 

 

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.

 

15 

 

 

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

17 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

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.

19 

 

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

30 

 

Ejemplo de un arreglo de tipo entero de 10 posiciones.

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.

32 

 

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.

45 

 

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

55 

 

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/ 

83 

 

Observaciones generales

 

Evaluó (Nombre y Firma) Lugar y fecha de la aplicación

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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