Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - @mayakoski

Páginas: [1] 2 3
1
Hola Buenas tardes.

He revisado la solución planteada como correcta, pero igual no cumple el enunciado del ejercicio en el cual indica que se cree una clase que implemente las dos interfaces, para lo cual en la solución genera dos clases que implementas las dos interfaces, por esta razón en mi respuesta trato de hacer lo indicado.

Con respecto a las observaciones dadas mi código si tiene las falencias indicadas y he tratado de corregirlas en base a mi interpretación de enunciado, y las dejo a continuación.

El uso de la clase construcción pretende incluir cualquier tipo de edificación sea esta un edificio, un polideportivo que son materia de este ejercicio, por lo cual he usado en mi nueva solución la clase como edificación

Saludos y gracias por el tiempo brindado

Código: [Seleccionar]
package claseCU00697B_2;

public interface Edificio {
public double getSuperficieEdificio();

}


Código: [Seleccionar]
package claseCU00697B_2;

public interface InstalacionDeportiva {
int getTipoDeInstalacion();

}


Código: [Seleccionar]
package claseCU00697B_2;

public class Edificacion implements Edificio, InstalacionDeportiva {

private int tipoInstalacion;
private double superficieEdificio;
private String nombreInstalacion;
private int numeroDeOficinas;


//Constructor para Instalaciones Deportivas
public Edificacion(int pTipoInstalcion, double pSuperficieEdificio, String pNombreInstalacion) {
this.tipoInstalacion = pTipoInstalcion;
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
}


//Constructor para Edificio de Oficinas
public Edificacion(double pSuperficieEdificio, int pNumeroDeOficinas, String pNombreInstalacion) {
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
this.numeroDeOficinas = pNumeroDeOficinas;
}
public String getNombreInstalacion() {
return this.nombreInstalacion;
};

public int getNumeroDeOficinas() {
return this.numeroDeOficinas;
}

@Override
public int getTipoDeInstalacion() {
// TODO Auto-generated method stub
return this.tipoInstalacion;
}

@Override
public double getSuperficieEdificio() {
// TODO Auto-generated method stub
return this.superficieEdificio;
}

}


Código: [Seleccionar]
package claseCU00697B_2;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestEdificacion {
public static void main(String[] args) {
List<Edificacion> listaEdificios;
listaEdificios = new ArrayList<Edificacion>();

listaEdificios.add(new Edificacion(1,320.5,"Coliseo Baloncesto"));
listaEdificios.add(new Edificacion(2,500.0,"Piscina Olimpica"));
listaEdificios.add(new Edificacion(3, 435.0, "Polideportivo"));
listaEdificios.add(new Edificacion(800.0, 8, "Edificio de Oficinas"));
listaEdificios.add(new Edificacion(500.0,15, "Capacitacion"));
listaEdificios.add(new Edificacion(350.0, 0, "Residencias"));

Iterator<Edificacion> it = listaEdificios.iterator();
Edificacion tmpEdificacion;
while(it.hasNext()){
tmpEdificacion = it.next();
System.out.println("Analizando edificación: ");
if(tmpEdificacion.getTipoDeInstalacion() != 0) {
System.out.print("Instalacion Deportiva ");
}else {
System.out.print("Edificio de " + tmpEdificacion.getNumeroDeOficinas() + " Oficinas, ");
}
System.out.println("Tiene una superficio de " + tmpEdificacion.getSuperficieEdificio() + " m2 y se identifica como " + tmpEdificacion.getNombreInstalacion());
}
}
}


2
Saludos

He modificado el código en base a las observaciones, es correcto que no hay razón de generar un double para pasarlo a integer, y he corregido la generación de 0 en la lotería primitiva, además de colocar ordenado el arreglo de la combinación ganadora

Saludos

Ejercicio 1.
Código: [Seleccionar]
package claseCU00908C;

import java.util.Random;
import java.util.Scanner;

public class EjercicioCU00909C1 {
public static void main(String[] args) {

int numA, numB;
int pGanadas=0, pPerdidas=0;
Scanner entradaTeclado = new Scanner(System.in);
Random rnd = new Random();
char seleccion;
boolean valida = false;
do {
do {
numA = rnd.nextInt(100);
numB = rnd.nextInt(100);
}while(numA==numB);

System.out.print("Apuestas por A o por B ? :");
do {
seleccion = entradaTeclado.next().toUpperCase().charAt(0);
if((seleccion == 'A') || (seleccion == 'B')) {
valida = true;
}else {
System.out.print("Elija opcion valida por A o por B ? ");
}
}while(!valida);

System.out.print("A saca un " + numA + " y B saca un " + numB);
if(seleccion =='A' && (numA > numB) || seleccion =='B' && (numB > numA) ) {
System.out.println(" HAS GANADO!!!");
pGanadas+=1;
}else {
System.out.println(" HAS PERDIDO!!!");
pPerdidas+=1;
}

System.out.println("Llevas " + pGanadas + " partidas ganadas y " + pPerdidas + " partidas perdidas");

System.out.print("Quieres probar otra vez ? (S/N) : ");
} while(entradaTeclado.next().toUpperCase().equals("S"));
}
}


