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

Páginas: 1 2 3 4 [5]
81
Buenas!

En el ejercicio de este capitulo, se trata de contestar preguntas. El enunciado es el siguiente:

Crea un objeto de tipo Combinador y prueba a ejecutar los dos métodos disponibles pasando distintos parámetros: cadenas con más de tres caracteres, una cadena con más de tres y otra con menos de tres y ambas con menos de tres caracteres. Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?
En la clase tenemos definidos dos atributos o campos. ¿Tienen utilidad conocida a la vista del código de la clase? ¿Se usan en los métodos que tenemos definidos?


Bueno. . . aquí vamos:

Código: [Seleccionar]
package Combinacion;

public class Fusion {
    public Fusion(){} 
   
    public String pegate(String valor1, String valor2){
         if (valor1.length() >= 3 && valor2.length() >= 3){
         String combinacion = valor1.substring(0, 3) + " " + valor2.substring(0, 3);
         return combinacion;   
         }
         else { return "No aporta cadenas válidas"; }       
    }
   
    public String CombinadoSiempre (String valor_texto1, String valor_texto2) {
        int longitud_texto1 = 3; 
        int longitud_texto2 = 3;
        String CombinadoSiempre = "";
        if (valor_texto1.length() < 3) {       
            longitud_texto1 = valor_texto1.length();
        }
        if (valor_texto2.length() < 3) { longitud_texto2 = valor_texto2.length(); }
CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);
return CombinadoSiempre;
    }     
}

En el primer método dice que si valor1 y valor2 es mayor o igual a 3, procede con la combinación de caracteres.. si no es así, devuelve un mensaje diciendo que "No aporta cadenas validas".

Mientras que en el segundo método:

* Se igualan a 3, en variables diferentes, las longitudes máximas de cada palabra.
* Se iguala una variable String a un espacio vacio(se inicializa al parecer con "").
* En el primer método dice que si valor1 y valor2 es mayor o igual a 3, procede con la combinación de caracteres. Mientras que en el segundo método ejecuta.
* Cuenta la cantidad de caracteres de cada variable (valor_texto1 y valor_texto2) con length() para saber si es menor a 3. Si es menor a 3, se procede a almacenar el resultado del length() en la variable longitud_texto.
* En la variable String (CombinadoSiempre) finalmente se procede la mezcla con el numero de caracteres que saco de cada palabra.
 

Prueba 1: parámetros con cadenas con mas de tres caracteres.

A los dos métodos les escribí las cadenas "PowerBuilder" y "VisualStudio".

Resultado:



¿Tiene lógica la respuesta?

Si tiene lógica.. las dos cadenas de texto eran mayor de 3 caracteres ... condición del primer método Combinador (o Pegate ), mientras que en el segundo método (CombinadoSiempre), da igual la cantidad de caracteres que tenga, igual se ejecuta la mezcla.


Prueba 2:: parámetros con cadena de mas de 3 caracteres y otra con menos de 3.

A los dos métodos les escribí las cadenas "PowerBuilder" y "C#".

Resultado:



¿Tiene lógica la respuesta?

Tambíen tiene lógica. En el primer método, como mi segunda cadena de caracteres tan solo tiene 2 letras, no se cumple la segunda condicion del if:

if (valor1.length() >= 3 && valor2.length() >= 3)

Consecuencia a esto, su return del "no aportar caracteres validos".
 
En el segundo método, todo se vale como ya sabemos... la mezcla va, porque va.


Prueba 3: Ambos parámetros con menos de 3 caracteres...

Creo que no hace falta ver... el resultado de esto es igual al anterior... el primer método devolvera "No aporta cadenas válidas", mientras que el segundo siempre combinara.

Citar
Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?

Pues si. Java considera los espacios como caracteres... el método CombinadoSiempre, siempre va a combinar lo que le des como parámetro... hasta espacios.

Citar
En la clase tenemos definidos dos atributos o campos. ¿Tienen utilidad conocida a la vista del código de la clase? ¿Se usan en los métodos que tenemos definidos?

Nunca se usan los atributos... a mi clase si se ve bien, no le declare ni un atributo y funciona todo normal. El constructor, vi que siempre se le debe crear, no importa que este vació. La verdad, opino yo que los atributos declarados en esta clase son inutiles ya que nunca se usan en ningún método...

Ruego y agradezco sus correcciones!!! mil gracias!

82
Buenos dias!!!

Me presento a entregar el ejercicio del capitulo 49, método substring:

Crea una clase que carezca de atributos y cuyo constructor esté vacío. En dicha clase debe existir un método tipo función que reciba 3 cadenas de texto y devuelva la cadena de texto combinación de: las dos primeras letras de la primera cadena, seguidas por un espacio en blanco, seguidas de las cuatro primeras letras de la segunda cadena, seguidas de un guión medio y seguido de las 6 primeras letras de la tercera cadena.

Mi clase:

Código: [Seleccionar]
package Combinacion;

public class Fusion {
    public Fusion(){} 
   
    public String pegate(String valor1, String valor2, String valor3){
        String combinacion = valor1.substring(0, 2) + " " + valor2.substring(0, 4) + "-" + valor3.substring(0,6);
        return combinacion;
    }
}

La prueba:

Código: [Seleccionar]
public class Main {
    public static void main(String[]args){
    Combinacion.Fusion mezcla;
    mezcla = new Combinacion.Fusion();
    System.out.println(mezcla.pegate("Spiderman", "Hamburguesa", "MegamanXZ"));
    }
}




Fin del capitulo!

83
Hola!! buenas noches!!!

Aquí les traigo otro ejercicio, sobre la clase Math y sus funciones! API Java!!. El enunciado dice asi:

Crea una clase denominada miniCalculadoraEjemplo que tenga dos métodos (basados en el uso de métodos de la clase Math): un método valorAbsoluto que recibe un número de tipo double y devuelva su valor absoluto, y otro método raizCuadrada que reciba un número de tipo double y devuelva su raíz cuadrada.

Un ejercicio bastante sencillo! Aquí mi clase miniCalculadoraEjemplo:

Código: [Seleccionar]
package miniCalculadora;

public class miniCalculadoraEjemplo {
    public miniCalculadoraEjemplo(){}
   
    public double valorAbsoluto(double abs){
        return Math.abs(abs);
    }
   
    public double raizCuadrada(double num){
        return Math.sqrt(num);
    }
}

Muy util la informacion sobre el API java! Muchas gracias de nuevo!

84
Hola de nuevo!, espero que la estén pasando super!

Aquí vengo con una entrega sobre este capitulo! el enunciado del ejercicio dice así!:

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.

Definimos un objeto abstracto aqui!! mi clase multiplicadorDieces:

Código: [Seleccionar]
package Multiplicador;

public class multiplicadorDieces {
    public multiplicadorDieces(){
    }
   
    public double multiplicadorPorDieces(double num1, int num2){
        double op = 1;
        for(int i = 1; i<=num2; i++){
            op = op * 10;
        }
        op = op * num1;
        return op;
    }
}

