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

Páginas: 1 2 3 4 5 [6] 7 8
101
Buenos días.

El ejercicio es correcto.

Un saludo.

102
Buenos días.

El ejercicio es correcto.Creo que el error que te da es porque al incializar el objeto le debes de dar un valor int a valorCasado o a valorEspecialista.Estas dos variables al ser de tipo boolean solo pueden recibir como valor true o false.

Un saludo

103
Buenas tardes.

Si que te sobrarían los if.
Al codificar
Código: [Seleccionar]
switch(tipoBomba){           
           case 0:
...

es lo mismo que
Código: [Seleccionar]
if (tipoBomba == 0){por lo que al final le has pedido al programa que haga 2 veces lo mismo.

Un saludo.

104
Buenos días.
Creo que has puesto las 2 veces el código en Java.
Un saludo.

105
Buenos días.

Tu código tiene varios errores:

1º.Crea un constructor para inicializar los atributos.
2º.Los métodos setter son de tipo procedimiento (se usan para dar un valor al atributo y no devuelven ningún valor),por lo que tienes que declararlos como void.
3º.Al método comprobarDimensiones no es necesario que le pases parámetros.
4º.En el método main ya no tienes que declarar los atributos de nuevo sino que debes crear un objeto del tipo Rueda:   
Código: [Seleccionar]
Rueda rueda = new Rueda(); y usar los métodos de la clase con el objeto.

El programa quedaría:

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

public class Rueda
{
    private String tipo,marca;
    private double grosor,diametro;

    public Rueda () {       
        tipo = "";
        grosor = 0;
        diametro = 0;
        marca = "";
    }

    public void setDiametro(double diametro){this.diametro=diametro;}       

    public void setGrosor(double grosor){this.grosor=grosor;}               

    public double getDiametro(){return diametro;}                           

    public double getGrosor(){return grosor;}

    public void comprobarDimensiones()
    {
        if (diametro > 1.4)
        {
            System.out.println("La rueda es para un vehiculo grande");
        }
        else if (diametro <= 1.4 && diametro> 0.8)
        {
            System.out.println("La rueda es para un vehiculo mediano");
        }
        else
        {
            System.out.println("La rueda es para un vehiculo pequeño");
        }

        if (diametro > 1.4 && grosor < 0.25 || diametro <= 1.4 && diametro > 0.8 && grosor < 0.25)
        {
            System.out.println("El grosor para esta rueda es inferior al recomendado");
        }
    }

    public static void main(String[] args)
    { 
        Rueda rueda = new Rueda();
        Scanner keyboard = new Scanner(System.in);

        System.out.println("Cual es el diametro ?");
        double entradaDeTeclado = keyboard.nextDouble();
        rueda.setDiametro(entradaDeTeclado);
        System.out.println("Cual es el grosor ?");
        entradaDeTeclado = keyboard.nextDouble();
        rueda.setGrosor(entradaDeTeclado);
        rueda.comprobarDimensiones();

    }
}

Un saludo

106
Buenas noches.

El código es correcto.
Podrías ahorrarte las variables numeroCaracteres y primeraLetra y usar directamente los métodos.
Además usando el método equalsIgnoreCase() en lugar de equals() ya no hace diferencia entre si la letra es mayúscula o minúscula.
Quedaría:
Código: [Seleccionar]
import java.util.Scanner;

public class PruebaTexto1{

    public static void main (String [] args){

        System.out.println("Empezamos el programa");
        System.out.println("Por favor introduzca una cadena por teclado");
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner(System.in);//Creacion de un objeto scanner
        entradaTeclado = entradaEscaner.nextLine();
        if (entradaTeclado.length()<5){System.out.print("La palabra introducida tiene menos de 5 caracteres");}
        else if(entradaTeclado.length()==5||entradaTeclado.length()<=15){System.out.print("La palabra introducida tiene entre 5 y 15 caracteres");}
        else{System.out.print("La palabra introducida tiene mas de 15 caracteres");}
        if (entradaTeclado.substring(0,1).equalsIgnoreCase("a")||entradaTeclado.substring(0,1).equalsIgnoreCase("á")){System.out.print(" y empieza por A");}
        else{System.out.print(" y no empieza por A");}
    }
}

En cuanto a la pregunta que hacías de por que no se podía usar == , es porque el método equals y el operador = = hacen dos pruebas completamente diferentes para la igualdad. Mientras que el método equals compara los caracteres contenidos en una String, el operador = = compara dos referencias de objeto para ver si se refieren a la misma instancia. Por tanto, no podemos usar el signo == por que esta sería una comparación binaria de punteros a memoria y no nos devolvería el valor correcto

107
Buenos días.
Tu método también sería correcto.
Lo único que quitaría es la línea
Código: [Seleccionar]
System.out.println ("El resultado de la combinación es " + combinacionSiempre + ".");
       
Tu método ya devuelve el valor combinacionSiempre.
Un saludo.

108
Buenos días.

Creo que ya se donde estaba la confusión.Al enunciado que tu dabas solución es al ejemplo que aparece en la entrega.Ese ejercicio ya viene resuelto en la misma entrega.

Yo te puse la solución del ejercicio propuesto al final de la entrega.

Código: [Seleccionar]
public class TestCombinador
{
   public static void main (String[] args)
    {
        Combinador objetoCombinador=new Combinador(); //Aquí creo el objeto de tipo Combinador
/*Prueba con dos cadenas de más de 3 caracteres */
        System.out.print("Texto1=Elefante \nTexto2=Nutria\n");
        System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Nutria")); //método Combinacion
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Nutria")); //método CombinadoSiempre
/*Prueba con una cadena de más de 3 caracteres y otra de menos de 3 caracteres */
        System.out.print("\n\nTexto1=Elefante \nTexto2=Do\n");
        System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Do"));  //método Combinacion
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Do"));  //método CombinadoSiempre
 /*Prueba con dos cadenas de menos de 3 caracteres */
        System.out.print("\n\nTexto1=Da \nTexto2=Do\n");
        System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Da","Do"));
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Da","Do"));
/*Prueba con dos cadenas vacías */
        System.out.print("\n\nTexto1="+'"'+'"'+" \nTexto2="+'"'+'"');
        System.out.print("\nResultado método Combinacion = "+objetoCombinador.Combinacion("",""));
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("",""));
    }
}

Un saludo

109
Buenos días.
En realidad el ejercicio no pedía modificar el código del ejemplo.Solo pedía crear un objeto tipo Combinador y realizar una serie de pruebas.Yo habría hecho esto:
Código: [Seleccionar]
public class TestCombinador
{
   public static void main (String[] args)
    {
        Combinador objetoCombinador=new Combinador();
        System.out.print("Texto1=Elefante \nTexto2=Nutria\n");
        System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Nutria"));
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Nutria"));
        System.out.print("\n\nTexto1=Elefante \nTexto2=Do\n");
        System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Elefante","Do"));
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Elefante","Do"));
        System.out.print("\n\nTexto1=Da \nTexto2=Do\n");
        System.out.print("Resultado método Combinacion = "+objetoCombinador.Combinacion("Da","Do"));
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("Da","Do"));
        System.out.print("\n\nTexto1="+'"'+'"'+" \nTexto2="+'"'+'"');
        System.out.print("\nResultado método Combinacion = "+objetoCombinador.Combinacion("",""));
        System.out.print("\nResultado método CombinadoSiempre = "+objetoCombinador.CombinadoSiempre("",""));
    }
}

