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

Páginas: [1]
1
Hola Ogramar.
Gracias por la devolución. Tomo nota de las sugerencias y/o correcciones.
Saludos

2
Hola Ogramar.
Totalmente de acuerdo con lo expresado. El desarrollo no cumple con la condición del enunciado (Los nombres de ciudades deben almacenarse en un array multidimensional cuyo primer índice sea el número asignado a cada país y el segundo índice el número asignado a cada ciudad.), deberé practicar mejor la lectura e interpretación antes de generar los códigos.
Muchas gracias y saludos.

3
Buen día comunidad de aprenderaprogramar.com, presento código de posible solución al ejercicio N#2 de la lección de referencia.
EJERCICIO Nº 2
Ahora vamos a jugar a la “Lotería primitiva”. Para ello, se pedirá al usuario que introduzca 6 números enteros comprendidos entre el 1 y el 49 ambos incluidos. No estará permitido repetir número. Una vez elegidos los seis números el programa nos mostrará nuestros 6 números así como la combinación ganadora (ordenada de menor a mayor). Esta combinación constará de 6 números entre 1 y 49 elegidos
al azar por el programa. Finalmente nos dirá cuántos aciertos hemos tenido y nos preguntará si queremos volver a jugar.
Ejemplo de ejecución:
Elige 6 numeros entre el 1 y el 49.
Elige el numero 1 : 3
Elige el numero 2 : 8
Elige el numero 3 : 14
Elige el numero 4 : 2
Elige el numero 5 : 34
Elige el numero 6 : 38
Numeros Elegidos : 3 8 14 2 34 38
Combinación ganadora : 6 14 21 27 30 48
Has acertado : 1 números
Quieres probar otra vez ? (S/N) : n
Adiós

Código: [Seleccionar]
package CU00909C;
import CU00903C.EntradaPorTeclado;
import java.util.Arrays;
/**
 * Write a description of class LoteriaPrimitiva here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (22-Ago-2017) - Ejercicio propuesto #2 por aprenderaprogramr.com
 */
public class LoteriaPrimitiva {
private NumeroAleatorio nuevoAleatorio;
private EntradaPorTeclado eTcl = new EntradaPorTeclado();
private int contador,num;
private int[] combGanadora = new int[6];
private int[] numsElegidos = new int[6];
//Constructor de la clase
public LoteriaPrimitiva(){
nuevoAleatorio = new NumeroAleatorio();
this.combGanadora = combGanadora;
this.numsElegidos = numsElegidos;
}

public int[] setCombGanadora(int rangoInferior, int rangoSuperior) {
do {//Ciclo 'do-while' para asegurar que el array no contenga elementos repetidos.
contador=0;
for(int i=0;i<combGanadora.length;i++) {
nuevoAleatorio.setNuevoNumero(rangoInferior,rangoSuperior);
combGanadora[i] = nuevoAleatorio.getNuevoNumero();
}
//Bloque que verifica si hay números repetido y en caso afirmativo
//incrementa el contador en una unidad
for(int j=0;j<combGanadora.length;j++){
num = combGanadora[j];
for(int k=j+1;k<combGanadora.length;k++){
if(num == combGanadora[k]){
contador++;
}
}
}
//Bloque en desuso. -Utilizado para verificación mientras se generaba código
/*if(contador>0){
System.out.println("El array tiene elementos repetidos");
} else {
System.out.println("El array no tiene elementos repetidos");
}*/
}//Mientras el contador indique números repetidos el ciclo se repite
while (contador > 0);
//Retorno si no hay numeros repetidos
return combGanadora;
}

public void mostrarCombGanadora() {
Arrays.sort(combGanadora); //Función de la clase Arrays que ordena ascendente
System.out.print("Combinación ganadora : ");
for (int tmp:combGanadora){
System.out.print(tmp+", ");
}
System.out.println("\n");
}

public int[] setNumeroElegido() {
int j = 0;
System.out.println("Elige 6 números entre el 1 y el 49.");
do {
for (int i=0;i<numsElegidos.length;i++) {
System.out.print("Elige el número " +(i+1)+ ": ");
eTcl.setNumero();
if(eTcl.getEntradaNumero() >= 1){
if (eTcl.getEntradaNumero() <= 49) {
numsElegidos[i] = eTcl.getEntradaNumero();
j++;
} else {System.out.println("Número no válido"); break;}
} else {
System.out.println("Número no válido"); break;}
}
}
while (j<numsElegidos.length);
return numsElegidos;
}


public void mostrarNumerosElegidos() {
System.out.print("Números elegidos : ");
for (int tmp:numsElegidos) {
System.out.print(tmp+", ");
}
System.out.println("\n");
}
//Método que compara los números alamcenados en los dos arrays y cuenta los repetidos
//Se evalúa cuantos aciertos ocurren.
public int evaluaJuego() {
contador = 0;
for(int i=0;i<combGanadora.length;i++){
num = combGanadora[i];
for(int j=0;j<numsElegidos.length;j++){
if(num == numsElegidos[j]){
contador++;
}
}
}
return contador;
}
}
Código: [Seleccionar]
package CU00909C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class TestEjercicio2 here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (22-Ago-2017) - Ejercicio propuesto #2 por aprenderaprogramar.com
 */
public class TestEjercicio2 {
public static void main (String [] arg) {
    char tecla;
do{//Ciclo 'do-while' que itera de acuerdo a voluntad del usuario
LoteriaPrimitiva loteria1 = new LoteriaPrimitiva();
loteria1.setCombGanadora(1,49);//Valores del rango incluidos
loteria1.setNumeroElegido();
loteria1.mostrarNumerosElegidos();
loteria1.mostrarCombGanadora();
System.out.println("Has acertado : " +loteria1.evaluaJuego()+ " números.");

//Consulta para continuar o salir del programa
System.out.println("¿Otra ronda...?");
EntradaPorTeclado entradaTcl= new EntradaPorTeclado();
entradaTcl.setEntrada();
tecla = (entradaTcl.getEntrada()).charAt(0);
}
while (tecla == 's' || tecla == 'S');
System.out.println("Adios");//Fin del programa
}
}
Código: [Seleccionar]
package CU00909C;
import java.util.Random;

/**
 * Write a description of class NumeroAleatorio here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (20-Ago-2017 ) Ejercicio propuesto por aprenderaprogramar.com
 */
public class NumeroAleatorio {
Random rnd;
int inicioIntervalo, finalIntervalo, nuevoNumero;

public NumeroAleatorio() {
rnd = new Random();
nuevoNumero = 0;
}

public int setNuevoNumero(int inicioIntervalo,int finalIntervalo) {
int n = (finalIntervalo-inicioIntervalo+1); //Se le suma 1 para incluir el extremo superior del intervalo
nuevoNumero = rnd.nextInt(n)+inicioIntervalo;
return nuevoNumero;
}

public int getNuevoNumero() {return nuevoNumero;}

}
Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo R. Martinez) - [Old: Foro de aprenderaprogramar.com (Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com)]
 *
 * @version (02_2017).#Se agregó variable (int) y métodos para resolver números enteros. [Old:(01_2016)] -
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private int numero;
private Scanner entradaTcl;
   
    public EntradaPorTeclado(){
        entrada = "";
numero = 0;
        entradaTcl = new Scanner(System.in);
    }
//Métodos 'set' t 'get'
public void setEntrada() {
entrada = entradaTcl.nextLine();
}
public void setNumero() {
numero = entradaTcl.nextInt();
}

    public String getEntrada(){return entrada;}
public int getEntradaNumero(){return numero;}
}

4
Buenas tardes. Presento código como posible solución del ejercicio de referencia CU00909C del curso avanzado de Java. Saludos.

Enunciado:
Crea un programa que elija dos números enteros aleatorios A y B pero no los muestre por pantalla aún. Si los dos números fueran iguales, deberá repetirse la elección hasta que sean distintos. El programa preguntará por quién apostamos, A o B (gana el número más alto). Una vez el usuario haya introducido su apuesta, el programa mostrará el valor de A y B, dirá si hemos ganado la apuesta (acertado el número más alto) o perdido y nos dirá cuántas partidas hemos ganado y perdido hasta el momento.Tras una jugada, nos preguntará si queremos jugar otra vez.
Ejemplo de ejecución:
Apuestas por A o por B ? : A
A saca un 9 y B saca un 6 HAS GANADO!!!
Llevas 1 partidas ganadas y 0 partidas perdidas
Quieres probar otra vez ? (S/N) : S
Apuestas por A o por B ? : A
A saca un 1 y B saca un 8 HAS PERDIDO!!!
Llevas 1 partidas ganadas y 1 partidas perdidas
Quieres probar otra vez ? (S/N) : N
Adiós



Código: [Seleccionar]
package CU00909C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class TestEjercicio1 here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (20-Ago-2017 ) Ejercicio propuesto por aprenderaprogramar.com
 */