Ejercicio 2.
Código: [Seleccionar]
package claseCU00908C;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class EjercicioCU00909C2 {

static Scanner entradaTeclado = new Scanner(System.in);

public static void main(String[] args) {
int[] numerosUsuario = new int[6];
int[] numerosGanadores = new int[6];

do {

System.out.println("Elige 6 numero entre el 1 y el 49");
elegirNumeros(numerosUsuario, numerosGanadores);

System.out.print("Numero Elegidos: ");
imprimeNumeros(numerosUsuario);

System.out.print("Combinacion ganadora: ");
imprimeNumeros(numerosGanadores);

verificaAciertos(numerosUsuario, numerosGanadores);

System.out.print("Quieres probar otra vez? (S/N): ");
} while(entradaTeclado.next().toUpperCase().equals("S"));

System.out.println("Adios");

}

public static void elegirNumeros(int[] pNumerosUsuario, int[] pNumerosGanadores) {

Random rnd = new Random();
for (int i = 0; i < pNumerosUsuario.length; i++) {
System.out.print("Elije el numero " + (i+1) + ": ");
pNumerosUsuario[i] = entradaTeclado.nextInt();

while((pNumerosUsuario[i] < 1) || (pNumerosUsuario[i] > 49)) {
System.out.print("El numero esta fuera de rango, elije otro: ");
pNumerosUsuario[i] = entradaTeclado.nextInt();
}

for (int j = 0; j < i; j++) {
while((pNumerosUsuario[j]==pNumerosUsuario[i])) {
System.out.print("El numero ya esta ingresado, elije otro: ");
pNumerosUsuario[i] = entradaTeclado.nextInt();
}
}

pNumerosGanadores[i] = rnd.nextInt(49)+1;
//System.out.println(pNumerosGanadores[i]);
}
Arrays.sort(pNumerosGanadores);
}

public static void imprimeNumeros(int[] pListaNumeros) {
for (int i = 0; i < pListaNumeros.length; i++) {
System.out.print(pListaNumeros[i] + " ");
}
System.out.println();
}

public static void verificaAciertos(int[] pNumerosUsuario, int[] pNumerosGanadores) {
int aciertos = 0;
for (int i = 0; i < pNumerosGanadores.length; i++) {
for (int j = 0; j < pNumerosUsuario.length; j++) {
if(pNumerosGanadores[i] == pNumerosUsuario[j]) {
aciertos += 1;
}
}
}
System.out.println("Has acertado: " + aciertos + " números");
}
}


3
Gracias la observación, he modificado mi código y realice pruebas con el ejemplo que me remites y con otros valores, me funciono correctamente en mis pruebas

Saludos

Código: [Seleccionar]
package claseCU00907C;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;

public class ejercicioCU00907C {
public static void main(String[] args) {
Scanner entradaTeclado = new Scanner(System.in);
double importeInicial;
double porcentajeImpuesto;
System.out.println("Por favor introduzca el importe inicial: ");
importeInicial = entradaTeclado.nextDouble();
System.out.println("Por favor introduzca el porcentaje de impuestos: ");
porcentajeImpuesto = entradaTeclado.nextDouble();
System.out.println("El impuesto a pagar es: " + BigDecimal.valueOf(importeInicial *porcentajeImpuesto/100).setScale(2, RoundingMode.HALF_UP));
System.out.println("El importe final es: " + BigDecimal.valueOf(importeInicial).add(BigDecimal.valueOf(importeInicial *porcentajeImpuesto/100).setScale(2, RoundingMode.HALF_UP)));
}

}

4
He revisado, y encontré algunas falencias, incluida la observada. Realicé los cambios y dejo el modificado. Gracias por la revisión


Código: [Seleccionar]
package claseCU00906C;

import java.util.Scanner;

public class Ejercicio {
public static void main(String[] args) {
Scanner entradaTeclado = new Scanner(System.in);
double segundos = 0;
boolean continuar = true;
while (continuar ) {
do {
System.out.println("Introduzca valor de segundos: ");
segundos = entradaTeclado.nextInt();
if(segundos <0 || segundos > 5400) {
System.out.println("El numero no es valido");
}
} while (segundos < 0 || segundos > 5400);

if(Math.ceil(90*segundos/5400)%(90*segundos/5400) == 0 && segundos != 5400) {
System.out.println("El minuto es el " + ((int) Math.ceil(90*segundos/5400)+1));
}else {
System.out.println("El minuto es el " + (int) Math.ceil(90*segundos/5400));
}
// System.out.println(Math.ceil(90*segundos/5400)%(90*segundos/5400));

System.out.print("¿Otro valor (s/n)? " );
if (!entradaTeclado.next().equalsIgnoreCase("s")) {
continuar = false;
}
}
System.out.println("Ha terminado el programa");
}
}

5
Gracias x darte el tiempo de revisar mi respuesta, si me parece correcta la observación y creo que facilitaría el manejo del arreglo, y como lo mencionas lo que pretendí es cumplir lo requerido en el planteamiento del problema

saludos

6
Buenas tardes, dejo planteada mi solución al ejercicio CU00924C del tutorial de programación java avanzado, espero algún comentario sobre el mismo

Código: [Seleccionar]
package claseCU00924C;

import java.util.Objects;

public class Hotel implements Comparable<Hotel> {
private int idHotel;
private String zona;
private int precio;

public Hotel(int pIdHotel, String pZona, int pPrecio) {
this.idHotel = pIdHotel;
this.zona = pZona;
this.precio = pPrecio;
}


public String getZona() {
return zona;
}


@Override
public int compareTo(Hotel o) {
return this.precio-o.precio;
}

@Override
public String toString() {
return "Hotel-> ID: "+idHotel+" Zona: "+zona+" Precio: "+precio+"\n";
}

@Override
public int hashCode() { return precio + zona.hashCode() + idHotel; }


@Override
    public boolean equals(Object obj) {
        if (obj == null) {   return false;  }
        if (getClass() != obj.getClass()) {  return false;   }
        final Hotel other = (Hotel) obj;
        if (this.idHotel != other.idHotel) {  return false;    }
        if (!Objects.equals(this.zona, other.zona)) {    return false;     }
        if (this.precio != other.precio) {     return false;   }
        return true;
    }

}


Código: [Seleccionar]
package claseCU00924C;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

