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

Páginas: [1] 2
1
Hola. He intentado hacer el ejercicio de la clase(CU00644B), lo he corregido en el foro pero me da un error que, aunque comprendo que quiere decir, no se como sacarlo ya que sino no se como resolverlo al ejercicio.

Actividad:
Citar
Define una clase denominada multiplicadorDieces con un constructor vacío y que contenga un método denominado multiplicarPorDieces que reciba dos parámetros: el primero un número de tipo double y el segundo un número de tipo entero. El método debe devolver el resultado de multiplicar por 10 elevado al segundo número el primer número. Ejemplo: multiplicarPorDieces (2.55, 2) devuelve 2.55*100 = 255. multiplicarPorDieces (3, 5) devuelve 3*100000 = 300000. MultiplicarPorDieces (-0.0563, 3) devuelve -0.563 * 1000 = -56.3. Crea un objeto y comprueba que el método opera correctamente.

Código: [Seleccionar]
public class multiplicadorDieces{
   
    public multiplicadorDieces(){}
   
    public int multiplicarPorDieces(double a, int b){
        int resultado =1;
        for(int i=1;i<=b; i++){
            resultado=resultado*10;
        }
        resultado = a [color=red]* resultado[/color];
        return  resultado;
    }
       
}

Donde marqué un error me aparece un error "incompatible types: possible lossy conversion from double to int".

Muchas gracias

2
Gracias a vos por la explicación. Me aseguraré de corregir ese error! Graciass

3
Aquí va la respuesta que he podido lograr del ejercicio (CU00642B). En la clase "Casa" me aparece un error, y no puedo solucionarlo.
Citar
Define tres clases: Casa, SalonCasa y CocinaCasa. La clase SalonCasa debe tener como atributos numeroDeTelevisores (int) y tipoSalon (String) y disponer de un constructor que los inicialice a 0 y “desconocido”. La clase CocinaCasa debe tener como atributos esIndependiente (boolean) y numeroDeFuegos (int) y un constructor que los inicialice a false y 0. La clase Casa tendrá los siguientes atributos de clase: superficie (double), direccion (String), salonCasa (tipo SalonCasa) y cocina (tipo CocinaCasa). Define un constructor para la clase Casa que establezca a unos valores de defecto los atributos simples y que cree nuevos objetos si se trata de atributos objeto. Define otro constructor que reciba como parámetros la superficie, dirección y un objeto de tipo SalonCasa y otro de tipo CocinaCasa. Compila el código para comprobar que no presenta errores, y crea un objeto de tipo Casa usando el constructor que recibe parámetros. Ten en cuenta que antes tendrás que haber creado los objetos de tipo SalonCasa y CocinaCasa para poder pasárselos al constructor. Comprueba que el objeto Casa se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto.

Código: [Seleccionar]
public class SalonCasa1{
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    public SalonCasa1(){
        numeroDeTelevisores=0;
        tipoSalon="";}
   
    public SalonCasa1(String valorTipoSalon, int valorNumeroDeTelevisores){
        tipoSalon=valorTipoSalon;
        numeroDeTelevisores=valorNumeroDeTelevisores;}
   
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){
        numeroDeTelevisores=valorNumeroDeTelevisores;}
       
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon=valorTipoSalon;}
   
    public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
   
    public String getTipoSalon(){return tipoSalon;}
}

Código: [Seleccionar]
public class CocinaCasa1{
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa1(){
        esIndependiente=false;
        numeroDeFuegos=0;}
       
    public CocinaCasa1(boolean valorEsIndependiente, int valorNumeroDeFuegos){
        esIndependiente=valorEsIndependiente;
        numeroDeFuegos=valorNumeroDeFuegos;}

    public void setEsIndependienten(boolean valorEsIndependiente){
        esIndependiente=valorEsIndependiente;}
   
    public void setnumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos=valorNumeroDeFuegos;}
       
    public boolean getEsIndependiente(){return esIndependiente;}
   
    public int getNumeroDeFuegos(){return numeroDeFuegos;}
}

Código: [Seleccionar]
public class Casa1{
    private double superficie;
    private String direccion;
    private SalonCasa1 salon;
    private CocinaCasa1 cocina;
   
    public Casa1(){
        superficie=0.0;
        direccion="";
        salon=new SalonCasa1();
        cocina=new CocinaCasa1();}
       