public class TestEjercicio1 {
public static void main (String [] arg) {
NumeroAleatorio nuevoAleatorio = new NumeroAleatorio();
EntradaPorTeclado entradaTcl = new EntradaPorTeclado();
NumeroMayor mayor = new NumeroMayor();
int A,B;
Apuesta apostado = new Apuesta();
String apuesta ="";
char tecla;
do {//Ciclo 'do-while' que determina la elección del usuario para continuar el juego
do {//Ciclo 'do-while' para asegurar que los dos números generados no sean iguales
nuevoAleatorio.setNuevoNumero(0,10);
A = nuevoAleatorio.getNuevoNumero();
nuevoAleatorio.setNuevoNumero(0,10);
B = nuevoAleatorio.getNuevoNumero();
} while (A == B);
System.out.println("Se han generado dos números aleatorios comprendidos entre [0,10] (incluidos los extremos)");
System.out.println("¿Apuestas por 'A' o por 'B'?: ");
entradaTcl.setEntrada();
apuesta = entradaTcl.getEntrada();
System.out.println("La apuesta fue por: " +apuesta);
//Se determina cual de los números generador es el mayor
mayor.setNumeros(A,B);
mayor.numeroMayor();
//Se resuelve como se ejecuta la apuesta
apostado.setAleatorios(A,B);
apostado.setMayor(mayor.numeroMayor());
apostado.setApuesta(apuesta);
//Se muestran los resultados
System.out.print("A saca un " +A+ " y B saca un " +B+ " ");
apostado.determinaGanador();
System.out.println("Llevas " +apostado.getAciertos()+ " partidas ganadas y " +apostado.getDesaciertos()+ " partidas perdidas.");
//Consulta para continuar o salir del programa
System.out.println("¿Otra ronda...?");
entradaTcl.setEntrada();
tecla = (entradaTcl.getEntrada()).charAt(0);
}
while (tecla == 's' || tecla == 'S');
System.out.println("Adios");//Fin del programa
}
}


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

/**
 * Write a description of class NumeroAleatorio here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (20-Ago-2017 ) Ejercicio propuesto por aprenderaprogramar.com
 */
public class NumeroAleatorio {
Random rnd;
int inicioIntervalo, finalIntervalo, nuevoNumero;

public NumeroAleatorio() {
rnd = new Random();
nuevoNumero = 0;
}

public int setNuevoNumero(int inicioIntervalo,int finalIntervalo) {
int n = (finalIntervalo-inicioIntervalo+1); //Se le suma 1 para incluir el extremo superior del intervalo
nuevoNumero = rnd.nextInt(n)+inicioIntervalo;
return nuevoNumero;
}

public int getNuevoNumero() {return nuevoNumero;}

}


Código: [Seleccionar]
package CU00909C;


/**
 * Write a description of class Apuesta here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (20-Ago-2017 ) Ejercicio propuesto por aprenderaprogramar.com
 */
public class Apuesta {
int mayor,A,B;
String apuesta;
int contadorAciertos;
int contadorDesaciertos;

public Apuesta() {
A = 0;
B = 0;
mayor = 0;
apuesta = "";
contadorAciertos = 0;
contadorDesaciertos = 0;
}

public void setMayor(int mayor) {
this.mayor = mayor;
}
public void setApuesta(String apuesta) {
this.apuesta = apuesta;
}
public void setAleatorios(int A,int B) {
this.A = A;
this.B = B;
}
public void determinaGanador() {

if (mayor == A && apuesta.equals("A") || mayor == B && apuesta.equals("B")) {
System.out.println("HAS ACERTADO...!!");
contadorAciertos++;
} else {
System.out.println("HAS PERDIDO...!!");
contadorDesaciertos++;
}
}

public int getAciertos() {return contadorAciertos;}
public int getDesaciertos() {return contadorDesaciertos;}
}


Código: [Seleccionar]
package CU00909C;


/**
 * Write a description of class NumeroMayor here.
 *
 * @author (Aranaldo R. Martinez)
 * @version (20-Ago-2017 ) Ejercicio propuesto por aprenderaprogramar.com
 */
public class NumeroMayor {
int A,B,mayor;

public NumeroMayor() {
A = 0;
B = 0;
mayor = 0;
}

public void setNumeros(int A,int B) {
this.A = A;
this.B = B;
}

public int numeroMayor() {
if (A > B) {
this.mayor = A;
} else {
this.mayor = B;
}
return mayor;
}

public int getNumeroMayor() {return mayor;}

}


Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo R. Martinez) - [Old: Foro de aprenderaprogramar.com (Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com)]
 *
 * @version (02_2017).#Se agregó variable (int) y métodos para resolver números enteros. [Old:(01_2016)] -
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private int numero;
private Scanner entradaTcl;
   
    public EntradaPorTeclado(){
        entrada = "";
numero = 0;
        entradaTcl = new Scanner(System.in);
    }
//Métodos 'set' t 'get'
public void setEntrada() {
entrada = entradaTcl.nextLine();
}
public void setNumero() {
numero = entradaTcl.nextInt();
}

    public String getEntrada(){return entrada;}
public int getEntradaNumero(){return numero;}
}

5
Buenas noches. Presento posible solución al ejercicio de referencia CU00908C del tutorial de programación Java avanzado. Cordiales saludos.

EJERCICIO:
Crea un programa que cumpla lo indicado a continuación. El programa permitirá jugar a “adivinar un número entero” tantas veces como el usuario desee. En cada ocasión el programa pedirá al usuario el número inicial y el número final de la serie de números entre los que se encontrará el número a adivinar. También preguntará el número de intentos permitidos. En cada intento el número a adivinar será diferente y estará dentro del rango definido por el usuario. Trás los intentos el programa nos dirá cuantas veces hemos acertado y cuántas veces hemos fallado, los números que eran solución y nos preguntará si queremos volver a jugar.
Ejemplo de ejecución:
Introduce el numero inicial del rango: 40
Introduce el numero final del rango: 60
Introduce el numero de intentos: 2
¿Qué numero estoy pensando? : 44
No has acertado
¿Qué numero estoy pensando? : 42
No has acertado
Has acertado 0 veces y has fallado 2 veces. Eran solución: 49, 41.
Quieres probar otra vez ? (S/N): S
Introduce el numero inicial del rango: 4
Introduce el numero final del rango: 6
Introduce el numero de intentos: 2
¿Qué numero estoy pensando? : 4
No has acertado
¿Qué numero estoy pensando? : 5
Has acertado!!
Has acertado 1 veces y has fallado 1 veces. Eran solución: 6, 5
Quieres probar otra vez ? (S/N): N
Adiós



Código: [Seleccionar]
package CU00908C;
import CU00903C.EntradaPorTeclado;
import java.util.Random;
import java.util.ArrayList;
/**
 * Write a description of class TestAleatorio here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (17-Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
 */
public class TestAleatorio {
    public static void main (String [] args) {
        Random rnd = new Random();
        EntradaPorTeclado etcl = new EntradaPorTeclado();
ArrayList<Integer> numerosSolucion = new ArrayList<Integer>();
        int numeroInicialRango = 0;
        int numeroFinalRango = 0;
        int numeroIntentos = 0;
        int contadorIntentos = 0;
        int contadorAciertos = 0;
        int contadorDesaciertos = 0;
        char tecla;
        int numeroAleatorio;
        do { //Ciclo do-while que itera según lo decida el usuario
//Se solicitan los ingresos e instancian las variables correspondientes
            System.out.println("Introduce el número inicial del rango: ");
            etcl.setEntrada();
numeroInicialRango = Integer.valueOf(etcl.getEntrada()); //Uso conversión porque el auxiliar 'EntradaPorTeclado' entrega 'String'
            System.out.println("Introduce el número final del rango: ");
            etcl.setEntrada();
numeroFinalRango = Integer.valueOf(etcl.getEntrada());
            System.out.println("Introduce la cantidad de veces que quieres intentar adivinar el número: ");
            etcl.setEntrada();
numeroIntentos = Integer.valueOf(etcl.getEntrada());
//Se genera el número aleatorio para el rango determinado según los parámetros introducido
            numeroAleatorio = (int)(rnd.nextDouble()*(numeroInicialRango-numeroFinalRango)+numeroFinalRango);
//Se ingresa el entero generado al ArrayList
numerosSolucion.add(numeroAleatorio);
do { //Ciclo do-while que itera según cantidad intentos informada por el usuario
                System.out.println("¿Que número piensas? ");
                etcl.setEntrada();

                if (Integer.valueOf(etcl.getEntrada()) != numeroAleatorio) {
                    System.out.println("No has acertado");
contadorDesaciertos++;
contadorIntentos++;
                } else {
                    System.out.println("Has acertado!!");
                    contadorAciertos++;
                    contadorIntentos = numeroIntentos;
                }

            }
while (contadorIntentos < numeroIntentos);
            contadorIntentos = 0;
//Se muestra información
            System.out.println("Veces que has acertado: " +contadorAciertos+ "\nveces que no has acertado: " +contadorDesaciertos);
System.out.print("Eran solución los números: ");
for (int tmp: numerosSolucion) {
System.out.print(tmp+ ", " );
}
            System.out.println("\n¿Otra ronda? (s/n)");
            etcl.setEntrada();
            tecla = (etcl.getEntrada()).charAt(0);
        }
        while (tecla == 's' || tecla == 'S');
System.out.println("Adios");//Fin del programa
    }
   
}


Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author () Foro de aprenderaprogramar.com
 * @version (01_2016) -
 * Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private Scanner entradaTcl;
    //Constructor
    public EntradaPorTeclado(){
        entrada= "";
        entradaTcl = new Scanner(System.in);
    }
   
