You are on page 1of 53

LAB 01: Datos Primitivos y

Estructurados
IS241 ESTRUCTURA DE DATOS

Prof. Jennifer Pillaca


Prof. Carlos Vila

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 1


Contenidos
Introduccin
Tipos de Datos Primitivos
Tipos de Datos Estructurados (Compuestos)
Listas de Objetos
Bibliografa

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 2


Introduccin
IS241 ESTRUCTURA DE DATOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 3


Tratamiento de la Informacin
Los sistemas computacionales, generalmente implementados como dispositivos electrnicos,
permiten el procesamiento automtico de la informacin, siguiendo las tres tareas bsicas:
INPUT: Entrada o captacin de datos.
PROCESS: Procesamiento o tratamiento de datos.
OUPUT: Salida de la informacin obtenida producto del procesamiento o transmisin de
resultados.
Empleado Horas
Juan, Perez 160
Juan, Perez $320
Pedro, Rodriguez 155
Pedro, Rodriguez $310
Luis, Pozo 120
Luis, Pozo $240

Valor por hora = $2 OUTPUT


INPUT
PROCESS

21/06/2017 Prof. Carlos Vila 4


Datos Vs Informacin
Dato: El dato es una representacin simblica o un atributo de una entidad. Los datos se
consideran como una expresin mnima de contenido respecto a un tema.

21/06/2017 Prof. Carlos Vila 5


Datos Vs Informacin
Informacin: El conjunto de los datos relacionados y organizados constituyen una informacin.
La informacin permite resolver problemas y tomar decisiones, ya que su aprovechamiento
racional es la base del conocimiento

21/06/2017 Prof. Carlos Vila 6


Datos Vs Informacin

Es importante tener en cuenta que el dato no tiene sentido en s mismo, sino que se utiliza en la
toma de decisiones o en la realizacin de clculos a partir de un procesamiento adecuado y
teniendo en cuenta su contexto, lo que nos proporciona informacin.

21/06/2017 Prof. Carlos Vila 7


Cmo representar los datos?
Los seres humanos:
Usamos lenguaje natural o smbolos
Ejemplo:
Para representar nmeros, usamos el sistema decimal
Para representar palabras, usamos el abecedario
La computadora:
Usa conjuntos de 1s y 0s
El dato mas pequeo en el computador es
Un 1 o un 0 -> bit
El conjunto de 8 bits -> 1 byte

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 8


TIPOS DE DATOS
Los datos se clasifican en TIPOS
Son los diferentes dominios existentes. Ejemplo:
Edad, Ao de Nacimiento, Numero de multas
Tienen dominio numrico
Nombre, Direccin, Num. Cedula,
Caen en el dominio de la informacin tipo texto

Y las operaciones permitidas para dicho dominio


Un conjunto de valores y operaciones
definidas solo para esos valores

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 9


RECORDAR
Un tipo de dato es el conjunto de valores
Al que puede pertenecer una constante
Que puede asumir una variable o expresin
Que puede ser generado por una funcin

De una constante, variable o expresin


Se puede deducir su tipo de dato
Ya sea de su forma o de su declaracin
Sin necesidad que se ejecute ningn proceso

Las operaciones entre datos


Necesitan participantes (argumentos) de determinado tipo
Producen resultados de otro o el mismo tipo
21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 10
Datos Primitivos
IS241 ESTRUCTURA DE DATOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 11


TIPOS DE DATOS PRIMITIVOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 12


TIPOS NO PRIMITIVOS O POR
REFERENCIA
Las variables de tipo por referencia (que por lo general se llaman referencias ) para almacenar
las ubicaciones de los objetos en la memoria de la computadora.

Por ejemplo, el tipo String es una variable de referencia.


Pues hace referencia a un arreglo definido del tipo char.

Es por eso que en Java el tipo String se define a travs de una clase.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 13


EJEMPLOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 14


21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 15
21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 16
CLASIFIQUE

El nmero de botones de una camisa.


La altura de una torre.
Los datos de una cuenta bancaria.
El nmero de pasajeros de un avin.
El resultado de hacer una apuesta (ganar o perder).
La capital de Canad.
La letra 'b' escrita en mayscula.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 17


SEGN CAMBIE SU VALOR Y SU
EJECUCIN
Variables : sirven para almacenar datos durante la ejecucin del programa; el valor
asociado puede cambiar varias veces durante la ejecucin del programa.

Constantes o variables finales : tambin sirven para almacenar datos pero una vez
asignado el valor, ste no puede modificarse posteriormente.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 18