    public[color=red] c[/color]asa1(double valorSuperficie, String valorDireccion, SalonCasa1 objetoSalon, CocinaCasa1 objetoCocina){
        superficie=valorSuperficie;
        direccion=valorDireccion;
        salon=new SalonCasa1(objetoSalon.getNumeroDeTelevisores(), objetoSalon.getTipoSalon());
        cocina=new CocinaCasa1(objetoCocina.getEsIndependiente(), objetoCocina.getNumeroDeFuegos());}
   
    public void setSuperficie(double valorSuperficie){
        superficie=valorSuperficie;}
       
    public void setDireccion(String valorDireccion){
        direccion=valorDireccion;}   
       
    public double getSuperficie(){return superficie;}
   
    public String getDireccion(){return direccion;}
}

En donde esta rojo, en la clase Casa, es donde me aparece un error de tipo: "invalid method declaration; return type required". No se como solucionarlo, agradecería si me ayudarían.
Gracias!

4
Genial, muchas gracias por la explicación!

5
Hola. Aquí está el ejercicio CU00639B del tutorial de programación pdf en Java de aprenderaprogramar como yo lo pude resolver.

Citar
Define una clase Bombero considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), especialista (boolean). Define un constructor que reciba los parámetros necesarios para la inicialización y los métodos para poder establecer y obtener los valores de los atributos.

Código: [Seleccionar]
public class Bombero
{
    private String nombre, apellido;
    private int edad;
    private boolean casado, especialista;
   
    public void Bombero(String valorNombre, String valorApellido, int valorEdad, boolean valorCasado, boolean valorEspecialista){
        nombre=valorNombre;
        apellido=valorApellido;
        edad=valorEdad;
        casado=valorCasado;
        especialista=valorEspecialista;
    }
   
    public void setNombreApellido(String valorNombre, String valorApellido){
        nombre=valorNombre;
        apellido=valorApellido;}
       
    public void setEdad(int valorEdad){edad=valorEdad;}
   
    public void setCasadoEspecialista(boolean valorCasado, boolean valorEspecialista){
        casado=valorCasado;
        especialista=valorEspecialista;}
       
    public String getNombre(){return nombre;}
   
    public String getApellido(){return apellido;}
   
    public int getEdad(){return edad;}
   
    public boolean getCasado(){return casado;}
   
    public boolean getEspecialista(){return especialista;}
   
}

Ahora tengo una duda, si yo creo un constructor que reciba parámetros y todos mis atributos lo reciben, es necesario escribir los métodos setters?
Muchas gracias!

6
Ahaa bienn! Genialll!! Muchas graciass

7
Hola, aquí tengo mi resolución propuesta del ejercicio CU00636B del taller de programación Java para principiantes de aprenderaprogramar.

Citar
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Rueda (que representa a una rueda de un vehículo). Define una clase Rueda considerando los siguientes atributos de clase: tipo (String), grosor (double), diametro (double), marca (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. Crea un método denominado comprobarDimensiones donde a través de condicionales if realices las siguientes comprobaciones:

a) Si el diámetro es superior a 1.4 debe mostrarse por consola el mensaje “La rueda es para un vehículo grande”. Si es menor o igual a 1.4 pero mayor que 0.8 debe mostrarse por consola el mensaje “La rueda es para un vehículo mediano”. Si no se cumplen ninguna de las condiciones anteriores debe mostrarse por pantalla el mensaje “La rueda es para un vehículo pequeño”.

b) Si el diámetro es superior a 1.4 con un grosor inferior a 0.4, ó si el diámetro es menor o igual a 1.4 pero mayor que 0.8, con un grosor inferior a 0.25, deberá mostrarse por consola el mensaje “El grosor para esta rueda es inferior al recomendado”.

Código: [Seleccionar]
public class Rueda
{
    private String tipo, marca;
    private double grosor, diámetro;
   
    public void Rueda(){
        tipo="";
        marca="";
        grosor=0.0;
        diámetro=0.0;
    }
   
    public void setTipo(String valorTipo){
        tipo=valorTipo;}
       
    public void setMarca(String valorMarca){
        marca=valorMarca;}
   
    public void setGrosor(double valorGrosor){
        grosor=valorGrosor;}
       
    public void setDiámetro(double valorDiámetro){
        diámetro=valorDiámetro;}
       
    public String getTipo(){return tipo;}
    public String getMarca(){return marca;}
    public double getGrosor(){return grosor;}
    public double getDiámetro(){return diámetro;}
   
