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.


Temas - micaelasol

Páginas: [1]
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
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!

3
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!

4
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!

5
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

6
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!

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

8
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!!");   
       
    }
}

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

10
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!

11
Aquí está mi propuesta de respuesta del ejercicio CU00665B del curso aprenda a programar Java como si estuviera en primero de aprenderaprogramar. Solo que en la clase test me aparece un error y no se cómo solucionarlo.

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

public class ListaCantantesFamosos {
    private String nombres;
    public ArrayList<String> ListaFamosos;
   
    public String listaFamosos (String nombres){
        ListaFamosos = new ArrayList<String>();
        ListaFamosos.add ("Ariana Grande");
        ListaFamosos.add ("Dua Lipa");
        ListaFamosos.add ("Taylor Swift");
        return nombres;
    }
   
    public int getTamaño () {
        return ListaFamosos.size();
    }
   
    public void addFamosos (String valor_famosos){
        ListaFamosos.add(valor_famosos);
    }
   
    public void numeroCantantes(){
        for (int i = 0; i<ListaFamosos.size(); i++){
            if (i<ListaFamosos.size()){
                System.out.println ("Cantante" + (i+1) + " " + ListaFamosos.get(i));
            }else{System.out.println("No existe nombre para la posición solicitada");}
        }
    }
   
}


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

public class TestListaCantantesFamosos {
   
    public static void main (String [] args){
        ListaFamosos ListaCantantes = new ListaFamosos();
        //System.out.println ("Aquí lista con unos tres cantantes: " + ListaCantantesFamosos.getlistaFamosos() + ".");
        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");
       
    }
}
Muchas gracias!

12
Hola. Aquí van las respuestas del ejercicio de la clase Stack en el API de Java código CU00664B del curso básico de programación Java de aprenderaprogramar.

Citar
¿Cómo se llama el método para consultar el objeto en la cima de la pila?

Respuesta: Peek()

Citar
¿Cómo se llama el método para consultar si la pila está vacía?

Respuesta: empty()

Citar
¿El método pop podríamos clasificarlo como tipo procedimiento, como tipo función, o como tipo mixto (procedimiento y función)?


Respuesta: yo creo que tipo mixto ya que mueve el objeto a la cima del stack (tipo procedimiento: realiza operaciones sin devolver nada) y nos devuelve también, ese objeto como el valor de la función (tipo función: nos devuelve algo con la expresión “return”).


Ahora quiero preguntar algo, ya que este método pop(), al igual que en el peek() y push(), tienen tipo "E" que supuestamente por lo que leí es "un parámetro de tipo en pila " pero no termino de entender si es un tipo primitivo o es un tipo especial de esa clase?

Muchas gracias!

13
Hola, después de haber estado muchos días con este código por fin lo terminé y aquí lo comparto.
 
Espero que esté bien. Corresponde a la entrega CU00662B del programa formativo de programación orientada a objetos con Java desde cero de aprenderaprogramar.


Citar
EJERCICIO

Crea una clase en cuyo método main ejecutes una comparación letra a letra usando equals de dos palabras usando bucles. Por ejemplo si las palabras son “avispa” y “ave” el programa debe dar como resultado: ¿Letra 1 igual en las dos palabras? True. ¿Letra 2 igual en las dos palabras? True ¿Letra 3 igual en las dos palabras? False ¿Letra 4 igual en las dos palabras? La palabra 2 no tiene letra 4 ¿Letra 5 igual en las dos palabras? La palabra 2 no tiene letra 5 ¿Letra 6 igual en las dos palabras? La palabra 2 no tiene letra 6.


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

public class comparaciónLetras {
   
    private String texto1, texto2;
    private int palabraMasCorta, palabraMasLarga;
   
