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 - Jorge lopez

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13
161
Aprender a programar desde cero / Re:practica CU00636B
« en: 27 de Agosto 2014, 17:15 »
 De momento te recomiendo declarar todas las variables (solo las variables) de clase como private, para los métodos (setter, getters, otros...) de momento te recomiendo continuar declarándolos como public.

Mas adelante conocerás mas sobre las palabras claves public, private, protected, ext...

Espero que captes la idea.

Saludos

162
Aprender a programar desde cero / Re:practica CU00636B
« en: 27 de Agosto 2014, 15:05 »
 Por el momento, quédate con la idea de que todas las variables de una clase se deben declarar como private. porque?  En una declaración como: private String nombre;

private: indica que solo se puede acceder a la variable "nombre" desde el código de la propia clase y no desde el código de otras clases.

En general las buenas practicas dicen que toda variable que sea declarada en una clase debería de ser privada a menos que exista una justificación para no declararla así.

En cuanto a saber cuando declarar una variable public o private o protected, o si es conveniente y cuando es conveniente declarar una variable, un constructor o un método. public, private o protected, te darás de cuenta mas adelante conforme avances en el curso.

Saludos!

163
Aprender a programar desde cero / Re:Ejercicio! entrega CU00687B
« en: 27 de Agosto 2014, 14:16 »
  ;D
El fallo de crear la clase "AbstraccioProd" me surgió debido a que estuve diseñando el código con una que otras dudas, pero ahora gracias a tu comentario me ha quedado todo muy claro.
Gracias por comentar y Saludos Mario!

164
Aprender a programar desde cero / Re:Revisar (CU00634B)
« en: 27 de Agosto 2014, 05:58 »
 Me ah gustado mucho la forma que as usado para contestar a este ejercicio, aunque en lo personal yo hubiese optado por agrupar todos los métodos en un solo método "mostrarResultados(){...}"  .

Aunque tu codigo es bueno e ideal para contestar las preguntas, también es conveniente que puedas ser capas de analizar cada pregunta y responderla mentalmente.

Saludos!

165
Aprender a programar desde cero / Re:practica CU00636B
« en: 27 de Agosto 2014, 05:21 »
 Hola joellord!

El código compila y cumple con lo requerido por el enunciado del ejercicio.

Cosas a mejorar en cuanto al diseño del código:

1: has declarado, public class rueda. Lo correcto es que el nombre de una clase comience siempre con letra mayúscula. ejemp: public class Rueda.

2: Todas las variables se deben declarar privadas, ejemp: private String tipo, private double grosor, private ...ect.

3: Tanto para nombres de variables como para nombres de métodos que contengan mas de una palabra, es preferible que la primera letra de la primera palabra comience con una letra minúscula y la primera letra de las demás palabras comiencen con letra mayúscula, por tanto seria conveniente sustituir el nombre de tu método "set_tipo()" por "set_Tipo()" 0 "setTipo()". (Lo mismo para los demás métodos)

De mi parte, esos son los puntos a reforzar que pude identificar.
Saludos!

166
Aprender a programar desde cero / Re:Ejercicio! entrega CU00687B
« en: 26 de Agosto 2014, 22:36 »
 Estoy haciendo algunos ajustes al código  ;D
en la clase AbstraccionProd sustituí la constante "date" por el siguiente método:
Código: [Seleccionar]
    private Calendar calendar()
    {
      Calendar calendario = Calendar.getInstance();
      return calendario;
    }
ya que es mas combeniente que sea un método y no un campo de clase jjj
seguiré revisando a ver que puedo mejorar, mientras espero sus comentarios
Saludos.

167
 Uso de extends Y super.
Constructores con herencia.

Imagen en tamaño completo: https://lh5.googleusercontent.com/-zAyNNcfkhkg/U_v1m2E77vI/AAAAAAAAAKY/NXTnu6mnQxs/w975-h548-no/CU00687.PNG
Nota: Indicaciones a seguir para el correcto funcionamiento del código.
 1: Descargar y descomprimir el archivo.rar.
 2: Crear un package con nombre: CU00687B.
 3: Copiar los 9  archivos.java dentro de dicho package.
 4: ejecutar el método main de la clase TestHerencia3   ;D
Saludos!

168
 Uso de palabras clave extends y super. Constructores con herencia. Ejercicio CU00686B del curso de programación Java desde cero.

public class TestHerencia2 (clase con main)

