POO Unidad 2: Clases y objetos Ejercicio 1
-
Upload
fabiola-valerio -
Category
Education
-
view
899 -
download
1
Transcript of POO Unidad 2: Clases y objetos Ejercicio 1
![Page 1: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/1.jpg)
Unidad 2: Clases y Objetos“Ejercicio 1”
![Page 2: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/2.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/3.jpg)
Empecemos con un problema sencillo, pon mucha atención al enunciado…
![Page 4: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/4.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/5.jpg)
Bueno veamos la solución.Sencillo ¿verdad?
![Page 6: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/6.jpg)
Bueno veamos la solución.
![Page 7: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/7.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/8.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/9.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/10.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/11.jpg)
Para esto utilizaremos la función Random de la clase
Math.
También se nos pide generar números aleatorios.
ArrayList
![Page 12: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/12.jpg)
Para esto utilizaremos la función Random de la clase
Math.
ArrayList
![Page 13: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/13.jpg)
Para esto utilizaremos la función Random de la clase
Math.
ArrayList
Math.Random
![Page 14: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/14.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/15.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/16.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/17.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/18.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/19.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/20.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/21.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/22.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/23.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/24.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/25.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/26.jpg)
Para esto vamos a sobreescribir el método
compareTo que recibe como parámetro un objeto de tipo
Object.
![Page 27: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/27.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/28.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/29.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/30.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/31.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/32.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/33.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/34.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/35.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/36.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/37.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/38.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/39.jpg)
Vamos a proceder ahora a calcular el número de Robots
con porcentaje de vida mayor a 50 e imprimiremos
el resultado.
![Page 40: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/40.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/41.jpg)
Por último se mostrarán los 3 números de los últimos
robots con mayor porcentaje de Vida
![Page 42: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/42.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/43.jpg)
Utilizando JCreator ejecutamos nuestro main y
obtenemos la siguiente salida en pantalla.
![Page 44: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/44.jpg)
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: POO Unidad 2: Clases y objetos Ejercicio 1](https://reader033.fdocumento.com/reader033/viewer/2022052223/558ba7f1d8b42ade278b4620/html5/thumbnails/45.jpg)
Nos vemos en el siguiente ejercicio. Hasta pronto.