En cuanto a las respuestas,están las dos bien.
Un saludo

110
Buenos días.

Puedes ver comentarios de éste ejercicio en el enlace:
https://www.aprenderaprogramar.com/foros/index.php?topic=5372.0

Un saludo

111
Buenos días.

El ejercicio es correcto.
Lo único que cambiaría sería quitar la vatriable String a y modificaría la línea:
Código: [Seleccionar]
if (entradaTeclado.substring(0,1).equals(a)){System.out.println("La palabra introducida empieza por la letra A");}por
Código: [Seleccionar]
if (entradaTeclado.substring(0,1).equalsIgnoreCase("a")){System.out.println("La palabra introducida empieza por la letra A");}para que diera igual que la letra "a" fuera minúscula o mayúscula.
Un saludo.

112
Buenos días.

Lo que hice fue inicializar la variable salir antes del bucle do-while.Le di valor 0.Luego hice que el bucle se repitiera mientras salir fuera igual a 0.Con esto se repetiría infinitamente.

En el switch en los casos en que opcion es igual a Altura,Anchura o Profundidad,a la variable salir le doy 1 como valor.Asi al ser el valor de salir diferente de 0 saldremos del bucle.

En cuanto a si ibas ien como lo estabas haciendo,depende de lo que quieras que haga el programa.Yo en principio lo que tienes lo dividiría en 2 clases:

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

