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 - xBag

Páginas: [1]
1
Saludos! Cómo están?

Duré un tiempo para hacer este ejercicio me confundí un poco pero creo que pude resolver y entender mejor. Aquí les dejo el enunciado:


EJERCICIO
La interface Set de Java es implementada por las clases HashSet y TreeSet. Busca información sobre
estas clases en la documentación del api Java. Crea un programa Java que haga lo siguiente:
a) Declarar un ArrayList de objetos de tipo Set
b) Crear un objeto de tipo HashSet para contener Strings y haz que contenga las cadenas “sol”, “luna”,
“saturno”.
c) Crear un objeto TreeSet para contener Integers y haz que contenga los números 2, 8, 5.
d) Añade los objetos HashSet y TreeSet como elementos del ArrayList.
e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los
elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”,
8, 5, 2.



Está bien o que puedo mejorar?

Código: [Seleccionar]
import java.util.*;
public class Polimorfismo {
public static void main (String []args){
ArrayList<Set> aList = new ArrayList<Set>();
HashSet<String> hSet = new HashSet<String>();
hSet.add("sol");
hSet.add("luna");
hSet.add("saturno");
TreeSet<Integer> tSet = new TreeSet<Integer>();
tSet.add(2);
tSet.add(8);
tSet.add(5);
aList.add(hSet);
aList.add(tSet);
Iterator<Set> itSet = aList.iterator();
while (itSet.hasNext()){
for(int i=0;i<itSet.next().size();i++){
System.out.println(aList.get(i));
if (itSet.hasNext()==false)break;
}
}
}
}

Creo que debí usar más iteratores...

2
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=633:tipo-iterator-api-java-ejemplo-error-javautilconcurrent-modificationexception-resumen-bucles-cu00667b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Saludos, hice lo que pude me esforcé mucho, estoy aquí para que me digan que es lo que puedo mejorar de mi código. Utilicé varias clases. Gracias de antemano!
CLASE PARA RECIBIR DATOS POR TECLADO
Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
private String entradaTeclado; //Variable de instancia (campo) de la clase
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto automáticamente ejecutamos el método
} //Cierre del constructor
public void pedirEntrada () { //Método de la clase
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine (); } //Cierre del método pedirEntrada
public String getEntrada () { return entradaTeclado; }
 //Cierre del método getEntrada
public String getPrimeraPalabra () {
/*IMPORTANTÍSIMO: EN JAVA LOS OBJETOS NO SE PUEDEN COMPARAR USANDO == POR ESO ESTO NO FUNCIONARÁ
if (entradaTeclado.substring(0,1).==("j")) {
System.out.println ("Hemos detectado una j");
} else { System.out.println ("Mira esto:" + entradaTeclado.substring(0,1) ); }*/
for (int i=0; i < entradaTeclado.length() - 1; i++) {
if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
return entradaTeclado.substring(0, i+1); }
}
return entradaTeclado; //Caso de que no se detecte ningún espacio devolvemos lo que haya
} //Cierre del método getPrimeraPalabra
public int getLongitud () { //Método de la clase
return entradaTeclado.length();
} //Cierre del método getLongitud
} //Cierre de la clase


CLASE QUE TENDRA LA LISTA DE CANTANTEFAMOSO

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
public class ListaDeCantantesFamosos
{
ArrayList<CantanteFamoso> listaCantantesFamosos;
public ListaDeCantantesFamosos(){listaCantantesFamosos = new ArrayList <CantanteFamoso>();}
public void nuevoCantante(CantanteFamoso cantante){
listaCantantesFamosos.add(cantante);
}
public void mostrarTodos(){
Iterator<CantanteFamoso> it = listaCantantesFamosos.iterator();   
CantanteFamoso tmpCant;
while (it.hasNext()){tmpCant = it.next();
System.out.println("Cantante: " + tmpCant.getNombre() + " con su disco " + tmpCant.getDisco() + " el más vendido");}
}
}

CLASE DE CANTANTES FAMOSOS