Ya lo probé, me da las mismas respuestas... solo que con decimales largos, pero es claro que si redondeas, da la misma respuesta:

255
254.99999999999997


Perfecto, me hubiese gustado saber como redondeo en java, pero creo que es clase de mas adelante!!

Muchas gracias!   :D

85
Saludos!

Aquí traigo otro ejercicio mas! uso de clases que utilizan objetos de otras clases. Aquí el enunciado:

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.

Aquí la clase SalonCasa:

Código: [Seleccionar]
package Home;

public class SalonCasa {
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }
   
    public void setNumeroDeTelevisores(int ingresoNumeroDeTelevisores){
        numeroDeTelevisores = ingresoNumeroDeTelevisores;
    }
   
    public void setTipoSalon(String ingresoTipoSalon){
        tipoSalon = ingresoTipoSalon;
    }
   
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }
   
    public String getTipoSalon(String ingresoTipoSalon){
        return tipoSalon;
    }
}


La clase CocinaCasa:

Código: [Seleccionar]
package Home;

public class CocinaCasa {
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
    public void setEsIndependiente(boolean ingresoIndependiente){
        esIndependiente = ingresoIndependiente;
    }
   
    public void setNumeroDeFuegos(int ingresoNumeroDeFuego){
        numeroDeFuegos = ingresoNumeroDeFuego;
    }
   
    public boolean getEsIndependiente(){
        return esIndependiente;
    }
   
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }
}

Y por ultimo... la clase Casa:

Código: [Seleccionar]
package Home;

public class Casa {
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   
    public Casa(){
        superficie = 0;
        direccion = "Desconocido";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
    public void setSuperficie(double ingresoSuperficie){
        superficie = ingresoSuperficie;
    }
   
    public void setDireccion(String ingresoDireccion){
        direccion = ingresoDireccion;
    }
   
    public double getSuperficie(){
        return superficie;
    }
   
    public String getDireccion(){
        return direccion;
    }
}

Los setters y getters, los coloque por el tema de consulta y configuracion de atributos. Ademas en la entrega del ejercicio del capitulo pasado, habia leido que cualquiera clase que use atributos, se le debe colocar sus getter y setters.

Muchas Gracias nuevamente

86
Buenas tardes!

Hoy vengo a hacerles una entrega de la practica de este capitulo del curso de programación Java, dice así el enunciado:

Define una clase Profesor 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 otro constructor que no reciba parámetros. Crea los métodos para poder establecer y obtener los valores de los atributos.

Se crea dos constructores en la clase (con parámetros y sin parámetros.):

Código: [Seleccionar]
package profe;

public class Profesor {
    private String nombre, apellido;
    private int edad;
    private boolean especialista, casado;
   
    public Profesor(String vNombre, String vApellido, boolean vEspecialista, boolean vCasado, int vEdad){
        nombre = vNombre;
        apellido = vApellido;
        edad = vEdad;
        especialista = vEspecialista;
        casado = vCasado;
    }
   
    public Profesor(){
        nombre = "";
        apellido = "";
        edad = 0;
        especialista = false;
        casado = false;
    }
   
    public void setNombre(String ingresoNombre){
        nombre = ingresoNombre;
    }
   
    public void setApellido(String ingresoApellido){
        apellido = ingresoApellido;
    }
   
    public void setEdad(int ingresoEdad){
        edad = ingresoEdad;
    }
   
    public void setEspecialista(boolean ingresoEspecialista){
        especialista = ingresoEspecialista;
    }
   
    public void setCasado(boolean ingresoCasado){
        casado = ingresoCasado;
    }
   
    public String getNombre(){
        return nombre;
    }
   
    public String getApellido(){
        return apellido;
    }
   
    public int getEdad(){
        return edad;
    }
   
    public boolean getEspecialista(){
        return especialista;
    }
   
    public boolean getCasado(){
        return casado;
    }
}

Ahora los invocaría de las dos formas!
profesor1 = new Profesor();
profesor2 = new Profesor("Daniel","Phillips",false,false,20);


Finalmente, mi pregunta es: ¿Es buena idea tener dos constructores en una clase?

Citar
Cuando más de un constructor o método tienen el mismo nombre pero distintos parámetros decimos que el constructor o método está sobrecargado. La sobrecarga de constructores o métodos permite llevar a cabo una tarea de distintas maneras (por ejemplo crear un objeto Persona con un nombre ya establecido o crearlo sin nombre establecido).

87
Muy buenas tardes

Hoy tengo que quedarme en la U hasta las 3:00 PM... y bueno decidí invertir el tiempo en este curso!, no entregue nada en el día de ayer por estar ocupado con asignaciones. Hoy les entrego el siguiente ejercicio que dice así:

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. Compila el código para comprobar que no presenta errores, crea un objeto y comprueba que se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto.

Aquí mi clase Bombero:

Código: [Seleccionar]

package Bomber;

public class Bombero {
   private String nombre, apellido;
   private int edad;
   private boolean casado, especialista;

   public Bombero(String vNombre, String vApellido, int vEdad, boolean vCasado, boolean vEspecialista){
       nombre = vNombre;
       apellido = vApellido;
       edad = vEdad;
       casado = vCasado;
       especialista = vEspecialista;
   }

   public void setNombre(String ingresoNombre){
       nombre = ingresoNombre;
   }
   
   public void setApellido(String ingresoApellido){
       apellido = ingresoApellido;
   }
   
   public void setEdad(int ingresoEdad){
       edad = ingresoEdad;
   }
   
   public void setCasado(boolean ingresoCasado){
       casado = ingresoCasado;
   }
   