public class Programa2 {
public static void main(String[] args) {
Set<Hotel> cjsh = new HashSet<Hotel>();
SortedSet<Hotel> cjssh = new TreeSet<Hotel>();
Hotel h;
Scanner entradaTeclado = new Scanner(System.in);
int eleccion;
String zonaEleccion;

h = new Hotel(14, "Rural", 146);
cjsh.add(h);
h = new Hotel(5,"Rural", 92);
cjsh.add(h);
h = new Hotel(7,"Montaña", 63);
cjsh.add(h);
h = new Hotel(1,"Playa", 77);
cjsh.add(h);
h = new Hotel(3,"Playa", 109);
cjsh.add(h);
h = new Hotel(10,"Montaña", 79);
cjsh.add(h);
h = new Hotel(4,"Rural", 43);
cjsh.add(h);
h = new Hotel(6,"Montaña", 142);
cjsh.add(h);
h = new Hotel(11,"Playa", 53);
cjsh.add(h);
h = new Hotel(2,"Montaña", 108);
cjsh.add(h);
h = new Hotel(0,"Rural", 135);
cjsh.add(h);
h = new Hotel(8,"Rural", 66);
cjsh.add(h);
h = new Hotel(9,"Rural", 65);
cjsh.add(h);

System.out.println("Hoteles en el conjunto: \n");
System.out.println(cjsh + "\n");

System.out.print("Elige zona de hotel. (1) Playa (2) Montaña (3) Rural \n" + "\nEleccion: ");
eleccion = entradaTeclado.nextInt();

zonaEleccion = (eleccion == 1) ? "Playa" :(eleccion == 2) ? "Montaña" : (eleccion == 3) ? "Rural" : "Elección no valida";

System.out.println("\nHoteles en el conjunto para la selección '" + zonaEleccion + "' ordenados por precio:\n");

Hotel temp = null;
Iterator<Hotel> it = cjsh.iterator();

while (it.hasNext()) {
temp = it.next();
if(temp.getZona().equalsIgnoreCase(zonaEleccion)) {
cjssh.add(temp);
}
}

if(cjssh.size() > 0) {
System.out.println(cjssh);
}
}
}

7
Dejo mi solución al ejercicio ropuesto CU00923C del tutorial de programación Java avanzado.

Código: [Seleccionar]
package claseCU00923C;

import java.util.Stack;

public class VerificadorVocales {

private String cadena;
private char vocal;

public VerificadorVocales() {
}

public int CuentaVocal(String pCadena,char pVocal) {
int resultado = 0;
Stack<String> pila = new Stack<String>();
int i=0;
int counter=0;
while (i < pCadena.length()) {
if (pCadena.charAt(i) == pVocal) {
pila.push(Character.toString(pVocal));
counter++;
}
i++;
}

if (!pila.empty()) resultado = (counter%2 == 0)? 1: -1;

return resultado;
}
}
Código: [Seleccionar]
package claseCU00923C;

import java.util.Scanner;

public class Programa {

public static void main(String arg[]) {

String cadena;
String aes="0",ees="0",ies="0",oes="0",ues="0";
Scanner entradaTeclado = new Scanner(System.in);
VerificadorVocales verified = new VerificadorVocales();

boolean analizar = true;

while(analizar) {
System.out.println("¿Qué cadena desea analizar?");
cadena = entradaTeclado.next();
aes = ((verified.CuentaVocal(cadena,'a')) == 1) ?"par" : ((verified.CuentaVocal(cadena,'a')) == -1 ? "impar" : "0") ;
ees = ((verified.CuentaVocal(cadena,'e')) == 1) ?"par" : ((verified.CuentaVocal(cadena,'e')) == -1 ? "impar" : "0");
ies = ((verified.CuentaVocal(cadena,'i')) == 1) ?"par" : ((verified.CuentaVocal(cadena,'i')) == -1 ? "impar" : "0");
oes = ((verified.CuentaVocal(cadena,'o')) == 1) ?"par" : ((verified.CuentaVocal(cadena,'o')) == -1 ? "impar" : "0");
ues = ((verified.CuentaVocal(cadena,'u')) == 1) ?"par" : ((verified.CuentaVocal(cadena,'u')) == -1 ? "impar" : "0");

System.out.println("El numero de aes es " + aes + ", El numero de ees es " + ees + ", el numero de ies es " + ies + ", el numero de oes es " + oes + ", el numero de ues es " + ues);

System.out.print("¿Desea analizar otra cadena? " );
analizar = (entradaTeclado.next().equalsIgnoreCase("S")) ?true:false;

}
System.out.println("Gracias por utilizar el programa");

}

}

8
Dejo planteada mi solución al ejercicio de la entrega CU00922C del tutorial pdf de programación java avanzada de aprenderaprogramar.

Código: [Seleccionar]
package claseCU00922C;

public class Paquete {
private int idPaquete;
private int pesoPaquete;

public Paquete(int pIdPaquete, int pPesoPaquete) {
idPaquete = pIdPaquete;
pesoPaquete = pPesoPaquete;
}

public int getPesoPaquete() {
return pesoPaquete;
}
}


Código: [Seleccionar]
package claseCU00922C;

import java.util.Iterator;
import java.util.Random;
import java.util.Vector;

public class TestPaquete {
public static void main(String[] args) {
Vector<Paquete> v = new Vector<Paquete>(5, 1);
int cargaMaximaContenedor = v.capacity() * 100;
int pesoTotalCarga = 0;
for (int i = 0; i < 50; i++) {
v.add(new Paquete(i, (int) Math.round((Math.random() * (150 - 80)) + 80)));
}
cargaMaximaContenedor = v.capacity() * 100;

Iterator<Paquete> it = v.iterator();

while (it.hasNext()) {
Paquete paquete = (Paquete) it.next();
pesoTotalCarga = pesoTotalCarga + paquete.getPesoPaquete();

}

System.out.println("La capacidad del contenedor es: " + v.capacity()
+ " La nueva carga Maxima del contenedor es " + cargaMaximaContenedor + " El Contenedor tiene: "
+ v.capacity() + " paquetes, El peso total de los paquetes es " + pesoTotalCarga);

if (pesoTotalCarga > cargaMaximaContenedor) {
v.ensureCapacity((int) Math.ceil((double) pesoTotalCarga / (double) 100));
System.out.println("Se ha aumentado la capacidad a " + v.capacity()
+ " paquetes lo que permite cargar hasta " + v.capacity() * 100 + " kilos");

} else {
System.out.println("No ha sido necesario aumentar la capacidad");
}
}
}