    public static void main (String [] args){
        String texto1 = "";
        String texto2 = "";
        int palabraMasCorta = 0;
        int palabraMasLarga = 0;
       
        System.out.println ("Ingrese la primera palabra");
        Scanner valorScanner1 = new Scanner(System.in);
        texto1 = valorScanner1.nextLine();
        System.out.println ("Ingrese la segunda palabra");
        Scanner valorScanner2 = new Scanner(System.in);
        texto2 = valorScanner2.nextLine();
       
        if (texto1.length()<texto2.length()){
            palabraMasCorta = texto1.length();
            palabraMasLarga = texto2.length();
        }else{
            palabraMasCorta = texto2.length();
            palabraMasLarga = texto1.length();
        }       
       
        for (int i=0;i < palabraMasLarga;i++){

            if (i<palabraMasCorta){
                System.out.print("¿Letra "+(i+1)+" igual en las dos palabras? ");
                System.out.print(texto1.substring(i,i+1).equals(texto2.substring(i,i+1))+"\n");
            }
            else{
                System.out.print("La palabra "+ palabraMasCorta +" no tiene letra "+(i+1)+"\n");
            }
           
        }
       
    }
}


Muchas gracias! ;)

14
Hola, dejo mi respuesta al ejercicio CU00659B del tutorial de programación Java desde cero de aprenderaprogramar.

Citar
Crea una clase con un método main que pida una entrada de teclado y usando un bucle while, el método length de la clase String y el método substring de la clase String, muestre cada una de las letras que componen la entrada. Por ejemplo si se introduce “ave” debe mostrar:

Letra 1: a
Letra 2: v
Letra 3: e


Código:

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

public class claseWhile {
   
    public static void main (String [] args) {
       
        Scanner entradaEscaner = new Scanner (System.in);
        System.out.println ("Introduzca una palabra");
        String palabra = entradaEscaner.nextLine ();
       
        int i = 0;
       
        while (i < palabra.length()) {
            System.out.println ("Letra " + (i+1) + ": " + palabra.substring (i, i+1));
            i++;
        }
   
        //with do..while
       
        int contador = 0;
        do{
           System.out.println ("Contando..." + (contador+1) + ": " + palabra.substring (i, i+1));
           contador +=1;
        }while (palabra.length()>contador);
       
    }
   
}

15
Hola a todos! Aquí va mi respuesta del ejercicio CU00657B del programa formativo programador Java desde cero de aprenderaprogramar.

La cita dice:

Citar
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”.

Puedes comprobar si tus respuestas son correctas consultando en los foros aprenderaprogramar.com.

No la he podido terminar: el punto A, si lo hice:
Citar
a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.
Pero el B, no entiendo como hacerlo. Se que es con el método "startsWith", pero ya después no se como seguirlo.
Citar
b) Si la cadena introducida comienza por la letra a.


Código:

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

public class ClaseMetodoMain {
   
    public static void main (String [] args){
       
        Scanner entradaEscaner = new Scanner (System.in);

        String entradateclado = "";
       
        System.out.println ("Introduzca una palabra");
       
        entradaTeclado = entradaEscaner.nextLine ();
       
        if (palabra.length() < 5 ){
            System.out.println ("La cadena introducida tiene menos de 5 caracteres");
        } else if (palabra.lenght() >= 5 &&  palabra.lenght() < 15){
            System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres");
        } else if (palabra.lenght() >= 15 ) {
            System.out.println ("La cadena introducida tiene más de 15 caracteres");
        }
       
    }
   
    public boolean startsWith (String prefix){
        //Poner si la palabra introducida epieza con la letra A o no
    }
   
}

Muchas gracias.

16
Hola a todos!  Aquí comparto la resolución original del ejercicio CU00642B:


Clase Casa:

Código: [Seleccionar]
public class Casa {

    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocinaCasa;
   
    public Casa (){
        superficie = 0.0;
        direccion = "";
        salonCasa = new SalonCasa ();
        cocinaCasa = new CocinaCasa ();
    }
   
    public Casa (double superficieCasa, String direccionCasa, SalonCasa salonCasaCasa, CocinaCasa cocinaCasaCasa){
        superficie = superficieCasa;
        direccion = direccionCasa;
        salonCasa = new SalonCasa ();
        cocinaCasa = new CocinaCasa ();
    }
   
    public void setSuperficie (double valorSuperficie){
        superficie = valorSuperficie;
    }
   
    public void setDireccion (String valorDireccion){
        direccion = valorDireccion;
    }
   
    public void setSalonCasa (SalonCasa valorSalonCasa){
        salonCasa = valorSalonCasa;
    }
   
    public void setCocinaCasa (CocinaCasa valorCocinaCasa){
        cocinaCasa = valorCocinaCasa;
    }
   
    public double getSuperficie () {return superficie;}
   