   public void setEspecialista(boolean ingresoEspecialista){
       especialista = ingresoEspecialista;
   }

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


Por lo que pude comprender en este capitulo, ahora se quiere inicializar los atributos del constructor con las variables que se encuentran en el parámetro del mismo (Si lo he dicho mal, corrijanme .), use netbeans... se que no debo tocar el main por ahora pero quise efectuar una prueba para ver como esta vez funcionaria. Ahora al parecer (Tomando como ejemplo el problema del disco musical https://www.aprenderaprogramar.com/foros/index.php?topic=2064.0), si antes escribía por ejemplo Disco1 = new DiscoMusical();, ahora como el constructor tiene parámetros... debe ser Disco1 = new DiscoMusical("", "", 0, "", false)... Ahora al hacer esto estaría incializando mis variables de esta forma (de mas decir que también podría añadirle la info directamente sin usar ningún setter).

Aquí mi clase main (recalco, solo probaba):

Código: [Seleccionar]
package Bomber;

public class Main {

    public static void main(String[ ]args){
        Bombero bombero1;
        bombero1 = new Bombero("Daniel", "Phillips", 19, false, true);
        System.out.println(bombero1.getNombre());
        System.out.println(bombero1.getApellido());
        System.out.println(bombero1.getEdad());
        System.out.println(bombero1.getCasado());
        System.out.println(bombero1.getEspecialista());
    }
}

Y aquí la ejecución:



A decir verdad, algo nuevo para este servidor...! de mas decir que si tengo algún error, o desean ampliarme, aquí estaré para leer sus comentarios.

Muchas gracias de nuevo por sus cursos :)

88
Buenas noches...

Yo otra vez, con el ultimo ejercicio que entregare hoy! sobre las variables locales y sobrecarga de nombres.. el enunciado dice:

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Motor (que representa el motor de una bomba para mover fluidos). Define una clase Motor considerando los siguientes atributos de clase: tipoBomba (int), tipoFluido (String), combustible (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 tipo función que devuelva un booleano (true o false) denominado dimeSiMotorEsParaAgua() donde se cree una variable local booleana motorEsParaAgua de forma que si el tipo de motor tiene valor 1 tomará valor true y si no lo es tomará valor false. El método debe devolver la la variable local booleana motorEsParaAgua.

Aquí el código!!

Código: [Seleccionar]
package Motorsito;

public class Motor {
    int tipoBomba;
    String tipoFluido, combustible;
   
    public Motor(){
        tipoBomba = 0;
        tipoFluido = "";
        combustible = "";
    }
   
    public void setTipoBomba(int ingresoTipoBomba){
        tipoBomba = ingresoTipoBomba;
    }
   
    public void setTipoFluido(String ingresoTipoFluido){
        tipoFluido = ingresoTipoFluido;
    }
   
    public void setCombustible(String ingresoCombustible){
        combustible = ingresoCombustible;
    }
   
    public boolean dimeSiMotorEsParaAgua(){
        boolean motorEsParaAgua = false;
        if (tipoBomba == 1){
            motorEsParaAgua = true;
        }
        else {
            motorEsParaAgua = false;
        }
        return motorEsParaAgua;
    }     
   
    public int getTipoBomba(){
        return tipoBomba;
    }
   
    public String getTipoFluido(){
        return tipoFluido;
    }
   
    public String getCombustible(){
        return combustible;
    }
   
}

Ya descanso por hoy... es que al darme cuenta que cumplo ya el mes de estar en esta pagina, y apenas ir por el punto 38... bueno, aunque se justifica por la Universidad x___x

Si tengo algo incorrecto no duden en comentarlo! mil gracias :)

89
Buenas noches!!

Vengo tambien a presentarles el ejercicio sobre switch en java!!! Enunciado:

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Motor (que representa el motor de una bomba para mover fluidos). Define una clase Motor considerando los siguientes atributos de clase: tipoBomba (int), tipoFluido (String), combustible (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 tipo procedimiento denominado dimeTipoMotor() donde a través de un condicional switch hagas lo siguiente:

a) Si el tipo de motor es 0, mostrar un mensaje por consola indicando “No hay establecido un valor definido para el tipo de bomba”.

b) Si el tipo de motor es 1, mostrar un mensaje por consola indicando “La bomba es una bomba de agua”.

c) Si el tipo de motor es 2, mostrar un mensaje por consola indicando “La bomba es una bomba de gasolina”.

d) Si el tipo de motor es 3, mostrar un mensaje por consola indicando “La bomba es una bomba de hormigón”.

e) Si el tipo de motor es 4,mostrar un mensaje por consola indicando “La bomba es una bomba de pasta alimenticia”.

f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido para tipo de bomba”.


Aqui el codigo! :)

Código: [Seleccionar]
package Motorsito;

public class Motor {
    int tipoBomba;
    String tipoFluido, combustible;
   
    public Motor(){
        tipoBomba = 0;
        tipoFluido = "";
        combustible = "";
    }
   
    public void setTipoBomba(int ingresoTipoBomba){
        tipoBomba = ingresoTipoBomba;
    }
   
    public void setTipoFluido(String ingresoTipoFluido){
        tipoFluido = ingresoTipoFluido;
    }
   
    public void setCombustible(String ingresoCombustible){
        combustible = ingresoCombustible;
    }
   
    public void dimeTipoMotor(){       
        switch(tipoBomba){
            case 0:
                System.out.println("“No hay establecido un valor definido para el tipo de bomba”.");
            break;
            case 1:
                System.out.println("La bomba es una bomba de agua.");
            break;
            case 2:
                System.out.println("La bomba es una bomba de gasolina.");
            break;
            case 3:
                System.out.println("La bomba es una bomba de hormigón.");
            break;
            case 4:
                System.out.println("La bomba es una bomba de pasta alimenticia.");
            break;
            default:
                System.out.println("No existe un valor válido para tipo de bomba.");
            break;
        }
    }
   
    public int getTipoBomba(){
        return tipoBomba;
    }
   
    public String getTipoFluido(){
        return tipoFluido;
    }
   
    public String getCombustible(){
        return combustible;
    }
   
}

Se le agradecería comentar cualquier error... mil gracias .. ;)

90
Buenas noches

Vengo aquí con una entrega del ejercicio sobre los else and if, el enunciado dice así:

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


La segunda tuve que leerlo varias veces, (así que si ven algo incorrecto me avisan :) ) aquí el código:

Código: [Seleccionar]
package RuedaFire;

public class Rueda {
    String tipo;
    double grosor;
    double diametro;
    String marca;
   
    public Rueda(){
        tipo = "";
        grosor = 0;
        diametro = 0;
        marca = "";
    }
   
    public void setTipo(String ingresoTipo){
        tipo = ingresoTipo;
    }
   
    public void setGrosor(double ingresoGrosor){
        grosor = ingresoGrosor;
    }
   
    public void setDiametro(double ingresoDiametro){
        diametro = ingresoDiametro;
    }
   
    public void setMarca(String ingresoMarca){
        marca = ingresoMarca;
    }
   
    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.4)||(diametro <= 1.4 && diametro > 0.8 && grosor < 0.25)){
            System.out.println("El grosor para esta rueda es inferior al recomendado.");
        }
    }
   
    public String getTipo(){
        return tipo;
    }
   
    public double getGrosor(){
        return grosor;
    }
   
    public double getDiametro(){
        return diametro;
    }
   
    public String getMarca(){
        return marca;
    }
   
}

Muchas gracias por su atención!

91
Buenas noches

Aquí les dejo la entrega del ejercicio sobre los operadores lógicos.

Dadas las variables de tipo int con valores A = 5, B = 3, C = -12 indicar si la evaluación de estas expresiones daría como resultado verdadero o falso:

1. A > 3  Verdadero
2. B < C  Falso
3. A * B == 15 Verdadero
4. C / B == -10 Falso
5. (A+B == 8 ) && (A-B == 2) Verdadero
6. A > 3 && B > 3 && C < 3  Falso
7. A > C Verdadero
8. B != C Verdadero
9. A * B == -30 Falso
10. C/B == -4 Verdadero
11. (A+B == 8 ) || (A-B == 6) Verdadero
12.  A > 3 && B >= 3 && C < -3 Verdadero
13. A < C Falso
14. A == 3 Falso
15. C/B < A Verdadero
16. A + B + C == 5 Falso

