Programaci - PowerPoint PPT Presentation

About This Presentation
Title:

Programaci

Description:

Title: Presentaci n de una novedad Author: hilda castillo Description: Presentaci n general de una novedad considerando los deseos de los clientes – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 26
Provided by: HildaCa3
Category:

less

Transcript and Presenter's Notes

Title: Programaci


1
Programación II
  • Facultad de Ciencias de la Computación
  • MC Beatriz Beltrán Martínez

2
Introducción a la abstracción de datos
  • MC Beatriz Beltrán Martínez
  • Otoño 2019

3
Introducción a la abstracción de datos
  • Qué es abstracción?
  • La abstracción consiste en aislar un elemento de
    su contexto o del resto de los elementos que lo
    acompañan. En programación, el término se refiere
    al énfasis en el "qué hace?" más que en el
    "cómo lo hace?"

4
Abstracción
  • La abstracción es una estrategia de resolución de
    problemas en la cual el programador se concentra
    en resolver una parte del problema ignorando
    completamente los detalles sobre cómo se
    resuelven el resto de las partes.
  • En este proceso de abstracción se considera que
    el resto de las partes ya han sido resueltas y
    por lo tanto pueden servir de apoyo para resolver
    la parte que recibe la atención.

5
Abstracción
  • La abstracción es la estrategia de programación
    más importante en computación. Sin abstracción
    las personas serían incapaces de abordar los
    problemas complejos.
  • La pericia de un programador no está en ser veloz
    para escribir líneas de programa, si no que en
    saber descubrir, en el proceso de diseño, cuáles
    son las partes del problema, y luego resolver
    cada una de ellas abstrayéndose de las otras.

6
Abstracción
  • Un ejemplo de abstracción es el hecho de que uno
    pueda conducir un automóvil sin ser un mecánico
    (lo cual probablemente no era cierto con los
    primeros vehículos). Al conducir, uno se abstrae
    de cómo funciona la combustión en el motor. Sólo
    se requiere saber cómo se maneja el volante y los
    pedales, y cuales son las reglas del tránsito.

7
Abstracción
  • Dos de los tipos mas importantes de abstracción
    son los siguientes
  • División en partes Abstracción Tiene un
  • Dividir un sistema complejo en sus partes, y
    dividir las partes en sus componentes puede
    considerar algunas de éstas de forma aislada. Con
    la característica de la palabra tiene-un.
  • División en especialización Abstracción Es un
  • La abstracción Es-un toma un sistema complejo,
    y lo ve como una instancia de una abstracción más
    general. Se caracteriza por las sentencias que
    tienen las palabras Es-un.

8
Abstracción
  • Un proceso de generalización mediante la
    reducción de información de un concepto o un
    fenómeno observable, típicamente para retener
    solo la información que es relevante a un
    propósito particular.
  • Tratar de entender el problema para separar los
    detalles necesarios de los que no los son.
  • Tratamos de obtener nuestra propia vista
    abstracta, o modelo, del problema.
  • Este proceso de modelado es llamado abstracción.

9
Tipo de datos
  • Conjunto de valores que sirve de dominio de
    ciertas operaciones.
  • Dominio(int) Z
  • Dominio(float)R

10
Tipos de datos abstractos
  • Este concepto aparece a mediados de la década de
    los 70's
  • Tipo abstracto de dato (TDA)
  • conjunto de valores que lo caracteriza.
  • operaciones que sobre él se pueden aplicar.
  • propiedades que determinan inequívocamente su
    comportamiento.

11
Tipos de datos abstractos
  • P/E Tipo int del Lenguaje C
  • Valores (rango) -32..., 32..
  • Operaciones suma, resta, producto, cociente,
    módulo.
  • Propiedades abba, a00, etc.

12
Tipo abstracto de datos
  • Por qué abstracto?
  • Proviene de abstracción, y responde al hecho de
    que los valores de un tipo pueden ser manipulados
    mediante sus operaciones si se saben las
    propiedades que éstas cumplen, sin que sea
    necesario ningún conocimiento acerca de su
    implementación en la máquina.

13
Tipos de datos abstractos
  • Los Tipos de Datos Abstractos son una solución
    parcial a los modelos.
  • El TDA define la interface a la abstracción de
    datos sin especificar detalles de la
    implementación.

14
Modelo
  • Un modelo es una abstracción u objeto conceptual
    usado en la creación de una fórmula predecible o
    una solución.
  • Un modelo define una vista abstracta del
    problema, se enfoca solamente en aspectos
    relacionados y trata de definir propiedades
  • Los datos que son afectados
  • Las operaciones que son identificadas
  • El tipo de dato abstracto (TDA) es un tipo de
    Modelo.

15
Propiedades de los TDA
  • Con abstracción, creamos una entidad
    bien-definida, la cual puede ser adecuadamente
    manejada.
  • Estas entidades definen la estructura de datos de
    un conjunto de ítems o elementos.
  • Por ejemplo, cada empleado administrado tiene un
    nombre, fecha de nacimiento, número de seguridad
    social
  • La estructura de datos solamente puede ser
    accedida con operaciones bien definidas.
  • Este conjunto de operaciones se llama interface
    y es exportada por la entidad.
  • Una entidad con las propiedades justamente
    descritas se llama tipo de dato abstracto (TDA).