9
Buenas tardes a todos, paso a dejar mi solución al ejercicio CU00921C del tutorial de programación java avanzado, lo he hecho tratando de cumplir con lo requerido, espero cualquier observación a modo de retroalimentación.

Saludos

Esta es mi clase Vehículo en la cual eh puesto dos métodos que me permiten obtener lo requerido, pero los he generado como estaticos, si se puede de otra manera me gustaria saberlo.


Código: [Seleccionar]
package claseCU00921C;

import java.util.Iterator;
import java.util.List;

import claseCU00919C.Animal;

public class Vehiculo {
private int idVehiculo;
private String tipo;

public String getTipo() {
return tipo;
}

public Vehiculo(int pIdVehiculo, String pTipo) {
this.idVehiculo = pIdVehiculo;
this.tipo = pTipo;
}

public String toString() {
return "El vehiculo es: " + this.idVehiculo + " Detipo: " + this.tipo;
}

public static String ContarTiposArray(List<Vehiculo> pArreglo) {
Iterator<Vehiculo> itArray = pArreglo.iterator();
Vehiculo temp = null;
int coches = 0, camiones = 0, furgonetas = 0, motos = 0;

while (itArray.hasNext()) {
temp = itArray.next();
switch (temp.getTipo()) {
case "Coche":
coches += 1;
break;
case "Camión":
camiones += 1;
break;
case "Furgoneta":
furgonetas += 1;
break;
default:
motos += 1;
break;
}
}
return coches + " Coches, " + camiones + " Camiones, " + furgonetas + " Furgonetas y " + motos + " Motos";
}

public static String EliminaInserta(List<Vehiculo> pArreglo) {
Iterator<Vehiculo> it = pArreglo.iterator();
long tiempo;
int numEliminados = 0;
Vehiculo temp = null;

tiempo = System.nanoTime();
while (it.hasNext()) {
temp = it.next();
if (temp.getTipo() != "Coche") {
it.remove();
numEliminados += 1;
}
}

pArreglo.listIterator();

for (int i = 5000; i < numEliminados + 5000; i++) {
pArreglo.add(new Vehiculo(i + 1, "Coche"));
}
System.out.println("Una vez realizada la eliminación e inserción; ");
return "Tiempo empleado en la eliminación-inserción (en nanosegundor):"
+ String.valueOf(System.nanoTime() - tiempo);
}

}

Código: [Seleccionar]
package claseCU00921C;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;

public class Programa {
public static void main(String arg[]) {

List<Vehiculo> arrayVehiculos = new ArrayList<Vehiculo>();
List<Vehiculo> linkedVehiculos = new LinkedList<Vehiculo>();

String[] tipos = { "Coche", "Camión", "Furgoneta", "Moto" };
Random tipoRandom = new Random();

for (int i = 0; i < 5000; i++) {
// En este ejemplo cada vehiculo es de un tipo aleatorio
arrayVehiculos.add(new Vehiculo(i, tipos[tipoRandom.nextInt(4)]));
linkedVehiculos.add(new Vehiculo(i, tipos[tipoRandom.nextInt(4)]));
}

System.out.println("Usando ArrayList");
System.out.println("Resumen lista inicial: hay " + Vehiculo.ContarTiposArray(arrayVehiculos));
System.out.println(Vehiculo.EliminaInserta(arrayVehiculos));
System.out.println("Resumen lista Final: hay " + Vehiculo.ContarTiposArray(arrayVehiculos));

System.out.println();

System.out.println("Usando LinkedList");
System.out.println("Resumen lista inicial: hay " + Vehiculo.ContarTiposArray(linkedVehiculos));
System.out.println(Vehiculo.EliminaInserta(linkedVehiculos));
System.out.println("Resumen lista inicial: hay " + Vehiculo.ContarTiposArray(linkedVehiculos));

}
}


10
Paso a dejar mi propuesta de la solución del ejercicio CU00920C del certificado Java avanzado de aprenderaprogramar.

Código: [Seleccionar]
package claseCU00920C;

public class Cuadrupedo {
private int idCuadrupedo;
private String tipo;

public Cuadrupedo(int pIdCuadrupedo, String pTipo) {
this.idCuadrupedo = pIdCuadrupedo;
this.tipo = pTipo;
}

@Override
public String toString() {
return "Cuadrupedo-> ID " + this.idCuadrupedo + " Tipo: " + this.tipo;
}

}

Código: [Seleccionar]
package claseCU00920C;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

public class Programa {
public static void main(String[] args) {

List<Cuadrupedo> lc = new ArrayList<Cuadrupedo>();
Random r = new Random();
Cuadrupedo temp = null;
int totLeones = 0, totGatos = 0, totPerros = 0, totElefantes = 0;
String tipoTemp;
for (int i = 0; i < 10000; i++) {

switch (r.nextInt(4)) {
case 0:
tipoTemp = "León";
totLeones++;
break;
case 1:
tipoTemp = "Gato";
totGatos++;
break;
case 2:
tipoTemp = "Perro ";
totPerros++;
break;
default:
tipoTemp = "Elefante ";
totElefantes++;
break;
}

lc.add(new Cuadrupedo(i + 1, tipoTemp));
}

Iterator<Cuadrupedo> it = lc.iterator();

while (it.hasNext()) {
temp = it.next();
System.out.println(temp);

}

System.out.println("Resumen: hay " + totLeones + " Leones, " + totGatos + " Gatos, " + totPerros + " Perros y "
+ totElefantes + " Elefantes");

}

}


11
Paso a dejar mi solución al ejercicio CU00919C del tutorial pdf de programación Java avanzada, espero les sea de utilidad


Código: [Seleccionar]
package claseCU00919C;