public void setEntrada() {
entrada = entradaTcl.nextLine();
}

    public String getEntrada(){
        return entrada;
    }
}

6
Entendido. Estuve mirando lo sugerido y me parece que no tengo que hacer muchos cambios. Todavía debo fijar conceptos sobre herencia por lo que reescribiré el código a ver si lo logro.
Muchas gracias.

7
Buenas noches. Presento código como posible solución al ejercicio propuesto CU00907C del curso avanzado de Java.

Cordial saludo.

Ejercicio:
Crea un programa para el cálculo del importe final a partir del importe inicial y un porcentaje de impuestos. El importe inicial y el porcentaje de impuestos deben solicitarse al usuario. El programa debe mostrar el resultado ateniéndose a estas reglas: debe mostrarse el impuesto como resultado de calcular el importe inicial por el porcentaje dividido entre 100, con precisión de dos decimales y redondeo al entero más próximo o en caso de equidistancia, redondeo al entero mayor. Debe mostrarse el importe final como resultado de sumar el importe inicial con el impuesto, por tanto endrá
precisión de dos decimales.
Ejemplo de resultados a obtener:
Por favor introduzca el importe inicial: 0.70
Por favor introduzca el porcentaje de impuestos: 5
El impuesto a pagar es: 0.04
El importe final es: 0.74


Código: [Seleccionar]
package CU00907C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class TestCalculoPrecio here.
 *
 * @author (Arnaldo R Martinez)
 * @version (16-Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
 */
public class TestCalculoPrecio {
public static void main (String [] args) {
double importeInicial = 0.0;
int porcentajeImpuestos = 0;
EntradaPorTeclado entrada = new EntradaPorTeclado();
System.out.println("Comienza el programa.");
System.out.println("Por favor ingrese el importe inicial");
entrada.setEntrada();
importeInicial = Double.valueOf(entrada.getEntrada());
System.out.println("Por favor ingrese el porcentaje correspondiente a impuestos");
entrada.setEntrada();
porcentajeImpuestos = Integer.valueOf(entrada.getEntrada());
System.out.println("Impuesto a pagar: " +fijarNumero(impuestoAPagar(importeInicial,porcentajeImpuestos),2));
System.out.println("Importe final: " +fijarNumero(calculoPrecioFinal(importeInicial,impuestoAPagar(importeInicial,porcentajeImpuestos)),2));
}

public static double calculoPrecioFinal(double valorInicio,double valorDescuento) {
double precioFinal = valorInicio + valorDescuento;
return precioFinal;
}

public static double impuestoAPagar(double valorInicio, int descuento) {
double totalImpuesto = 0.0;
totalImpuesto = valorInicio * descuento/100;
return totalImpuesto;
}

public static double fijarNumero(double numero,int digitos) {
double resultado;
resultado = numero * Math.pow(10,digitos);
resultado = Math.round(resultado);
resultado = resultado/Math.pow(10,digitos);
return resultado;
}
}
Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author () Foro de aprenderaprogramar.com
 * @version (01_2016) -
 * Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private Scanner entradaTcl;
    //Constructor
    public EntradaPorTeclado(){
        entrada= "";
        entradaTcl = new Scanner(System.in);
    }
   
public void setEntrada() {
entrada = entradaTcl.nextLine();
}

    public String getEntrada(){
        return entrada;
    }
}

8
Correcciones realizadas, se mejoraron las 3 clases que intervienen en este programa. Todavía no puedo depurar las conversiones de String a Integer. - Saludos
Los códigos:
Código: [Seleccionar]
package CU00672B;
import Entradas.EntradaPorTeclado;

/**
 * Write a description of class TestAdivinarNumero here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (a version number or a date)
 */
public class TestAdivinarNumero {
public static void main (String[] Args) {
EntradaPorTeclado nuevoNumero = new EntradaPorTeclado();
GeneraPseudoAleatorio tmpNumero = new GeneraPseudoAleatorio(100);
System.out.println("Muestro el numero generado: " +tmpNumero.getAleatorio()); //Solo con fin didáctico
System.out.println("Se ha generado un numero aleatorio entre 1 y 100. \nUsted intentara  adivinarlo.");
System.out.print("Juguemos a adivinar un número...\n\n");
System.out.println("Ingrese un numero entre 1 y 100: ");
nuevoNumero.setEntrada();
int num = Integer.valueOf(nuevoNumero.getEntrada());
int ale = tmpNumero.getAleatorio();

do {
if (num > ale) {
System.out.println("El numero ingresado es mayor que el oculto.\nVuelva a intentarlo ingresando uno menor.");
} else if (num < ale) {
System.out.println("El numero ingresado es menor que el oculto.\nVuelva a intentarlo ingresando uno mayor.");
}
nuevoNumero.setEntrada();
num = Integer.valueOf(nuevoNumero.getEntrada());

}while (num != ale);

System.out.println("El numero ingresado es igual al oculto");
System.out.println("Fin del programa.");
}
}
Código: [Seleccionar]
package CU00672B;
import java.util.Random;

/**
 * Write a description of class GeneraPseudoAleatorio here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class GeneraPseudoAleatorio{
private int numero, indiceAleatorio;
private Random aleatorio = new Random();

public GeneraPseudoAleatorio(int indiceAleatorio) {
numero = aleatorio.nextInt((indiceAleatorio)+1);
}

public void setAleatorio(int i) {
i = indiceAleatorio;
}

public int getAleatorio() {
return numero;
}
}
Código: [Seleccionar]
package Entradas;
import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author () Foro de aprenderaprogramar.com
 * @version (01_2016) -
 * Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private Scanner entradaTcl;
    //Constructor
    public EntradaPorTeclado(){
        entrada= "";
        entradaTcl = new Scanner(System.in);
    }
   
public void setEntrada() {
entrada = entradaTcl.nextLine();
}

    public String getEntrada(){
        return entrada;
    }
}

9
Junto con los comentarios de Kabuto, tuve otra corrección desde el curso 'Java desde cero' sobre un problema que venía arrastrando desde varias lecciones anteriores. La clase auxiliar 'EntradaPorTeclado' tenía errores de concepto que interferian en el normal desempeño de los programas para resolver los ejercicios propuestos.
Ahora estoy cargando los códigos corregidos.
Muchas gracias a todos por encausarme en dirección apropiada para continuar aprendiendo.
Saludos.
Los nuevos códigos:
Código: [Seleccionar]
package CU00906C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class MinutoEnPartidoDeFutbol here.
 * 
 * @author (Arnaldo R. Martinez)
 * @version (15_Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
(Corrección 16-Ago-2017) - Se corrige 'EntradaPorTeclado' y código interno redundante (Sugerencia de forista KABUTO)
 */
public class MinutoEnPartidoDeFutbol {
public static void main (String arg[]) {
System.out.println("Comienza el programa: ");
EntradaPorTeclado entrada = new EntradaPorTeclado();
int tmpSegundos = 0;
double minuto = 0.0;
char tecla = 's';
do {
System.out.println("Introduzca el valor de segundos trasncurridos: ");
entrada.setEntrada();
tmpSegundos = Integer.valueOf(entrada.getEntrada());
if (tmpSegundos <= 5400) { //Condición para no sobrepasar el tiempo del partido
minuto = tmpSegundos/60.0;
System.out.println("El minuto es el: " +(1+Math.floor(minuto)));//Redondeo hacia abajo y se le suma '1', para indicar desde 1 segundo como 1 minuto
System.out.println("Otro valor? (s/n)");
entrada.setEntrada();
tecla = (entrada.getEntrada()).charAt(0);
} else {
System.out.println("El valor de segundos ingresados excede el tiempo del partido.");
}
}
while(tecla == 's' || tecla == 'S');
System.out.println("Fin del programa.");
}
}
Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author () Foro de aprenderaprogramar.com
 * @version (01_2016) -
 * Corregido (16-Ago-2017) por feedback desde aprenderaprogramar.com
 */
public class EntradaPorTeclado{
     //Campos de la clase
    private String entrada;
private Scanner entradaTcl;
    //Constructor
    public EntradaPorTeclado(){
        entrada= "";
        entradaTcl = new Scanner(System.in);
    }
   
public void setEntrada() {
entrada = entradaTcl.nextLine();
}

    public String getEntrada(){
        return entrada;
    }
}

10
Hola Alex.
Había notado cada vez que usé la clase auxiliar 'EntradaPorTeclado' el problema de tener que dar un enter para que el programa arranque. Hasta ahora no supe donde buscar, y el porque se estaba produciendo esto.
Agradezco las correcciones sugeridas, me pongo en campaña para hacer las correcciones y seguir con el aprendizaje.
Saludos

11
Hola Kabuto.
Por lo visto estuve buscando una solución complicada cuando en realidad era cuestión de bastante simpleza. Hay muchas herramientas/métodos que desconozco y que gracias a apreciaciones como las que estás indicando y otras que voy tomando del foro permiten que avance en el aprendizaje.
Muchas gracias por brindarme la oportunidad de mejorar, tomo en cuenta las sugerencias y en próximo envío trataré de modificar mi código para optimizarlo, ya que tal lo expresado es de aplicación corriente.
Saludos.


 

