Clase3

736 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
736
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase3

  1. 1. Algoritmos y Programación Clase 3: Abstracción y Encapsulamiento www.unaj.edu.ar
  2. 2. Algoritmos y Programación Temario • Abstracción • Encapsulamiento • Tipos abstractos de datos • Diferencia entre tipo de datos y tipo abstracto de datos • TAD Pila y Cola www.unaj.edu.ar
  3. 3. Algoritmos y Programación Abstracción www.unaj.edu.ar
  4. 4. Algoritmos y Programación Abstracción • La abstracción es la representación de las características esenciales de un objeto o entidad. • Consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. • La abstracción es una de las herramientas que más nos ayuda a la hora de solucionar un problema. www.unaj.edu.ar
  5. 5. Algoritmos y Programación Abstracción • Es un mecanismo fundamental para la comprensión de problemas y fenómenos que poseen una gran cantidad de detalles. www.unaj.edu.ar
  6. 6. Algoritmos y Programación Abstracción • A grandes rasgos, la abstracción, permite que dispongamos de las características de un objeto que necesitemos para resolver un problema. www.unaj.edu.ar
  7. 7. Algoritmos y Programación Encapsulamiento www.unaj.edu.ar
  8. 8. Algoritmos y Programación Encapsulamiento Se denomina encapsulamiento al ocultamiento del estado interno, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para el mismo. www.unaj.edu.ar
  9. 9. Algoritmos y Programación Encapsulamiento de Datos • Este aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. • El usuario del objeto puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. www.unaj.edu.ar
  10. 10. Algoritmos y Programación Tipo Abstracto de Datos (TAD) www.unaj.edu.ar
  11. 11. Algoritmos y Programación ¿Qué es un TAD? • Un tipo abstracto de datos, o TAD, especifica: – Un conjunto de operaciones (o métodos) denominados usualmente su interfaz pública y representan el comportamiento del TAD. – La semántica de las operaciones (lo que hacen). • Pero no especifica la implementación de las operaciones. • Esto es lo que lo convierte en abstracto. www.unaj.edu.ar
  12. 12. Algoritmos y Programación ¿Qué es un TAD? • Sólo podemos modificar el estado interno del TAD con las operaciones definidas. Programa Cliente • La implementación interna del TAD está oculta al programa cliente que lo usa. www.unaj.edu.ar
  13. 13. Algoritmos y Programación ¿Para qué sirve TAD? • Abstracción: Los usuarios de un TAD no ́ necesitan conocer sus detalles de implementación. • Reutilización: un TAD puede ser utilizado por distintos programas. • Corrección: al reutilizar código ya probado y forzar a utilizar la estructura de datos correctamente. • www.unaj.edu.ar
  14. 14. Algoritmos y Programación Diferencia entre tipo de datos y tipo abstracto de datos • Los datos son los valores que manejamos en la resolución de un problema. • Un tipo de dato se puede definir como un conjunto de valores y un conjunto de operaciones definidas para esos valores. • Los tipos de datos abstractos extienden la función de un tipo de dato ocultando la implementación de las operaciones definidas por el usuario. www.unaj.edu.ar
  15. 15. Algoritmos y Programación TADs Pila y Cola www.unaj.edu.ar
  16. 16. Algoritmos y Programación TAD Pila • Una pila es una colección, lo que significa que es una estructura de datos que contiene elementos múltiples. • La pila implementa una estructura “último en entrar primero en salir” (“last in, first out” en inglés), o LIFO, porque el elemento añadido en último lugar es el primero que extraemos. www.unaj.edu.ar
  17. 17. Algoritmos y Programación TAD Pila • Las operaciones básicas que se pueden realizar con una pila son apilar (push) y desapilar (pop). Sacamos el Sacamos elAgregamos un Agregamos un último elemento último elementoelemento al elemento al agregado agregadofinal final www.unaj.edu.ar
  18. 18. Algoritmos y Programación TAD Pila • Las operaciones apilar (push) y desapilar (pop) que constituyen las mínimas necesarias para manipular una pila (de lo que sea) forman parte de la interfaz pública del TAD pila. • Otras operaciones posibles: – Tope (top): devuelve el elemento en el tope de la pila. – Está Vacía (isEmpty): prueba si la pila está vacía. www.unaj.edu.ar
  19. 19. Algoritmos y Programación TAD Pila en Python • Tenemos las operaciones básicas, y ahora, como implementamos el TAD Pila en Python? • Que estructura de datos conocida puede ser utilizada para representar internamente la Pila? www.unaj.edu.ar
  20. 20. Algoritmos y Programación TAD Pila en Python usando listas Inicializamos la Inicializamos la lista lista Utilizamos el Utilizamos el método append método append Elpara hacer el push para hacer el El método pop push método pop funciona de funciona de manera similar manera similar www.unaj.edu.ar
  21. 21. Algoritmos y Programación TAD Pila en Python usando listas • Una pila es una estructura genérica de datos, lo significa que se puede añadir cualquier tipo de elementos a ella. • Ej: <type int> <type int> <type float> <type float> <type str> <type str> www.unaj.edu.ar
  22. 22. Algoritmos y Programación TAD Pila en Python usando listas • Se pueden utilizar isEmpty y pop para quitar e imprimir todos los elementos en la pila: • Ej: www.unaj.edu.ar
  23. 23. Algoritmos y Programación TAD Cola • En la vida real, una cola es una fila de clientes esperando un servicio de algún tipo. • En la mayoría de los casos, el primer cliente de la fila es el primero al que se va a servir. www.unaj.edu.ar
  24. 24. Algoritmos y Programación TAD Cola • La regla que determina quién va primero se llama táctica de encolamiento. • La táctica de encolamiento más simple se llama FIFO, de “first-in-first-out”, “el primero que entra es el primero que sale”. • Al igual que la pila, una cola es una colección de elementos. www.unaj.edu.ar
  25. 25. Algoritmos y Programación TAD Cola • El TAD Cola se define a través de las operaciones de encolado (push) y desencolado (pop).Agregamos un Agregamos unelemento al elemento alfinal final Sacamos el Sacamos el primer primer elemento elemento agregado agregado www.unaj.edu.ar
  26. 26. Algoritmos y Programación TAD Cola • Al igual que con el TAD Pila, otras operaciones posibles: – Tope (top): devuelve el elemento al principio de la cola. – Está Vacía (isEmpty): prueba si la cola está vacía. www.unaj.edu.ar
  27. 27. Algoritmos y Programación TAD Cola en Python • Tenemos las operaciones básicas, y ahora, como implementamos el TAD Cola en Python? • Que diferencias hay con el TAD Pila? www.unaj.edu.ar
  28. 28. Algoritmos y Programación TAD Cola en Python • La diferencia se encuentra en que elemento es retirado de la cola. • Ahora se quita el primer elemento agregado, no el último. www.unaj.edu.ar
  29. 29. Algoritmos y Programación TAD Cola en Python usando listas El método pop de colas: 1. Obtenemos el 1. Obtenemos el elemento en lael elemento en la 2. Eliminamos el 2. Eliminamos 1ra posición esa 1ra posición elemento de esa elemento de 3. Retornamos el posicion. 3. Retornamos el posicion. elemento elemento www.unaj.edu.ar
  30. 30. Algoritmos y Programación FIN www.unaj.edu.ar

×