Código: [Seleccionar]
public class CantanteFamoso {
String nombre="";
String discoConMasVentas="";


public CantanteFamoso(String nombre, String discoConMasVentas){
this.nombre=nombre;
this.discoConMasVentas=discoConMasVentas;

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

public String getNombre(){return nombre;}
public String getDisco(){return discoConMasVentas;}
 

}

CLASE CON MÉTODO MAIN

Código: [Seleccionar]
public class Test2 {
public static void main (String [] args){
ListaDeCantantesFamosos Lista = new ListaDeCantantesFamosos();
CantanteFamoso cantante1 = new CantanteFamoso("Romeo", "The last");
CantanteFamoso cantante2 = new CantanteFamoso("Juan Luis Guerra", "Abejas");
Lista.nuevoCantante(cantante1);
Lista.nuevoCantante(cantante2);
Lista.mostrarTodos();
System.out.println("Introduzca el nombre de un nuevo cantante");
EntradaDeTeclado entrada = new EntradaDeTeclado();
System.out.println("Introdzuca el disco más vendido de dicho cantante");
EntradaDeTeclado entrada2 = new EntradaDeTeclado();
CantanteFamoso cantanteIngresado = new CantanteFamoso(entrada.getEntrada(), entrada2.getEntrada());
Lista.nuevoCantante(cantanteIngresado);
Lista.mostrarTodos();
System.out.println("\nQuiere continuar?(si o no): ");
EntradaDeTeclado respuesta = new EntradaDeTeclado();
if (respuesta.getEntrada().equalsIgnoreCase("no")){System.exit(1);}
while (!respuesta.getEntrada().equalsIgnoreCase("si") || !respuesta.getEntrada().equalsIgnoreCase("no")){
    if(respuesta.getEntrada().equalsIgnoreCase("si") || respuesta.getEntrada().equalsIgnoreCase("no") ) {break;}
    System.out.println("\nEscriba si o no por favor.");
    respuesta.pedirEntrada();
 }
while(respuesta.getEntrada().equalsIgnoreCase("si")) {
System.out.println("Introduzca el nombre de un nuevo cantante");
EntradaDeTeclado nuevoCantante = new EntradaDeTeclado();
System.out.println("Introdzuca el disco más vendido de dicho cantante");
EntradaDeTeclado nuevoDisco = new EntradaDeTeclado();
CantanteFamoso otroCantante = new CantanteFamoso(nuevoCantante.getEntrada(), nuevoDisco.getEntrada());
Lista.nuevoCantante(otroCantante);
Lista.mostrarTodos();
System.out.println("\nQuiere continuar? (si o no): ");
respuesta.pedirEntrada();
while (!respuesta.getEntrada().equalsIgnoreCase("si") || !respuesta.getEntrada().equalsIgnoreCase("no")){
    if(respuesta.getEntrada().equalsIgnoreCase("si") || respuesta.getEntrada().equalsIgnoreCase("no") ) {break;}
     System.out.println("\nEscriba si o no por favor.");
    respuesta.pedirEntrada();
 
}
}



}
}


Mil disculpas si está un poco tedioso de leer lo arreglé lo más que pude! Saludos!

4
Hola muchachones!  ;D

Tenía días sin postear es porque me ha servido bastante el curso y he aprendido algunas cositas. Gracias a la comunidad y a los que se encargan de preparar la enseñanza.

Lo que traigo ahora es un ejercicio que dice así:

EJERCICIO
Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método
length de la clase String y el método substring de la clase String, muestre un mensaje indicando:
a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.
b) Si la cadena introducida comienza por la letra a.
Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena
introducida tiene entre 5 y 15 caracteres y no comienza por a”.


Yo hice mi código el programa me funciona solo quería que lo vieran y me digan qué les parece. Llevo 1 mes en Java, creen que para ese tiempo voy bien? Bueno ahí les dejo y me avisan.

