Autor Tema: Clase De Python 3 por Rock Lee  (Leído 1163 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Conectado Rock Lee

  • Administrador
  • *
  • Mensajes: 1122
    Ingreso: Enero de 2014
  • Sexo: Masculino
  • ar
  • Digitalizando tu Mundo
    • Ver Perfil
    • La nueva era del conocimiento
Clase De Python 3 por Rock Lee
« on: 23 Julio de 2014, 03:22 pm »
Bueno luego de un tiempo sin seguir con esto, pensaron ya ¿no tenes mas? verdad... se equivocaron :D hay mas aun por eso vamos por la 3ra clase. Ahora tocaremos el tema de Abstracción y Encapsulamiento... bien entonces comencemos con lo nuevo!


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.

Problema ==>>> Abstracción ===>> Modelo

Ademas es un mecanismo fundamental para la comprensión de problemas y fenómenos que poseen una gran cantidad de detalles. A grandes rasgos, la abstracción, permite que dispongamos de las características de un objeto que necesitemos para resolver un problema.




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.

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.


Tipo Abstracto de Datos [TAD]

Vamos paso a paso en esto lo primero que debemos preguntarnos ¿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.

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.
Código: (Python) [Seleccionar]
TAD

Publico:                    ] Programa
  -Operaciones y Funciones  ] Cliente

Privado:
  -Estructura Interna
  -Código de Operaciones

Entonces surge la pregunta que creo es casi seguro ¿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.

Diferencia entre tipo de datos y tipo abstracto de datos:

• Los datos son los valores que manejamos en la resolución de un problema. También 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.


TADs Pila y Cola

Una pila es una colección, lo que significa que es una estructura de datos que contiene elementos
múltiples. La misma 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.

Las operaciones básicas que se pueden realizar con una pila son apilar [push <=> Agregamos un elemento al final] y desapilar [pop <=> Sacamos el último elemento agregado].

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.

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?
Código: (Python) [Seleccionar]
#Tad Pila
def nuevo():   #<== Inicializamos la lista#
  pila = []
  return pila

def push(pila, elemento):
  pila.append(elemento)    #<== Utilizamos el método append para hacer el push#

def pop(pila):
  return pila.pop()    #<== El método pop funciona de manera similar#

def isEmpty(pila):
  return (pila == [])

Una pila es una estructura genérica de datos, lo significa que se puede añadir cualquier tipo de elementos a ella como ejemplo:
Código: (Python) [Seleccionar]
import Pila

p = Pila.nuevo()
pila.push(p, 54)    #<== <type "int">
pila.push(p, 45.0)    #<== <type "float">
pila.push(p, "+")    #<== <type "str">

Se pueden utilizar isEmpty y pop para quitar e imprimir todos los elementos en la pila: por ejemplo
Código: (Python) [Seleccionar]
import Pila

p = Pila.nuevo()
pila.push(p, 54)
pila.push(p, 45.0)
pila.push(p, "+")
while not Pïla.isEmpty(p):
  aux = Pila.pop(p)
  print (aux)

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.

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.
El TAD Cola se define a través de las operaciones de encolado [push <=> Agregamos un elemento al final] y desencolado (pop <=> Sacamos el primer elemento agregado].

Al igual que con el TAD Pila, otras operaciones posibles:
– Tope (top): devuelve el elemento al principio dela cola.
– Está Vacía (isEmpty): prueba si la cola está vacía.

Tenemos las operaciones básicas, y ahora, ¿como implementamos el TAD Cola en Python? ¿Que diferencias hay con el TAD Pila?

La diferencia se encuentra en que elemento es retirado de la cola. Ahora se quita el primer elemento agregado, no el último.

El método pop de colas:
Código: (Python) [Seleccionar]
def pop(cola):
  aux = cola[0]    #<== Obtenemos el elemento en la 1ra posición#
  del (cola[0])    #<== Eliminamos el elemento de esa posición#
  return aux    #<== Retornamos el elemento#


Con esto terminamos por hoy con la clase de Python, próximamente agregare algunas clases mas sobre otros temas ;D estar atentos!

Recordar: Ante cualquier duda o sugerencia sera muy bien recibida simplemente deja un comentario ;) ademas es material que tengo y por tal motivo voy observando que cosas pueden entrar o cuales no es necesario incluir. También puede que se encuentre algún error o cosas no tan claras por eso pido disculpas!


...Un Saludo Para Todos!...

<<< Continuación >>> Clase De Python 4.
« Última Modificación: 06 Junio de 2016, 05:31 pm por Ninokap »