public class Animal {
private String especie;
private String nombre;
private double peso;
private int patas;

public Animal(String pEspecie, String pNombre, double pPeso, int pPatas) {
this.especie = pEspecie;
this.nombre = pNombre;
this.peso = pPeso;
this.patas = pPatas;
}

public String toString() {
return "Especie: " + especie + ", Nombre: " + nombre + ", Peso: " + peso + ", patas: " + patas;
}

}


Código: [Seleccionar]
package claseCU00919C;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;

public class ListaDeAnimales {

private ArrayList<Animal> listaDeAnimales = null;

public ArrayList<Animal> getListaDeAnimales() {
return listaDeAnimales;
}

public ListaDeAnimales() {
this.listaDeAnimales = new ArrayList<Animal>();
}

public Iterator<Animal> iterator() {
return new MiIteradorDeAnimales();
}

public Iterator<Animal> retorna() {
return listaDeAnimales.listIterator();
}

public String toString() {
return listaDeAnimales.toString();
}

protected class MiIteradorDeAnimales implements Iterator<Animal> {

public int posicion = 0;
boolean permiteBorrar = false;

@Override
public boolean hasNext() {
return posicion < listaDeAnimales.size();
}

@Override
public Animal next() {
Animal aux = listaDeAnimales.get(posicion);
permiteBorrar = true;
posicion++;
return aux;
}

public void remove() {

listaDeAnimales.remove(posicion - 1);
posicion--;
permiteBorrar = false;
}

}

}


Código: [Seleccionar]
package claseCU00919C;

import java.util.Iterator;
import java.util.Scanner;

public class Programa {
public static void main(String[] args) {

Scanner entradaTeclado = new Scanner(System.in);

ListaDeAnimales la = new ListaDeAnimales();

la.getListaDeAnimales().add(new Animal("pantera", "Penelope", 98.55, 4));
la.getListaDeAnimales().add(new Animal("loro amazonico", "Juanito", 3.67, 2));
la.getListaDeAnimales().add(new Animal("perro grandanés", "Artur", 37.77, 4));
la.getListaDeAnimales().add(new Animal("mono de tanzania", "Monk", 55.32, 2));

Iterator<Animal> ita;

Animal tmp;
ita = la.iterator();
int elem = 0;
int elemElimina = 0;

System.out.println("Los animales en la lista son: ");

while (ita.hasNext()) {
tmp = ita.next();
System.out.println(tmp.toString() + ", numero: " + ++elem);
}

System.out.print("¿Que número desea eliminar? ");
elemElimina = entradaTeclado.nextInt();
elem = 0;

ita = la.retorna();

while (ita.hasNext()) {
tmp = ita.next();
if (elem + 1 == elemElimina) {
ita.remove();
elemElimina = 0;
} else {
System.out.println(tmp.toString() + ", numero: " + ++elem);
}
}

System.out.println();
}

}

12
Planteo mi solución al ejercicio CU00918C del tutorial pdf de programación Java avanzada de aprenderaprogramar, espero les sirva

saludos


Código: [Seleccionar]
package claseCU00918C;

import java.util.Scanner;

public class Estudiante implements Comparable<Estudiante> {
private String nombre;
private int edad;
private int curso;

public Estudiante(String pNombre, int pEdad, int pCurso) {
this.nombre = pNombre;
this.edad = pEdad;
setCurso(pCurso);
}

@Override
public int compareTo(Estudiante o) {
return this.nombre.compareTo(o.nombre);
}

public String toString() {
return "El estudiante se llama: " + nombre + " tiene: " + edad + " años y esta en el " + curso + " curso"
+ "\n";
}

public String getNombre() {
return nombre;
}

public int getEdad() {
return edad;
}

public int getCurso() {
return curso;
}

public void setCurso(int curso) {
Scanner entradaTeclado = new Scanner(System.in);
if (curso < 5 && curso > 0) {
this.curso = curso;
} else {
do {
System.out.println("El curso ingresado para el Estudiante " + this.nombre
+ " no es valido Ingrese un curso valido");
curso = entradaTeclado.nextInt();
} while (curso > 5 || curso < 0);
this.curso = curso;
}
}
}


Código: [Seleccionar]
package claseCU00918C;

import java.util.Comparator;

public class OrdenEstudiantePorEdad implements Comparator<Estudiante> {

@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getEdad() - o2.getEdad() ;
}

}


Código: [Seleccionar]
package claseCU00918C;

import java.util.Comparator;

public class OrdenEstudiantePorCurso implements Comparator<Estudiante> {

@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getCurso() - o2.getCurso();
}

}


Código: [Seleccionar]
package claseCU00918C;

/* Ejemplo Interface Comparator aprenderaprogramar.com */

import java.util.ArrayList;

import java.util.Collections;

public class Programa {

public static void main(String arg[]) {
ArrayList<Estudiante> listaEstudiantes = new ArrayList<Estudiante>();
listaEstudiantes.add(new Estudiante("Carlos", 19, 3));
listaEstudiantes.add(new Estudiante("Felipe", 21, 1));
listaEstudiantes.add(new Estudiante("Ana", 18, 4));
listaEstudiantes.add(new Estudiante("Rosa", 15, 1));
listaEstudiantes.add(new Estudiante("Jose", 10, 2));

System.out.println("Estudiantes sin orden: \n" + listaEstudiantes);
listaEstudiantes.toString();

Collections.sort(listaEstudiantes);
System.out.println("Estudiantes ordenados por Nombre: \n" + listaEstudiantes);
listaEstudiantes.toString();

Collections.sort(listaEstudiantes, new OrdenEstudiantePorEdad());
System.out.println("Estudiantes ordenados por Edad: \n" + listaEstudiantes);
listaEstudiantes.toString();

Collections.sort(listaEstudiantes, new OrdenEstudiantePorCurso());
System.out.println("Estudiantes ordenados por Curso: \n" + listaEstudiantes);
listaEstudiantes.toString();
}

}

13
Mi propuesta al ejercicio planteado CU00915C del curso de programación orientada a objetos avanzada con Java de aprenderaprogramar