Entrenamiento mental >.<, Cualquier errorsillo, se le agradecería ayuda y explicación.
Gracias!

92
Buenas tardes!

He venido aquí a colmarles la paciencia de nuevo... (Ok, solo bromeo  ::)) aqui os vengo a entregarles el ejercicio sobre operadores aritméticos, que dice así:

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

Solo voy hacer lo que dice aquí, no mas como lo había prometido... xD

Código: [Seleccionar]
package MediCenter;

public class Medico {
    private String nombre, apellido, numeroDocumentoIdentidad, especialidad;
    private int edad;
    private boolean casado;
   
    public Medico(){
        nombre = "";
        apellido = "";
        numeroDocumentoIdentidad = "";
        especialidad = "";
        edad = 0;
        casado = false;
    }
       
    public void setNombre(String ingresoNombre){
        nombre = ingresoNombre;       
    }
   
    public void setApellido(String ingresoApellido){
        apellido = ingresoApellido;
    }
   
    public void setNumeroDocumentoIdentidad (String ingresoNumeroDocumentoIdentidad){
        numeroDocumentoIdentidad = ingresoNumeroDocumentoIdentidad;
    }
   
    public void setEspecialidad (String ingresoEspecialidad){
        especialidad = ingresoEspecialidad;
    }
   
    public void setEdad(int ingresoEdad){
        edad = ingresoEdad;
    }
   
    public void setCasado(boolean ingresoCasado){
        casado = ingresoCasado;
    }
   
    public String getNombre(){
        return nombre;
    }
   
    public String getApellido(){
        return apellido;
    }
   
    public String getNumeroDocumentoIdentidad(){
        return numeroDocumentoIdentidad;
    }
   
    public String getEspecialidad(){
        return especialidad;
    }
   
    public int getEdad(){
        return edad;
    }
   
    public boolean getCasado(){
        return casado;
    }
   
     public void calculoParaMultiploEdad(){
        int moduloEdad;
        moduloEdad = edad % 5;
        moduloEdad = 5 - moduloEdad;
        System.out.println("El medico de nombre: " + nombre + " ,con especialidad: " + especialidad + " ,tendra una edad multiplo de 5 en " + moduloEdad + " años.");
    }
   
}

Espero con muchas ansias su respuesta!!
Gracias!

93
Buenos días

En esta oportunidad, quiero presentarles mi código sobre el siguiente ejercicio:

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Medico (que representa a un médico de un hospital). Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. En cada método, incluye una instrucción para que se muestre por consola un mensaje informando del cambio. Por ejemplo si cambia la especialidad del médico, debe aparecer un mensaje que diga: “Ha cambiado la especialidad del médico de nombre … . La nueva especialidad es: …”.

Hice 1 objeto medico, para no hacer tan extenso el código. Por cierto, tome nota y separe las clases. Una clase es el "Medico", la otra clase es el "Main"... vi a otro en este foro crear una clase para la lectura.. Decidí ponerlo a prueba con este código, aquí va:

Clase Main:
Código: [Seleccionar]
package MediCenter;

public class MainMedico {
    static String dato[] = new String [4];
    static int num;
    static boolean salir = false, ingresado = false, ok = false;
    static Medico medico1;
    static char elige;
   
    public static void main (String[]args){
        medico1 = new Medico();
       
        System.out.println("Buenas tardes.");
        do{
            System.out.println("Elija una de las siguientes opciones que desea realizar: ");
            System.out.println("Ingrese A para ingresar datos del medico.");
            System.out.println("Ingrese B para salir del programa.");
            elige = LeerDato.LeerCaracter();
            switch (elige){
                case 'A':
                case 'a':
                    ingresadorDato();                   
                break;
                case 'B':
                case 'b':
                    salir = true;
                break;
                default:
                    System.out.println("Caracter invalido.");
                break;
                }
        }while(salir == false);     
    }
   
    public static void ingresadorDato(){
        System.out.println("<---------------------------->");
        if (ok == false){
        System.out.println("Ingrese el nombre del medico: ");
        dato[0] = LeerDato.LeerCadena();
        System.out.println("Ingrese el apellido del medico: ");
        dato[1] = LeerDato.LeerCadena();
        System.out.println("¿Cuál es la edad del medico?: ");
        num = LeerDato.LeerNumero();
        System.out.println("Ingrese el numero de identidad del medico: ");
        dato[2] = LeerDato.LeerCadena();       
        System.out.println("Ingrese la especialidad del medico: ");
        dato[3] = LeerDato.LeerCadena();
        System.out.println("¿Es casado?: ");
        ingresado = LeerDato.LeerBooleano();
        medico1.setNombre(dato[0]);
        medico1.setApellido(dato[1]);
        medico1.setNumeroDocumentoIdentidad(dato[2]);
        medico1.setEspecialidad(dato[3]);
        medico1.setEdad(num);
        medico1.setCasado(ingresado);
        ok = true;
        }   
        else if (ok == true){
        System.out.println("Ingresa el nuevo nombre del medico: ");
        dato[0] = LeerDato.LeerCadena();
        System.out.println(medico1.getNombre() + " ahora se llama: " + dato[0] + ".");
        System.out.println("Ingresa el nuevo apellido de " + dato[0] + ".");
        dato[1] = LeerDato.LeerCadena();
        System.out.println("Antes el apellido de " + dato[0] + " era " + medico1.getApellido() + ", ahora su apellido es: " + dato[1] + ".");
        System.out.println("Ingresa la nueva edad de " + dato[0] + ".");
        num = LeerDato.LeerNumero();
        System.out.println(dato[0] + " tenia " + medico1.getEdad() + ",ahora tiene: " + num);
        System.out.println("Ingrese el nuevo numero de identidad de " + dato[0] + ".");
        dato[2] = LeerDato.LeerCadena();
        System.out.println(dato[0] + ", con numero de identidad: " + medico1.getNumeroDocumentoIdentidad() + "... ahora cambio a " + dato[2] + ".");
        System.out.println("Ingrese la nueva especialidad de " + dato[0] + ".");
        dato[3] = LeerDato.LeerCadena();
        System.out.println("La vieja especialidad de " + dato[0] + " era " + medico1.getEspecialidad() + ", ahora a cambiado a " + dato[3] + ".");
        medico1.setNombre(dato[0]);
        medico1.setApellido(dato[1]);
        medico1.setNumeroDocumentoIdentidad(dato[2]);
        medico1.setEspecialidad(dato[3]);
        medico1.setEdad(num);
        medico1.setCasado(ingresado);
        }
        System.out.println("<---------------------------->");
    }   
}

Clase medico
Código: [Seleccionar]
package MediCenter;

public class Medico {
    private String nombre, apellido, numeroDocumentoIdentidad, especialidad;
    private int edad;
    private boolean casado;
   
    public Medico(){
        nombre = "";
        apellido = "";
        numeroDocumentoIdentidad = "";
        especialidad = "";
        edad = 0;
        casado = false;
    }
   