Código: [Seleccionar]
package CU00686B;
public class TestHerencia2
{
  public static void main(String []args)
  {
    ProdFresco prodFresco = new ProdFresco();//Creación de un objeto tipo ProdFresco mediante el constructor general de la clase ProdFresco.
    ProdRefrigerado prodRefrigerado = new ProdRefrigerado();//Creación de un objeto tipo ProdRefrigerado mediante el constructor general de la clase ProdRefrigerado.
    ProdCongelado prodCongelado = new ProdCongelado("10-18-2020", 201412152200L, -1.5F);/*Creación de un objeto tipo ProdCongelado mediante el constructor
    con parámetros de la clase ProdCongelado*/
    prodFresco.setFechaDeExpiracion("12-15-2015");
    prodFresco.setNumDeLote(201412152200L);
    prodFresco.setFechaDeEnvasado("12-15-2014");
    prodFresco.setHechoEn("Republica Dominicana");
   
    prodRefrigerado.setFechaDeExpiracion("10-15-2018");;
    prodRefrigerado.setNumDeLote(201412152200L);
    prodRefrigerado.setCodigoOSA("COSA-200018000");

    System.out.println(" Producto fresco:");
    prodFresco.verInfoProdFresco();
   
    System.out.println("\n Producto refrigerado:");
    prodRefrigerado.verInfoProdRefrigerado();
   
    System.out.println("\n Producto congelado:");
    prodCongelado.verInfoProdCongelado();
  }
}


public class Producto

Código: [Seleccionar]
package CU00686B;
public class Producto
{
  private String fechaDeExpiracion;
  private long numDeLote;
  //Constructor general
  public Producto()
  {
    fechaDeExpiracion = "00-00-0000";
    numDeLote = 0L;
  }
  //Constructor con parámetros
  public Producto(String fDExp, long numLot)
  {
    fechaDeExpiracion = fDExp;
    numDeLote = numLot;
  }
  //Setters
  public void setFechaDeExpiracion(String fechaDeExpiracion)
  {
    this.fechaDeExpiracion = fechaDeExpiracion;
  }
  public void setNumDeLote(long numDeLote)
  {
    this.numDeLote = numDeLote;
  }
  //Getters
  public String getFechaDeExpiracion()
  {
    return fechaDeExpiracion;
  }
  public long getNumDeLote()
  {
    return numDeLote;
  }
  //Otros métodos
  public void verInfoProducto()
  {
    System.out.println("Fecha de expiracion: " + fechaDeExpiracion + "\nNumero de lote: " + numDeLote);
  }
}


public class ProdFresco extends Producto

Código: [Seleccionar]
package CU00686B;
public class ProdFresco extends Producto
{
  private String fechaDeEnvasado, hechoEn;
  //Constructor general
  public ProdFresco()
  {
    super();
    fechaDeEnvasado = "00-00-0000";
    hechoEn = "UnKnown";
  }
  //Constructor con parámetros
  public ProdFresco(String fDExp, long numLot, String fDEnvas, String madeIn)
  {
    super(fDExp, numLot);
    fechaDeEnvasado = fDEnvas;
    hechoEn = madeIn;
  }
  //Setters
  public void setFechaDeEnvasado(String fechaDeEnvasado)
  {
    this.fechaDeEnvasado = fechaDeEnvasado;
  }
  public void setHechoEn(String hechoEn)
  {
    this.hechoEn = hechoEn;
  }
  //Getters
  public String getFechaDeEnvasado()
  {
    return fechaDeEnvasado;
  }
  public String getHechoEn()
  {
    return hechoEn;
  }
  //Otros metodos
  public void verInfoProdFresco()
  {
    verInfoProducto();
    System.out.println("Fecha de envasado: " + fechaDeEnvasado + "\nPais de origen: " + hechoEn);
  }
}


public class ProdRefrigerado extends Producto

Código: [Seleccionar]
package CU00686B;
public class ProdRefrigerado extends Producto
{
  private String codigoOSA;
  //Constructor general
  public ProdRefrigerado()
  {
    super();
    codigoOSA = "COSA-0000"; 
  }
  //Constructor con parámetros
  public ProdRefrigerado(String fDExp, long numLot, String cOSA)
  {
    super(fDExp, numLot);
    codigoOSA = cOSA; 
  }
  //setters
  public void setCodigoOSA(String codigoOSA)
  {
    this.codigoOSA = codigoOSA;
  }
  //Getters
  public String getCodigoOSA()
  {
    return codigoOSA;
  }
  //Otros métodos
  public void verInfoProdRefrigerado()
  {
    verInfoProducto();
    System.out.println("Codigo del organismo de supervision Alimentaria: " + codigoOSA);
  }
}


public class ProdCongelado extends Producto