Saludos

Código: [Seleccionar]
package claseCU00915C;

public class AvesEnZoo {
private String tipoDeAve;
private int numeroAves, numeroMachos, numeroHembras;

public AvesEnZoo(String pTipAve, int pNumAvez, int pNumMac, int pNumhem ) {
this.tipoDeAve = pTipAve;
this.numeroAves = pNumAvez;
this.numeroMachos = pNumMac;
this.numeroHembras = pNumhem;
}

public String ToString() {
return(this.tipoDeAve+" "+this.numeroAves+" "+this.numeroMachos+" "+this.numeroHembras);
}

}


Código: [Seleccionar]
package claseCU00915C;

import java.util.Iterator;

public class GruposDeAvesZoos implements Iterable<AvesEnZoo> {

public AvesEnZoo[] conjuntoAves;

public GruposDeAvesZoos(AvesEnZoo[] p) {
conjuntoAves = p;
}

@Override
public Iterator<AvesEnZoo> iterator() {
Iterator it = new MiIteratorAves();
return it;
}

protected class MiIteratorAves implements Iterator<AvesEnZoo> {

int posicionArray;

public MiIteratorAves() {
posicionArray = 0;
}

@Override
public boolean hasNext() {
// boolean result;
if (posicionArray < conjuntoAves.length) {
return true;
}
return false;
}

@Override
public AvesEnZoo next() {
posicionArray++;
return conjuntoAves[posicionArray - 1];
}

}

}


Código: [Seleccionar]
package claseCU00915C;

import java.util.Iterator;

public class Programa1 {
public static void main(String[] args) {
AvesEnZoo a1 = new AvesEnZoo("Aguilas  ", 35, 10, 25);
AvesEnZoo a2 = new AvesEnZoo("Pinguinos", 25, 10, 15);
AvesEnZoo a3 = new AvesEnZoo("Periquitos", 5, 3, 2);
AvesEnZoo a4 = new AvesEnZoo("Pinguinos", 100, 55, 45);
AvesEnZoo a5 = new AvesEnZoo("Halcones", 80, 25, 55);

AvesEnZoo[] ca = { a1, a2, a3, a4, a5 };
GruposDeAvesZoos gaz = new GruposDeAvesZoos(ca);

System.out.println("TIPO |TOTAL |MACHOS |HEMBRAS \n");
for (AvesEnZoo avesEnZoo : gaz) {

System.out.println(avesEnZoo.ToString());
}
}

}

14
Dejo mi solución al ejercicio CU00913C del curso pdf de programación avanzada Java, espero cualquier critica u observación. Gracias.

Código: [Seleccionar]
package claseCU00913C;