12
Buenas noches. Presento código con posible solución al ejercicio propuesto CU00906C del tutorial de programación Java avanzado.

EJERCICIO
Supón que un partido de fútbol tiene una duración de 90 minutos. El minuto 1 se considera que abarca desde los 0 segundos hasta los 59 segundos. El minuto 2 abarca desde los 60 segundos hasta los 119 segundos. Así sucesivamente hasta el último minuto, que es el minuto 90 y abarca desde los 5340 segundos hasta los 5400 segundos. Crea un programa que pida al usuario el número de segundos transcurridos y mediante el uso de alguna función de redondeo (floor, ceil ó round) de la clase Math
muestre el minuto en que nos encontramos. El programa debe pedir valores de segundos hasta que el usuario decida terminar. Ejemplo de ejecución:
Introduzca valor de segundos: 32
El minuto es el 1
¿Otro valor (s/n)? s
Introduzca valor de segundos: 2595
El minuto es el 44
¿Otro valor (s/n)? n


Cordial saludo.

Código: [Seleccionar]
package CU00906C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class MinutoEnPartidoDeFutbol here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (15_Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
 */
public class MinutoEnPartidoDeFutbol {
public static void main (String arg[]) {
System.out.println("Comienza el programa: ");
EntradaPorTeclado entrada = new EntradaPorTeclado();
int tmpSegundos = 0;
double minuto = 0.0;
char tecla = 's';
do {
System.out.println("Introduzca el valor de segundos trasncurridos: ");
entrada.pedirEntrada();
tmpSegundos = Integer.valueOf(entrada.getEntrada());
if (tmpSegundos <= 5400) { //Condición para no sobrepasar el tiempo del partido
minuto = tmpSegundos/60.0;
System.out.println("El minuto es el: " +(1+Math.floor(minuto)));//Redondeo hacia abajo y se le suma '1', para indicar desde 1 segundo como 1 minuto
System.out.println("Otro valor? (s/n)");
entrada.pedirEntrada();
String cadena = entrada.getEntrada();//Convierte entrada del teclado en 'char'
char letra = cadena.charAt(0);
if (letra == 'n' || letra == 'N') {
letra = 'n';
tecla = letra;
} else if (letra == 's' || letra == 'S') {
letra = 's';
tecla = letra;
}
} else {
System.out.println("El valor de segundos ingresados excede el tiempo del partido.");
}
}
while(tecla == 's');
System.out.println("Fin del programa.");
}
}

Se adjunta tambien código auxiliar 'EntradaPorTeclado'

Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo Martinez)
 * @version (01_2016)
 */
public class EntradaPorTeclado{
   
    private String entradaTcl; //Campo de la clase
    //Constructor
    public EntradaPorTeclado(){
        entradaTcl= "";
        pedirEntrada(); //Llamado a un mètodo interno
    }
    //Mètodos de la clase
    public void pedirEntrada(){
        Scanner eEsc= new Scanner(System.in);
        entradaTcl= eEsc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTcl;
    }
}

13
Presento posible solución al ejercicio CU00905C del curso avanzado de Java.

Tuve problemas con el código para mostrar los resultados según lo solicitado por lo que tuve que recurrir a tomar literal, código creado por otro usuario del foro que se adaptaba a la respuesta buscada.

Enunciado:

"Crea un programa que pida por pantalla cuatro países y a continuación tres ciudades de cada uno de estos países. Los nombres de ciudades deben almacenarse en un array multidimensional cuyo primer índice sea el número asignado a cada país y el segundo índice el número asignado a cada ciudad.
Ejemplo de resultados que debe mostrar el programa:
País: Argentina Ciudades: Buenos Aires Cordoba La Plata
País: España Ciudades: Madrid Lugo Sevilla
País: Francia Ciudades: Paris Niza Lyon
País: Italia Ciudades: Roma Napoles Sicilia"

Código: [Seleccionar]
package CU00905C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class PaisesYCiudades here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (14-Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
 */
public class PaisesYCiudades {
    public static void main (String arg[]) {
        String[][] pais_ciudad = new String[4][4];
        for (int i=0,j=0;i<pais_ciudad.length;i++) {
            System.out.println("Por favor ingrese el país " +(i+1)+ " : ");
            EntradaPorTeclado pais = new EntradaPorTeclado();
            pais_ciudad[i][j] = pais.getEntrada();
        }
        for (int i=0;i<pais_ciudad.length;i++) {
            for (int j=1;j<pais_ciudad[i].length;j++) {
                System.out.println("Por favor ingrese la ciudad " +(j)+ " del pais " +(i+1)+ " :");
                EntradaPorTeclado ciudad = new EntradaPorTeclado();
                pais_ciudad[i][j] = ciudad.getEntrada();
            }
        }
//Código para mostrar el resultado. No lo pude resolver por propia iniciativa y está tomado
//literal de un usuario del foro de aprenderaprogramar.com con algunos retoques cosméticos de mi preferencia.
for (int i=0,j=0;i< pais_ciudad.length;i++) {
System.out.print("Pais:\t" +pais_ciudad[i][j]+ " .-Ciudadades: ");
for (j=1;j< pais_ciudad[i].length;j++) {
if(j == (pais_ciudad[i].length-1)) {
System.out.print(" y " + pais_ciudad[i][j] + ".");
} else if(j == (pais_ciudad[i].length-2)){
System.out.print( pais_ciudad[i][j]);
} else {
System.out.print( pais_ciudad[i][j] + ", ");
}
}
j = 0;
System.out.println();
}
}

}
Se adjunta código del auxiliar 'EntradaPorTeclado'
Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo Martinez)
 * @version (01_2016)
 */
public class EntradaPorTeclado{
   
    private String entradaTcl; //Campo de la clase
    //Constructor
    public EntradaPorTeclado(){
        entradaTcl= "";
        pedirEntrada(); //Llamado a un mètodo interno
    }
    //Mètodos de la clase
    public void pedirEntrada(){
        Scanner eEsc= new Scanner(System.in);
        entradaTcl= eEsc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTcl;
    }
}

14
Buen día. Les presento código del ejercicio propuesto para lección de referencia CU00904C del tutorial de programación avanzada en Java.

Enunciado:
"En España cada persona está identificada con un Documento Nacional de Identidad (DNI) en el que figura un número y una letra, por ejemplo 56999545W. La letra que sigue al número se calcula siguiendo la metodología que vamos a indicar. Crea un programaque calcule la letra de un DNI a partir del número de DNI que introduzca el usuario. Es decir, se debe pedir el DNI sin la letra por teclado y el programa nos devolverá el DNI completo (con la letra). Para calcular la letra, se debe tomar el resto de dividir nuestro número de DNI entre 23. El resultado debe estar por tanto entre 0 y 22."
Cordial saludo.
Código: [Seleccionar]
package CU00904C;
import CU00903C.EntradaPorTeclado;

/**
 * Write a description of class CalcularLetraDNI here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (11-Ago-2017) - Ejercicio propuesto por aprenderaprogramar.com
 */
public class CalcularLetraDNI {
public static void main (String arg[]) {
int DNI = 0;
int restoDNI = 0;
System.out.println("Comienza el programa");
System.out.println("Por favor ingrese el número de DNI (solo el número) ");
EntradaPorTeclado dni = new EntradaPorTeclado();
DNI = Integer.valueOf(dni.getEntrada());
//Se calcula el resto de dividir el número de DNI por 23
restoDNI = DNI%23;
System.out.println("");
System.out.println("El número de DNI es: " +DNI+obtenerLetra(restoDNI));
}
public static char obtenerLetra(int numeroDNI) {
char[] letrasDNI = {'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'};
return letrasDNI[numeroDNI];
}
}
Se adjunta código del auxiliar 'EntradaPorTeclado'
Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo Martinez)
 * @version (01_2016)
 */
public class EntradaPorTeclado{
   
    private String entradaTcl; //Campo de la clase
    //Constructor
    public EntradaPorTeclado(){
        entradaTcl= "";
        pedirEntrada(); //Llamado a un mètodo interno
    }
    //Mètodos de la clase
    public void pedirEntrada(){
        Scanner eEsc= new Scanner(System.in);
        entradaTcl= eEsc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTcl;
    }
}

15
Buenas tardes/noche.

Presento solución posible para los ejercicios propuestos en la entrega de referencia
Ejercicio #1:

Código: [Seleccionar]
package CU00903C;


/**
 * Write a description of class CrearArray5Elementos here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (10-Ago-2017) - Ejercicio#1 - Propuesto por aprenderaprogramar.com
 */
public class CrearArray5Elementos {
    public static void main (String arg[]) {
        System.out.println("Comienza el programa");
        int[] numeros = new int[5];
        int i=0;
        while (i<numeros.length) {
            System.out.println("Por favor ingrese un número entero ");
            EntradaPorTeclado entre = new EntradaPorTeclado();
            numeros[i] = Integer.valueOf(entre.getEntrada());
            i++;
        }
       
System.out.println("El array está compuesto por: ");
for (i=0;i<numeros.length;i++) {
System.out.println("El indice " +i+ " contiene el número " +(numeros[i]));
}
    }
   
}


Ejercicio #2:

Código: [Seleccionar]
package CU00903C;