    public String getDireccion () {return direccion;}
   
    public SalonCasa getSalonCasa () {return salonCasa;}
   
    public CocinaCasa getCocinaCasa () {return cocinaCasa;}
   
}

Además, quiero mencionar que después le agregué a mi código algunas modificaciones para que te aparezca en una pantalla toda la información, quisiera pedir si me lo podrían corregir:


Clase Casa:

Código: [Seleccionar]
public class Casa {
   
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocinaCasa;
    private int numeroDeTelevisores;
    private String tipoSalon;
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public Casa (){
        superficie = 0.0;
        direccion = "";
        salonCasa = new SalonCasa ();
        cocinaCasa = new CocinaCasa ();
        numeroDeTelevisores = 0;
        tipoSalon = "";
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
    public Casa (double superficieCasa, String direccionCasa, SalonCasa salonCasaCasa, CocinaCasa cocinaCasaCasa){
        superficie = superficieCasa;
        direccion = direccionCasa;
        salonCasa = new SalonCasa ();
        cocinaCasa = new CocinaCasa ();
    }
   
    public void setSuperficie (double valorSuperficie){
        superficie = valorSuperficie;
    }
   
    public void setDireccion (String valorDireccion){
        direccion = valorDireccion;
    }
   
    public void setSalonCasa (SalonCasa valorSalonCasa){
        salonCasa = valorSalonCasa;
    }
   
    public void setCocinaCasa (CocinaCasa valorCocinaCasa){
        cocinaCasa = valorCocinaCasa;
    }
   
    public void setNumeroDeTelevisores (int valorNumeroDeTelevisores){
        numeroDeTelevisores = valorNumeroDeTelevisores;
    }
   
    public void setTipoSalon (String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }
   
    public void setEsIndependiente (boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
   
    public void setNumeroDefuegos (int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public void respuestasPreguntasCasa  () {
        System.out.println ("Los principales datos de esta casa son: superficie, " + superficie + " y direccioón, " + direccion + ". Además, podemos decir que el salón de la casa es " + tipoSalon + " y hay " + numeroDeTelevisores + " televisores. Por último, vamos a mencionar que la cocina tiene " + numeroDeFuegos + " fuegos en la hornalla y que es " + esIndependiente + " su independencia.");
    }
   
    public double getSuperficie () {return superficie;}
   
    public String getDireccion () {return direccion;}
   
    public SalonCasa getSalonCasa () {return salonCasa;}
   
    public CocinaCasa getCocinaCasa () {return cocinaCasa;}
   
    public int getNumeroDeTelevisores () {return numeroDeTelevisores;}
   
    public String getTipoSalon () {return tipoSalon;}
   
    public boolean getEsIndependiente () {return esIndependiente;}
   
    public int getNumeroDeFuegos () {return numeroDeFuegos;}
   
}

Muchas gracias!!

17
Hola! Aquí va el desarrollo de la actividad CU00641B del tutorial pdf Java de aprenderaprogramar.

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. Compila el código para comprobar que no presenta errores, crea un objeto de tipo Casa. Comprueba que se inicializan correctamente consultando el valor de sus atributos después de haber creado los objetos. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.


Clase Casa:

Código: [Seleccionar]
public class Casa {
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocinaCasa;
   
    public Casa (double superficieCasa, String direccionCasa, SalonCasa salonCasaCasa, CocinaCasa cocinaCasaCasa){
        superficie = superficieCasa;
        direccion = direccionCasa;
        salonCasa = new SalonCasa ();
        cocinaCasa = new CocinaCasa ();
    }
   
    public void setSuperficie (double valorSuperficie){
        superficie = valorSuperficie;
    }
   
    public void setDireccion (String valorDireccion){
        direccion = valorDireccion;
    }
   
    public void setSalonCasa (SalonCasa valorSalonCasa){
        salonCasa = valorSalonCasa;
    }
   


Clase SalonCasa

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


CocinaCasa

Código: [Seleccionar]
public class CocinaCasa {
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa (){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
    public void setEsIndependiente (boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
   
    public void setNumeroDeFuegos (int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public boolean getEsIndependiente () {return esIndependiente;}
   
    public int getNumeroDeFuegos () {return numeroDeFuegos;}
   
}

Muchas gracias.

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