public class Persona1 implements Comparable<Persona1> {
private String nombre;
private int edad;
private int altura;

public Persona1() {
};

public Persona1(String pNombre, int pAltura, int pEdad) {
this.setNombre(pNombre);
this.edad = pEdad;
this.altura = pAltura;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public int getEdad() {
return edad;
}

public void setEdad(int edad) {
this.edad = edad;
}

public int getAltura() {
return altura;
}

public void setAltura(int altura) {
this.altura = altura;
}

@Override
public int compareTo(Persona1 o) {
return this.edad > o.edad ? 1 : 0;
}

public int compareToAltura(Persona1 o) {
return this.altura < o.altura ? 1 : 0;
}

public String toString() {
return this.nombre + " - Altura: " + altura + " - Edad: " + edad;
}

}
Código: [Seleccionar]
package claseCU00913C;

public class OrdenaLista {

public OrdenaLista() {

}

public void OrdenaAltura(Persona1[] pPersonas) {
for (int i = 0; i < pPersonas.length - 1; i++) {
Persona1 aux = new Persona1();
for (int j = 0; j < pPersonas.length - 1; j++) {
if (pPersonas[j].compareToAltura(pPersonas[j + 1]) == 1) {
aux = pPersonas[j];
pPersonas[j] = pPersonas[j + 1];
pPersonas[j + 1] = aux;
}
}
}
}

public void OrdenaEdad(Persona1[] pPersonas) {
for (int i = 0; i < pPersonas.length - 1; i++) {
Persona1 aux = new Persona1();
for (int j = 0; j < pPersonas.length - 1; j++) {
if (pPersonas[j].compareTo(pPersonas[j + 1]) == 1) {
aux = pPersonas[j];
pPersonas[j] = pPersonas[j + 1];
pPersonas[j + 1] = aux;
}
}
}
}

public void imprime(Persona1[] personas) {
int cont = 0;

for (Persona1 persona : personas) {
cont += 1;
System.out.println(cont + ". " + persona.toString());
}
System.out.println("\n");
}

}
Código: [Seleccionar]
package claseCU00913C;

public class Programa1 {
public static void main(String[] args) {

Persona1 personas[] = new Persona1[5];
OrdenaLista listaOrdenada;

personas[0] = new Persona1("Mario", 187, 22);
personas[1] = new Persona1("Pepe", 173, 52);
personas[2] = new Persona1("Manuel", 158, 27);
personas[3] = new Persona1("David", 164, 25);
personas[4] = new Persona1("Alberto", 184, 80);
listaOrdenada = new OrdenaLista();

System.out.println("Personas sin ordenar \n");
listaOrdenada.imprime(personas);

listaOrdenada.OrdenaAltura(personas);
System.out.println("Personas ordenadas por altura \n");
listaOrdenada.imprime(personas);

listaOrdenada.OrdenaEdad(personas);
System.out.println("Personas ordenadas por edad \n");
listaOrdenada.imprime(personas);
}
}

15
Buenas tardes, dejo mi solución al ejercicio CU00912C del curso pdf de programación avanzada Java.

Saludos

Código: [Seleccionar]
package claseCU00912C;

public class Cadena12Caracteres implements Cloneable {

private String cad1, cad2,cad3,cad4;

public void setCad1(String cad1) {
this.cad1 = cad1;
}

public void setCad2(String cad2) {
this.cad2 = cad2;
}

public void setCad3(String cad3) {
this.cad3 = cad3;
}

public void setCad4(String cad4) {
this.cad4 = cad4;
}

public Cadena12Caracteres(String pCad1,String pCad2,String pCad3,String pCad4) {

this.cad1 = pCad1;
this.cad1 = pCad1;
this.cad2 = pCad2;
this.cad3 = pCad3;
this.cad4 = pCad4;

}

public Cadena12Caracteres clone() {
Cadena12Caracteres clonado = new Cadena12Caracteres(cad1, cad2, cad3, cad4);
return clonado;
}

public String toString() {
return  this.cad1+this.cad2+this.cad3+this.cad4;
}

}


Código: [Seleccionar]
package claseCU00912C;

public class EjercicioCU00912C {
public static void main(String[] args) {

char[] pchar = new char[12];
String cadenaCeros = new String(pchar).replace("\0", "0");
String cadenaUnos = new String(pchar).replace("\0", "1");


Cadena12Caracteres c1;

c1 = new Cadena12Caracteres(cadenaCeros, cadenaCeros, cadenaCeros, cadenaCeros);
Cadena12Caracteres c2 = c1.clone();
Cadena12Caracteres c3 = c1.clone();
Cadena12Caracteres c4 = c1.clone();
Cadena12Caracteres c5 = c1.clone();

c2.setCad1(cadenaUnos);
c3.setCad2(cadenaUnos);
c4.setCad3(cadenaUnos);
c5.setCad4(cadenaUnos);

System.out.println(c1.toString());
System.out.println(c2.toString());
System.out.println(c3.toString());
System.out.println(c4.toString());
System.out.println(c5.toString());

}
}


16
Respuesta para el ejercicio CU00911C del tutorial de programación avanzada Java de aprenderaprogramar.

Citar
EJERCICIO

En esta entrega hemos podido ver lo siguiente: StringBuilder puede ofrecer resultados no consistentes en una ejecución multihilo (concurrente, con distintos “subprogramas” ejecutándose simultáneamente) ya que sus métodos no son sincronizados.

Busca información en internet y trata de poner un ejemplo de cómo podría generarse una inconsistencia en programación multihilo. No hace falta que escribas código, únicamente es necesario describir en unas pocas líneas (como si estuvieras explicándoselo a un amigo) la idea o situación.

El problema con el uso de StringBuilder en la ejecución de multihilos es que al no ser sincronizado, en diferentes ejecuciones puede darse el caso que los cambios generados a la cadena no se realicen en el orden que deseamos, y un hilo realice un cambio antes de lo que se esperaba produciendo inconsistencia en el resultado final, lo cual no sucede si la ejecución es como una variable local, en el cual no importa la sincronización

17
Buenos días a continuación dejo el codigo de los dos ejercicios planteados en la clase CU00909C del tutorial de programación pdf Java avanzado.

Ejercicio 1

Código: [Seleccionar]
package claseCU00908C;

import java.util.Random;
import java.util.Scanner;

public class EjercicioCU00909C1 {
public static void main(String[] args) {

int numA, numB;
int pGanadas=0, pPerdidas=0;
Scanner entradaTeclado = new Scanner(System.in);
Random rnd = new Random();
char seleccion;
boolean valida = false;
do {
do {
numA = (int)(rnd.nextDouble()*11);
numB = (int)(rnd.nextDouble()*11);
}while(numA==numB);

System.out.print("Apuestas por A o por B ? :");
do {
seleccion = entradaTeclado.next().toUpperCase().charAt(0);
if((seleccion == 'A') || (seleccion == 'B')) {
valida = true;
}else {
System.out.print("Elija opcion valida por A o por B ? ");
}
}while(!valida);

System.out.print("A saca un " + numA + " y B saca un " + numB);
if(seleccion =='A' && (numA > numB) || seleccion =='B' && (numB > numA) ) {
System.out.println(" HAS GANADO!!!");
pGanadas+=1;
}else {
System.out.println(" HAS PERDIDO!!!");
pPerdidas+=1;
}

System.out.println("Llevas " + pGanadas + " partidas ganadas y " + pPerdidas + " partidas perdidas");

System.out.print("Quieres probar otra vez ? (S/N) : ");
} while(entradaTeclado.next().toUpperCase().equals("S"));
}
}

Ejercicio 2
Código: [Seleccionar]
package claseCU00908C;

import java.util.Random;
import java.util.Scanner;

public class EjercicioCU00909C2 {

static Scanner entradaTeclado = new Scanner(System.in);

public static void main(String[] args) {
int[] numerosUsuario = new int[6];
int[] numerosGanadores = new int[6];

do {

System.out.println("Elije 6 numero entre el 1 y el 49");
creaNumeros(numerosUsuario, numerosGanadores);

System.out.print("Numero Elejidos : ");
imprimeNumeros(numerosUsuario);

System.out.print("Combinacion ganadora :");
imprimeNumeros(numerosGanadores);

verificaAciertos(numerosUsuario, numerosGanadores);

System.out.print("Quieres probar otra vez? (S/N): ");
} while(entradaTeclado.next().toUpperCase().equals("S"));

System.out.println("Adios");

}

public static void creaNumeros(int[] pNumerosUsuario, int[] pNumerosGanadores) {

Random rnd = new Random();
for (int i = 0; i < pNumerosUsuario.length; i++) {
System.out.print("Elije el numero " + (i+1) + ": ");
pNumerosUsuario[i] = entradaTeclado.nextInt();

while((pNumerosUsuario[i] < 1) || (pNumerosUsuario[i] > 49)) {
System.out.print("El numero esta fuera de rango, elije otro: ");
pNumerosUsuario[i] = entradaTeclado.nextInt();
}

for (int j = 0; j < i; j++) {
while((pNumerosUsuario[j]==pNumerosUsuario[i])) {
System.out.print("El numero ya esta ingresado, elije otro: ");
pNumerosUsuario[i] = entradaTeclado.nextInt();
}
}

pNumerosGanadores[i] = (int) (rnd.nextDouble()*50);
//System.out.println(pNumerosGanadores[i]);
}
}

public static void imprimeNumeros(int[] pListaNumeros) {
for (int i = 0; i < pListaNumeros.length; i++) {
System.out.print(pListaNumeros[i] + " ");
}
System.out.println();
}

public static void verificaAciertos(int[] pNumerosUsuario, int[] pNumerosGanadores) {
int aciertos = 0;
for (int i = 0; i < pNumerosGanadores.length; i++) {
for (int j = 0; j < pNumerosUsuario.length; j++) {
if(pNumerosGanadores[i] == pNumerosUsuario[j]) {
aciertos += 1;
}
}
}
System.out.println("Has acertado: " + aciertos + " números");
}
}

Saludos

18
Gracias la observación, si en verdad el código indicado no tiene objeto, he realizado el cambio necesario

Código: [Seleccionar]
package claseCU00908C;

import java.util.Random;
import java.util.Scanner;;

public class EjercicioCU00908C {

public static void main(String args[]) {

int rangoIni, rangoFin, numIntentos, numUsuario;
Random rnd = new Random();
int intento = 0;

Scanner entradaTeclado = new Scanner(System.in);

do {
int aciertos = 0;
int noAciertos = 0;
System.out.print("Introduce el numero inicial del rango: ");
rangoIni = entradaTeclado.nextInt();

System.out.print("Introduce el numero final del rango: ");
rangoFin = entradaTeclado.nextInt();

System.out.print("Introduce el número de intentos: ");
numIntentos = entradaTeclado.nextInt();

int[] numAleatorios = new int[numIntentos];

for (int i = 0; i < numIntentos; i++) {
numAleatorios[i] = (int) (rnd.nextDouble() * (rangoFin - rangoIni) + rangoIni);

//System.out.println(numAleatorios[i]);

System.out.print("¿Qué numero estoy pensando?: ");
numUsuario = entradaTeclado.nextInt();
if (numAleatorios[i] != numUsuario) {
System.out.println("No has acertado ");
noAciertos += 1;
} else {
System.out.println("Has acertado ");
aciertos += 1;
}
}

System.out.print(
"Has acertado " + aciertos + " veces y has fallado " + noAciertos + " veces. Eran solución: ");
for (int i = 0; i < numAleatorios.length; i++) {
System.out.print(numAleatorios[i] + ",");
}
System.out.println();

System.out.print("Quieres probar otra vez ? (S/N): ");

} while (entradaTeclado.next().equals("S"));
System.out.println("Adiós");
}
}

19
Dejo mi solución al ejercicio de generación de numeros aleatorios con random CU00908C del currso avanzado de programación Java. Si tienen que criticar critiquen, pero digan algo constructivo por favor :)

