LA
REPRESENTACIÓN DE LA INFORMACIÓN ES UN ASPECTO BÁSICO EN INFORMÁTICA
•
La
mayor parte de los programas dedican mástiempo
a gestionar información que a realizar cómputos
•
La
información debe organizarse de manera que se
optimice su procesamiento
OBJETIVOS
DE DISEÑO: Buscar la
representación
de la información más correcta y eficiente para un determinado problema ??Una
solución es correcta si cumple con los requisitos del problema
??Una
solución es eficiente si resuelve un problema con menos coste (espacio
en
memoria,
tiempo...) que otras opciones
OBJETIVOS
DE IMPLEMENTACIÓN:
??Abstracción:
Analizar un sistema complicado para reducirlo a sus partes constituyentes y
describir éstas en un lenguaje preciso.
??Encapsulación
(Ocultación
de información): Libertad de elección/cambio de implementaciones
??Modularidad:
estructura organizada en unidades funcionales separadas
TEMA
1:
PRINCIPIOS
DEL DISEÑO DE ESTRUCTURAS DE DATOS
ÍNDICE
DE CONTENIDOS
1.1
ABSTRACCIÓN DE DATOS
1.2
TIPO DE DATOS, TIPO ABSTRACTOS DE DATOS Y ESTRUCTURA DE DATOS
1.2
DISEÑO
DESCENDENTE DE ESTRUCTURAS DE DATOS ABSTRACCIÓN
DE DATOS
1.3
•
La información que se procesa en un programa es una abstracción del mundo real
Información:
conocimiento
que puede comunicarse
Dato:
información
que se ha preparado, normalmente con un formato específico, para un fin
determinado
Abstracción:
simplificación
de la realidad en la que ciertas propiedades y características de los objetos
reales se ignoran, porque no interesan para el
problema
a resolver
•
Desde el punto de vista de los datos, a la hora de resolver un problema es
preciso:
1.
Elegir una abstracción de la realidad (datos)
2.
Seleccionar una forma de representación
ABSTRACCIÓN
DE DATOS
•
Lenguajes de alto nivel: el programador no conoce los detalles de representación,
en términos de bits, de las abstracciones elegidas.
•
Abstracción de datos ?
barrera
entre la visión del programador sobre los datos y la del ordenador.
Abstracción
de datos: separación
de las propiedades lógicas de los datos de su implementación física
•
La abstracción de datos oculta datos irrelevantes para la resolución del
problema: Principio de ocultación de la información.
Ocultación
de la información: práctica
de ocultar los detalles de una estructura, haciéndolos inaccesibles a otras
partes del programa
•
Los principios de abstracción de datos y ocultación de la información son las
bases del diseño descendente de estructuras de datos.
TIPO
DE DATOS, TIPO ABSTRACTO DE DATOS Y ESTRUCTURA DE DATOS
•
Todos los datos que se utilizan en un programa pertenecen a un único tipo de
datos
Tipo
de datos: clase
o conjunto de valores que se definen en función de las operaciones que se
aplican a los objetos de dicho tipo, sin considerar la forma de
Representarlos
Ejemplo:
tipos de datos para la representación de números enteros en Java
Tipo
Tamaño Datos representados
byte
1 byte [-128, 127]
short
2 bytes [-32.768, 32.767]
int
4 bytes [-231,
231 –
1]
long
8 bytes [-263,
263 –
1]
•
Características del tipo de datos:
1.
Determina el conjunto de valores al que puede pertenecer una constante, que
puede asumir una variable o expresión y que puede ser generado por una función.
2.
El tipo de datos de una constante, variable o expresión puede deducirse de su
forma o de su declaración, sin necesidad de ejecutar ningún proceso.
3.
Cada operación (operador o método) requiere unos argumentos de un determinado
tipo y produce unos resultados de un tipo.
TIPO
DE DATOS, TIPO ABSTRACTO DE DATOS Y ESTRUCTURA DE DATOS
Tipo
abstracto de datos (TAD): modelo
matemático, junto con varias operaciones definidas sobre ese modelo, con el que
se representa la estructura y el comportamiento de una parte del mundo real TAD
vs Tipo de datos: el concepto matemático del conjunto N se implementa en los
lenguajes de programación a través de una serie de tipos de datos (e.g. byte,
short, int y long en Java) que imponen una serie de restricciones al TAD. Un TAD
especifica el qué, no el cómo
Estructura
de datos: indica
la forma en que se combinan una serie de partes para formar un valor compuesto
•
Estructura de datos = Estructura de almacenamiento + Operaciones de manipulación
•
La estructura de datos puede estudiarse desde tres perspectivas:
Nivel
Lógico o abstracto
Nivel
de aplicación o de usuario
Nivel
de Implementación