Documente Academic
Documente Profesional
Documente Cultură
Abstraccin de Datos
Objetivos Generales
Abstraccin en programacin
Abstraccin procedimental
Abstraccin de datos (TDA)
Abstraccin en Programacin:
Objetivos
Concepto de abstraccin
Papel de la abstraccin en programacin
Tipos de abstraccin
Mecanismos de abstraccin
Introduccin
Ordenadoresmsavanzados
Programasmscomplejos
Facilitaeldiseo,
codificacinyprueba
Programacinestructurada
Programacin modular
Problemacomplejo
Dividirenpartes
Resueltasconbloques
decdigoindependientes
Mdulo
Nombre
Tarea
Informacindeentrada
Implementacin
Abstraccin
(Diccionario RAE)
abstraer.
(Del lat. abstrahre).
1. tr. Separar por medio de una operacin intelectual las
cualidades de un objeto para considerarlas aisladamente o para
considerar el mismo objeto en su pura esencia o nocin.
Abstraccin en Programacin
Abstraccin en programacin
10
Mecanismos de abstraccin en
Programacin
11
Expresada como:
12
Ejemplo
/**
busca_minimo: localiza el elemento mnimo de un vector
Precondicin:
num_elem > 0
v vector con num_elem elementos
Postcondicin:
Devuelve la posicin del mnimo elemento de v
*/
int busca_minimo(float v[], int num_elem)
13
Tipos de Abstraccin
14
Abstraccin Procedimental:
Objetivos
Concepto
Especificacin de una A.P.
Especificacin usando doxygen
15
Abstraccin Procedimental
16
Abstraccin Procedimental
17
Caractersticas de la Especificacin
de la A.P.
18
Propiedades de la especificacin de
la A.P.
til
Completa
Consistente
Indicar el comportamiento en todos los
casos en que sea aplicable
19
Elementos de la especificacin de
una A.P.
Entradas
Salidas
Requisitos
Efectos
Elementos modificados
20
Argumentos
Requiere
Valores de retorno
Efecto
Prof.Miguel Garca Silvente
21
E.A.P.: Argumentos
22
E.A.P.: Requiere
23
24
E.A.P.: Efecto
25
Importante:
26
27
28
Diseo de abstracciones
procedimentales
1.
2.
3.
4.
29
30
Conceptos
31
Visiones de un TDA
32
33
34
Estructura de la especificacin
35
Tipos de operaciones
1) Constructores primitivos. Crean objetos
del tipo a partir de objetos de otras
clases
2) Constructores de copia. Crean objetos
del tipo a partir de otros objetos del tipo
3) Modificadores o mutadores.
4) Observadores o consultores.
Es habitual la combinacin de tipos. En
particular de los 3 y 4.
Prof.Miguel Garca Silvente
36
TDA Fecha
/**
TDA Fecha.
Fecha::Fecha, dia, mes, anio, ++, --, <, <=,
==, <<, >>, dia_semana, fase_lunar
*/
Definicin:
Fecha representa fechas segn el calendario
occidental.
Son objetos mutables.
Residen en memoria esttica.
37
TDA Fecha
/**
*/
Fecha();
/**
*/
Fecha(int d, int m, int a);
38
TDA Fecha
/**
@brief Obtiene el da del receptor.
@return Da del receptor.
*/
int dia() const;
/**
@brief Obtiene el mes del receptor.
@return Mes del receptor.
*/
int mes() const;
/**
@brief Obtiene el ao del receptor.
@return Ao del receptor.
*/
int anio() const;
39
TDA Fecha
/**
@brief Fecha siguiente.
@return Fecha siguiente a la del receptor
Modifica el receptor por la fecha siguiente al valor que tiene.
*/
Fecha operator++();
/**
@brief Fecha anterior.
@return Fecha anterior a la del receptor
Modifica el receptor por la fecha anterior valor que tiene.
*/
Fecha operator--();
40
TDA Fecha
/**
@brief Comparacin menor para fechas
@param f: Fecha con que se compara el receptor
@return true: si el receptor es estrictamente anterior a f.
false: en otro caso.
*/
bool operator<(const Fecha & f) const;
/**
@brief Comparacin menor o igual para fechas
@param f: Fecha con que se compara el receptor
@return true: si el receptor es estrictamente anterior o
igual a f.
false: en otro caso.
*/
bool operator<=(const Fecha & f) const;
41
TDA Fecha
/**
@brief Asignacin de fechas
@param f: Fecha que se asigna.
@return El valor de f.
Asigna al receptor el valor de f y lo devuelve.
*/
Fecha operator=(const Fecha & f);
42
TDA Fecha
/**
@brief Operador de conversin a texto (escritura).
@param s: flujo al que se enva el texto. Es MODIFICADO.
@param f: Fecha que se escribe.
@return el flujo s.
Escribe en el flujo s el valor de f convetido a texto y
devuelve s.
*/
ostream & operator<<(ostream & s, const Fecha & f);
43
TDA Fecha
/**
@brief Operador de lectura de fechas
@param s: flujo del que se lee. Es MODIFICADO.
@param f: Fecha que se lee. Es MODIFICADO.
@return Flujo s.
Lee una fecha del flujo s, en formato dd/mm/aaaa y pone el
valor en f.
*/
istream & operator>>(istream & s, Fecha & f);
44