USAR LOS TIPOS DE DATOS EN JAVA
public class DataTypes {
public static void main(String[] args) {
boolean isReal=true; // Los nombres son sensibles a
// maysculas y minsculas,
// deben empezar por una letra y
// pueden contener nmeros,_,$
byte d= 122; // Deben ser inferiores a 127
short e= -29000; // Deben ser inferiores a 32767
int f= 100000; // Deben ser inferiores a 2100 mill.
long g= 999999999999L; // Deben poner L al final
float h= 234.99F; // Deben ser < 3E38; F al final
double i= 55E100;
char cvalue= '4'; // char '4' no es el entero 4
//Las cadenas ( strings ) son objetos, no primitivos.
//Ejemplo: String nombre= Claudius;
}
}
21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 19
OPERADORES ARITMTICOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 20


OPERADORES LGICOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 21


CONVERSIONES ENTRE TIPOS DE DATOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 22


ENSANCHAMIENTO O PROMOCIN
Por ejemplo pasar de un valor entero a un real

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 23


ESTRECHAMIENTO O CONTRACCIN
Por ejemplo: pasar de un valor real a un entero

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 24


POR ASIGNACIN
cuando una variable de un determinado tipo se asigna a una variable de otro
tipo. Slo admite conversiones de promocin . Por ejemplo: si n es una variable de tipo
Int que vale 25 Y x es una variable de tipo double, entonces se produce una conversin por
asignacin al ejecutarse la sentencia
x = n;

La variable x toma el valor 25.0 (valor en formato real). El valor de n no se modifica.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 25


PROMOCIN ARITMTICA
como resultado de una operacin aritmtica. Como en el caso anterior, slo admite conversiones de
Promocin . Por ejemplo, si producto y factor1 son variables de tipo doubl y factor2
es de tipo int entonces la ejecutarse la sentencia
producto = factor1 * factor2;

el valor de factor2 se convierte internamente en un valor en formato real para realizar la operacin
aritmtica que genera un resultado de tipo double.

El valor almacenado en formato entero en la variable factor2 no se modifica.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 26


CASTING O MOLDES
Con operadores que producen la conversin entre tipos. Admite las conversiones de promocin y
de contraccin indicadas anteriormente. Por ejemplo: si se desea convertir un valor de tipo
Double a un valor de tipo int se utilizar el siguiente cdigo

int n;
double x = 82.4;

n = (int) x;
la variable n toma el valor 82 (valor en formato entero). El valor de x no se modifica.

El cdigo fuente del siguiente programa ilustra algunas de las conversiones que pueden
realizarse entre datos de tipo numrico.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 27


21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 28
EXPLIQUE QUE REALIZAN LOS
SIGUIENTES CDIGOS
package TiposDeDatos; public class Ejercicio01
{ public static void main(String[] args) {
int n=100;
byte m=1;
char l='a';
System.out.println(n+m+l);
}}

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 29


package TiposDeDatos;public class Ejercicio03 {
public static void main(String[] args) {
for(int i=97; i<123; ++i)
{char letra=(char)i;
System.out.println(letra);
}}}

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 30


21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 31
21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 32
EJERCICIOS
Implemente un programa para imprimir en forma inversa el abecedario en maysculas utilizando do while
Desarrollar

Crear una clase tringulo y desarrollar sus operaciones bsicas


Disee un programa que lea los coeficientes de una ecuacin de segundo grado ax2+bx+c=0 y calcule sus
dos soluciones. El programa debe responder de forma adecuada para cualquier caso que se pueda
presentar

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 33


Datos Estructurados
IS241 ESTRUCTURA DE DATOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 34


Estructura de Datos
Una estructura de datos es una forma de organizar un conjunto de datos elementales (un dato
elemental es la mnima informacin que se tiene en el sistema) con el objetivo de facilitar la
manipulacin de estos datos como un todo y/o individualmente.
Algunas estructuras de datos utilizadas en programacin son:

Arrays (Arreglos) rboles


Listas Enlazadas Conjuntos
Clases Grafos
Pilas y Colas Montculos

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 35


Clases
Una clase es una plantilla, modelo o plano a partir de la cual se crean objetos; los que se derivan
de la misma clase tienen caractersticas o propiedades similares; cuando se construye un objeto
de una clase, se dice que se ha creado una instancia, ejemplar o copia de sta.

Instanciacin
(Objeto)

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 36


Clases: Cdigo Java

class Lavadora
{
public String marca;
public String modelo;
public String numeroserie;
public int capacidad;
};

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 37


A diferencia de los datos de tipo simple que slo pueden almacenar un
valor, los datos estructurados o estructuras de datos pueden recolectar
varios valores simultneamente. Se hace una primera introduccin a los
datos estructurados destacando en primer lugar que se les asigna una
cantidad fija de memoria durante la ejecucin del programa cuando se
declara una variable de un
determinado tipo estructurado. El primer tipo estructurado es el tipo
array que permite agrupar otros datos ms simples de igual tipo bajo
un mismo identificador. Este tipo de estructuras permiten definir
vectores, matrices, tablas y estructuras multidimensionales. El tipo de
dato set equivalente al
concepto de conjunto matemtico y otros tipos de datos no simples

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 38