public class Volumen_Caja_03 {

    private double anchura;
    private double altura;
    private double profundidad;   

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

    public void setAnchura(double anchura) {
        this.anchura = anchura;
    }

    public void setProfundidad(double profundidad) {
        this.profundidad = profundidad;
    }   

    public void setDatos() {

        int salirDo;
        int salirWhilePrincipal=0;
        int salirWhile2;
        while (salirWhilePrincipal==0){
            do {
                salirWhile2=0;
                salirDo=0;
                System.out.println("Introduce el nombre del parametro que deseas modificar: ");
                Scanner sc = new Scanner(System.in);
                String opcion = sc.nextLine();
                double nuevo;
                switch (opcion) {
                    case "Anchura":
                    System.out.println("Ingresa el nuevo valor para Anchura: ");
                    nuevo = sc.nextDouble();
                    this.anchura = nuevo;
                    salirDo=1;
                    break;
                    case "Altura":
                    System.out.println("Ingresa el nuevo valor para Altura: ");
                    nuevo = sc.nextDouble();
                    this.altura = nuevo;salirDo=1;
                    break;
                    case "Profundidad":
                    System.out.println("Ingresa el nuevo valor para Profundidad: ");
                    nuevo = sc.nextDouble();
                    this.profundidad = nuevo;salirDo=1;
                    break;
                    default:
                    System.out.println("Opcion invalida intentalo de nuevo");
                }

            } while ( salirDo==0);
            while (salirWhile2==0){

                System.out.println("Deseas modificar otro parametro? (S/N) ");
                Scanner sr = new Scanner(System.in);
                sr = new Scanner(System.in);
                String respuesta = sr.nextLine();
                if (respuesta.equalsIgnoreCase("s")){salirWhilePrincipal=0;salirWhile2=1;}
                if (respuesta.equalsIgnoreCase("n")){salirWhilePrincipal=1;salirWhile2=1;}
            }
        }
    }

    double getAltura() {
        return altura;
    }

    double getAnchura() {
        return anchura;
    }

    double getProfundidad() {
        return profundidad;
    }

    public double getVolumen() {
        double volumen = anchura * altura * profundidad;
        return volumen;
    }
}


Código: [Seleccionar]
public class g
{
     public static void main(String[] args) {
        Volumen_Caja_03 Caja3 = new Volumen_Caja_03();

        Caja3.setAltura(4);
        Caja3.setAnchura(5);
        Caja3.setProfundidad(3);
        System.out.println("La caja inicial tiene las siguientes dimensiones: "+Caja3.getAnchura()+" metros de anchura, "+Caja3.getAltura()+" metros de altura, y "+Caja3.getProfundidad()+" metros de profundidad");
        System.out.println("El volumen de la caja inicial es de: "+Caja3.getVolumen()+" metros");
        System.out.println("");     
        Caja3.setDatos();
        System.out.println(""); 
        System.out.println("La caja modificada tiene las siguientes dimensiones: "+Caja3.getAnchura()+" metros de anchura, "+Caja3.getAltura()+" metros de altura, y "+Caja3.getProfundidad()+" metros de profundidad");
        System.out.println("El volumen de la caja modificada es de: "+Caja3.getVolumen()+" metros");
    }
}

Revisa ien el programa y si no entiendes algo me dices.
Un saludo

113
Buenos días.

Puedes hacerlo así:

