TIPOS DE DATOS ABSTRACTOS - PowerPoint PPT Presentation

About This Presentation
Title:

TIPOS DE DATOS ABSTRACTOS

Description:

tipos de datos abstractos estructuras de datos – PowerPoint PPT presentation

Number of Views:251
Avg rating:3.0/5.0
Slides: 19
Provided by: Maris53
Category:

less

Transcript and Presenter's Notes

Title: TIPOS DE DATOS ABSTRACTOS


1
TIPOS DE DATOS ABSTRACTOS
  • ESTRUCTURAS DE DATOS

2
OBJETIVOS
  • Determinar las posibles entidades a participar en
    un problema
  • Identificar las características y comportamientos
    importantes de cada entidad
  • Abstraer la definición y comportamiento de una
    entidad para crear un nuevo TDA
  • Aplicar un lenguaje formal parar definir un TDA

3
ABSTRACCION
  • Es ignorancia selectiva
  • Decidir que es importante y que no lo es
  • Enfocarse y depender de lo que ES importante
  • Ignorar y no depender de lo que NO ES importante

El propósito de la abstracción no es ser poco
específico, es más bien crear un nuevo nivel, en
el cual se puede ser absolutamente preciso Edsger
Dijkstra
4
ABSTRACCION PARA RESOLVER PROBLEMAS
  • La mejor abstracción es aquella que hace simples
    las cosas complejas.
  • Rescatar y resaltar los conceptos fundamentales
  • Esconder los aspectos no importantes
  • Ejemplo Detalles de la implementación

Mientras mas perfecta es una máquina, mas oculto
se encuentra su funcionamiento. Al parecer, la
perfección no se logra cuando no hay mas que
añadir, si no cuando no haya mas que
quitar. Antoine de Saint-Exupéry
5
ABSTRACCION DE DATOS
  • Es una técnica poderosa de programación
  • Permite inventar, o definir nuevos tipos de
    datos
  • Observando e identificando entidades del mundo
    real objetos
  • Ocultando datos irrelevantes para la resolución
    del problema
  • Gracias a esto, se pueden diseñar programas
  • Mas cortos, Legibles y Flexibles
  • Estos nuevos tipos de datos se conocen como
  • TIPOS DE DATOS ABSTRACTOS (TDA)

6
TIPOS DE DATOS ABSTRACTOS
  • Un TDA trata de representar entidades del mundo
    real objetos
  • Especificando el QUE y no el COMO
  • Se componen de
  • Comportamiento ? Operaciones
  • Los TDAs existen PARA proveer operaciones
  • Ejemplo Un carro, es útil porque se lo puede
    manejar
  • Manejar es un comportamiento u operación del TDA
    Carro
  • Estado
  • Se refiere al funcionamiento interno del TDA
  • Un TDA correctamente creado mantiene su estado
    OCULTO
  • Ejemplo No nos interesa como Carro funciona,
    solo nos interesa que funciona

7
EJEMPLO
  • Se necesita crear un TDA para representar los
    números racionales
  • La abstracción nos permitirá reconocer
  • El comportamiento de un número racional y
  • El estado (datos) del mismo
  • TDA Racional
  • Comportamiento
  • Sumar, Restar, Multiplicar, Simplificar, etc.
  • Estado
  • Numerador
  • Denominador, siempre debe ser diferente de 0

8
VENTAJAS DE LOS TDA
  • Permiten una mejor representación del mundo real
  • Una solución puede estar compuesta de un grupo de
    TDAs
  • Cada uno con sus comportamientos y estados
  • El código se comprende mejor, pues los TDAs
    representan entidades del mundo real
  • Permite llevar un control de cambios
  • Si el estado de un TDA esta oculto, si se
    modifica, nadie se verá afectado
  • Ejemplo Se pueden hacer modificaciones a un auto
    sin que el usuario del mismo se entere o cambie
    su forma de USAR el auto
  • Permite la extensibilidad de un sistema
  • Cada Nuevo Tipo de Dato es un modulo que se
    adapta a una solución