Código: [Seleccionar]
package CU00686B;
public class ProdCongelado extends Producto
{
  private float tempDeCongRecomend;
  //Constructor general
  public ProdCongelado()
  {
    super();
    tempDeCongRecomend = 0.0F;
  }
  //Constructor con parametros
  public ProdCongelado(String fDExp, long numLot, float tDCR)
  {
    super(fDExp, numLot);
    tempDeCongRecomend = tDCR;
  }
  //Setters
  public void setTempDeCongRecomend(float tempDeCongRecomend)
  {
    this.tempDeCongRecomend = tempDeCongRecomend;
  }
  //Getters
  public float getTempDeCongRecomend()
  {
    return tempDeCongRecomend;
  }
  //Otros metodos
  public void verInfoProdCongelado()
  {
    verInfoProducto();
    System.out.println("Temperatura de congelacion recomendada: " + tempDeCongRecomend + " grados °C");
  }
}
Nota: Indicaciones a seguir para el correcto funcionamiento del código.
 1: Crear un package con nombre: CU00686B 2: Declarar las 5 anteriores clases dentro de dicho package y 3: ejecutar el método main de la clase TestHerencia2  :P
Saludos!

169
Aprender a programar desde cero / Re:Ejercicio! entrega CU00684B
« en: 22 de Agosto 2014, 16:49 »
 Si, estan bien implementados  ;D
gracias por el comentario dongo.
Saludos!

170
 Relaciones de herencia y uso entre las distintas clases.




Ver imagen en tamaño completo:

 https://lh5.googleusercontent.com/-UfMPVYUbYZA/U_V0HReSJ-I/AAAAAAAAAJo/zYn4U7ZJ_yc/w1044-h587-no/extends.PNG

Saludos!

171
 Eh creado el enum (public enum Vehiculo) fuera de la clase (eliminada) Vehiculo y eh incluido las variables de instancia: int dia , Vehiculo marca y los metodos estaticos getters y setters  necesarios para gestionar dichas variables ahora comprendo mejor la funcion de un tipo enum, gracias por tu comentario dongo.
Saludos.

172
 Como siempre! los comentarios de Cesar con un valor de utilidad muy alto.
A Continuación el código del ejercicio replanteado (error de compilación corregido)
public class OfertarVehiculo
Código: [Seleccionar]
import java.util.Scanner;
 import javax.swing.JOptionPane;
 /**Esta clase dispone de un método main, cuyo cometido es pedir al usuario la marca de un vehículo entre 5 marcas disponibles, pedir un numero entero que representa una cantidad
  *de días, el método main utiliza dichos datos suministrados por el usuario para generar una oferta de renta de vehículo, mostrando modelos de vehículos disponibles y precio
  *de la renta, según la marca y la cantidad de días especificados, para realizar esta tarea, el método con el main usa métodos propios de la clase "Vehiculo" y métodos privados
   y propios de esta clase "OfertarVehiculo" (Los metodos declarados como private no se visualizan en la documentación generada por el javadoc)
   @author @sniperofelite
   @version 1.0.18
   */