    public void comprobarDimensiones(){
        if(diámetro>1.4){
            System.out.println("La rueda es para un vehículo grande");
        }else if(diámetro<=1.4 && diámetro>0.8){
            System.out.println("LA rueda es para un vehículo mediano");
        }else{System.out.println("La rueda es para un vehículo pequeño");}
       
        if(diámetro>1.4 && grosor<0.4 || diámetro<=1.4 && diámetro>0.8 && grosor<0.25){
            System.out.println("El grosor para esta rueda es inferior al recomendado");}
    }
}

Gracias!

8
Aquí está mi propuesta del ejerccio CU00673B del taller de programación Java desde cero de aprenderaprogramar:

Citar
Define una clase Java denominada Circulo que tenga como atributo de clase (estático) y constante numeroPi, siendo esta constante de tipo double y valor 3.1416. Además la clase tendrá el atributo radio (tipo double) que representa el radio del círculo, y los métodos para obtener y establecer los atributos. También debe disponer de un método para calcular el área del círculo (método tipo funcion areaCirculo que devuelve el área) y la longitud del círculo (método tipo función que devuelve la longitud). Busca información sobre las fórmulas necesarias para crear estos métodos en internet si no las recuerdas. En una clase con el método main, declara el código que cree un objeto círculo, le pida al usuario el radio y le devuelva el área y la longitud del círculo.

Código: [Seleccionar]
public class Circulo {
    public static final double numeroPi = 3.1415;
    public double radio;
   
    public void setRadio (double valorRadio){
        radio = valorRadio;
    }
   
    public double getNumeroPi () {return numeroPi;}
   
    public double getRadio () {return radio;}
   
    public double areaCirculo(){
        double area = 0.0;
        area = numeroPi * (radio * radio);
        System.out.println("El area es: " + area + " cm");
        return area;
    }
   
    public double longitudCirculo(){
        double longitud = 0.0;
        longitud = 2 * numeroPi * radio;
        System.out.println("La longitud es: " + longitud + " c");
        return longitud;
    }
}


Código: [Seleccionar]
import java.util.Scanner;
public class testCirculo {
   
    public static void main (String [] args){       
        System.out.println("Ingrese el radio del circulo");
        Circulo circulo = new Circulo();
        double radioEntrada = 0.0;
        Scanner entradaTeclado = new Scanner(System.in);
        String entradaEscaner= entradaTeclado.nextLine();
        radioEntrada = Double.valueOf(entradaEscaner);
        circulo.setRadio(radioEntrada);
        System.out.println(circulo.areaCirculo());
        System.out.println(circulo.longitudCirculo());       
    }
}


Y mi respuesta a la pregunta:

Citar
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?

No, no es posible ya que al numeroPi no ser una variable, sino una constante, no se puede crear un método para establecer su valor. De antemano ya se la definió al iniciarla.

Muchas gracias

10
Intento resolver este ejercicio pero estoy super trabada.

Intento pasar la entrada String a un int oara compraralo con el número "incógnita":

Código: [Seleccionar]
import java.util.Scanner;

public class testAdivinarNumero {
   
    public static void main (String [] args){
        Scanner entradaScanner = new Scanner(System.in);
        adivinarNumero numero = new adivinarNumero();
        System.out.println("Se ha creado un número aleatorio entre 1 y 100");
        System.out.println("Ingrese un número: ");
        int entrada = entradaScanner.nextInt();
       
        if (numero == Integer.parseInt(entrada)){
            System.out.println ("Usted ha adivinado el número!!");
        } else if (numero > entrada){
            System.out.println ("El número ingresado es mayor. Intentelo de vuelta: ");
        }else if (numero < entrada){
            System.out.println ("El número ingresado es menor. Intentelo de vuelta: ");
        }
       
       
    }
   
}

Código: [Seleccionar]
import java.util.Random;

public class adivinarNumero
{
    int numero;
    String entrada;
   
    public adivinarNumero(){
        Random numeroAleatorio = new Random();
        numero = numeroAleatorio.nextInt(100);
        numero = 36;
    }
   
    public String setEntrada (String valorEntrada){
        entrada= valorEntrada;
        return entrada;}
       
    public String getEntrada(){return entrada;}
       
   
}

Agradezco su ayuda!

11
Hola, he estado intentando hacer este ejercicio pero no logro terminarlo. El ejercicio es el código CU00672B del programa formativo para programadores en Java de aprenderaprogramar.