Código: [Seleccionar]
public void setDatos(String opcion, double nuevo) {
       
        int salir=0;
        do {

            Scanner sc = new Scanner(System.in);
            System.out.println("Introduce el nombre del parametro deseas modificar: ");
            opcion = sc.nextLine();

            switch (opcion) {
                case "Anchura":
                System.out.println("Ingresa el nuevo parametro: ");
                nuevo = sc.nextDouble();
                this.anchura = nuevo;
                salir=1;
                break;
                case "Altura":
                System.out.println("Ingresa el nuevo parametro: ");
                nuevo = sc.nextDouble();
                this.altura = nuevo;salir=1;
                break;
                case "Profundidad":
                System.out.println("Ingresa el nuevo parametro: ");
                nuevo = sc.nextDouble();
                this.profundidad = nuevo;salir=1;
                break;
                default:
                System.out.println("Opcion invalida intentalo de nuevo");
            }

        } while ( salir==0);         
Un saludo

114
Buenos días.

En el ejercicio te pedía los métodos para establecer y obtener los atributos.
Además en el método CalculoParaMultiploEdad () te decía que no recibe parámetros

Yo lo habría hecho asi:
Código: [Seleccionar]
public class Medico1
{
    //Atributos de los objetos de la clase

    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private String numeroDocumentoIdentidad;
    private String especialidad;

    //Constructor de la clase   
    public Medico1 () {

        nombre = "";
        apellidos = "";
        edad = 0;
        casado = false;
        numeroDocumentoIdentidad = "";
        especialidad = "";
    }//Fin constructor

    //Método para establecer atributos de los objetos
    public void setNombre(String nombre){this.nombre=nombre;}

    public String getNombre(){return nombre;}

    public void setApellidos(String apellidos){this.apellidos=apellidos;}

    public String getApellidos (){return apellidos ;}

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

    public int getEdad(){return edad;}

    public void setCasado(boolean casado){this.casado=casado;}

    public boolean getCasado(){return casado ;}

    public void setNumeroDocumentoIdentidad(String numeroDocumentoIdentidad){this.numeroDocumentoIdentidad=numeroDocumentoIdentidad;}

    public String getNumeroDocumentoIdentidad (){return numeroDocumentoIdentidad;}

    public void setEspecialidad(String especialidad){this.especialidad=especialidad;}

    public String getEspecialidad (){return especialidad;}

    public void CalculoParaMultiploEdad (){
        if (edad%5==0){edad=0;}
        else{edad = 5-(edad%5);}
        System.out.println("El médico " + nombre + apellidos + " con estado civil " + casado + " y especialidad " + especialidad + " tendrá una edad múltiplo de 5, dentro de " + edad + " años.");
    }//Fin método.
}

Un saludo

115
Buenos días.
El ejercicio en general es correcto.
Lo único que cambiaría un poco es el método getDatosCasa.
Código: [Seleccionar]
public String getDatosCasa () {
        int numeroDeFuegos = cocina.getNumeroDeFuegos ();
        int numeroDeTelevisores = salonCasa.getNumeroDeTelevisores ();
        String tipoSalon = salonCasa.getTipoSalon ();
        String saberEsIndependiente = "";

        if (cocina.getEsIndependiente() == false) {
            saberEsIndependiente = "no es independiente";
        }       
        else {
            saberEsIndependiente = "es independiente";
        }         
        String datosCasa = "La casa tiene una superficies de: " + superficie + " metros cuadrados, se encuentra ubicada en la dirección: " + direccion + ", la cocina: " + saberEsIndependiente + ", cuenta con: " + numeroDeFuegos + " fuegos, cuenta con: " + numeroDeTelevisores + " televisores y una sala del tipo: " + tipoSalon;
        System.out.println (datosCasa);
        return datosCasa;
    }

Un saludo

116
Buenos días.

El ejercicio en general es correcto.
Lo único que cambiaría es el método set que pusiste por éste:
Código: [Seleccionar]
public void setTipoBomba (int valorTipoBomba) {
        tipoBomba = valorTipoBomba;       
    }

Cuando crees un método para establecer el valor de un atributo mejor nombrarlo por el nombre de éste.Y no añadas nada más dentro de este método.Los setter son solo para dar valor a los atributos.

El ejercicio también pedía los métodos para obtener el valor de los atributos,co lo que añadiría este método:
Código: [Seleccionar]
public int getTipoBomba(){return tipoBomba;}
Un saludo

117
Buenos días.

Yo lo habría hecho así:

Código: [Seleccionar]
public class Rueda
{
    private String tipo;
    private double grosor;
    private double diametro;
    private String marca;

    public Rueda () {       
        tipo = "";
        grosor = 0;
        diametro = 0;
        marca = "";
    }
   
    /*En el ejercicio se pide crear los métodos para poder establecer
    y obtener los valores de los atributos.*/
    public void setDiametro(double diametro){this.diametro=diametro;}       
    public void setGrosor(double grosor){this.grosor=grosor;}               
    public double getDiametro(){return diametro;}                           
    public double getGrosor(){return grosor;}
    //Habría que hacer lo mismo con tipo y marca
   
    public void comprobarDimensiones_1 () {       
        if(diametro>1.4){
            System.out.println("La rueda es para un vehículo grande");
        }
        else if(diametro>0.8 && diametro<=1.4){
            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(diametro > 1.4 && grosor < 0.4 || diametro <= 1.4 && diametro > 0.8 && grosor < 0.25){
            System.out.println("El grosor para esta rueda es inferior al recomendado");
        }
    }
}

118
Buenos días.

La primera pregunta está bien.

En la segunda si que se puede llamar a un método externo de un objeto "A" que ha sido declarado y creado cuyo constructor esta vacío.Por ejemplo:

Código: [Seleccionar]
public class Profesor1{//Inicio de la clase
    private String nombre; 
    public Profesor1(){ }
    //Metodo para establecer valores
    public void setNombre (String nombre){
        this.nombre = nombre;
    }
 public String getNombre(){return nombre;}
}//Cierre de la clase
Código: [Seleccionar]
public class Programa{
    public static void main(String[] args) {
        Profesor1 profesor=new Profesor1();
        profesor.setNombre("Jose");
        System.out.println(profesor.getNombre());
    }
}

Sería correcto.

En la tercera pregunta,la primera parte sería una llamada a un método externo .La segunda parte está bien.

Un saludo.

119
Buenos días.

El ejercicio es correcto.
En el constructor sin parámetros yo inicializaría las variables.
Código: [Seleccionar]
public Profesor1(){//Constructor sin parametros
         nombre = " ";
        apellidos = " ";
        edad = 0;
        casado = false;
        especialista = false;
    }

Un saludo

120
Buenos días.

Yo la clase Cuadrupedo la haría asi:

Código: [Seleccionar]
/* Ejemplo Interface Iterator aprenderaprogramar.com */
public class Cuadrupedo{
    private int idCuadrupedo;
    private String nombreCuadrupedo;       
    public Cuadrupedo(int idCuadrupedo, String nombreCuadrupedo) {
        this.idCuadrupedo = idCuadrupedo;
        this.nombreCuadrupedo = nombreCuadrupedo;       
    }   

    public String getNombreCuadrupedo(){return nombreCuadrupedo;} 
    public int getIdCuadrupedo(){return idCuadrupedo;}

    @Override
    public String toString() {
        return "Animal-> ID: "+idCuadrupedo+" Nombre: "+nombreCuadrupedo+"\n";
    }
}

Así podríamos reutilizar esta clase para cualquier nomre de animal.

El programa principal quedaría:

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Random;

public class Programa2 {
    public static void main(String arg[]) {
        List<Cuadrupedo> lp = new ArrayList<Cuadrupedo>(); // El tipo es List y lo implementamos con ArrayList
        String[] Cuadrupedos={"Leon","Gato","Perro","Elefante"};
        Random r = new Random();
        Cuadrupedo temp = null;       
        String tipoCuadrupedo;
        int numeroLeones =0;
        int numeroGatos =0;
        int numeroPerros = 0;
        int numeroElefantes = 0;

/*Aquí introduciríamos los 10000 animales que pedía el ejercicio*/
        for(int i=1;i<10001;i++){lp.add(new Cuadrupedo(i,Cuadrupedos[r.nextInt((0)+4)]));}
        Iterator<Cuadrupedo> it = lp.iterator();       
        while(it.hasNext()){ 
            temp = it.next();

            tipoCuadrupedo=temp.getNombreCuadrupedo();
            switch (tipoCuadrupedo){
                case "Leon":
                numeroLeones++;
                break;
                case "Gato":
                numeroGatos ++;
                break;
                case"Perro":
                numeroPerros ++;
                break;
                case "Elefante":
                numeroElefantes ++;
                break;
            }

/*Con ésto seleccionaríamos los animales con id múltiplo de 1000 para mostrarlos por consola*/
            if (temp.getIdCuadrupedo()%1000==0){
            System.out.println(temp);}
        }

        System.out.println("Hay " + numeroLeones +" Leones,"+numeroGatos +" Gatos,"+numeroPerros +" Perros y "+numeroElefantes +" Elefantes");
    }
}


Un saludo

Páginas: 1 2 3 4 5 [6] 7 8

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