public class OfertarVehiculo
{ /**Método tipo procedimiento, método main de la clase, ejecutar este método para iniciar el programa. el programa podria arrojar los siguientes errores en ejecución:
     @throws java.lang.IllegalArgumentException Si la marca indicada por el usuario no representa el String de uno de los objetos que contiene el enumerado declarado en la clase
     VehiculosYDias o lo indicado por el usuario es igual a null (campo vacío)
     @throws NumberFormatException Si lo escrito por el usuario en representación de los días no es un String que reprecente un numero entero o no se a escrito nada*/
  public static void main(String []args)
  {
    Vehiculo vehiculo = new Vehiculo();
    System.out.println("\t\t\t\t\t\t\t\t\tBienvenido a: Lopez Rent-a-Car\n\n\t\t\t\tSomos la empresa numero 1 en renta de vehiculos de las siguientes marcas: " + 
    "FORD, TOYOTA, SUZUKI, RENAULT y SEAT.\n\n\t\t\t\t\t\t\t\t  Pulsa enter para consultar nuestras ofertas");
    Scanner escaner = new Scanner(System.in);
    String entrada = escaner.nextLine();
    int volver = 0;
    while(volver == 0)
   {
    if(entrada.equals(""))
    {
      System.out.println("\f\nEsperando...");
    }
    String marca = JOptionPane.showInputDialog(null, "Selecciona una entre las siguientes marcas", "FORD TOYOTA SUZUKI RENAULT SEAT");
    String dias = JOptionPane.showInputDialog(null, "Dinos por cuantos días te gustaría realizar la renta ", "Ejemplo: 30");
    vehiculo.setMarca(Vehiculo.MarcasDeVehiculos.valueOf(marca.toUpperCase()));
    vehiculo.setDias((Integer.valueOf(dias)));
    String vehiculoARentar = vehiculo.getMarca().toString();
    long diasARentar = vehiculo.getDias();
    int i = 0;
    String faltaPoco = "";
    while(i <= 100)
    {
      if(i == 70)
      {
        faltaPoco = "\nYa falta poco!";
      }
      System.out.print(" \f" + i + "% Procesado." + faltaPoco + "\nEspera un momento, estamos generando las ofertas disponibles.");
      sleeping(150);
      i++;
    }
    sleeping(800);
    System.out.print("\fListo!");
    sleeping(2000);
    System.out.print("\fDisponemos de las siguientes ofertas para vehiculos de marca: " + vehiculoARentar + "\n");
    sleeping(4000);
    if(vehiculoARentar.equals("FORD"))
    {
      System.out.println("\nModelo: Mustang 2010. \nPrecio por dia: US 85. \nRenta por " + diasARentar + " dias = US " + (85*diasARentar) + ".");
      if(diasARentar > 15){descuento(85*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Fusion 2009. \nPrecio por dia: US 77. \nRenta por " + diasARentar + " dias = US " + (77*diasARentar) + ".");
      if(diasARentar > 15){descuento(77*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("TOYOTA"))
    {
      System.out.println("\nModelo: Camry 2007. \nPrecio por dia: US 50. \nRenta por " + diasARentar + " dias = US " + (50*diasARentar) + ".");
      if(diasARentar > 15){descuento(50*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Corolla 2004. \nPrecio por dia: US 40. \nRenta por " + diasARentar + " dias = US " + (40*diasARentar) + ".");
      if(diasARentar > 15){descuento(40*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("SUZUKI"))
    {
      System.out.println("\nModelo: Splash 2006. \nPrecio por dia: US 45. \nRenta por " + diasARentar + " dias = US " + (45*diasARentar) + ".");
      if(diasARentar > 15){descuento(45*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Kizashi 2008. \nPrecio por dia: US 55. \nRenta por " + diasARentar + " dias = US " + (55*diasARentar) + ".");
      if(diasARentar > 15){descuento(55*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("RENAULT"))
    {
      System.out.println("\nModelo: Kangoo Combi 2005. \nPrecio por dia: US 40. \nRenta por " + diasARentar + " dias = US " + (40*diasARentar) + ".");
      if(diasARentar > 15){descuento(40*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Twingo 3p 2005. \nPrecio por dia: US 45. \nRenta por " + diasARentar + " dias = US " + (45*diasARentar) + ".");
      if(diasARentar > 15){descuento(45*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("SEAT"))
    {
      System.out.println("\nModelo: Leon Cupra 2007. \nPrecio por dia: US 58. \nRenta por " + diasARentar + " dias = US " + (58*diasARentar) + ".");
      if(diasARentar > 15){descuento(58*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Toledo 2004. \nPrecio por dia: US 35. \nRenta por " + diasARentar + " dias = US " + (35*diasARentar) + ".");
      if(diasARentar > 15){descuento(35*diasARentar,10);}else{masDe15Dias();}
    }
    sleeping(7000);
    volver = JOptionPane.showConfirmDialog(null, "Te gustaria ver otra oferta?","Confirmar",0);
    System.out.println("\nGracias por preferirnos\nHasta luego!");
   }
  }
 
  /*Método tipo procedimiento, este método implementa el método sleep(long millis) de la clase java.lang.Thread, recibe un parámetro long y le pasa dicho long como parámetro
    al método sleep(long millis) crea un espacio de tiempo en la ejecución del código que se encuentre en la siguiente(s) linea(s) debajo de la declaración de este código, el espacio
    de tiempo es relativo al valor del parametro long miliSeg que recibe este método*/
  private static void sleeping(long miliSeg)
  {
    try
    {
      Thread.sleep(miliSeg);
    }catch(InterruptedException e){}
  }
 
  /*Método tipo procedimiento, imprime por pantalla la cadena: "10 por ciento de descuento si la renta excede los 15 días" entre comillas
     */
  private static void masDe15Dias()
  {
    System.out.println("\"10 por ciento de descuento si la renta excede los 15 días\"");
  }
 
  /*Metodo tipo procedimiento, recibe dos parametros long, calcula el por ciento del primer parámetro con relación al segundo parámetro, luego resta el resultado al valor del primer
     parámetro e imprime por pantalla la cadena: "Para esta renta se aplica un 10 por ciento de descuento por exceder los 15 días, para un total de: US + (total - resultado)"*/
  private static void descuento(long total, long porCiento)
  {
    long resultado = (total*porCiento) /100;
    System.out.println("Para esta renta se aplica un 10 por ciento de descuento por exceder los 15 dias, para un total de: US " +
    (total - resultado));
  }
}
public class Vehiculo
Código: [Seleccionar]
/**Esta clase dispone de un tipo enumerado que contiene 5 objetos, un campo de clase para contener un tipo primitivo long que inicial mente vale 0 y un campo de clase para contener un objeto
    de los 5 que están disponibles en el tipo enumerado, este campo de clase inicialmente contiene null. También dispone de métodos necesarios para gestionar los valores de los campos
    (asignar u obtener valores)
    @author @SniperOfelite
    @version 1.0.18
    */
public class Vehiculo
{
  //Desactivar la siguiente linea a modo de prueba para poder visualizar la interfaz de la clase (reactivar para el correcto funcionamiento del programa)
  public enum MarcasDeVehiculos{FORD, TOYOTA, SUZUKI, RENAULT, SEAT};/*Esta declaración hace que se genere un error al tratar de generar la documentación de clase mediante javadoc
  probé declarar esta linea de código fuera del cuerpo de la clase, por arriba de la documentacion de clase y esto no corrige el error. estoy usando:
  BlueJ version 3.1.1 (java version 1.8.0_05)*/
  private long dias;
  private MarcasDeVehiculos marca;
  /**Constructor general de la clase, inicializa el campo de clase tipo primitivo long "dias" con valor 0, y el campo de clase tipo objeto MarcasDeVehiculos con valor null.
     */
  public Vehiculo()
  {
    dias = 0;
    marca = null;
  }
  /**Metodo de tipo procedimiento, recibe un parámetro int y agrega dicho int como valor del campo de clase "dias"
     @param dias de tipo primitivo int.
     */
  public void setDias(int dias)
  {
    this.dias = dias;
  }
  /**Metodo de tipo procedimiento, recibe un parametro MarcaDeVehiculo y agrega dicho objeto como valor del campo de clase "marca"
     @param marca de tipo objeto MarcaDeVehiculo.
     */
  public void setMarca(MarcasDeVehiculos marca)
  {
    this.marca = marca;
  }
  /**Metodo de tipo funcion, devuelve el valor tipo long actual del campo de clase "dias"
     */
  public long getDias()
  {
    return dias;
  }
  /**Metodo de tipo funsion, devuelve el objeto actual del campo de clase "marca"
     */
  public MarcasDeVehiculos getMarca()
  {
    return marca;
  }
}
En cuanto a el comentario sobre desactivar y activar código, tendré presente no incluirlo en mis programas, en este caso hago una excepción y lo incluyo para que quien revise el código entienda el problema que tengo en esa parte y me ayude con una posible solución (consiente de que no es una buena practica para programas comercializables).
Saludos!

173
 Tipos enumerados (enum) valores posibles.
El siguiente código tiene pequeñas variaciones con respecto a lo que pide el enunciado del ejercicio, pero mantiene el mismo objetivo.
A continuación el código.
public class RentarVehiculo
Código: [Seleccionar]
import java.util.Scanner;
 import javax.swing.JOptionPane;
 /**Esta clase dispone de un método main, cuyo cometido es pedir al usuario la marca de un vehículo entre 5 marcas disponibles, pedir un numero entero que representa una cantidad
  *de días, el método main utiliza dichos datos suministrados por el usuario para generar una oferta de renta de vehículo, mostrando modelos de vehículos disponibles y precio
  *de la renta, según la marca y la cantidad de días especificados, para realizar esta tarea, el método con el main usa métodos propios de la clase "VehiculosYDias" y métodos privados
   y propios de esta clase "RentarVehiculo" (Los metodos declarados como private no se visualizan en la documentación generada por el javadoc)
   @author @sniperofelite
   @version 1.0.18
   */
public class RentarVehiculo
{ /**Método tipo procedimiento, método main de la clase, ejecutar este método para iniciar el programa. el programa podria arrojar los siguientes errores en ejecución:
     @throws java.lang.IllegalArgumentException Si la marca indicada por el usuario no representa el String de uno de los objetos que contiene el enumerado declarado en la clase
     VehiculosYDias o lo indicado por el usuario es igual a null (campo vacío)
     @throws NumberFormatException Si lo escrito por el usuario en representación de los días no es un String que reprecente un numero entero o no se a escrito nada*/
  public static void main(String []args)
  {
    VehiculosYDias vehiculo = new VehiculosYDias();
    System.out.println("\t\t\t\t\t\t\t\t\tBienvenido a: Lopez Rent-a-Car\n\n\t\t\t\tSomos la empresa numero 1 en renta de vehiculos de las siguientes marcas: " + 
    "FORD, TOYOTA, SUZUKI, RENAULT y SEAT.\n\n\t\t\t\t\t\t\t\t  Pulsa enter para consultar nuestras ofertas");
    Scanner escaner = new Scanner(System.in);
    String entrada = escaner.nextLine();
    int volver = 0;
    while(volver == 0)
   {
    if(entrada.equals(""))
    {
      System.out.println("\f\nEsperando...");
    }
    String marca = JOptionPane.showInputDialog(null, "Selecciona una entre las siguientes marcas", "FORD TOYOTA SUZUKI RENAULT SEAT");
    String dia = JOptionPane.showInputDialog(null, "Dinos por cuantos días te gustaría realizar la renta ", "Ejemplo: 30");
    vehiculo.setMarca((MarcaDeVehiculo.valueOf(marca.toUpperCase())));
    vehiculo.setDias((Integer.valueOf(dia)));
    String vehiculoARentar = vehiculo.getMarca().toString();
    int diasARentar = vehiculo.getDias();
    int i = 0;
    String faltaPoco = "";
    while(i <= 100)
    {
      if(i == 70)
      {
        faltaPoco = "\nYa falta poco!";
      }
      System.out.print(" \f" + i + "% Procesado." + faltaPoco + "\nEspera un momento, estamos generando las ofertas disponibles.");
      sleeping(150);
      i++;
    }
    sleeping(800);
    System.out.print("\fListo!");
    sleeping(2000);
    System.out.print("\fDisponemos de las siguientes ofertas para vehiculos de marca: " + vehiculoARentar + "\n");
    sleeping(4000);
    if(vehiculoARentar.equals("FORD"))
    {
      System.out.println("\nModelo: Mustang 2010. \nPrecio por dia: US 85. \nRenta por " + diasARentar + " dias = US " + (85*diasARentar) + ".");
      if(diasARentar > 15){descuento(85*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Fusion 2009. \nPrecio por dia: US 77. \nRenta por " + diasARentar + " dias = US " + (77*diasARentar) + ".");
      if(diasARentar > 15){descuento(77*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("TOYOTA"))
    {
      System.out.println("\nModelo: Camry 2007. \nPrecio por dia: US 50. \nRenta por " + diasARentar + " dias = US " + (50*diasARentar) + ".");
      if(diasARentar > 15){descuento(50*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Corolla 2004. \nPrecio por dia: US 40. \nRenta por " + diasARentar + " dias = US " + (40*diasARentar) + ".");
      if(diasARentar > 15){descuento(40*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("SUZUKI"))
    {
      System.out.println("\nModelo: Splash 2006. \nPrecio por dia: US 45. \nRenta por " + diasARentar + " dias = US " + (45*diasARentar) + ".");
      if(diasARentar > 15){descuento(45*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Kizashi 2008. \nPrecio por dia: US 55. \nRenta por " + diasARentar + " dias = US " + (55*diasARentar) + ".");
      if(diasARentar > 15){descuento(55*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("RENAULT"))
    {
      System.out.println("\nModelo: Kangoo Combi 2005. \nPrecio por dia: US 40. \nRenta por " + diasARentar + " dias = US " + (40*diasARentar) + ".");
      if(diasARentar > 15){descuento(40*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Twingo 3p 2005. \nPrecio por dia: US 45. \nRenta por " + diasARentar + " dias = US " + (45*diasARentar) + ".");
      if(diasARentar > 15){descuento(45*diasARentar,10);}else{masDe15Dias();}
    }
    else if(vehiculoARentar.equals("SEAT"))
    {
      System.out.println("\nModelo: Leon Cupra 2007. \nPrecio por dia: US 58. \nRenta por " + diasARentar + " dias = US " + (58*diasARentar) + ".");
      if(diasARentar > 15){descuento(58*diasARentar,10);}else{masDe15Dias();}
      sleeping(7000);
      System.out.println("\nModelo: Toledo 2004. \nPrecio por dia: US 35. \nRenta por " + diasARentar + " dias = US " + (35*diasARentar) + ".");
      if(diasARentar > 15){descuento(35*diasARentar,10);}else{masDe15Dias();}
    }
    sleeping(7000);
    volver = JOptionPane.showConfirmDialog(null, "Te gustaria consultar otro vehiculo?","Confirmar",0);
    System.out.println("\nGracias por preferirnos\nHasta luego!");
   }
  }
 
  /*Método tipo procedimiento, este método implementa el método sleep(long millis) de la clase java.lang.Thread, recibe un parámetro long y le pasa dicho long como parámetro
    al método sleep(long millis) crea un espacio de tiempo en la ejecución del código que se encuentre en la siguiente(s) linea(s) debajo de la declaración de este código, el espacio
    de tiempo es relativo al valor del parametro long miliSeg que recibe este método*/
  private static void sleeping(long miliSeg)
  {
    try
    {
      Thread.sleep(miliSeg);
    }catch(InterruptedException e){}
  }
 
  /*Método tipo procedimiento, imprime por pantalla la cadena: "10 por ciento de descuento si la renta excede los 15 días" entre comillas
     */
  private static void masDe15Dias()
  {
    System.out.println("\"10 por ciento de descuento si la renta excede los 15 días\"");
  }
 
  /*Metodo tipo procedimiento, recibe dos parametros long, calcula el por ciento del primer parámetro con relación al segundo parámetro, luego resta el resultado al valor del primer
     parámetro e imprime por pantalla la cadena: "Para esta renta se aplica un 10 por ciento de descuento por exceder los 15 días, para un total de: US + (total - resultado)"*/
  private static void descuento(long total, long porCiento)
  {
    long resultado = (total*porCiento) /100;
    System.out.println("Para esta renta se aplica un 10 por ciento de descuento por exceder los 15 dias, para un total de: US " +
    (total - resultado));
  }
}
public class VehiculosYDias
Código: [Seleccionar]

 /**Esta clase dispone de un tipo enumerado que contiene 5 objetos, un campo de clase para contener un tipo primitivo int que inicial mente vale 0 y un campo de clase para contener un objeto
    de los 5 que están disponibles en el tipo enumerado, este campo de clase inicialmente contiene null. También dispone de métodos necesarios para gestionar los valores de los campos
    (asignar u obtener valores)
    @author @SniperOfelite
    @version 1.0.18
    */
public class VehiculosYDias
{
  //Desactivar la siguiente linea a modo de prueba para poder visualizar la interfaz de la clase (reactivar para el correcto funcionamiento del programa)
  enum VehiculosForRent{FORD, TOYOTA, SUZUKI, RENAULT, SEAT};/*Esta declaración hace que se genere un error al tratar de generar la documentación de clase mediante javadoc
  probé declarar esta linea de código fuera del cuerpo de la clase, por arriba de la documentacion de clase y esto no corrige el error. estoy usando:
  BlueJ version 3.1.1 (java version 1.8.0_05)*/
  private int dias;
  private MarcaDeVehiculo marca;
  /**Constructor general de la clase, inicializa el campo de clase tipo primitivo int "dias" con valor 0, y el campo de clase tipo objeto MarcaDeVehiculo con valor null.
     */
  public VehiculosYDias()
  {
    dias = 0;
    marca = null;
  }
  /**Metodo de tipo procedimiento, recibe un parámetro int y agrega dicho int como valor del campo de clase "dias"
     @param dias de tipo primitivo int.
     */
  public void setDias(int dias)
  {
    this.dias = dias;
  }
  /**Metodo de tipo procedimiento, recibe un parametro MarcaDeVehiculo y agrega dicho objeto como valor del campo de clase "marca"
     @param marca de tipo objeto MarcaDeVehiculo.
     */
  public void setMarca(MarcaDeVehiculo marca)
  {
    this.marca = marca;
  }
  /**Metodo de tipo funcion, devuelve el valor actual del campo de clase "dias"
     */
  public int getDias()
  {
    return dias;
  }
  /**Metodo de tipo funsion, devuelve el valor actual del campo de clase "marca"
     */
  public MarcaDeVehiculo getMarca()
  {
    return marca;
  }
}
Saludos!

174
Aprender a programar desde cero / Re:Ejercicio! entrega CU00680B
« en: 17 de Agosto 2014, 20:40 »
 Interesante correcion, lo tomare en cuenta a la hora de volver a documentar métodos.
Saludos  Mastermind.

175
 Esa es la intención!
Gracias por revisar  Mastermind.
Saludos!

176
 Hola javi!
He implementado cambios en el código según tu comentario, pude notar que el warning guardaba relacion solo con la declaración del tipo de elemento a recorrer en cada Iterator.
En cuanto a las declaraciones como:
Código: [Seleccionar]
HashSet<String> universo = new HashSet<String>();
TreeSet<Integer> numeros = new TreeSet<Integer>();
a pesar de que no gualdan relacion con el warning entiendo que es preferible declarar:
Código: [Seleccionar]
Set<String> universo = new HashSet<String>();
Set<Integer> numeros = new TreeSet<Integer>();
puesto que se nota el polimorfismo.
Muchas gracias por ayudarme con este warning, la verdad desconocía el motivo de este y mucho mas, desconocía como eliminarlo.
Saludos javi.

177
 Documentando proyectos con javadoc.
public class MiniCalculadoraEjemplo
Código: [Seleccionar]
import java.lang.Math;
 /**Esta clase realiza dos operaciones matemáticas apoyada en métodos de la  clase Math del paquete lang del api de java.
    @author SniperOfElite
    @version 1.0
    */
public class MiniCalculadoraEjemplo
{
     /**Constructor general de la clase
       "constructor sin inicialisaciones"*/
     public MiniCalculadoraEjemplo()
     {
         //nada que declarar
     }
     //el método abs de la clase Math del paquete lang del api de java, devuelve el valor absoluto de un numero, ya sea un valor tipo int, double, float o long.
     /**Método de tipo función, recibe un parámetro, realiza una operación matemática y retorna un valor.
       @param valorInAnsoluto parámetro de tipo primitivo double.
       @return retorna un tipo primitivo double como el valor absoluto del parametro valorInAbsoluto de tipo primitivo double.
       @see http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#abs(double)
       */
     public double unValorAbsoluto(double valorInAbsoluto)
     {
       return Math.abs(valorInAbsoluto);
     }   
     //el método sqrt de la clase Math del paquete lang del api de java, devuelve la raíz cuadrada de un valor tipo double.
     /**Método de tipo función, recibe un parámetro, realiza una operación matemática y retorna un valor.
       @param valorACalcular parámetro de tipo primitivo double.
       @return retorna un tipo primitivo double como el valor de la raíz cuadrada del parámetro valorACalcular de tipo primitivo double.
       @see http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html#sqrt(double)
       */     
     public double dimeRaizCuadrada(double valorACalcular)
     {
       return Math.sqrt(valorACalcular);
     }
}

178
 Creando un LinkedList a partir de un array. Utilizando constructores (2) con parametros.
public class TestConstructores2
Código: [Seleccionar]
import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.ArrayList; import java.util.Iterator;
public class TestConstructores2
{
  public static void main(String []args)
  {
    Boolean []verdaderoFalsoA = {true, true, false, false, false, false};
    List<Boolean> verdaderoFalsoLL = new LinkedList<Boolean>(Arrays.asList(verdaderoFalsoA));
    //verdaderoFalsoLL = Arrays.asList(verdaderoFalsoA); (sintaxis valida si el constructor de LinkedList fuese su constructor general)
    System.out.println("El contenido inicial de la LinkedList es: " + verdaderoFalsoLL);
    Boolean []otroVerdaderoFalsoA = Arrays.copyOf(verdaderoFalsoA,10);
    List<Boolean> verdaderoFalsoAL = new ArrayList<Boolean>(Arrays.asList(otroVerdaderoFalsoA));
    System.out.println("\nEl contenido inicial del ArrayList es: " + verdaderoFalsoAL);
    Iterator iVerdaderoFalsoAL = verdaderoFalsoAL.iterator();
    while(iVerdaderoFalsoAL.hasNext())
    {
        if(iVerdaderoFalsoAL.next() == null)
        {
          iVerdaderoFalsoAL.remove();
        } 
    }
    System.out.println("\nEl contenido actual del ArrayList es: " + verdaderoFalsoAL);
  }
}

179
 Este ejercicio parece sencillo, pero me puso a chocar la cabeza de la pared en muchos instantes, espero que este código implemente a el ejercicio CU00678  ;D
public class TestPolimorfismo
Código: [Seleccionar]
import java.util.Set;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.TreeSet;
 import java.util.Iterator;
public class TestPolimorfismo
{   
    public static void main(String []args)
    {
      //Creacion de objetos tipo ArrayList, HashSet y TreeSet.
      ArrayList<Set> listObjsUniversoYNumeros = new ArrayList<Set>();
      HashSet<String> universo = new HashSet<String>();
      TreeSet<Integer> numeros = new TreeSet<Integer>();
      //agregando elementos  de tipo String a la colección universo de tipo HashSet
      universo.add("sol"); universo.add("luna"); universo.add("saturno");
      //agregando elementos  de tipo Integer a la colección números de tipo TreeSet
      numeros.add(2); numeros.add(8); numeros.add(5);
      //agregando elementos  de tipos (HashSet y TreeSet) polimorficos a la clase Set, a la coleccion listObjsUniversoYNumeros de tipo ArrayList<Set>
      listObjsUniversoYNumeros.add(universo);
      listObjsUniversoYNumeros.add(numeros);
      //recorriendo colecciones con Iterator
      Iterator<Set> iteratorAL = listObjsUniversoYNumeros.iterator();
      Set elemento0 = iteratorAL.next();
      Set elemento1 = iteratorAL.next();
      Iterator<String> iElemento0 = elemento0.iterator();
      Iterator<Integer> iElemento1 = elemento1.iterator();
      //recorriendo y mostrando por pantalla los elementos de las colecciones universo y numeros, a través de Iterator
      String separador = ", ";
      System.out.print("\nConjunto de los elementos contenidos en cada una de las sub-colecciones que contiene la colección listObjsUniversoYNumeros: ");
      while(iElemento0.hasNext())
      {
        System.out.print(iElemento0.next() + separador);
      }
      int i = 0;
      while(iElemento1.hasNext())
      {
        i++;
        if(i == elemento1.size())
        {
          separador = ".";
        }
        System.out.print(iElemento1.next() + separador);
      }
      System.out.println("\nTotal: " + (universo.size() + numeros.size()) + " elementos.");       
    }
}
Tanto codigo para imprimir 2 lineas de texto, Lolz ;D
Saludos!

180
 Si si, ahora que lo mencionas lo recuerdo, lo revisare nuevamente.
gracias por comentar, saludos!

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13

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