16
Definición de un TDA
  • TDA se caracteriza por las siguientes
    propiedades
  • Exporta un tipo.
  • Exporta un conjunto de operaciones. Este conjunto
    es llamado interface.
  • Las Operaciones de la interface son el único
    mecanismo de acceso a la estructura de datos del
    tipo.
  • Axiomas y precondiciones definen el dominio de la
    aplicación del tipo.

17
Objetivo de un TDA
  • El fin que persigue el concepto de TDA es separar
    el uso del tipo de dato, de su implementación.
  • Para conseguir este objetivo, la definición de un
    TDA se divide en dos partes
  • Especificación
  • Implantación

TDA
Especificación
Implementación
Sintáctica
Semántica
Estructuras de datos
Algoritmos
18
Especificación Sintáctica
  • Qué hace? Especificación de las entidades y sus
    propiedades (interface).
  • Definir el nombre de las entidades abstractas.
  • Definir el nombre de las operaciones indicando el
    dominio (argumentos) y el co-dominio o rango (los
    valores de retorno).

19
Especificación Semántica
  • Cómo lo hace? Descripción de la representación
    del objeto (estructuras de los datos) y
    desarrollo de las operaciones.
  • Definir el significado de cada operación usando
    los símbolos definidos en la especificación
    sintáctica.
  • La especificación puede ser de dos tipos
  • Informal, a través del lenguaje natural.
  • Formal, rigurosa y fundamentada matemáticamente.

20
Especificación Semántica
  • Además
  • P Pre-condición condiciones que deben
    cumplirse antes de realizar la operación.
  • Q Post-condición condiciones que se cumplen
    una vez realizada la operación.
  • La notación usual es P S Q, donde S es la
    función o procedimiento.

21
Especificación de un TDA
  • La especificación de un TDA consiste en
    establecer las propiedades que lo definen.
  • Para describir un TDA es necesario describir
  • Los valores que pueden tomar los datos de ese
    tipo.
  • Todas las operaciones realizables sobre de ellos.
  • Una especificación debe poseer 4 propiedades
  • Ser precisa Solo dice lo imprescindible.
  • Ser general Es adaptable a diferentes contextos.
  • Ser legible Transmite a los usuarios del tipo y
    al implementador el comportamiento del tipo.
  • No ambigua Evita dobles interpretaciones.

22
Ejemplo TDA Bolsa
  • Definición Es una colección no ordenada de
    elementos con repetición.
  • Tipo Bolsa.
  • Sintaxis
  • CrearBolsa () ? Bolsa
  • BolsaVacia ? Bolsa
  • BolsaLlena ? Bolsa
  • Poner (Bolsa, Objeto) ? Bolsa
  • EsVacia (Bolsa) ? Boolean
  • Retirar (Bolsa, Objeto) ? Objeto
  • Semántica b es Bolsa, e, f son elementos
  • CrearBolsa () BolsaVacia
  • EsVacia (CrearBolsa()) Verdadero
  • EsVacia (Poner(CrearBolsa(), e)) Falso
  • Retirar (BolsaVacia, e) Error
  • Retirar (Poner(CrearBolsa(), f), e) f si fe
  • Poner (BolsaLlena, e) Error

23
Ejemplo TDA Bolsa
  • Definición Es una colección no ordenada de
    elementos con repetición.
  • Tipo Bolsa.
  • Operaciones
  • Función Construir_Bolsa () ? bolsa
  • postcondición Devuelve una bolsa vacía
  • Función Poner (B bolsa e elemento) ? bolsa
  • precondición La bolsa no esta llena
  • postcondición Añade el elemento e a la bolsa
  • Función EsVacia (B bolsa) ? boolean
  • postcondición Devuelve verdadero si la bolsa
    no tiene elementos, falso en otro caso
  • Función Retirar (B bolsa e elemento) ?
    elemento
  • precondición La bolsa no esta vacía
  • postcondición Elimina el elemento e de la
    bolsa B

24
Ejemplo TDA Fracción
  • Definición Una fracción es un par ordenado de
    enteros siempre y cuando la segunda componente
    sea distinta de cero.
  • Tipo Fracción.
  • Tipo abstracto Racional (e(1), e(2)).
  • Operaciones
  • Función ConstruirFraccion (a,b Entero)?
    Fracción
  • precondición b ? 0
  • postcondición e(1) a AND e(2) b
  • Función Numerador (r Fracción) ? entero
  • postcondición Numerador e(1)
  • Función Denominador (r Fracción) ? entero
  • postcondición Denomidador e(2)
  • Función Multiplicar (r1, r2 Fracción) ?
    Fracción
  • Inicio multiplicar contruirFraccion
    (Numerador(r1) Numerador(r2), Denominador(r1)
    Denominador(r2))
  • Fin

25
Ejemplo TDA bool
  • Definición Tipo booleano
  • Tipo bool
  • Sintaxis
  • cierto, falso ? bool
  • (bool) ? bool
  • V(bool, bool) ? bool
  • ? (bool, bool) ? bool
  • Semántica
  • cierto falso
  • b V cierto cierto
  • b V falso b
  • b ? cierto b
  • b ? falso falso
Write a Comment
User Comments (0)
About PowerShow.com