Unidad 2: Clases y objetos Ejercicio 1

45
Unidad 2: Clases y Objetos “Ejercicio 1”

Transcript of Unidad 2: Clases y objetos Ejercicio 1

Page 1: Unidad 2: Clases y objetos Ejercicio 1

Unidad 2: Clases y Objetos“Ejercicio 1”

Page 2: Unidad 2: Clases y objetos Ejercicio 1

Empecemos con un problema sencillo, pon mucha atención al enunciado…

Hola compañero, bienvenido al primer ejercicio de este tutorial. Ya que has

terminado de estudiar la unidad número 2, es momento de poner en práctica todo lo

aprendido.

Page 3: Unidad 2: Clases y objetos Ejercicio 1

Empecemos con un problema sencillo, pon mucha atención al enunciado…

Page 4: Unidad 2: Clases y objetos Ejercicio 1

Se desea manejar una lista de robots. Cada robot tiene un número y un porcentaje de vida. El número de elementos de la lista será un valor aleatorio entre 5 y 10. El porcentaje de vida de cada ROBOT será un valor aleatorio entre 1 y 100. Se pide construir una aplicación en java que permita cumplir con la siguiente funcionalidad:1. Imprimir la lista de robot ordenada por porcentaje de vida de los robots. Al principio de la lista DEBEN estar los robots con menos porcentaje de vida.2. Imprimir la cantidad de robot que tiene más del 50% de vida.3. Imprimir el número de los TRES robots que tienen mayor porcentaje de vida.

Page 5: Unidad 2: Clases y objetos Ejercicio 1

Bueno veamos la solución.Sencillo ¿verdad?

Page 6: Unidad 2: Clases y objetos Ejercicio 1

Bueno veamos la solución.

Page 7: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

También se nos pide generar números aleatorios.

Esta clase nos permitirá guardar elementos sin tener que asignar necesariamente un número fijo de elementos.

Para no crear uno manualmente, usaremos la

clase ArrayList de Java.

El problema solicita que manejemos un arreglo.

Page 8: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

También se nos pide generar números aleatorios.

Esta clase nos permitirá guardar elementos sin tener que asignar necesariamente un número fijo de elementos.

Para no crear uno manualmente, usaremos la

clase ArrayList de Java.

Page 9: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

También se nos pide generar números aleatorios.

Esta clase nos permitirá guardar elementos sin tener que asignar necesariamente un número fijo de elementos.

Para no crear uno manualmente, usaremos la

clase ArrayList de Java.

ArrayList

Page 10: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

También se nos pide generar números aleatorios.

Esta clase nos permitirá guardar elementos sin tener que asignar necesariamente un número fijo de elementos.

ArrayList

Page 11: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

También se nos pide generar números aleatorios.

ArrayList

Page 12: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

ArrayList

Page 13: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

ArrayList

Math.Random

Page 14: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

De acuerdo al problema los atributos de nuestra clase

Robot serán número y porcentajeVida

Utilizaremos la interfaz Comparable con el fin de sobreescribir los métodos toString() para mostrar los

datos del robot y CompareTo para realizar las

comparaciones necesarias entre los objetos Robot

Ahora vamos a definir nuestra clase Robot.

Page 15: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

De acuerdo al problema los atributos de nuestra clase

Robot serán número y porcentajeVida

Utilizaremos la interfaz Comparable con el fin de sobreescribir los métodos toString() para mostrar los

datos del robot y CompareTo para realizar las

comparaciones necesarias entre los objetos Robot

Page 16: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

De acuerdo al problema los atributos de nuestra clase

Robot serán número y porcentajeVida

Utilizaremos la interfaz Comparable con el fin de sobreescribir los métodos toString() para mostrar los

datos del robot y CompareTo para realizar las

comparaciones necesarias entre los objetos Robot