    public void setNombre(String ingresoNombre){
        nombre = ingresoNombre;       
    }
   
    public void setApellido(String ingresoApellido){
        apellido = ingresoApellido;
    }
   
    public void setNumeroDocumentoIdentidad (String ingresoNumeroDocumentoIdentidad){
        numeroDocumentoIdentidad = ingresoNumeroDocumentoIdentidad;
    }
   
    public void setEspecialidad (String ingresoEspecialidad){
        especialidad = ingresoEspecialidad;
    }
   
    public void setEdad(int ingresoEdad){
        edad = ingresoEdad;
    }
   
    public void setCasado(boolean ingresoCasado){
        casado = ingresoCasado;
    }
   
    public String getNombre(){
        return nombre;
    }
   
    public String getApellido(){
        return apellido;
    }
   
    public String getNumeroDocumentoIdentidad(){
        return numeroDocumentoIdentidad;
    }
   
    public String getEspecialidad(){
        return especialidad;
    }
   
    public int getEdad(){
        return edad;
    }
   
    public boolean getCasado(){
        return casado;
    }
   
}


Clase LeerDato
Código: [Seleccionar]
package MediCenter;
import java.util.Scanner;

public class LeerDato {
    public LeerDato(){           
    }
   
    static char LeerCaracter(){
        Scanner in = new Scanner (System.in);
        char opcion = in.next().charAt(0);
        return opcion;
    }
   
    static String LeerCadena(){
        Scanner in = new Scanner (System.in);
        String dato = in.nextLine();
        return dato;
    }
   
    static int LeerNumero(){
        Scanner in = new Scanner (System.in);
        int num = in.nextInt();
        return num;
    }
   
    static boolean LeerBooleano(){
        Scanner in = new Scanner (System.in);
        boolean lel = in.nextBoolean();
        return lel;
    }
}

Intente primero ponerle los mensajes en la clase Medico como dice de insertarselo a cada método, pero no se me hacia posible manejar los objetos ahí... yo entendí que se deseaba insertarse los mensajes en cada método, no se si de esta forma es incorrecta o no. Aquí la ejecución:





Aquí hay por cierto, un misterio... se trata de los arreglos. Yo inicialize mi arreglo con 3 espacios originalmente, pero algo raro pasa... me suelta un "OutOfBonds", cosa que no debería ocurrir, porque con 3 estaría teniendo 4 espacios en realidad, forzosamente me vi obligado a cambiárselo a 4, que funciono:

0 = nombre
1 = apellido
2 = numero de identidad
3 = especialidad

Hace tiempo atras (no mucho) me sucedió que mi nextLine(); me dejaba un espacio, suponte que estoy insertando datos y me sale así la ejecución:

Ingrese nombre y apellido:
Cristian Grey
Ingrese cedula:
Ingrese Sexo:
Masculino
...
...

No me dejaba insertarle la cédula (en este ejemplo, originalmente era con libros) La solución que me dieron fue, volver a escribir abajo in.nextLine();... que funciono. Yo la verdad no creo que eso funcionara así, O quizá mi código se tomaba un espacio, quisiera saber porque sucedía esto (Y perdone que les aborde el tema de esta forma :S)

Código: [Seleccionar]
package ejemplo2;
import java.util.Scanner;
public class Ejemplo2 {
public static class inventario{
static String titulo[] = new String [25];
static String fecha_pub[] = new String [20];
static String autor[] = new String [30];
static int num = 0;
static int pedido = 0;
static float precio_venta = 0;
}
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
int total = 0;
boolean A = false;
String b[] = new String [21];
char resp;
do {
System.out.println("Total libros: \n" + (total = total + 1));
System.out.println("¿Cual es el titulo?: ");
inventario.titulo[total] = in.nextLine();
System.out.println("Cual es la fecha de publicacion?: ");
inventario.fecha_pub[total] = in.nextLine();
System.out.println("Quien es el autor?");
inventario.autor[total] = in.nextLine();
System.out.println("¿Cuantos libros existen?: ");
inventario.num = in.nextInt();
System.out.println("¿Cuantos ejemplares existen pedidos?");
inventario.pedido = in.nextInt();
System.out.println("¿Cual es el precio de venta?");
inventario.precio_venta = in.nextFloat();
System.out.println("Imprimiendo...");
    System.out.println("Titulo del libro "+ total +" : "+ inventario.titulo[total]);
    System.out.println("Fecha de publicacion del libro " + total + " : " + inventario.fecha_pub[total]);
    System.out.println("Autor de "+ inventario.titulo[total] + " : " + inventario.autor[total]);
    System.out.println("Numero de libros existentes: " + inventario.num);
    System.out.println("Ejemplares pedidos: " + inventario.pedido);
    System.out.println("Precio de venta: " + inventario.precio_venta);
System.out.println("¿Hay mas libros?");
resp = in.next().charAt(0);
in.nextLine();   // <------------ La solución del problema
if (resp == 'N' ||  resp == 'n'){
A = true;
}
}while (A != true);   
}
}

Mil gracias y espero con ansias sus respuestas!

94
Ahora si hago las cosas como son, y mil disculpas de nuevo!!

Demore un poco por la Universidad  :-\ .. aquí les dejo a ver si ando en lo correcto o no:

1. Obtener la duración de una canción expresada como un número decimal en minutos (por ejemplo podría ser 3,22 minutos) recibiendo como dato el número de canción dentro del disco.

Se trata de un método tipo función.

public double getDuracion()

2. Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto). Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.

Se trata de un método tipo procedimiento. Por lo que veo con este método ingresas todos los elementos del disco, y el anterior que se vio lo que hace es pedir la duración de uno de los temas que inserto con este método.

public void setDuracion (double ingresoDuracion)

3. Obtener la duración del disco completo (suma de las duraciones de cada una de las canciones).

Es otra función consultora, al parecer devuelve el resultado de otro método procedimiento que sumara todas las canciones del disco.

public double getDuracionTotal()

4. Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11).

Por ultimo, este sera un método tipo procedimiento, ya que al añadirle una canción mas, estamos haciendo una operación.. por añadirle otro tema mas y a consecuencia de eso, su duración aumentaría.

public void setCancion (String ingresoTitulo, Double ingresoDuracionCancion)

Gracias de nuevo, si estoy en lo incorrecto seria de mucha ayuda su corrección y explicación... y disculpen de nuevo, por la otra metida de pata que hice! jajaja.

(Y sip, no mas definiciones de metodos y clases en el main... tendre cautela de que no vuelva a pasar)

95
Hola a todos!!!

Vengo a hacer una entrega de este ejercicio con el siguiente enunciado:

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical. Define las signaturas para métodos dentro dicha clase e indica si deberán ser procedimientos o funciones para los siguientes objetivos planteados:

1) Obtener la duración de una canción expresada como un número decimal en minutos (por ejemplo podría ser 3,22 minutos) recibiendo como dato el número de canción dentro del disco.

2) Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto). Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.

3) Obtener la duración del disco completo (suma de las duraciones de cada una de las canciones).

4) Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11).


Bien, hice el programa a mi estilo (pero claro, siguiendo según entendí el enunciado lo que piden!) Nos están pidiendo ahora ingresar los datos de cada disco al programa... Imagine un menú donde el usuario elija que acción realizar y demás! para los temas musicales, decidí crear un arreglo para los nombres, y otro arreglo para la duración de cada canción (Un arreglo bidimensional... también podía ser...) para el menú, cree una variable char para que el usuario ingresara la opción que quería ejecutar, al elegir el usuario la opción, use algo que no suelo utilizar... en la Universidad la profe se enojaba porque no me veía usarlo nada... se trata de la sentencia Switch, decidí usarlo por practica, razón principal porque sigo el curso! los arreglos tendrán un máximo de 20 espacios.

El constructor contrendra las variables nombreDisco, autor, formato, indiceCancion, duracion, nombreCancion y duracionCancion. Sera los atributos que contendrá cada objeto que creemos.

Aquí presento el código:
Código: [Seleccionar]
package DiscMan;
import java.util.Scanner;

public class DiscoMusical {
    private String nombreDisco, autor, formato, nombreCancion[];
    private int indiceCancion;
    private double duracion, duracionCancion[];
    private static int salir, elige, num, full;
    private static char opcion;
   
    public DiscoMusical(){
        nombreDisco = "";
        autor = "";
        formato = "";
        duracion = 0;
        indiceCancion = 0;
        nombreCancion = new String [20];
        duracionCancion = new double [20];
    }
   
   
    public static void main (String[]args){
    String data;
    int can = 0;
    DiscoMusical Disco1, Disco2, Disco3;   
    Disco1 = new DiscoMusical();
    Disco2 = new DiscoMusical();
    Disco3 = new DiscoMusical();
    Scanner in = new Scanner(System.in);   
    do{
        System.out.println("Bienvenido seas a este programa, ¿que actividad deseas ejecutar?");
        System.out.println("Ingresa A para añadir datos al disco.");
        System.out.println("Ingrese B para añadir una cancion al disco.");
        System.out.println("Ingrese C para obtener la duracion total del disco y sus datos.");
        System.out.println("Ingrese D para salir del programa");
        opcion = in.next().charAt(0);
        switch(opcion){
            case 'A':
            case 'a':
                System.out.println("***************************************************");
                System.out.println("A cual de los 3 discos deseas añadirle informacion?");
                elige = in.nextInt();
                if (elige == 1){
                    System.out.println("Has elegido el disco 1!");
                    System.out.println("Ingesa el nombre del disco 1: ");
                    data = in.next();
                    Disco1.setNombreDisco(data);
                    System.out.println("Ingresa el autor del disco 1: ");
                    data = in.next();
                    Disco1.setAutor(data);
                    System.out.println("Ingresa el formato del disco 1: ");
                    data = in.next();
                    Disco1.setFormato(data);
                    System.out.println("<------------------------------------------------->");
                    System.out.println("Ahora ingrese, ¿cuantas canciones tiene el albúm?: ");
                    num = in.nextInt();
                    if (num > 20) {
                        System.out.println("Solo se pueden almacenar un maximo de 20 canciones.");
                    }
                    else {
                    Disco1.setIndiceCancion(num);
                    can = 0;
                    for (int i = 0; i < Disco1.getIndiceCancion(); i++){
                        can++;
                        System.out.println("Ingrese el nombre de la cancion " + can + " :");
                        Disco1.nombreCancion[i] = in.next();
                        System.out.println("Ingrese la duracion de la cancion " + can + " :");
                        Disco1.duracionCancion[i] = in.nextDouble();
                        Disco1.duracion = Disco1.duracion + Disco1.duracionCancion[i];
                    }
                    full++;
                    }
                    System.out.println("Ingreso exitoso.");
                    System.out.println("***************************************************");
                }
                else if (elige == 2) {
                    System.out.println("Has elegido el disco 2!");
                    System.out.println("Ingesa el nombre del disco 2: ");
                    data = in.next();
                    Disco2.setNombreDisco(data);
                    System.out.println("Ingresa el autor del disco 2: ");
                    data = in.next();
                    Disco2.setAutor(data);
                    System.out.println("Ingresa el formato del disco 2: ");
                    data = in.next();
                    Disco2.setFormato(data);
                    System.out.println("<------------------------------------------------->");
                    System.out.println("Ahora ingrese, ¿cuantas canciones tiene el albúm?: ");
                    num = in.nextInt();
                    if (num > 20) {
                        System.out.println("Solo se pueden almacenar un maximo de 20 canciones.");
                    }
                    else {
                    Disco2.setIndiceCancion(num);
                    can = 0;
                    for (int i = 0; i < Disco2.getIndiceCancion(); i++){
                        can++;
                        System.out.println("Ingrese el nombre de la cancion " + can + " :");
                        Disco2.nombreCancion[i] = in.next();
                        System.out.println("Ingrese la duracion de la cancion " + can + " :");
                        Disco2.duracionCancion[i] = in.nextDouble();
                        Disco2.duracion = Disco2.duracion + Disco2.duracionCancion[i];
                    }
                    full++;
                    }
                    System.out.println("Ingreso exitoso.");
                    System.out.println("***************************************************");
                }
                else if (elige == 3){
                    System.out.println("Has elegido el disco 3!");
                    System.out.println("Ingesa el nombre del disco 3: ");
                    data = in.next();
                    Disco3.setNombreDisco(data);
                    System.out.println("Ingresa el autor del disco 3: ");
                    data = in.next();
                    Disco3.setAutor(data);
                    System.out.println("Ingresa el formato del disco 3: ");
                    data = in.next();
                    Disco3.setFormato(data);
                    System.out.println("<------------------------------------------------->");
                    System.out.println("Ahora ingrese, ¿cuantas canciones tiene el albúm?: ");
                    num = in.nextInt();
                    if (num > 20) {
                        System.out.println("Solo se pueden almacenar un maximo de 20 canciones.");
                    }
                    else {
                    Disco3.setIndiceCancion(num);
                    can = 0;
                    for (int i = 0; i < Disco3.getIndiceCancion(); i++){
                        can++;
                        System.out.println("Ingrese el nombre de la cancion " + can + " :");
                        Disco3.nombreCancion[i] = in.next();
                        System.out.println("Ingrese la duracion de la cancion " + can + " :");
                        Disco3.duracionCancion[i] = in.nextDouble();
                        Disco3.duracion = Disco3.duracion + Disco3.duracionCancion[i];
                    }
                    full++;
                    }
                    System.out.println("Ingreso exitoso.");
                    System.out.println("***************************************************");
                }
                else
                    System.out.println("No se encuentra el disco.");
                System.out.println("***************************************************");
            break;
            case 'B':
            case 'b':   
                System.out.println("Elige a cual disco quieres agregarle una nueva cancion: ");
                elige = in.nextInt();
                if (elige == 1){
                    if (Disco1.indiceCancion >= 20){
                        System.out.println("Se ha llegado al limite de canciones.");
                    }
                    else{
                    System.out.println("***************************************************");
                    Disco1.indiceCancion++;
                    System.out.println("Ingrese el nombre de la nueva cancion: ");
                    Disco1.nombreCancion[Disco1.indiceCancion] = in.next();
                    System.out.println("Ingrese la duracion de la nueva cancion: ");
                    Disco1.duracionCancion[Disco1.indiceCancion] = in.nextDouble();
                    Disco1.duracion = Disco1.duracion + Disco1.duracionCancion[Disco1.indiceCancion];
                    System.out.println("***************************************************");
                    }
                }
                else if (elige == 2){
                    if (Disco2.indiceCancion >= 20){
                        System.out.println("Se ha llegado al limite de canciones.");
                    }
                    else{
                    System.out.println("***************************************************");
                    Disco2.indiceCancion++;
                    System.out.println("Ingrese el nombre de la nueva cancion: ");
                    Disco2.nombreCancion[Disco2.indiceCancion] = in.next();
                    System.out.println("Ingrese la duracion de la nueva cancion: ");
                    Disco2.duracionCancion[Disco2.indiceCancion] = in.nextDouble();
                    Disco2.duracion = Disco2.duracion + Disco2.duracionCancion[Disco2.indiceCancion];
                    System.out.println("***************************************************");
                    }
                }
                else if (elige == 3){
                    if (Disco3.indiceCancion >= 20){
                        System.out.println("Se ha llegado al limite de canciones.");
                    }
                    else{
                    System.out.println("***************************************************");
                    Disco3.indiceCancion++;
                    System.out.println("Ingrese el nombre de la nueva cancion: ");
                    Disco3.nombreCancion[Disco3.indiceCancion] = in.next();
                    System.out.println("Ingrese la duracion de la nueva cancion: ");
                    Disco3.duracionCancion[Disco3.indiceCancion] = in.nextDouble();
                    Disco3.duracion = Disco3.duracion + Disco1.duracionCancion[Disco3.indiceCancion];
                    System.out.println("***************************************************");
                    }
                }
                else
                    System.out.println("No se encuentra el disco.");
                System.out.println("***************************************************");                         
            break;
            case 'C':
            case 'c':
                System.out.println("***************************************************");
                System.out.println("¿A cual disco quieres elegir para ser su informacion?: ");
                elige = in.nextInt();
                if(elige == 1){
                   System.out.println(Disco1.getNombreDisco());
                   System.out.println(Disco1.getAutor());
                   System.out.println(Disco1.getFormato());
                   System.out.println("Duracion del disco 1: " + Disco1.duracion);
                   System.out.println("Canciones del disco ( canciones: " + Disco1.getIndiceCancion() + "): ");
                   for(int i = 0; i <= Disco1.getIndiceCancion(); i++){
                       System.out.println(Disco1.nombreCancion[i]);
                   }
                   System.out.println("***************************************************");
                }
                else if (elige == 2){
                   System.out.println(Disco2.getNombreDisco());
                   System.out.println(Disco2.getAutor());
                   System.out.println(Disco2.getFormato());
                   System.out.println("Duracion del disco 1: " + Disco2.duracion);
                   System.out.println("Canciones del disco ( canciones: " + Disco2.getIndiceCancion() + "): ");
                   for(int i = 0; i <= Disco2.getIndiceCancion(); i++){
                       System.out.println(Disco2.nombreCancion[i]);
                   }
                   System.out.println("***************************************************");
                }
                else if (elige == 3){
                   System.out.println(Disco3.getNombreDisco());
                   System.out.println(Disco3.getAutor());
                   System.out.println(Disco3.getFormato());
                   System.out.println("Duracion del disco 1: " + Disco3.duracion);
                   System.out.println("Canciones del disco ( canciones: " + Disco3.getIndiceCancion() + "): ");
                   for(int i = 0; i <= Disco3.getIndiceCancion(); i++){
                       System.out.println(Disco3.nombreCancion[i]);
                   }
                   System.out.println("***************************************************");
                }
                else
                    System.out.println("No se encuentra el disco.");
                System.out.println("***************************************************");
            break;
            case 'D':
            case 'd':
                salir++;
            break;
            default:
                System.out.println("El caracter que has introducido no es valido.");
            break;
        }
    }while(salir < 1);
    System.out.println("Gracias por tu atencion. <( º c º )> ");
    }
   
