30
www.unaj.edu.ar Algoritmos y Programación Clase 3: Abstracción y Encapsulamiento

Clase3

Embed Size (px)

Citation preview

www.unaj.edu.ar

Algoritmos y Programación

Clase 3:

Abstracción y Encapsulamiento

www.unaj.edu.ar

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

Algoritmos y Programación

Abstracción

www.unaj.edu.ar

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

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

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

Algoritmos y Programación

Encapsulamiento

www.unaj.edu.ar

Algoritmos y Programación

EncapsulamientoSe 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

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

Algoritmos y Programación

Tipo Abstracto de Datos (TAD)

www.unaj.edu.ar

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

Algoritmos y Programación

¿Qué es un TAD?

• Sólo podemos modificar el estado interno del TAD con las operaciones definidas.

• La implementación interna del TAD está oculta al programa cliente que lo usa.

Programa Cliente

www.unaj.edu.ar

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

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

Algoritmos y Programación

TADs Pila y Cola

www.unaj.edu.ar

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

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 último elemento agregado

Sacamos el último elemento agregado

Agregamos un elemento al final

Agregamos un elemento al final

www.unaj.edu.ar

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

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

Algoritmos y Programación

TAD Pila en Python usando listas

Inicializamos la lista

Inicializamos la lista

Utilizamos el método append para hacer el push

Utilizamos el método append para hacer el pushEl método pop

funciona de manera similar

El método pop funciona de manera similar

www.unaj.edu.ar

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 'float'><type 'str'>

<type 'int'><type 'float'><type 'str'>

www.unaj.edu.ar

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

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

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

Algoritmos y Programación

TAD Cola• El TAD Cola se define a través de las operaciones

de encolado (push) y desencolado (pop).

Sacamos el primer elemento agregado

Sacamos el primer elemento agregado

Agregamos un elemento al final

Agregamos un elemento al final

www.unaj.edu.ar

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

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

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

Algoritmos y Programación

TAD Cola en Python usando listasEl método pop de colas:

1. Obtenemos el elemento en la 1ra posición

1. Obtenemos el elemento en la 1ra posición2. Eliminamos el elemento de esa posicion.

2. Eliminamos el elemento de esa posicion.3. Retornamos el elemento

3. Retornamos el elemento

www.unaj.edu.ar

Algoritmos y Programación

FIN