/**
 * Write a description of class NotasDosAlumnos here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (11-Ago-2017) - Ejercicio#2 - Propuesto por aprenderaprogramar.com
 */
public class NotasDosAlumnos {
public static void main (String arg[]) {
System.out.println("Comienza el programa");
String[] alumnos = new String[2];
double[] notas = new double[2];
int i=0;
while (i<2) { //Se condiciona i<2 porque el ejercicio indica arrays de 2 elementos. Lo correcto es condicionar con (nombre_del_array.length)
System.out.println("Por favor ingrese el nombre del alumno ");
EntradaPorTeclado alumno = new EntradaPorTeclado();
alumnos[i] = alumno.getEntrada();
System.out.println("Ahora ingrese la nota correspondiente ");
EntradaPorTeclado nota = new EntradaPorTeclado();
while (Double.valueOf(nota.getEntrada())<0 || Double.valueOf(nota.getEntrada())>10) {
System.out.println("Deberá ingresar una nota válida, comprendida entre 0 y 10");
nota = new EntradaPorTeclado();
}
notas[i] = Double.valueOf(nota.getEntrada());
i++;
}
//Se muestran los resultados
for (int j=0;j<2;j++) {
System.out.println("Alumno: " +alumnos[j]+ ", nota: " +notas[j]+ ", calificacion: " +estableceCalificacion(notas[j]));
}

}
static public String estableceCalificacion(double nota) {
String calificacion = "";
String[] Califica = {"Sobresaliente","Notable","Bien","Suspenso"};
if (nota<5.0) {
calificacion = Califica[3];
} else if (nota>=5.0 && nota<7.0) {
calificacion = Califica[2];
} else if (nota>=7.0 && nota<9.0) {
calificacion = Califica[1];
} else if (nota>=9.0 && nota<=10.0) {
calificacion = Califica[0];
} else {};
return calificacion;
}
}


En ambos se utilizó la clase auxiliar 'EntradaPorTeclado':

Código: [Seleccionar]
package CU00903C;

import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo Martinez)
 * @version (01_2016)
 */
public class EntradaPorTeclado{
   
    private String entradaTcl; //Campo de la clase
    //Constructor
    public EntradaPorTeclado(){
        entradaTcl= "";
        pedirEntrada(); //Llamado a un mètodo interno
    }
    //Mètodos de la clase
    public void pedirEntrada(){
        Scanner eEsc= new Scanner(System.in);
        entradaTcl= eEsc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTcl;
    }
}

16
Buenas tardes/noche. Presento código del ejercicio propuesto CU00688B del curso de programación Java con BlueJ:

Código: [Seleccionar]
package CU00688B;
/**
 * La clase Producto centraliza los atributos y métodos comunes a todos los productos
 * que procesa la empresa
 * @author (Arnaldo R. Martinez)
 * @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
 public class Producto {
private String fechaDeVencimiento;
private String numDeLote;
private String fechaDeEnvasado;
private String paisDeOrigen;
//Constructor general sin parametros.
public Producto(){
fechaDeVencimiento = "";
numDeLote = "";
fechaDeEnvasado = "";
paisDeOrigen = "";
}
//Constructor con parametros
public Producto(String fVto, String lote, String fEnv, String Origen) {
fechaDeVencimiento = fVto;
numDeLote = lote;
fechaDeEnvasado = fEnv;
paisDeOrigen = Origen;
}
//Métodos set
public void setVencimiento(String fechaDeVencimiento) {
this.fechaDeVencimiento = fechaDeVencimiento;
}
public void setNumLote(String numDeLote) {
this.numDeLote = numDeLote;
}
public void setEnvasado(String fechaDeEnvasado) {
this.fechaDeEnvasado = fechaDeEnvasado;
}
public void setOrigen(String paisDeOrigen) {
this.paisDeOrigen = paisDeOrigen;
}
//Métodos get
public String getVencimiento() {return fechaDeVencimiento;}
public String getNumLote() {return numDeLote;}
public String getEnvasado() {return fechaDeEnvasado;}
public String getOrigen() {return paisDeOrigen;}
//Otros métodos
public void mostrarProducto(){
System.out.println("Producto \tLote: " +getNumLote());
System.out.println("Envasado el " +getEnvasado()+ "\t-Fecha de vencimiento: " +getVencimiento());
System.out.println("Origen: " +getOrigen());
}
}//Fin de la superclase
Código: [Seleccionar]
package CU00688B;
/**
 * La subclase 'ProductoFresco' es heredada de la superclase 'Producto'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoFresco extends Producto {

//Constructor
public ProductoFresco(){
super();
}
public ProductoFresco(String fVto, String lote, String fEnv, String Origen) {
super(fVto,lote,fEnv,Origen);
}//Cierre del constructor
//Método de la subclase
public void mostrarProducto(){
System.out.println("Producto Fresco.\tLote: " +getNumLote());
System.out.println("Envasado el " +getEnvasado()+ "\t-Fecha de vencimiento: " +getVencimiento());
System.out.println("Origen: " +getOrigen());
}
}//Cierre de la clase
Código: [Seleccionar]
package CU00688B;
/**
 * 'ClaseAuxiliar' es una subclase de la superclase 'Producto' y a la vez
 * es superclase de las clases 'ProductoRefrigerado' y 'ProductoCongelado'
 * maneja y muestra atributos de la temperatura de mantenimiento para los
 * productos que requieren tenerla controlada.
 * @author (Arnaldo R. Martinez)
 * @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class AuxiliarProducto extends Producto {
private float temperaturaDeMantenimiento;

public AuxiliarProducto() {
super();
temperaturaDeMantenimiento = 0.0f;
}

public AuxiliarProducto(String fVto, String lote, String fEnv, String Origen, float tempMant) {
super(fVto,lote,fEnv,Origen);
temperaturaDeMantenimiento = tempMant;
}
//Método set
public void setTemperatura(float temperaturaDeMantenimiento) {
this.temperaturaDeMantenimiento = temperaturaDeMantenimiento;
}
//Método get
public float getTemperatura() {return temperaturaDeMantenimiento;}
}
Código: [Seleccionar]
package CU00688B;
/**
 * 'ProductoRefrigerado' es heredada de 'AuxiliarProducto' que q su vez hereda de 'Producto'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoRefrigerado extends AuxiliarProducto {
private String codigoInspeccionOSA;
//Constructor general sin parámetros
public ProductoRefrigerado() {
super();
codigoInspeccionOSA = "";
}
//Constructor con parámetros
public ProductoRefrigerado(String fVto,String Lote, String fEnv, String Origen, float tempMant, String codOSA) {
super (fVto,Lote,fEnv,Origen,tempMant);
codigoInspeccionOSA = codOSA;
}
//Métodos de la clase.
public void setInspOSA(String codigoInspeccionOSA) { this.codigoInspeccionOSA = codigoInspeccionOSA;}

public String getInspOSA() {return codigoInspeccionOSA;}

public void mostrarProducto() {
System.out.println("Producto Refrigerado.\tLote: " +getNumLote());
System.out.println("Envasado el " +getEnvasado()+ "\t-Fecha de vencimiento: " +getVencimiento());
System.out.println("Origen: " +getOrigen());;
System.out.println("Temperatura recomendada de conservacion: " +getTemperatura()+ "\t-Certificado de inspeccion: " +getInspOSA());
}
}//Cierre de la clase.
Código: [Seleccionar]
package CU00688B;
/**
 * 'ProductoCongelado' es heredada de 'ClaseAuxiliar' que a su vez hereda de 'Producto'.
 * No presenta atributos propios ya que los mismos están definidos en las superclases de la misma
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongelado extends AuxiliarProducto {
//Constructor general sin parámetros.
    public ProductoCongelado() {
        super();
    }
    //Constructor con parámetros.
    public ProductoCongelado(String fVto, String Lote, String fEnv, String Origen, float tempMant) {
        super (fVto,Lote,fEnv,Origen,tempMant);
    }
    //Método de la clase.
//Presenta dudas si debe incluirse, ya que 'ProductoCongelado' tiene tres subclases y en cada una
//existe un método 'Mostrar()'
    public void MostrarProductoCongelado() {
        System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C");
    }
}
Código: [Seleccionar]
package CU00688B;
/**
 * 'ProductoCongeladoPorAgua' es dubclase de 'ProductoCongelado'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongeladoPorAgua extends ProductoCongelado {
private float salinidadAgua;
//Cosntructor general sin parámetros.
public ProductoCongeladoPorAgua() {
super();
salinidadAgua = 0.0f;
}
//Constructor con parámetros
public ProductoCongeladoPorAgua(String fVto,String lote,String fEnv,String Origen,float tempMant,float salAgua) {
super(fVto,lote,fEnv,Origen,tempMant);
salinidadAgua = salAgua;
}//Cierre del constructor.

//Métodos de la subclase
public void setSalinidad(float salinidadAgua) {
this.salinidadAgua = salinidadAgua;

}
public float getSalinidad() {return salinidadAgua;}

public void mostrarProducto() {
System.out.println("Producto Congelado Por Agua.\tLote: " +getNumLote());
System.out.println("Envasado el " +getEnvasado()+ "\t-Fecha de vencimiento: " +getVencimiento());
System.out.println("Origen: " +getOrigen()+ "\t-Salinidad del agua de congelamiento " +getSalinidad()+ " gr/l.");
System.out.println("Temperatura recomendada de conservacion: " +getTemperatura());
}
}//Cierre de la clase
Código: [Seleccionar]
package CU00688B;
/**
 * 'ProductoCongeladoPorAire' es subclase de 'ProductoCongelado'
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongeladoPorAire extends ProductoCongelado {
private float porcentajeNitrogeno;
private float porcentajeOxigeno;
private float porcentajeDioxidoDeCarbono;
private float porcentajeVaporDeAgua;
//Constructor general sin parámetros
public ProductoCongeladoPorAire() {
super();
porcentajeNitrogeno = 0.0f;
porcentajeOxigeno = 0.0f;
porcentajeDioxidoDeCarbono = 0.0f;
porcentajeVaporDeAgua = 0.0f;
}
//Constructos con parámetros
public ProductoCongeladoPorAire(String fVto,String lote,String fEnv,String Origen,float tempMant,float porcNi,float porcO2,float porcDC,float porcVA) {
super(fVto,lote,fEnv,Origen,tempMant);
porcentajeNitrogeno = porcNi;
porcentajeOxigeno = porcO2;
porcentajeDioxidoDeCarbono = porcDC;
porcentajeVaporDeAgua = porcVA;
}
//Métodos set
public void setNitrogeno(float porcentajeNitrogeno) {
this.porcentajeNitrogeno = porcentajeNitrogeno;
}
public void setOxigeno(float porcentajeOxigeno) {
this.porcentajeOxigeno = porcentajeOxigeno;
}
public void setDDC(float porcentajeDioxidoDeCarbono) {
this.porcentajeDioxidoDeCarbono = porcentajeDioxidoDeCarbono;
}
public void setVapor(float porcentajeVaporDeAgua) {
this.porcentajeVaporDeAgua = porcentajeVaporDeAgua;
}
//Métodos get
public float getNitrogeno() {return porcentajeNitrogeno;}
public float getOxigeno(){return porcentajeOxigeno;}
public float getDDC() {return porcentajeDioxidoDeCarbono;}
public float getVapor(){return porcentajeVaporDeAgua;}
//Otros métodos
public void MostrarComposicionAire() {
System.out.println("Composición del aire " +getNitrogeno()+ " %," +getOxigeno()+ " %," +getDDC()+ " %," +getVapor()+ "%.");
}

public void mostrarProducto() {
System.out.println("Producto Congelado por Aire.\tLote: " +getNumLote());
System.out.println("Envasado el " +getEnvasado()+ "\t-Fecha de vencimiento: " +getVencimiento());
System.out.println("Origen: " +getOrigen());
System.out.println("Temperatura recomendada de conservacion: " +getTemperatura());
System.out.println("Composición de la mezcla de aire de congelamiento: ");
System.out.println("Nitrogeno: " +getNitrogeno()+ "\t-Oxigeno: " +getOxigeno());
System.out.println("Dioxido de Carbono: " +getDDC()+ "\t-Vapor de agua: " +getVapor());
}
}
Código: [Seleccionar]
package CU00688B;
/**
 * 'ProductoCongeladoPorNitrogeno' hereda de 'ProductoCongelado'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongeladoPorNitrogeno extends ProductoCongelado {
private String metodoCongelador;
private int tiempoExposicioSegundos;
//Constructor general sin parámetros
public ProductoCongeladoPorNitrogeno() {
super();
metodoCongelador = "";
tiempoExposicioSegundos = 0;
}
//Constructor con parámetros.
public ProductoCongeladoPorNitrogeno(String fVto,String lote,String fEnv,String Origen,float tempMant,String metCong,int tSeg) {
super(fVto,lote,fEnv,Origen,tempMant);
metodoCongelador = metCong;
tiempoExposicioSegundos = tSeg;
}
//Métodos set
public void setMetodoCongelador(String metodoCongelador) {
this.metodoCongelador = metodoCongelador;
}
public void setTiempoExposicion(int tiempoExposicioSegundos) {
this.tiempoExposicioSegundos = tiempoExposicioSegundos;
}
//Métodos get
public String getMetodoCongelador() {return metodoCongelador;}
public int getTiempoExposicion() {return tiempoExposicioSegundos;}
//Otro método
public void mostrarProducto() {
System.out.println("Producto Congelado por Nitrogeno.\tLote: " +getNumLote());
System.out.println("Envasado el " +getEnvasado()+ "\t-Fecha de vencimiento: " +getVencimiento());
System.out.println("Origen: " +getOrigen());
System.out.println("Temperatura recomendada de conservacion: " +getTemperatura());
System.out.println("Metodo de congelacion: " +getMetodoCongelador()+ "\t-Tiempo de exposicion: " +getTiempoExposicion()+ " seg.");
}
}
Código: [Seleccionar]
package CU00688B;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

/**
 * Clase para tratamiento de los envios de productos.
 *
 * @author (Arnaldo R. Martinez)
 * @version (04-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class EnvioDeProductos {
//Inicialización
private List <Producto> listaEnvio;
//Constructor de la clase
public EnvioDeProductos() {
listaEnvio = new ArrayList<Producto>();
}//Cierre del constructor
//Método para incorporar producto
public void incluirProductoALista(Producto productoNuevo) {
listaEnvio.add(productoNuevo);
}
//Método para obtener número de productos en la lista
public int getNumeroProductos() { return listaEnvio.size(); }
//Se aplica Iteraror para recorrer el ArrayList
public void verProductos() {
Iterator <Producto> it = listaEnvio.iterator();
Producto p;
while (it.hasNext()) {
p = it.next();
p.mostrarProducto();
System.out.println("-----------------------------------------------------------");
}
}
}
Código: [Seleccionar]
package CU00688B;
/**
 * Write a description of class TestHerencia4 here.
 *
 * @author (Arnaldo R. Martinez)
 * @version (04-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class TestHerencia4 {
public static void main (String [] Args) {
//1°.-Se crean 2 productos frescos.
ProductoFresco pfresco1 = new ProductoFresco("12-08-2017","FR1001","30-07-2017","Argentina");
ProductoFresco pfresco2 = new ProductoFresco("25-07-2017","FR1002","25-07-2017","Brasil");
//2°,-Se crean 3 productos refrigerados
ProductoRefrigerado prefrig1 = new ProductoRefrigerado("30-08-2017","RF1003","20-07-2017","Bolivia",2.0f,"AR-5004");
ProductoRefrigerado prefrig2 = new ProductoRefrigerado("05-09-2017","RF1004","20-07-2017","Brasil",3.5f,"AR-5005");
ProductoRefrigerado prefrig3 = new ProductoRefrigerado("15-09-2017","RF1005","20-07-2017","Chile",1.5f,"AR-5006");
//3°.-Secrean 5 productos congelados (2 por agua, 2 por aire y 1 por nitrogeno)
ProductoCongeladoPorAgua pcongagua1 = new ProductoCongeladoPorAgua("12-06-2017","CAG1006","30-12-2017","Alemania",-18.0f,35.0f);
ProductoCongeladoPorAgua pcongagua2 = new ProductoCongeladoPorAgua("12-06-2017","CAG1007","30-12-2017","Francia",-15.5f,55.5f);
ProductoCongeladoPorAire pcongaire1 = new ProductoCongeladoPorAire("12-06-2017","CAI1008","30-12-2017","España",-12.0f,70.0f,19.0f,2.0f,8.0f);
ProductoCongeladoPorAire pcongaire2 = new ProductoCongeladoPorAire("12-06-2017","CAI1009","30-12-2017","Italia",-22.3f,70.5f,19.5f,2.0f,7.0f);
ProductoCongeladoPorNitrogeno pcongnitro1 = new ProductoCongeladoPorNitrogeno("12-06-2017","CAI1010","30-12-2017","Argentina",-25.3f,"Inmersion",7);
//Inicialización y creación de un objeto de la clase 'EnvioDeProductos'
EnvioDeProductos productosAEnviar = new EnvioDeProductos();
//La lista
Producto [] listaProductosAEnviar = {pfresco1,pfresco2,prefrig1,prefrig2,prefrig3,pcongagua1,pcongagua2,pcongaire1,pcongaire2,pcongnitro1};
//Mediante 'for-each' se añaden los productos en la colección de Envio.
for (Producto tmp: listaProductosAEnviar) {
productosAEnviar.incluirProductoALista(tmp);
}
//Se muestra por pantalla cuantos productos componen el envío y descripción detallada de cada uno.
System.out.println("El pedido contiene " +productosAEnviar.getNumeroProductos()+ " productos.");
System.out.println("");
System.out.println("Los productos preparados para el ennvio son: ");
System.out.println("----------------------------------------------");


productosAEnviar.verProductos();
}
}

17
Buenas tardes. Presento posible solución del ejercicio propuesto CU00687B del curso de fundamentos de programación Java. Por lo que pude leer en el foro estoy teniendo problemas a la hora de nombrar las clases, estoy abocado a mejorar sobre ese tema y varios mas sobre el aprendizaje. Cordial Saludo.

Código: [Seleccionar]
package CU00687B;
/**
 * La clase Producto centraliza los atributos y métodos comunes a todos los productos
 * que procesa la empresa
 * @author (Arnaldo R. Martinez)
 * @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
 public class Producto {
private String fechaDeVencimiento;
private String numDeLote;
private String fechaDeEnvasado;
private String paisDeOrigen;
//Constructor general sin parametros.
public Producto(){
fechaDeVencimiento = "";
numDeLote = "";
fechaDeEnvasado = "";
paisDeOrigen = "";
}
//Constructor con parametros
public Producto(String fVto, String lote, String fEnv, String Origen) {
fechaDeVencimiento = fVto;
numDeLote = lote;
fechaDeEnvasado = fEnv;
paisDeOrigen = Origen;
}
//Métodos set
public void setVencimiento(String fechaDeVencimiento) {
this.fechaDeVencimiento = fechaDeVencimiento;
}
public void setNumLote(String numDeLote) {
this.numDeLote = numDeLote;
}
public void setEnvasado(String fechaDeEnvasado) {
this.fechaDeEnvasado = fechaDeEnvasado;
}
public void setOrigen(String paisDeOrigen) {
this.paisDeOrigen = paisDeOrigen;
}
//Métodos get
public String getVencimiento() {return fechaDeVencimiento;}
public String getNumLote() {return numDeLote;}
public String getEnvasado() {return fechaDeEnvasado;}
public String getOrigen() {return paisDeOrigen;}
}//Fin de la superclase

Código: [Seleccionar]
package CU00687B;
/**
 * La subclase 'ProductoFresco' es heredada de la superclase 'Producto'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoFresco extends Producto {

//Constructor
public ProductoFresco(){
super();
}
public ProductoFresco(String fVto, String lote, String fEnv, String Origen) {
super(fVto,lote,fEnv,Origen);
}//Cierre del constructor
//Método de la subclase
public void MostrarProductoFresco() {
System.out.println("El producto fresco " +getNumLote()+ " tiene fecha de vencimiento " +getVencimiento()+ "\nel origen es " +getOrigen()+ " y fue envasado el " +getEnvasado());
}
}//Cierre de la clase

Código: [Seleccionar]
package CU00687B;
/**
 * 'ClaseAuxiliar' es una subclase de la superclase 'Producto' y a la vez
 * es superclase de las clases 'ProductoRefrigerado' y 'ProductoCongelado'
 * maneja y muestra atributos de la temperatura de mantenimiento para los
 * productos que requieren tenerla controlada.
 * @author (Arnaldo R. Martinez)
 * @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ClaseAuxiliar extends Producto {
private float temperaturaDeMantenimiento;

public ClaseAuxiliar() {
super();
temperaturaDeMantenimiento = 0.0f;
}

public ClaseAuxiliar(String fVto, String lote, String fEnv, String Origen, float tempMant) {
super(fVto,lote,fEnv,Origen);
temperaturaDeMantenimiento = tempMant;
}
//Método set
public void setTemperatura(float temperaturaDeMantenimiento) {
this.temperaturaDeMantenimiento = temperaturaDeMantenimiento;
}
//Método get
public float getTemperatura() {return temperaturaDeMantenimiento;}
}

Código: [Seleccionar]
package CU00687B;
/**
 * 'ProductoRefrigerado' es heredada de 'ClaseAuxiliar' que q su vez hereda de 'Producto'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoRefrigerado extends ClaseAuxiliar {
private String codigoInspeccionOSA;
//Constructor general sin parámetros
public ProductoRefrigerado() {
super();
codigoInspeccionOSA = "";
}
//Constructor con parámetros
public ProductoRefrigerado(String fVto,String Lote, String fEnv, String Origen, float tempMant, String codOSA) {
super (fVto,Lote,fEnv,Origen,tempMant);
codigoInspeccionOSA = codOSA;
}
//Métodos de la clase.
public void setInspOSA(String codigoInspeccionOSA) { this.codigoInspeccionOSA = codigoInspeccionOSA;}

public String getInspOSA() {return codigoInspeccionOSA;}

public void MostrarProductoRefrigerado() {
System.out.println("El producto refrigerado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el certificado de inspeccion es: " +getInspOSA()+ "\nel origen es " +getOrigen()+ " y se recomienda mantener a una temperatura de " +getTemperatura()+ " °C");
}
}//Cierre de la clase.

Código: [Seleccionar]
package CU00687B;
/**
 * 'ProductoCongelado' es heredada de 'ClaseAuxiliar' que a su vez hereda de 'Producto'.
 * No presenta atributos propios ya que los mismos están definidos en las superclases de la misma
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongelado extends ClaseAuxiliar {
//Constructor general sin parámetros.
    public ProductoCongelado() {
        super();
    }
    //Constructor con parámetros.
    public ProductoCongelado(String fVto, String Lote, String fEnv, String Origen, float tempMant) {
        super (fVto,Lote,fEnv,Origen,tempMant);
    }
    //Método de la clase.
//Presenta dudas si debe incluirse, ya que 'ProductoCongelado' tiene tres subclases y en cada una
//existe un método 'Mostrar()'
    public void MostrarProductoCongelado() {
        System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C");
    }
}

Código: [Seleccionar]
package CU00687B;
/**
 * 'ProductoCongeladoPorAire' es subclase de 'ProductoCongelado'
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongeladoPorAire extends ProductoCongelado {
private float porcentajeNitrogeno;
private float porcentajeOxigeno;
private float porcentajeDioxidoDeCarbono;
private float porcentajeVaporDeAgua;
//Constructor general sin parámetros
public ProductoCongeladoPorAire() {
super();
porcentajeNitrogeno = 0.0f;
porcentajeOxigeno = 0.0f;
porcentajeDioxidoDeCarbono = 0.0f;
porcentajeVaporDeAgua = 0.0f;
}
//Constructos con parámetros
public ProductoCongeladoPorAire(String fVto,String lote,String fEnv,String Origen,float tempMant,float porcNi,float porcO2,float porcDC,float porcVA) {
super(fVto,lote,fEnv,Origen,tempMant);
porcentajeNitrogeno = porcNi;
porcentajeOxigeno = porcO2;
porcentajeDioxidoDeCarbono = porcDC;
porcentajeVaporDeAgua = porcVA;
}
//Métodos set
public void setNitrogeno(float porcentajeNitrogeno) {
this.porcentajeNitrogeno = porcentajeNitrogeno;
}
public void setOxigeno(float porcentajeOxigeno) {
this.porcentajeOxigeno = porcentajeOxigeno;
}
public void setDDC(float porcentajeDioxidoDeCarbono) {
this.porcentajeDioxidoDeCarbono = porcentajeDioxidoDeCarbono;
}
public void setVapor(float porcentajeVaporDeAgua) {
this.porcentajeVaporDeAgua = porcentajeVaporDeAgua;
}
//Métodos get
public float getNitrogeno() {return porcentajeNitrogeno;}
public float getOxigeno(){return porcentajeOxigeno;}
public float getDDC() {return porcentajeDioxidoDeCarbono;}
public float getVapor(){return porcentajeVaporDeAgua;}
//Otros métodos
public void MostrarComposicionAire() {
System.out.println("Composición del aire " +getNitrogeno()+ " %," +getOxigeno()+ " %," +getDDC()+ " %," +getVapor()+ "%.");
}

public void MostrarProductoCongeladoPorAire() {
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C.\nLa composicion del aire de congelacion es: Nitrogeno " +getNitrogeno()+ " %, \nOxigeno " +getOxigeno()+ " %, Dioxido de Carbono " +getDDC()+ " %, Vapor de agua " +getVapor()+ " %.");
}
}

Código: [Seleccionar]
package CU00687B;
/**
 * 'ProductoCongeladoPorAgua' es dubclase de 'ProductoCongelado'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongeladoPorAgua extends ProductoCongelado {
private float salinidadAgua;
//Cosntructor general sin parámetros.
public ProductoCongeladoPorAgua() {
super();
salinidadAgua = 0.0f;
}
//Constructor con parámetros
public ProductoCongeladoPorAgua(String fVto,String lote,String fEnv,String Origen,float tempMant,float salAgua) {
super(fVto,lote,fEnv,Origen,tempMant);
salinidadAgua = salAgua;
}//Cierre del constructor.

//Métodos de la subclase
public void setSalinidad(float salinidadAgua) {
this.salinidadAgua = salinidadAgua;

}
public float getSalinidad() {return salinidadAgua;}

public void MostrarProductoCongeladoPorAgua() {
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C.\nLa salinidad del agua de comgelación es de " + getSalinidad()+ " gr/litro.");
}
}//Cierre de la clase

Código: [Seleccionar]
package CU00687B;
/**
 * 'ProductoCongeladoPorNitrogeno' hereda de 'ProductoCongelado'.
 *
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class ProductoCongeladoPorNitrogeno extends ProductoCongelado {
private String metodoCongelador;
private int tiempoExposicioSegundos;
//Constructor general sin parámetros
public ProductoCongeladoPorNitrogeno() {
super();
metodoCongelador = "";
tiempoExposicioSegundos = 0;
}
//Constructor con parámetros.
public ProductoCongeladoPorNitrogeno(String fVto,String lote,String fEnv,String Origen,float tempMant,String metCong,int tSeg) {
super(fVto,lote,fEnv,Origen,tempMant);
metodoCongelador = metCong;
tiempoExposicioSegundos = tSeg;
}
//Métodos set
public void setMetodoCongelador(String metodoCongelador) {
this.metodoCongelador = metodoCongelador;
}
public void setTiempoExposicion(int tiempoExposicioSegundos) {
this.tiempoExposicioSegundos = tiempoExposicioSegundos;
}
//Métodos get
public String getMetodoCongelador() {return metodoCongelador;}
public int getTiempoExposicion() {return tiempoExposicioSegundos;}
//Otro método
public void MostrarProductoCongeladoPorNitrogeno(){
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C.\nEl metodo de congelación por Nitrogeno es por " +getMetodoCongelador()+ ",\nel tiempo de exposicion es de " +getTiempoExposicion()+ " segundos.");
}
}

Código: [Seleccionar]
package CU00687B;
/**
 * TestHerencia3. Se crean 2 productos frescos, 3 refrigerados y 5 congelados,
 * de los últimos (2 congelados por agua, 2 por aire y 1 por nitrógeno).
 * @author (Arnaldo R. Martinez)
 * @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
 */