Código: [Seleccionar]
package claseCU00908C;

import java.util.Random;
import java.util.Scanner;;

public class EjercicioCU00908C {

public static void main(String args[]) {

int rangoIni, rangoFin, numIntentos, numUsuario;
Random rnd = new Random();
int intento = 0;

boolean encontrado = false;

Scanner entradaTeclado = new Scanner(System.in);

do {
int aciertos = 0;
int noAciertos = 0;
System.out.print("Introduce el numero inicial del rango: ");
rangoIni = entradaTeclado.nextInt();

System.out.print("Introduce el numero final del rango: ");
rangoFin = entradaTeclado.nextInt();

System.out.print("Introduce el número de intentos: ");
numIntentos = entradaTeclado.nextInt();

int[] numAleatorios = new int[numIntentos];

for (int i = 0; i < numIntentos; i++) {
numAleatorios[i] = (int) (rnd.nextDouble() * (rangoFin - rangoIni) + rangoIni);

//System.out.println(numAleatorios[i]);

System.out.print("¿Qué numero estoy pensando?: ");
numUsuario = entradaTeclado.nextInt();
if (numAleatorios[i] != numUsuario) {
System.out.println("No has acertado ");
noAciertos += 1;
} else {
System.out.println("Has acertado ");
encontrado = true;
aciertos += 1;
}
}

if (!encontrado) {
System.out.print(
"Has acertado " + aciertos + " veces y has fallado " + noAciertos + " veces. Eran solución: ");
for (int i = 0; i < numAleatorios.length; i++) {
System.out.print(numAleatorios[i] + ",");
}
System.out.println();
} else {
System.out.print(
"Has acertado " + aciertos + " veces y has fallado " + noAciertos + " veces. Eran solución: ");
for (int i = 0; i < numAleatorios.length; i++) {
System.out.print(numAleatorios[i] + ",");
}
System.out.println();
}

System.out.print("Quieres probar otra vez ? (S/N): ");

} while (entradaTeclado.next().equals("S"));
}

}

20
Dejo mi solución propuesta para el ejercicio CU00907C del curso de programación Java avanzada de aprenderaprogramar


Código: [Seleccionar]
package claseCU00907C;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;

public class ejercicioCU00907C {
public static void main(String[] args) {
Scanner entradaTeclado = new Scanner(System.in);
double importeInicial;
double porcentajeImpuesto;
System.out.println("Por favor introduzca el importe inicial: ");
importeInicial = entradaTeclado.nextDouble();
System.out.println("Por favor introduzca el porcentaje de impuestos: ");
porcentajeImpuesto = entradaTeclado.nextDouble();
System.out.println("El impuesto a pagar es: " + BigDecimal.valueOf(importeInicial *porcentajeImpuesto/100).setScale(2, RoundingMode.CEILING));
System.out.println("El importe final es: " + BigDecimal.valueOf(importeInicial).add(BigDecimal.valueOf(importeInicial *porcentajeImpuesto/100).setScale(2, RoundingMode.CEILING)));
}

}

Páginas: [1] 2 3

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".