    public void setNombreDisco(String ingresoNombreDisco){
        nombreDisco = ingresoNombreDisco;
    }
   
    public void setAutor(String ingresoAutor){
        autor = ingresoAutor;
    }
   
    public void setFormato(String ingresoFormato){
        formato = ingresoFormato;
    }
   
    public void setIndiceCancion(int ingresoIndiceCancion){
        indiceCancion = ingresoIndiceCancion;
    }
   
    public int getIndiceCancion(){
        return indiceCancion;
    }
   
    public String getNombreDisco(){
        return nombreDisco;
    }
   
    public String getAutor(){
        return autor;
    }
   
    public String getFormato(){
        return formato;
    }
}

Utilize metodos y funciones a la vez como se puede apreciar... tengo un pequeño inconveniente a la hora de imprimir mi arreglo... a continuación se muestra:



Aquí se puede apreciar la ejecución del menú principal del programa.




*Elegimos la primera opción, claramente porque no tenemos ningún dato en el disco. Si apretáramos de una vez la tecla C se nos imprimiría todos los datos vacíos (o nulos).

*Como acto siguiente nuestro programa nos preguntara cual disco vamos a ingresarle los datos... aquí como podemos apreciar, estamos eligiendo uno de los 3 objetos ya creados de la clase DiscoMusical. Si llegáramos a teclear un numero mayor a 3, nuestro programa respondería mandando el siguiente mensaje: "No se encuentra el disco.".

*Luego de ingresar los datos, el programa nos preguntara cuantas canciones nuestro disco tendrá. Esto sera el indice de los arreglos que declare mas arriba....





Aquí como se puede ver, elegimos la opción B que es agregar una canción mas al disco. Aquí lo que se necesitaba hacer era sumarle 1 a nuestra variable indiceCancion del objeto para poder agregarle un dato mas. Cada vez que aprieto B se le sumara, hasta el limite que es 20.




Aqui solo se ve cuando le estamos añadiendo datos al objeto 2.


Bueno, aquí va el pequeño inconveniente y las preguntas:



*Mi duración... tiene un montón de números a la derecha! En visual basic, para no imprimir esos numerotes, uso la funcion format.. en powerbuilder también (que por cierto es super similar al visual basic):

Visual Basic: textbox1.text = Format(total,"#.00")
PowerBuilder: st_num.text = String(total, "#.00")

Mi pregunta seria, ¿que escribo para que java me redondee a dos decimales?

*El programa me cuenta bien las canciones que he agregado, me imprime todos los nombres... pero, ¿Porque me sale ese null?, la verdad busque y busque cual pudo ser ese error... pero no pude ver que hice mal... si igualo la variable i del for a 1 me imprimira 2 canciones en vez de las 3... :S

