SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
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




                  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
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.
                 Programa
                  Cliente




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

                                                     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
                                              Sacamos el
Agregamos un
 Agregamos un                                último elemento
                                              último elemento
elemento al
 elemento al                                 agregado
                                              agregado
final
 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
                                   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
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
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).



Agregamos un
 Agregamos un
elemento al
 elemento al
final
 final                                      Sacamos el
                                            Sacamos el
                                            primer
                                            primer
                                            elemento
                                            elemento
                                            agregado
                                            agregado
                                                     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 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
Algoritmos y Programación




                  FIN




                            www.unaj.edu.ar

Más contenido relacionado

Destacado

Destacado (20)

Respuestas del test
Respuestas del testRespuestas del test
Respuestas del test
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
 
Evaluacion objetiva
Evaluacion objetivaEvaluacion objetiva
Evaluacion objetiva
 
0° prueba objetiva estructura
0° prueba objetiva estructura0° prueba objetiva estructura
0° prueba objetiva estructura
 
INTELIGENCIA COMPETITIVA
INTELIGENCIA COMPETITIVAINTELIGENCIA COMPETITIVA
INTELIGENCIA COMPETITIVA
 
Tipos de pruebas objetivas
Tipos de pruebas objetivasTipos de pruebas objetivas
Tipos de pruebas objetivas
 
Pilas
PilasPilas
Pilas
 
LISTAS
LISTASLISTAS
LISTAS
 
PREGUNTAS DE EXAMEN
PREGUNTAS DE EXAMENPREGUNTAS DE EXAMEN
PREGUNTAS DE EXAMEN
 
PILAS
PILASPILAS
PILAS
 
preguntas de algoritmos
preguntas de algoritmospreguntas de algoritmos
preguntas de algoritmos
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Elaboración de pruebas objetivas
Elaboración de pruebas objetivasElaboración de pruebas objetivas
Elaboración de pruebas objetivas
 
Cuestionario Fundamentos de Programación
Cuestionario Fundamentos de ProgramaciónCuestionario Fundamentos de Programación
Cuestionario Fundamentos de Programación
 
Examen Parcial 1 Introduccion Programacion
Examen Parcial 1 Introduccion ProgramacionExamen Parcial 1 Introduccion Programacion
Examen Parcial 1 Introduccion Programacion
 
Ejercicios de test - desarrollo y programación
Ejercicios de test  -  desarrollo y programaciónEjercicios de test  -  desarrollo y programación
Ejercicios de test - desarrollo y programación
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Tipos de prueba
Tipos de pruebaTipos de prueba
Tipos de prueba
 

Similar a Clase3

Marcela rico y marcela delgadillo
Marcela rico y marcela delgadilloMarcela rico y marcela delgadillo
Marcela rico y marcela delgadillo
MarcelaRico90
 
Marcela rico y marcela delgadillo
Marcela rico y marcela delgadilloMarcela rico y marcela delgadillo
Marcela rico y marcela delgadillo
MarcelaRico90
 
Estructura de datos power point
Estructura de datos power pointEstructura de datos power point
Estructura de datos power point
unachi
 

Similar a Clase3 (20)

Tema1 (2)
Tema1 (2)Tema1 (2)
Tema1 (2)
 
Jyoc java-cap19 tad (tipos abstractos de datos)
Jyoc java-cap19 tad (tipos abstractos de datos)Jyoc java-cap19 tad (tipos abstractos de datos)
Jyoc java-cap19 tad (tipos abstractos de datos)
 
Programacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma pooProgramacion orientada a objetos Unidad 1-intro al paradigma poo
Programacion orientada a objetos Unidad 1-intro al paradigma poo
 
Introducción a la PPO
 Introducción a la PPO Introducción a la PPO
Introducción a la PPO
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Abstracción de datos
Abstracción de datosAbstracción de datos
Abstracción de datos
 
Marcela rico y marcela delgadillo
Marcela rico y marcela delgadilloMarcela rico y marcela delgadillo
Marcela rico y marcela delgadillo
 
programacion orientada a objetos poo.pptx
programacion orientada a objetos poo.pptxprogramacion orientada a objetos poo.pptx
programacion orientada a objetos poo.pptx
 
Marcela rico y marcela delgadillo
Marcela rico y marcela delgadilloMarcela rico y marcela delgadillo
Marcela rico y marcela delgadillo
 
poo+neohj.pptx
poo+neohj.pptxpoo+neohj.pptx
poo+neohj.pptx
 
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon KoudsiFUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
FUNDAMENTOS Y MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS Raimon Koudsi
 
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
¡PROGRAMACION ORIENDA AL OBJETO! (POO) ppt
 
Estructura de datos power point
Estructura de datos power pointEstructura de datos power point
Estructura de datos power point
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Cuaderno
CuadernoCuaderno
Cuaderno
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TADEstructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
 
tecnologiasoo-01-140709001709-phpapp02.pdf
tecnologiasoo-01-140709001709-phpapp02.pdftecnologiasoo-01-140709001709-phpapp02.pdf
tecnologiasoo-01-140709001709-phpapp02.pdf
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 

Más de Jorge Gamez (19)

Python i
Python iPython i
Python i
 
Clase 6 excepciones
Clase 6   excepcionesClase 6   excepciones
Clase 6 excepciones
 
Practica repaso 4 5 2da
Practica repaso 4 5 2daPractica repaso 4 5 2da
Practica repaso 4 5 2da
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2
 
Practica repaso pilas y colas con archivos
Practica repaso pilas y colas   con archivosPractica repaso pilas y colas   con archivos
Practica repaso pilas y colas con archivos
 
Practica repaso pilas y colas
Practica repaso pilas y colasPractica repaso pilas y colas
Practica repaso pilas y colas
 
Practica 5
Practica  5Practica  5
Practica 5
 
Practica 4
Practica  4Practica  4
Practica 4
 
Practica 3
Practica  3Practica  3
Practica 3
 
Practica 2
Practica  2Practica  2
Practica 2
 
Practica 1
Practica  1Practica  1
Practica 1
 
Practica repaso 1 3-2
Practica repaso 1 3-2Practica repaso 1 3-2
Practica repaso 1 3-2
 
Clase5
Clase5Clase5
Clase5
 
Clase4
Clase4Clase4
Clase4
 
Clase2
Clase2Clase2
Clase2
 
Clase1
Clase1Clase1
Clase1
 
Clase archivos
Clase   archivosClase   archivos
Clase archivos
 
2 da clase la ingeniería
2 da clase  la ingeniería2 da clase  la ingeniería
2 da clase la ingeniería
 
Presentación clase 3
Presentación clase 3Presentación clase 3
Presentación clase 3
 

Clase3

  • 1. Algoritmos y Programación Clase 3: Abstracción y Encapsulamiento www.unaj.edu.ar
  • 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. Algoritmos y Programación Abstracción www.unaj.edu.ar
  • 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. 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. 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. Algoritmos y Programación Encapsulamiento www.unaj.edu.ar
  • 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. 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. Algoritmos y Programación Tipo Abstracto de Datos (TAD) www.unaj.edu.ar
  • 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. 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. 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. 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. Algoritmos y Programación TADs Pila y Cola www.unaj.edu.ar
  • 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. 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 el Agregamos un Agregamos un último elemento último elemento elemento al elemento al agregado agregado final final www.unaj.edu.ar
  • 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. 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. 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. 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. 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. 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. 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. 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 un elemento al elemento al final final Sacamos el Sacamos el primer primer elemento elemento agregado agregado www.unaj.edu.ar
  • 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. 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. 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. 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. Algoritmos y Programación FIN www.unaj.edu.ar