public class TestHerencia3 {
public static void main (String [] Args) {
ProductoFresco pfresco1 = new ProductoFresco("12-08-2017","FR1001","30-07-2017","Argentina");
ProductoFresco pfresco2 = new ProductoFresco("25-07-2017","FR1002","25-07-2017","Brasil");
ProductoRefrigerado prefrig1 = new ProductoRefrigerado("30-08-2017","RF1003","20-07-2017","Bolivia",2.0f,"AR-5004");
ProductoRefrigerado prefrig2 = new ProductoRefrigerado("05-09-2017","RF1004","20-07-2017","Brasil",3.5f,"AR-5005");
ProductoRefrigerado prefrig3 = new ProductoRefrigerado("15-09-2017","RF1005","20-07-2017","Chile",1.5f,"AR-5006");
ProductoCongeladoPorAgua pcongagua1 = new ProductoCongeladoPorAgua("12-06-2017","CAG1006","30-12-2017","Alemania",-18.0f,35.0f);
ProductoCongeladoPorAgua pcongagua2 = new ProductoCongeladoPorAgua("12-06-2017","CAG1007","30-12-2017","Francia",-15.5f,55.5f);
ProductoCongeladoPorAire pcongaire1 = new ProductoCongeladoPorAire("12-06-2017","CAI1008","30-12-2017","España",-12.0f,70.0f,19.0f,2.0f,8.0f);
ProductoCongeladoPorAire pcongaire2 = new ProductoCongeladoPorAire("12-06-2017","CAI1009","30-12-2017","Italia",-22.3f,70.5f,19.5f,2.0f,7.0f);
ProductoCongeladoPorNitrogeno pcongnitro1 = new ProductoCongeladoPorNitrogeno("12-06-2017","CAI1010","30-12-2017","Argentina",-25.3f,"Inmersion",7);
//Se muestran resultados.
pfresco1.MostrarProductoFresco();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pfresco2.MostrarProductoFresco();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
prefrig1.MostrarProductoRefrigerado();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
prefrig2.MostrarProductoRefrigerado();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
prefrig3.MostrarProductoRefrigerado();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongagua1.MostrarProductoCongeladoPorAgua();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongagua2.MostrarProductoCongeladoPorAgua();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongaire1.MostrarProductoCongeladoPorAire();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongaire2.MostrarProductoCongeladoPorAire();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongnitro1.MostrarProductoCongeladoPorNitrogeno();
System.out.println("xxxxxxxxxxxxxxx fin del programa xxxxxxxxxxxxxxxxxxxxxxx");
}
}