Código: [Seleccionar]
import java.util.Scanner;
public class Vereda {
public static void main (String [] args){
String PalabraEscrita ="";
int i;
for (i=0;i<10;i++){
System.out.println("Introduzca la palabra");
Scanner palabra = new Scanner(System.in);
PalabraEscrita = palabra.nextLine();
System.out.println("La palabra \"" + PalabraEscrita + "\" " + "ha sido introducida");
int Largo = PalabraEscrita.length();
PalabraEscrita = PalabraEscrita.toUpperCase();
boolean Inicio = PalabraEscrita.startsWith("A");
if (Largo<5 && Inicio==true){System.out.println("Tiene menos de 5 caracteres y empieza por la letra A");
}else if (Largo<5 && Inicio==false){System.out.println("Tiene menos de 5 caracteres y NO empieza por la letra A");
}else if (Largo<=15 && Inicio==true){System.out.println("Tiene entre 5 y 15 caracteres y empieza por la letra A");
}else if (Largo<=15 && Inicio==false){System.out.println("Tiene entre 5 y 15 caracteres y NO empieza por la letra A");
}else if (Largo>15 && Inicio==true){System.out.println("Tiene más de 15 caracteres y empieza por la letra A");
}else if (Largo>15 && Inicio==false){System.out.println("Tiene más de 15 caracteres y NO empieza por la letra A");
}
}
}
}


NOTA: Me surgió la duda, puedo hacer que el programa SE DETENGA, en caso de que durante el "For", en la pregunta 3 o 4 o cual sea, yo escriba "Salir" ? Lo intenté y fracasé alguien me ayuda? Tengo curiosidad y quisiera aprender. Gracias de antemano.

Saludos!

5
Hola, el ejercicio dice así:

Citar
Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Define un método de nombre “calculoParaMultiploEdad” que no recibe parámetros y es tipo procedimiento cuyo cometido será el siguiente: determinar cuántos años faltan para que la edad del médico sea múltiplo de 5 y mostrar un
mensaje informativo por pantalla. Por ejemplo si el médico tiene 22 años deberá en primer lugar obtener el resto de la división de 22 entre 5, que es 2. Ahora obtendrá los años que faltan para que el médico tenga una edad múltiplo de 5, que serán 5-2 = 3 años. A continuación deberá mostrar un mensaje por consola del tipo: “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de … años”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola, y que cuando
cambias la edad aparece correctamente el tiempo que falta para que la edad sea múltiplo de 5.

Creía que iba bien pero, me dice que la variable "EDAD" no está inicializada. No sé si es que en ese método no lo está, pero sí en otro. Estoy un poco perdido, intenté decirle al método que EDAD tomara el valor que había tomado en el "setEdad" más arriba. Pero no supe como. ¿Qué estoy haciendo mal? Ayuda tengo 1 hora trancado no tengo idea de que hacer ya me rendí...

Gracias de antemano.

6
Que bueno que me lo dices, así noto que estoy aprendiendo solo! No sabes cuanto me alegro. Gracias!

7
Hola muchachones!

Bueno, tengo una duda, porque pude resolver el ejercicio pero quedé dudoso con algo.

En este ejercicio, nos pedía que luego de cada método, mostraramos un mensaje por consola que nos diga QUÉ hizo el método. Perfecto. Pues estoy haciéndolo y cuando intento compilar me da error. Les mostraré un fragmento:

**ME DABA ERROR por que esto era lo que yo hacía:

public String getNombre () {return Nombre;
System.out.println ("Se ha mostrado el Nombre");}

Fíjense primero "return" luego el "System.out.println". Me daba error, RESOLVÍ poniendo el return de último (así):

public String getNombre () {System.out.println ("Se ha mostrado el Nombre");
    return Nombre;}


Yo pensaba que primero necesitaba retornar el valor y LUEGO avisar que "Se ha mostrado el nombre"
Pero al parecer debo avisar antes de retornarlo. No sé si me entiendan.

**MI PREGUNTA ES:

Cuando utilizamos "return" este tiene que estar obligatoriamente AL FINAL de un método?

Por favor y gracias!
Saludos!

8
Hola! :)

No sé nada de aviones, pero quisiera saber si voy bien con la idea de las clases y los objetos. Alguien me podría corregir si estoy mal? (Respuesta al ejercicio en imagen adjunta. Para visualizarla, pulsar sobre la imagen estando logeado).

Gracias de antemano.

Páginas: [1]

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".