Citar
Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aletatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador.

En la clase testAdivinarNumero me da error cuando quiero comparar la variable numero (int) con la entrada que también iría a ser un número. No sé si la entrada es tomada como un String entonces tengo que pasarlo a un int.

Código: [Seleccionar]
import java.util.Scanner;

public class testAdivinarNumero {
   
    public static void main (String [] args){
        EntradaTeclado entradaScanner;
        adivinarNumero numero = new adivinarNumero();
        System.out.println("Se ha creado un número aleatorio entre 1 y 100");
        System.out.println("Ingrese un número: ");
        entradaScanner = new EntradaTeclado();       
       
        if (numero == entradaScanner){
            System.out.println ("Usted ha adivinado el número");
        } else if (numero > entradaScanner){
            System.out.println ("El número ingresado es mayor. Intentelo de vuelta: ");
        }else if (numero < entradaScanner){
            System.out.println ("El número ingresado es menor. Intentelo de vuelta: ");
        }

    }
   
}

Código: [Seleccionar]
import java.util.Random;

public class adivinarNumero
{
    int numero;
   
    public adivinarNumero(){
        Random numeroAleatorio = new Random();
        numero = numeroAleatorio.nextInt(100);
        numero = 36;
    }
   
}

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaTeclado
{
    private String entrada;
   
    public EntradaTeclado(){
        entrada = "";
    }
   
    public void pedirEntrada(){
        Scanner entradaTeclado = new Scanner (System.in);
        entrada = entradaTeclado.nextLine();
    }
   
    public String setEntrada (String valorEntrada){
        entrada = valorEntrada;
        return entrada;
    }
   
    public String getEntrada () {return entrada;}
   
}

Que quede claro que todavía no lo he terminado al ejercicio.
Muchas gracias por la ayuda!

12
Que gran consejo, muchas gracias.

13
Hola. Aquí esta mi propuesta de respuesta para el ejercicio CU00670B del curso de programación Java POO pdf de aprenderaprogramar:

Citar
El API de Java proporciona herramientas para pedir datos al usuario a través de ventanas. Un ejemplo de ello es el uso de la clase JOptionPane perteneciente al paquete javax.swing.JOptionPane del API Java. El método showInputDialog permite pedir un dato al usuario y almacena su respuesta en un objeto de tipo String. Queremos crear un programa que pida al usuario un número y muestre por pantalla el doble de ese número. Para ello hemos creado este código:

import javax.swing.JOptionPane;
public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
        System.out.println ("El doble del número introducido es: " + 2*entradaUsuario); 
    }
}

El problema que tenemos es que nos salta un mensaje de error “operator * cannot be applied to int, java.lang.String”.

Citar
¿Qué interpretación haces de este mensaje de error?

Para mí lanza ese error ya que aunque al usuario se le pidió que ingrese un número entero (int), con la clase JOptionPane, ese número entero se almacena en un String, es decir que se convierte en un objeto. Entonces no se puede utilizar operadores de tipo primitivo (como se usó el de multiplicación " * ") para objetos.

Citar
¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa?

Yo creo que como solución sería volver a convertir esa cadena de texto (String) a un entero para poder multiplicarlo por dos.

Código: [Seleccionar]
import javax.swing.JOptionPane;

public class EjConversiones {
    public static void main (String [] args){
        String entradaUsuario = JOptionPane.showInputDialog("Introduzca un número: "); //JOptionPane.showInputDialogo es la Clase.yElMétodo
        System.out.println ("el doble del número introducido es: " + 2 * Integer.parseInt(entradaUsuario)); // (abajo)
        //Integer tiene varios métodos estáticos y uno de ellos es parseInt() en donde recibe como argumento un String y lo convierte a un valor int.
        //Este método puede ser utlizado sin que se cree un objeto
    }
}

14
Aquí esta mi propuesta de solución para el ejercicio CU00669B del tutorial de programación orientada a objetos Java POO de aprenderaprogramar.
 
