Você está na página 1de 18

Unidad 1.

Introducción a las
Estructuras de datos
1.1 Tipos de datos abstractos (TAD = TDA)
1.2 Modularidad
1.3 Uso de TDA
1.4 Manejo de memoria estática
1.5 Manejo de memoria dinámica
Concepto de Tipo de dato

En los diferentes lenguajes de programación se usa el concepto de


“Tipo de dato” para representar las diferentes maneras que dispo-
ne el lenguaje para almacenar y representar los datos a operar.
Los “Tipos de datos” se asocian a los identificadores de las varia-
bles para determinar :
• La representación interna del valor que almacenará la variable
• La cantidad de memoria que le será asignada a la variable
Clasificación de los
Tipos de datos en Java
Enteros : byte, short, int, long
primitivos Punto flotante : float, double
Tipos de lógicos : boolean
datos
TAD clases

** los TAD’s se basan en los tipos primitivos


Abstracción de datos

Es la técnica para definir nuevos Tipos de datos que se adecúen


mejor a las aplicaciones (ó programas) que se van a desarrollar,
procurando que las aplicaciones sean mas cortas, mas legibles y mas
flexibles.
La palabra “abstracto” indica que el programador debe “abstraer” ó
“aplicar en forma particular” características del lenguaje para crear
nuevos tipos de datos.
Tipos de datos abstractos

• Los TAD son Tipos de datos definidos por el usuario.


• Un TAD es una estructura con un numero de operaciones que
afectan u operan en un modelo de solución.
** En POO una clase es un TAD, que encierra ó encapsula
en el código tanto datos como métodos que operarán objetos
instanciados de una clase.
Uso de los TAD (a través de las clases)
Símbolo de una clase

nombre
atributos
métodos

**Las clases son diseñadas (construidas) por el programador


Estructura básica del código de la
implementación de una clase en Java
public class Nombre-clase
{
// declaración de los atributos de la clase
public Nombre-clase { // metodo constructor
// código del método constructor
}
public tipo-retorno nombre-metodo([parametros]) { // metodo
….. Instrucciones a ejecutar del método
}
public static void main(String[] args) { // metodo main
……. Instrucciones a ejecutar
}
}
Ejemplo: TAD de los número enteros

numerosEnteros
- int valor;
+ asignadoPorConstructor()
+ leidoDelTeclado()
+ generadoAlAzar()
Implementación de la clase NumerosEnteros
public class NumerosEnteros
{
private int valor;
public NumerosEnteros (int n) {
this.valor = n;
}
public void asignadoPorConstructor() {
System.out.println(“Numero es: ”+valor);
}
public static void main(String[] args) {
NumerosEnteros num = new NumerosEnteros(20);
num.asignadoPorConstructor();
}
}
Importante

Un TAD puede definirse mediante la ecuación:

TAD = Representación (datos) + Operaciones (funciones ó métodos.)


Modularidad

Es la propiedad funcional de dividir una aplicación (programa)


en piezas pequeñas de código.
Esta propiedad se aplica en Java mediante la definición de los
métodos en las clases.
Representación de la Modularidad

Modulo de
control

Modulo 1 Modulo 2 Modulo 3

Modulo 2.1 Modulo 2.2 Modulo 3.1


Memoria estática

Este término se refiere al tipo de almacenamiento de los datos en


la memoria RAM de la computadora al momento en que se
ejecuta una aplicación(programa).
Este tipo de almacenamiento implica que cada variable declarada
en el código de la aplicación debe definir “explícitamente” la
cantidad de memoria que necesita para almacenar datos, y una
vez definida esta cuestión NO podrá ser modificada en tiempo de
ejecución del programa.
Memoria estática….cont

Ejemplos de declaración de variables estáticas:

int a,b,c; // Solo pueden almacenar un valor a la vez


float d, e; // idem
int x[] = new int[15]; // puede almacenar de 1 a 15 valores
String[] nombre = new String[20]; // guarda una cadena de 1 a 20 caracteres
Memoria dinámica

Este tipo de almacenamiento de datos implica que la cantidad de


memoria que se necesita para una ó varias variables No se conoce de
antemano, por lo que durante el tiempo de ejecución de la aplicación se
solicitará memoria de acuerdo a como se vaya requiriendo.
Este tipo de almacenamiento requiere del uso de variables que
almacenen “direcciones de memoria” , cada una de estas variables
“apuntará” al espacio de memoria RAM donde se almacena uno de
los valores del conjunto.
Representación del
almacenamiento dinámico

inicio
datos datos datos
siguiente siguiente fin
nodo 1 nodo 2 ……….. nodo n

El campo “siguiente” guarda la dirección de memoria del siguiente nodo


Ventajas de los TAD

1. Permiten una mejor conceptualización y modelamiento del


mundo real
2. Mejoran la robustez del Sistema(con la comprobación de tipos)
3. Mejoran el rendimiento del Sistema(optimización de tiempo
compilación)
4. Separan la implementación de la especificación(sin afectar la
interfaz publica)
5. Permiten la extensibilidad del Sistema (por el uso de software
reutilizable)
Ejercicios de práctica. Para cada ejercicio
hacer un programa en Lenguaje Java con
metodología Orientada a Objetos(usando TAD)
1.- Imprimir en pantalla 10 numeros generados al azar
2.- Leer 3 valores numéricos que representan los coeficientes de
una ecuación cuadrática y resolver e imprimir en pantalla ¿que
tipo de raíces tiene la ecuación?.
3.- Leer 10 valores desde el teclado y almacenarlos en un arreglo
unidimensional, se desea calcular e imprimir la suma de los
valores impares almacenados en el arreglo.

Você também pode gostar