18
Buen día. Presento código correspondiente a posible solución del ejercicio propuesto CU00678B del curso de fundamentos de programación Java con BlueJ.

Código: [Seleccionar]
import java.util.*;
/**
 * Corresponde al ejercicio CU00678B - Curso "Aprender Programación java desde cero"
 * de aprenderaprogramar.com
 * 
 * Julio/2017
 */
 /* Enunciado:
(a).-Declarar un ArrayList de objetos tipo 'Set'
(b).-Crear un objeto de tipo 'HashSet' para contener Strings y que contenga
las cadenas: "sol", "luna", "saturno".
(c).-Crear un objeto de tipo 'TreeSet' para contener Integer y que contenga
los números: 2, 8, 5.
(d).-Usando iteradores para recorrer los elementos del ArrayList y el contenido
de cada uno de los elementos, mostrar por pantalla.*/
 /*Nota: Se ha añadido con fines didácticos mostrar también los componentes de los
 objetos HashSet y TreeSet.*/
 
public class TestPolimorfismo {
public static void main (String[] Args) {
ArrayList<Set> lista1 = new ArrayList<Set>(); //item 'a'
Set<String> s = new HashSet<String>(); //item 'b'
s.add("sol");
s.add("luna");
s.add("saturno");
//Muestro los componentes del HashSet
System.out.print("Item (b)- Los componentes de 's': ");
Iterator it1 = s.iterator();
while (it1.hasNext()) {
System.out.print(it1.next()+ "; ");
}
Set<Integer> t = new TreeSet<Integer>(); //item 'c'
t.add(2);
t.add(8);
t.add(5);
//Muestro los componentes del TreeSet
System.out.println("");
System.out.print("Item (c)- Los componentes de 't': ");
Iterator it2 = t.iterator();
while (it2.hasNext()) {
System.out.print(it2.next()+ ("; "));
}
//item 'd' - Se añaden los objetos HashSet y TreeSet al ArrayList
lista1.add(s);
lista1.add(t);

System.out.println("");

System.out.print("Item (d)- Los componentes del ArrayList: ");
//item 'e' recorrido del ArrayList mediante iteradores para mostrar los componentes
Iterator it3 = lista1.iterator();
while (it3.hasNext()) {
Iterator it4 = ((Set)it3.next()).iterator();
while (it4.hasNext()) {
System.out.print(it4.next()+ "; ");
}

}
}
}

19
Hola, presento posible solución para el ejercicio propuesto CU00672B del tutorial formativo de programación Java, y también una consulta sobre el comportamiento en el desarrollo del programa en la clase 'main'.

Primero los códigos utilizados:

Clase main:
 
Código: [Seleccionar]
public class TestAdivinarNumero {
public static void main (String[] Args) {
GenerarNumeroAleatorioCien tmpNumero = new GenerarNumeroAleatorioCien();
Integer numeroAd = Integer.valueOf(tmpNumero.getAleatorio());
System.out.println("Muestro el numero generado: " +numeroAd); //Solo con fin didáctico
System.out.println("Se ha generado un numero aleatorio entre 1 y 100. \nUsted intentara  adivinarlo.");
System.out.print("Juguemos a adivinar un número...\n\n");
System.out.println("Ingrese un numero entre 1 y 100: ");
EntradaPorTeclado nuevoNumero = new EntradaPorTeclado();
nuevoNumero.pedirEntrada();
Integer tmpPrueba = Integer.valueOf(nuevoNumero.getEntrada());



while (numeroAd != tmpPrueba) {
if (numeroAd < tmpPrueba) {
System.out.println("El numero ingresado es mayor que el oculto.\nVuelva a intentarlo ingresando uno menor.");
} else if (numeroAd > tmpPrueba) {
System.out.println("El numero ingresado es menor que el oculto.\nVuelva a intentarlo ingresando uno mayor.");
}
nuevoNumero.pedirEntrada();
tmpPrueba = Integer.valueOf(nuevoNumero.getEntrada());
}
System.out.println("El numero ingresado es igual al oculto");
System.out.println("Fin del programa.");
}
}


Clase para generar número aleatorio:

Código: [Seleccionar]
import java.util.Random;
/**
 *
 */
public class GenerarNumeroAleatorioCien {
private int numero;
private Random aleatorio = new Random();

public GenerarNumeroAleatorioCien() {
numero = aleatorio.nextInt((100)+1);
}

public int getAleatorio() {
return numero;
}
}

Clase EntradaPor Teclado

Código: [Seleccionar]
import java.util.Scanner;
/**
 * Para obtener entradas por teclado
 *
 * @author (Arnaldo Martinez)
 * @version (01_2016)
 */
public class EntradaPorTeclado{
   
    private String entradaTcl; //Campo de la clase
    //Constructor
    public EntradaPorTeclado(){
        entradaTcl= "";
        pedirEntrada(); //Llamado a un mètodo interno
    }
    //Mètodos de la clase
    public void pedirEntrada(){
        Scanner eEsc= new Scanner(System.in);
        entradaTcl= eEsc.nextLine();
    }
   
    public String getEntrada(){
        return entradaTcl;
    }
}

La consulta: Al realizar el llamado a main desde consola BlueJ el programa comienza a desarrollarse bien y se detiene luego de la invitación a ingresar el número a buscar, donde para continuar debo pulsar 'enter' una vez. Luego de esto cumple con lo esperado. No logro ver donde está o cual es la causa de la interrupción por lo que solicito una guía sobre este particular.

Muchas gracias por la atención que puedan brindarme y mis disculpas por la extensión.

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