9
DEFINICION DE UN TDA
  • La definición de un TDA durante el diseño debería
  • Clara, concisa, sin ambigüedades
  • Sin embargo, muchos de nosotros usamos
  • Lenguaje natural sujeto a ambigüedades
  • Lenguaje de programación en particular
  • No todos lo entienden
  • Una notación formal, generalizada
  • Todos lo podrán entender y la definición será
    clara y concisa
  • Una notación formal propuesta es BNF

10
QUE ES BNF?
  • Backus-Naur Form
  • Es una notación formal matemática
  • Es utilizada para definir la sintaxis de los
    lenguajes
  • Que esta permitido en cierto lenguaje y que no
  • Sin lugar a ambigüedades
  • Ejemplo En lenguaje C,
  • Hay reglas para declarar variables
  • Y cada sentencia de control tiene su propia regla
    de sintaxis

11
Cómo funciona BNF?
  • Es como un juego matemático
  • Se busca definir un símbolo, dando las reglas
    para reemplazarlo
  • Símbolo alternativa1 alternativa2
  • Si una expresión escrita
  • Se puede expresar usando su definición BNF
  • Estará correctamente escrita
  • Si no, no será permitida según la sintaxis del
    lenguaje
  • ERROR!

12
REGLAS Y SINTAXIS DE BNF
  • Una regla en BNF indica que
  • Un símbolo no terminal a la izquierda del
    puede ser reemplazado por la o las alternativas
    del lado derecho
  • Las alternativas de reemplazo se separan con
  • Cada alternativa puede ser
  • Otro símbolo no terminal
  • Que aún falta por definir, va encerrado entre ltgt
  • Un simbolo terminal
  • Que ya no necesita más definición

13
SIMBOLOS EN EL BNF
  • Equivalencia
  • Separa opciones de reemplazo para un símbolo dado
  • ..
  • Todo lo encerrado entre corchetes se considera
    opcional
  • ..
  • Todo lo encerrado entre llaves se puede repetir
    mas de una vez

14
EL TDA RACIONAL CON BNF
  • Comportamiento
  • Sumar, Restar, Multiplicar, Simplificar
  • Estado
  • ltracionalgt ltnumeradorgt/ltdenominadorgt
  • ltnumeradorgtltdigitogtltdigitogt
  • ltdenominadorgtltdig_no_cerogtltdigitogt

15
LAS CADENAS EN C
  • Conocemos las cadenas Conjuntos de caracteres
  • En C, el concepto implica cierta complejidad
  • Una cadena es un arreglo de caracteres o es el
    puntero al primer carácter
  • El problema es que
  • El uso de punteros a veces es confuso y las
    funciones para trabajo con cadenas no son
    amigables
  • Ejemplo
  • char cadena4 // se puede trabajar, pero tiene
    una longitud máxima de 4
  • char ncadena //no se puede trabajar aun
  • strcpy(cadena, Mama) //si sobrepasa la long.
    Max. Habra problemas
  • ncadena malloc(sizeof(char) 4) //hay que
    conocer memoria dinámica

16
EL TDA string
  • Mucha complejidad para usar las cadenas
  • Definamos que es una cadena
  • Basándonos en su comportamiento y estado
  • Sin considerar la complejidad
  • Qué esperamos de las cadenas? ? Comportamiento
  • Poder asignarle valores
  • Obtener un carácter de la cadena
  • Calcular su longitud
  • Buscar posición de un carácter en la cadena
  • Concatenar cadenas
  • Extraer una subcadena, etc.

17
DEFINICION DE STRING
  • Comportamiento
  • Obtener un carácter de la cadena
  • Calcular su longitud
  • Buscar posición de un carácter en la cadena
  • Concatenar cadenas
  • Extraer una subcadena, etc
  • Estado (debe estar oculto)
  • ltstringgt ltfin_cadenagtltcaráctergtltstringgt
  • ltcaractergt ab.
  • ltfin_cadenagt\0

18
EJERCICIOS EN CLASE
  • Crear un TDA para representar
  • Un numero complejo y sus diferentes operaciones
  • Una arreglo y sus diferentes operaciones
Write a Comment
User Comments (0)
About PowerShow.com