Agradecería mucho su ayuda! Muchas gracias por cierto, yo no sabia como manejar perfectamente las clases, constructores y demás!! Gracias a ustedes mi duda se ha esclarecido !!  ;D

96
Hola a todos!! me presento otra vez, haciendo la entrega del siguiente ejercicio del cap 24, el enunciado es así:

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical. Define una clase DiscoMusical análoga a la que hemos visto para taxis, pero en este caso considerando los siguientes atributos de clase: titulo (String), autor (String), añoEdicion (int), formato (String), digital (boolean). Define un constructor y los métodos para poder establecer y obtener los valores de los atributos. Compila el código para comprobar que no presenta errores. Crea un objeto y comprueba sus métodos como hemos hecho con los objetos Taxi.

Vamos al código!!, este fue la primera fase:

Código: [Seleccionar]
package DiscMan;

public class DiscoMusical {
    private String titulo,autor, formato;
    private int añoEdicion;
    private boolean digital;
   
       
    public DiscoMusical(){
        titulo = "";
        autor = "";
        formato = "";
        añoEdicion = 0;
        digital = false;
    }
   
    public void setTitulo (String ingresoTitulo){
        titulo = ingresoTitulo;
    }
   
    public void setAutor (String ingresoAutor){
        autor = ingresoAutor;
    }
   
    public void setFormato (String ingresoFormato){
        formato = ingresoFormato;
    }
   
    public void setAñoEdicion (int ingresoAñoEdicion){
        añoEdicion = ingresoAñoEdicion;
    }
   
    public void setDigital (boolean ingresoDigital){
        digital = ingresoDigital;
    }
   
    public String getTitulo(){
        return titulo;
    }
   
    public String getAutor(){
        return autor;
    }
   
    public String getFormato(){
        return formato;
    }
   
    public int getAñoEdicion(){
        return añoEdicion;
    }
   
    public boolean getDigital(){
        return digital;
    }   
}

La segunda parte era comprobar el método... le hice la prueba a cada uno ( set y get) Pude notar que en blueJ la cosa se facilita mucho, por desgracia estoy rebelde y seguí con el netbeans, jajajaja xD

Lo que tuve que hacer de ademas fue insertarle un metodo main a la clase (ya que el netbeans no me deja correrlo sin un main...) para poder crear el objeto "disco1"y poder añadir los datos e imprimir con el System.out:

Código: [Seleccionar]
package DiscMan;

public class DiscoMusical {
    private String titulo,autor, formato;
    private int añoEdicion;
    private boolean digital;
   
    public static void main (String [] args){
    DiscoMusical Disco1;
    Disco1 = new DiscoMusical();
    Disco1.setTitulo("Duck Sauce");
    Disco1.setAutor("NRG (Skrillex, Kill The Noise, Milo & Otis Remix)");
    Disco1.setAñoEdicion(2015);
    Disco1.setFormato("MP3");
    Disco1.setDigital(true);
    System.out.println("Titulo del disco: " + Disco1.getTitulo());
    System.out.println("Autor: " + Disco1.getAutor());
    System.out.println("Año de edicion: " + Disco1.getAñoEdicion());
    System.out.println("Formato: " + Disco1.getFormato());
    System.out.println("Digital? : " + Disco1.getDigital());
}
       
    public DiscoMusical(){
        titulo = "";
        autor = "";
        formato = "";
        añoEdicion = 0;
        digital = false;
    }
   
    public void setTitulo (String ingresoTitulo){
        titulo = ingresoTitulo;
    }
   
    public void setAutor (String ingresoAutor){
        autor = ingresoAutor;
    }
   
    public void setFormato (String ingresoFormato){
        formato = ingresoFormato;
    }
   
    public void setAñoEdicion (int ingresoAñoEdicion){
        añoEdicion = ingresoAñoEdicion;
    }
   
    public void setDigital (boolean ingresoDigital){
        digital = ingresoDigital;
    }
   
    public String getTitulo(){
        return titulo;
    }
   
    public String getAutor(){
        return autor;
    }
   
    public String getFormato(){
        return formato;
    }
   
    public int getAñoEdicion(){
        return añoEdicion;
    }
   
    public boolean getDigital(){
        return digital;
    }   
}

Y este es el resultado:



Como siempre, algún consejo, tip, si me he equivocado en algo o ampliarme la idea se los agradecería muchísimo :)

97
Hola a todos los presentes, soy yo de nuevo!! Mi clase estará bien??... el encabezado es así:

"Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Persona. Define una clase Persona análoga a la que hemos visto para taxis, pero en este caso considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String). Define un constructor y los métodos para poder establecer y obtener los valores de los atributos."

Mi código:


Código: [Seleccionar]
package Person;
public class persona {
    private String nombre, apellido, NumeroDocumentoIdentidad;
    private int edad;
    private boolean casado;
   
    public persona(){
        nombre = "";
        apellido = "";
        NumeroDocumentoIdentidad = "";
        edad = 0;
        casado = false;
    }
   
    public void setNombre (String IngresoNombre){
     nombre = IngresoNombre;   
    }
   
    public void setApellido (String IngresoApellido){
        apellido = IngresoApellido;
    }
   
    public void setNumeroDocumentoIdentidad (String IngresoIdentidad){
        NumeroDocumentoIdentidad = IngresoIdentidad;
    }
   
    public void setEdad (int IngresoEdad){
        edad = IngresoEdad;
    }
   
    public void setEstadoCivil (boolean IngresoCasado){
        casado = IngresoCasado;
    }
   
    public String getNombre () {
        return nombre;
    }
   
   public String getApellido() {
       return apellido;
   }
   
   public String getIdentidad () {
       return NumeroDocumentoIdentidad;
   }
   
   public int getEdad(){
       return edad;
   }
   
   public boolean getEstadoCivil(){
       return casado;
   }
}

Si tengo algo erróneo o me quieran ampliar el concepto!! agradecería mil veces su respuesta.

Muchas gracias por su cooperación!!!

98
Hola, saludos a todos.

Vengo aquí a consultar, estoy leyendo el curso sobre programación en java (iniciando apenas) y vine a consultar si mi esquema sobre los objetos y clases (Punto numero 20 del curso) esta en lo correcto. La verdad en la U siempre nos dicen sobre estas cosas, pero no tuve clara la idea (o no estaba seguro si la mía estaba en la correcta) sobre que exactamente era clase y objeto. Bien, la practica se nos mando a hacer un esquema en el que distingamos una clase y un objeto con aviones. Díganme si estoy equivocado o no, y si lo estoy, una explicación no estaría mal por favor.  :(



Los atributos de un avión, serian:

* Los aviones principalmente están hechos de aluminio
* Vuelan
* Transportan personas (sea de guerra, carga, pasajero aunque sea 1 persona se mueve)


Quien me podría corregir, ampliar el concepto o alguna otra cosa útil??

Páginas: 1 2 3 4 [5]

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