Citar
Crea una clase con el método main donde declares una variable de tipo array de Strings que contenga los doce meses del año, en minúsculas y declarados en una sola línea. A continuación declara una variable mesSecreto de tipo String, y hazla igual a un elemento del array (por ejemplo mesSecreto = mes[9]. El programa debe pedir al usuario que adivine el mes secreto y si acierta mostrar un mensaje y si no pedir que vuelva a intentar adivinar el mes secreto.  Puedes comprobar si tu  código es correcto consultando en los foros aprenderaprogramar.com.

Un ejemplo de ejecución del programa podría ser este:

Adivine el mes secreto. Introduzca el nombre del mes en minúsculas: febrero

No ha acertado. Intente adivinarlo introduciendo otro mes: agosto

No ha acertado. Intente adivinarlo introduciendo otro mes: octubre

¡Ha acertado!

Código: [Seleccionar]
import java.util.Scanner;

public class ClaseArray
{
    public static void main (String [] args){
        String [] meses = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
        String mesSecreto = meses [4];
       
        Scanner entradaEscaner = new Scanner (System.in);
        System.out.println ("Ingrese un mes para adivinar el mes secreto: ");
        String entrada = entradaEscaner.nextLine();
       
        while (entrada.equalsIgnoreCase(mesSecreto)==false){
            System.out.println("No has acertado. Intente introducir otro mes: ");
            entrada = entradaEscaner.nextLine();
        }
       
        System.out.println("Has acetrtado!!");   
       
    }
}

15
Aquí he terminado finalmente mi pequeño programa:
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos11
{
    private ArrayList <CantantesFamosos> listaCantantesFamosos;//el ArrayList no va a ser tipo String <String>, sino para tipo CantantesFamosos, ya que eso es lo que se quiere almacenar
   
    public ListaCantantesFamosos11 () {
        listaCantantesFamosos = new ArrayList <CantantesFamosos> ();//inicialización del ArrayList
    }   
   
    public void addCantante(CantantesFamosos cantante){
        listaCantantesFamosos.add(cantante);
    }
   
   
    //ITERATORES:
    //Hay dos formas:
   
    //1ra--> retorna un Iterator p/q la lista puede recorrerse de forma EXTERNA desde otra clase:
    public Iterator<CantantesFamosos> getIterador() {
        return listaCantantesFamosos.iterator();
    }
   
    //2da --> usa un Iterator p/recorrer la lista de forma INTERNA:
    public void mostrarListaCantantes() {
        System.out.println("\n\t\tLISTA DE CANTANTES FAMOSOS:\n");
       
        if (listaCantantesFamosos.isEmpty())//Opción por si la lista está vacía
            System.out.println("La lista de cantantes esta vacía...");
        else{
            //Creamos iterador
            Iterator<CantantesFamosos> it = listaCantantesFamosos.iterator();
            while (it.hasNext()) { //devuelve true si el obj no es el último de la colección
                     //Obtenemos el siguiente objeto del iterador
                CantantesFamosos cantante = it.next(); //el obj pasa a referenciar al sig elemento de la lista
                //Mostramos sus valores
                System.out.println("- Nombre: " + cantante.getNombre() + " -- Disco Top Ventas: " + cantante.getDiscoConMasVentas());
            }
        }
    }
   
}

Código: [Seleccionar]
public class CantantesFamosos
{
    private String nombre;
    private String discoConMasVentas;
   
    public CantantesFamosos (String valorNombre, String valorDiscoConMasVentas){//primer constructor para recibir los valores
        nombre = valorNombre;
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public CantantesFamosos (){//segundo constructor con valores por defecto
        nombre = "";
        discoConMasVentas = "";
    }
   
    public void setNombre (String valorNombre){
        nombre = valorNombre;
    }
   
    public void setDiscoConMasVentas (String valorDiscoConMasVentas){
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public String getNombre () {return nombre;}
   
    public String getDiscoConMasVentas () {return discoConMasVentas;}
   
}

Código: [Seleccionar]
import java.util.Scanner;
import java.util.Iterator;

public class TestListaCantantesFamosos11
{   
   
    public static void main (String [] args){
        //
        Scanner entradaEscaner = new Scanner (System.in); //creación de obj Scanner para pedir datos
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();//creación objeto para la lista de cantantes famosos
        listaCantantesFamosos.addCantante(new CantantesFamosos("Ariana Grande", "7 rings"));//añadir manualmente dos objetos al atributo: añadir dos canatntes a la lista
        listaCantantesFamosos.addCantante(new CantantesFamosos("Ed Sheeran", " ="));//añadir manualmente dos objetos al atributo: añadir dos canatntes a la lista
        //para añadir esos dos objetos se utiliza el primer constructor de CantantesFamosos que recibe valores para los atributos ya que es lo más cómodo
       
        //como ya el constructor directamente añadió dos cantantes, ya se puede mostrar la lista de cantantes actual:
        System.out.println ("Aquí va la lista con los cantantes hasta el momento: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
        System.out.println("");
        //añadir nuevos cantantes a la lista

        CantantesFamosos entrada = new CantantesFamosos();
        System.out.println("Ingrese un cantante famoso: ");
        entrada.setNombre(entradaEscaner.nextLine());
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        entrada.setDiscoConMasVentas(entradaEscaner.nextLine());
        listaCantantesFamosos.addCantante(entrada);
       
        System.out.println("Aquí va la lista actualizada: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
        String respuesta = "";
        //cambié la entrada por respuesta
        //me queda terminar de entenderlo y terminar x completo el código
        while (!"no".equals(respuesta)){
            System.out.println("\nDesea agregar otro cantante a la lista?(si/no): ");
            respuesta = entradaEscaner.nextLine();
           
            if (respuesta.equals("si")){
                CantantesFamosos nuevo = new CantantesFamosos();
                System.out.println("Nombre del cantante: ");
                nuevo.setNombre(entradaEscaner.nextLine());
                System.out.println("Disco más vendido: ");
                nuevo.setDiscoConMasVentas(entradaEscaner.nextLine());
                listaCantantesFamosos.addCantante(nuevo);
                listaCantantesFamosos.mostrarListaCantantes();
            } else {respuesta.equals("no");}
           
            System.out.println("El programa ha terminado");
        }
    }
}

Muchas gracias por toda la ayuda! ;D

16
Agradezco muchísimo toda la explicación.
Aquí lo he podido hacer pero en la clase test me sala un error:
Código: [Seleccionar]
import java.util.Scanner;
import java.util.Iterator;

public class TestListaCantantesFamosos11
{
   
    public static void main (String [] args){
        //
        Scanner entradaEscaner = new Scanner (System.in); //creación de obj Scanner para pedir datos
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();//creación objeto para la lista de cantantes famosos
       
        //como ya el constructor directamente añadió dos cantantes, ya se puede mostrar la lista de cantantes actual:
        System.out.println ("Aquí va la lista con los cantantes hasta el momento: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
        System.out.println("");
        //añadir nuevos cantantes a la lista

        CantantesFamosos entrada = new CantantesFamosos();
        System.out.println("Ingrese un cantante famoso: ");
        entrada.setNombre(entradaEscaner.nextLine());
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        entrada.setDiscoConMasVentas(entradaEscaner.nextLine());
        listaCantantesFamosos.addCantante(entrada);
       
        System.out.println("Aquí va la lista actualizada: ");
        listaCantantesFamosos.mostrarListaCantantes();
       
       
        while (!entrada.equals("no")){
            System.out.println("\nAgregar otro cantante a la lista?(si/no): ");
            entrada = entradaEscaner.nextLine();
            if (!entrada.equals("no")){
                CantantesFamosos nuevo = new CantantesFamosos();
                System.out.println("Nombre del cantante: ");
                nuevo.setNombre(entradaEscaner.nextLine());
                System.out.println("Disco más vendido: ");
                nuevo.setDiscoConMasVentas(entradaEscaner.nextLine());
                listaCantantesFamosos.addCantante(nuevo);
                listaCantantesFamosos.mostrarListaCantantes();
            }
        }
    }
   
}

En la linea 32 aparece:
Código: [Seleccionar]
            entrada = entradaEscaner.nextLine[color=red]()[/color];

Por lo que yo entiendo me dice que la clase java.lang.String no puede ser convertida en CantantesFamosos, pero no se cómo hacer.

17
Hola. Estuve algunos días intentando resolver el ejercicio CU00667B del tutorial de programación java poo con ejericios resueltos de aprenderaprogramar y aunque todavía no lo termino, me aparecen errores (por ejemplo cannot find symbol - method getNombre()) y no sé cómo solucionarlos. Ya he intentado de todo y estoy sin soluciones. Agradecería algunos consejos y soluciones.

Citar
Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario). Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Códigos:
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos11
{
    private ArrayList <String> listaCantantesFamosos;
   
    public ListaCantantesFamosos11 () {
        listaCantantesFamosos = new ArrayList <String> ();
        CantantesFamosos cantantesFamosos = new CantantesFamosos();
        ListaCantantesFamosos1 listaCantantes = new ListaCantantesFamosos1();
        listaCantantesFamosos.add("Nombre: Ariana Grande. Disco con más ventas: 7 rings \n");
        listaCantantesFamosos.add("Nombre: Ed Sheeran. Disco con más ventas: =.");
    }   
   
    public void addNombre(String nombre){
        listaCantantesFamosos.add(nombre);
    }
   
    public ArrayList <String> getListaCantantesFamosos(){//Método para extraer un objeto de cierta posición
        return listaCantantesFamosos;
    }
   
    public String getEntrada(){}
   
    public void mostrarPorPantallaLista(){
        System.out.println (listaCantantesFamosos + "Nombre: " + getEntrada() + ". Disco con más ventas: " + getEntrada() + ".");
    }
   
    public void iterator(){}
}

Código: [Seleccionar]
public class CantantesFamosos
{
    private String nombre;
    private String discoConMasVentas;
   
    public void setNombre (String valorNombre){
        nombre = valorNombre;
    }
   
    public void setDiscoConMasVentas (String valorDiscoConMasVentas){
        discoConMasVentas = valorDiscoConMasVentas;
    }
   
    public String getNombre () {return nombre;}
   
    public String getDiscoConMasVentas () {return discoConMasVentas;}
   
}

Código: [Seleccionar]
import java.util.Scanner;
import java.util.Iterator;

public class TestListaCantantesFamosos11
{
   
    public static void main (String [] args){
        Scanner entradaEscaner = new Scanner (System.in);
       
        ListaCantantesFamosos11 listaCantantesFamosos = new ListaCantantesFamosos11();
       
        System.out.println("");
       
        System.out.println ("Aquí va la lista con los cantantes hasta el momento: ");
        listaCantantesFamosos.mostrarPorPantallaLista();
       
        System.out.println("");
        System.out.println("Ingrese un cantante famoso: ");
        String entrada1 = entradaEscaner.nextLine();
        System.out.println("Ahora el disco con más venta de ese cantante: ");
        String entrada2 = entradaEscaner.nextLine();
        listaCantantesFamosos.addNombre(entrada1.getNombre());
        listaCantantesFamosos.addNombre(entrada2.getDiscoConMasVentas());
       
        System.out.println("Aquí va la lista actualizada: ");
        listaCantantesFamosos.mostrarPorPantallaLista();
       
        Iterator <String> iteradorCantantes = listaCantantesFamosos.getListaCantantesFamosos().iterator();
       
        while (!"No".equals(entrada1)){
            System.out.println("¿Quiere agregar un nuevo cantante?"); //Te pregunta si quieres agregar un nuevo cantante
            entrada1 = entradaEscaner.nextLine(); //entra la resp del usuario
           
            if (entrada1.equals("Si")){//si la respuesta es si:
                System.out.println ("Ingrese el nombre del cantante famoso: "); //te pide el nombre del cantante
                entrada1 = entradaEscaner.nextLine();//entra el nombre
                System.out.println ("Ingrese el disco con más ventas de ese cantante: ");
                entrada2 = entradaEscaner.nextLine();
                listaCantantesFamosos.addNombre(entrada1);//y lo añade a la lista de cantantes
                listaCantantesFamosos.addNombre (entrada2);
                listaCantantesFamosos.mostrarPorPantallaLista(); //y muestra de nuevo la lista de cantantes actualizada
            }else {entrada1 = "No";} // si la respuesta era no
        } //termina todo
        System.out.println ("Ha finalizado el programa"); //y muestra en la pantalla que el programa ha finalizado
       
    }
}

PD: cy¿ualquier comentario en los códigos son anotaciones mías, no son nada especial.

18
Aquí va una propuesta de solución para el ejercicio CU00666B del curso de programación Java para principiantes de aprenderaprogramar:

Citar
Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir tantos cantantes como se desee, para ello usa un bucle while que dé opción a elegir al usuario). Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Código: [Seleccionar]
import java.util.ArrayList;

public class ListaCantantesFamosos1
{
    private ArrayList <String> listaFamosos;
    private String nombre;
   
    public ListaCantantesFamosos1 () {
        listaFamosos = new ArrayList <String>();
        listaFamosos.add("Ariana Grande");
        listaFamosos.add ("Dua Lipa");
        listaFamosos.add("Ed Sheeran");
    }
   
    public void addNombre(String nombre){
        listaFamosos.add(nombre);
    }
   
    public ArrayList <String> getListaFamosos(){
        return listaFamosos;
    }
   
    public int getTamaño(){
        return listaFamosos.size();
    }
       
    public void mostrarPorPantallaLista(){
        int i= 0;
        for (String nombre : listaFamosos){
            System.out.println ("\n Cantante número " + (i+1) + ": " + getListaFamosos().get(i));
            i++;
        }
    }
   
}

Código: [Seleccionar]
import java.util.Scanner;

public class TestListaCantantesFamosos1
{
    public static void main (String [] args){
        Scanner entradaEscaner = new Scanner (System.in);
        //NombreDeLaClase nombreDelObjeto = new NombreDeLaClase();
        ListaCantantesFamosos1 listaCantantes = new ListaCantantesFamosos1();
       
        System.out.println ("Así va la lista hasta ahora: ");
        listaCantantes.mostrarPorPantallaLista();
       
        System.out.println ("");
       
        System.out.println("Ahora ingrese un nuevo cantante: ");
        String entrada1 = entradaEscaner.nextLine();
        listaCantantes.addNombre(entrada1);
        //\n
        System.out.println ("Aqui va la lista actualizada: ");
        listaCantantes.mostrarPorPantallaLista();
       
        System.out.println("");
       
        while (!"No".equals(entrada1)){
            System.out.println("¿Quiere agregar un nuevo cantante?");
            entrada1 = entradaEscaner.nextLine();
           
            if (entrada1.equals("Si")){
                System.out.println ("Nombre: ");
                entrada1 = entradaEscaner.nextLine();
                listaCantantes.addNombre(entrada1);
                listaCantantes.mostrarPorPantallaLista();
            }else {entrada1 = "No";}
        }
        System.out.println ("Ha finalizado el programa");
           
    }
}

Muchas gracias y recibo consejos!

19
Ya lo he logrado resolver completo a ambos ;D ;D ;D
Código: [Seleccionar]
import java.util.ArrayList;

public class ListaCantantesFamosos
{
    private ArrayList <String> listaFamosos;
    private String métodoLength;
   
    public ListaCantantesFamosos () {
        listaFamosos = new ArrayList <String>();
        listaFamosos.add("Ariana Grande");
        listaFamosos.add ("Dua Lipa");
        listaFamosos.add("Ed Sheeran");
    }
   
    public void addNombre(String nombre){
        listaFamosos.add(nombre);
    }
   
    public ArrayList <String> getListaFamosos(){
        return listaFamosos;
    }
   
    public int getTamaño(){
        return listaFamosos.size();
    }
   
}

Código: [Seleccionar]
import java.util.Scanner;

public class TestListaCantantesFamosos
{
    public static void main (String [] args){
        Scanner entradaEscaner = new Scanner (System.in);
        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos();
       
        System.out.println ("Así va la lista hasta ahora: ");
        for (int i=0; i<listaCantantes.getTamaño();i++){
            System.out.println ("\n Cantante número " + (i+1) + ": " + listaCantantes.getListaFamosos().get(i));
        }
       
        System.out.println ("");
       
        System.out.println("Ahora ingrese un cuarto cantante: ");
        String entrada1 = entradaEscaner.nextLine();
        listaCantantes.addNombre(entrada1);
       
        System.out.println("Y por último ingrese un quinto cantante: ");
        String entrada2 = entradaEscaner.nextLine();
        listaCantantes.addNombre(entrada2);
        //\n
        System.out.println ("Aqui va la lista actualizada: ");
        for (int i=0; i<listaCantantes.getTamaño();i++){
            System.out.println ("\n Cantante número " + (i+1) + ": " + listaCantantes.getListaFamosos().get(i));
        }
    }
}

Si hay alguna devolución o consejo lo recibo y agradezco! :)

20
Correguí los errores pero sigo sin comprender porqué en la clase test me dan error esas dos líneas:
Código: [Seleccionar]
import java.util.Scanner;

public class TestListaCantantesFamosos {
   
    public static void main (String [] args){
        [color=red]listaFamosos[/color] ListaCantantes = new [color=red]listaFamosos[/color]();
        System.out.println ("Aquí lista con unos tres cantantes: " + [color=red]listaFamosos[/color].get() + ".");
        System.out.println ("Por favor introduzca un cuarto cantante:");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println ("Por favor introduzca un quinto cantane:");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        System.out.println ("Gracias");
       
        System.out.println ("Aqui va la lista actualizada con " + ListaCantantes.getTamaño() + " cantantes");
       
    }
}

Páginas: [1] 2

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