21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 39
21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 40
Algunas Estructuras utilizadas en programacin

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 41


Listas de Objetos
IS241 ESTRUCTURA DE DATOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 42


ArrayList
es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la
ventaja de que el numero de elementos que almacena, lo hace de forma dinmica, es decir, que
no es necesario declarar su tamao como pasa con los Arrays.

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 43


ArrayList: Principales Mtodos
// Declaracin de un ArrayList de "String". Puede ser de cualquier otro Elemento u Objeto (float, Boolean, Object, ...)

ArrayList<String> nombreArrayList = new ArrayList<String>();


// Aade el elemento al ArrayList

nombreArrayList.add("Elemento");
// Aade el elemento al ArrayList en la posicin 'n'

nombreArrayList.add(n, "Elemento 2");


// Devuelve el numero de elementos del ArrayList

nombreArrayList.size();

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 44


// Devuelve el elemento que esta en la posicin '2' del ArrayList

nombreArrayList.get(2);
// Comprueba se existe del elemento ('Elemento') que se le pasa como parametro

nombreArrayList.contains("Elemento");
// Devuelve la posicin de la primera ocurrencia ('Elemento') en el ArrayList

nombreArrayList.indexOf("Elemento");
// Devuelve la posicin de la ltima ocurrencia ('Elemento') en el ArrayList

nombreArrayList.lastIndexOf("Elemento");

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 45


// Borra el elemento de la posicin '5' del ArrayList

nombreArrayList.remove(5);
// Borra la primera ocurrencia del 'Elemento' que se le pasa como parametro.

nombreArrayList.remove("Elemento");
//Borra todos los elementos de ArrayList

nombreArrayList.clear();
// Devuelve True si el ArrayList esta vacio. Sino Devuelve False

nombreArrayList.isEmpty();

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 46


// Copiar un ArrayList

ArrayList arrayListCopia = (ArrayList) nombreArrayList.clone();


// Pasa el ArrayList a un Array

Object[] array = nombreArrayList.toArray();

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 47


Ejemplo de Uso del ArrayList
En el siguiente fragmento de cdigo, declaramos un ArrayList de Strings y lo rellenamos con 10
Strings (Elemento i).

// Declaracin el ArrayList
ArrayList<String> nombreArrayList = new ArrayList<String>();

// Aadimos 10 Elementos en el ArrayList


for (int i=1; i<=10; i++){
nombreArrayList.add("Elemento "+i);
}

// Aadimos un nuevo elemento al ArrayList en la posicin 2


nombreArrayList.add(2, "Elemento 3");

// Declaramos el Iterador e imprimimos los Elementos del ArrayList


Iterator<String> nombreIterator = nombreArrayList.iterator();
while(nombreIterator.hasNext()){
String elemento = nombreIterator.next();
System.out.print(elemento+" / ");
}

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 48


Ejercicios
IS241 ESTRUCTURA DE DATOS

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 49


Dada una medida de tiempo expresada en horas, minutos y segundos con valores arbitrarios, elabore un
programa que transforme dicha medida en una expresin correcta. Por ejemplo, dada la medida 3h 118m
195s, el programa deber obtener como resultado 5h 1m 15s. Realice el programa sin utilizar los operadores
de divisin entera (/ y %).

Escriba un programa en C que nos calcule el cambio que debe dar la caja de un supermercado: Dado un precio
y una cantidad de dinero, el programa nos dir cuntas monedas deben darse como cambio de tal forma que
el nmero total de monedas sea mnimo. Realice el programa sin utilizar los operadores de divisin entera (/ y
%).
Implemente un programa que lea un nmero decimal y lo muestre en pantalla en hexadecimal (base 16). El
cambio de base se realiza mediante divisiones sucesivas por 16 en las cuales los restos determinan los dgitos
hexadecimales del nmero segn la siguiente correspondencia:

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 50


21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 51
21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 52
Nell Dale, Object - oriented Data Structures using Java ,
Jones and Bartlett Publishers, 2002.
Robert Lafore, Data Structures and Algorithms in Java ,
Sams, 1998

Bibliografa Programacin orientada a objetos con java


IS241 Estructura de Datos
Fernando Berzal Galiano . Apuntes de programacin
orientada a objetos en Java: Fundamentos de
programacin y principios de diseo

21/06/2017 Prof. Jennifer Pillaca / Prof. Carlos Vila 53

You might also like