public class Robot implements Comparable{

Page 17: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

De acuerdo al problema los atributos de nuestra clase

Robot serán número y porcentajeVida

public class Robot implements Comparable{

Page 18: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

De acuerdo al problema los atributos de nuestra clase

Robot serán número y porcentajeVida

public class Robot implements Comparable{

private int numero;private int procentajeVida;

Page 19: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

public class Robot implements Comparable{

private int numero;private int procentajeVida;

Page 20: Unidad 2: Clases y objetos Ejercicio 1

Para esto utilizaremos la función Random de la clase

Math.

Ahora vamos a definir un constructor que reciba como

parámetros el número y porcentajeVida y, haciendo uso de la referencia this,

inicializaremos los atributos correspondientes.

public class Robot implements Comparable{

private int numero;private int procentajeVida;

public Robot(int numero,int procentajeVida){this.numero=numero;this.procentajeVida=procentajeVida;}

Page 21: Unidad 2: Clases y objetos Ejercicio 1

Como el problema también nos pide imprimir los datos

del Robot vamos a sobreescribir el método

toString() para conseguirlo.

Ya que los atributos son privados necesitamos un par

de métodos que nos devuelvan los valores

correspondientes a número y porcentajeVida

Page 22: Unidad 2: Clases y objetos Ejercicio 1

Como el problema también nos pide imprimir los datos

del Robot vamos a sobreescribir el método

toString() para conseguirlo.

Ya que los atributos son privados necesitamos un par

de métodos que nos devuelvan los valores

correspondientes a número y porcentajeVida

public int getNumero(){return numero;}

public int getPorcentajeVida(){return procentajeVida;}

Page 23: Unidad 2: Clases y objetos Ejercicio 1

Como el problema también nos pide imprimir los datos

del Robot vamos a sobreescribir el método

toString() para conseguirlo.

public int getNumero(){return numero;}

public int getPorcentajeVida(){return procentajeVida;}

Page 24: Unidad 2: Clases y objetos Ejercicio 1

Como el problema también nos pide imprimir los datos

del Robot vamos a sobreescribir el método

toString() para conseguirlo.

public int getNumero(){return numero;}

public int getPorcentajeVida(){return procentajeVida;}@Overridepublic String toString(){return "Numero: "+this.numero+“ Porcentaje Vida: "+this.procentajeVida+”\n”;}

Page 25: Unidad 2: Clases y objetos Ejercicio 1

Para esto vamos a sobreescribir el método

compareTo que recibe como parámetro un objeto de tipo

Object.

Finalmente, necesitamos un método que nos permita

realizar comparaciones entre los objetos de tipo robot.

Page 26: Unidad 2: Clases y objetos Ejercicio 1

Para esto vamos a sobreescribir el método

compareTo que recibe como parámetro un objeto de tipo

Object.

Page 27: Unidad 2: Clases y objetos Ejercicio 1

Para esto vamos a sobreescribir el método

compareTo que recibe como parámetro un objeto de tipo

Object.

@Override//Sobreescribiremos el metodo compareTo public int compareTo(Object t) {//convertimos el objeto t en un objeto de //tipo Robot Robot ro=(Robot)t; return this.getPorcentajeVida()-ro.getPorcentajeVida(); } }

Page 28: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

Ahora procederemos a la creación de nuestro arreglo

de Robots.

Como vamos a utilizar la clase ArrayList, es necesario importar la librería java.Util

Ya tenemos nuestra clase Robot, ahora vamos a definir nuestro main para probarla

Page 29: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

Ahora procederemos a la creación de nuestro arreglo

de Robots.

Como vamos a utilizar la clase ArrayList, es necesario importar la librería java.Util

Page 30: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

Ahora procederemos a la creación de nuestro arreglo

de Robots.

Como vamos a utilizar la clase ArrayList, es necesario importar la librería java.Util

import java.util.*;public class Main{public static void main(String []ar){

Page 31: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

Ahora procederemos a la creación de nuestro arreglo

de Robots.

import java.util.*;public class Main{public static void main(String []ar){

Page 32: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

Ahora procederemos a la creación de nuestro arreglo

de Robots.

import java.util.*;public class Main{public static void main(String []ar){//Array de RobotArrayList<Robot> lista = new ArrayList<Robot>();

Page 33: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

import java.util.*;public class Main{public static void main(String []ar){//Array de RobotArrayList<Robot> lista = new ArrayList<Robot>();

Page 34: Unidad 2: Clases y objetos Ejercicio 1

El problema menciona que el número de elementos a

incluir es un número aleatorio entre 5 y 10, por lo tanto vamos a generarlo con Math.Random y después a

realizar un for para llenar la lista con el método add

import java.util.*;public class Main{public static void main(String []ar){//Array de RobotArrayList<Robot> lista = new ArrayList<Robot>();

//Generamos número de elementos a incluirint intervalo = (int) (Math.random()*(10-5+1)+5);

for(int x=0; x<intervalo;x++){lista.add(new Robot(x,(int)(Math.random()*(100-1+1)+1)));//Generamos otro aleatorio para //el porcentaje de Vida}

Page 35: Unidad 2: Clases y objetos Ejercicio 1

Ahora vamos a imprimir la lista de Robots

A continuación vamos a llamar al método sort de la

clase Collections y le enviaremos la lista de

Robots

Page 36: Unidad 2: Clases y objetos Ejercicio 1

Ahora vamos a imprimir la lista de Robots

A continuación vamos a llamar al método sort de la

clase Collections y le enviaremos la lista de

Robots

//Ordenamos la lista de robots Collections.sort. Este método usara el metodo sobreescrito compareTo en la clase Robot

Collections.sort(lista);

Page 37: Unidad 2: Clases y objetos Ejercicio 1

Ahora vamos a imprimir la lista de Robots

//Ordenamos la lista de robots Collections.sort. Este método usara el metodo sobreescrito compareTo en la clase Robot

Collections.sort(lista);

Page 38: Unidad 2: Clases y objetos Ejercicio 1

Ahora vamos a imprimir la lista de Robots

//Ordenamos la lista de robots Collections.sort. Este método usara el metodo sobreescrito compareTo en la clase Robot

Collections.sort(lista);

//Imprimimos la lista y llamamos al metodo toString el cual esta sobreescrito en la clase RobotSystem.out.println(lista.toString());

Page 39: Unidad 2: Clases y objetos Ejercicio 1

Vamos a proceder ahora a calcular el número de Robots

con porcentaje de vida mayor a 50 e imprimiremos

el resultado.

Page 40: Unidad 2: Clases y objetos Ejercicio 1

Vamos a proceder ahora a calcular el número de Robots

con porcentaje de vida mayor a 50 e imprimiremos

el resultado.

//Recorremos la lista de robot y por cada porcentaje de vida mayor a 50 la variable cantidad se incrementaint cantidad=0;

for(int x=0;x<lista.size();x++){if(lista.get(x).getPorcentajeVida()>50){ cantidad++;}}

//Imprimimos la cantidad de robots que tienen vida superior a 50

System.out.println("Vida superior al 50%"+cantidad);

Page 41: Unidad 2: Clases y objetos Ejercicio 1

Por último se mostrarán los 3 números de los últimos

robots con mayor porcentaje de Vida

Page 42: Unidad 2: Clases y objetos Ejercicio 1

Por último se mostrarán los 3 números de los últimos

robots con mayor porcentaje de Vida

//Se imprimiran los numeros de los 3 ultimos robots con mayor porcentaje de vida

System.out.println(lista.get(lista.size()-1).getNumero()+"-"+lista.get(lista.size()-2).getNumero()+"-"+lista.get(lista.size()-3).getNumero());

}}

Page 43: Unidad 2: Clases y objetos Ejercicio 1

Utilizando JCreator ejecutamos nuestro main y

obtenemos la siguiente salida en pantalla.

Page 44: Unidad 2: Clases y objetos Ejercicio 1

Nos vemos en el siguiente ejercicio. Hasta pronto.

Esto fue todo por ahora, espero que la solución de este ejercicio te haya sido

clara y provechosa.

Page 45: Unidad 2: Clases y objetos Ejercicio 1

Nos vemos en el siguiente ejercicio. Hasta pronto.