• Viernes 8 de Noviembre de 2024, 13:24

Autor Tema:  No se como hacer este pedacito....  (Leído 2292 veces)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
No se como hacer este pedacito....
« en: Viernes 3 de Octubre de 2008, 01:57 »
0
Crea una clase CRectángulo. La clase tiene dos datos miembro, largo y ancho. La clase cuenta con
métodos que calculan el perímetro (obtenPerímetro) y el área (obtenÁrea) del rectángulo, así como
métodos para obtener y poner los valores correspondientes a los atributos largo y ancho.
Los métodos poner deben comprobar que tanto largo como ancho sean mayores que 0 y menores que 20.

Código: Text
  1. import javax.swing.*;
  2. public class CRectangulo {
  3.  
  4.     private float largo;
  5.     private float ancho;
  6.    
  7.    
  8.     /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9.     public void setLargo(float L){
  10.        
  11.         largo=L;   
  12.          
  13.        
  14.     }
  15.    
  16.     public float getLargo(){
  17.         return largo;
  18.     }
  19.    
  20.     /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  21.     public void setAncho(float a){
  22.        
  23.         ancho=a;   
  24.           
  25.     }
  26.    
  27.     public float getAncho(){
  28.         return ancho;
  29.     }
  30.    
  31.     /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  32.    
  33.       public float obtenArea(){
  34.         float area=0;
  35.         area=largo*ancho;
  36.        
  37.         return area;
  38.        
  39.     }
  40.    
  41.     public float obtenPerimetro(){
  42.         float perimetro=0;
  43.         perimetro=(2*(largo + ancho));
  44.        
  45.         return perimetro;
  46.        
  47.     }
  48.  
  49.    
  50.    
  51.     /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  52.    
  53.     public static void main(String args[]){
  54.         CRectangulo r=new CRectangulo();
  55.         r.setLargo(Float.parseFloat(JOptionPane.showInputDialog("Digite el largo del rectangulo ")));
  56.         r.setAncho(Float.parseFloat(JOptionPane.showInputDialog("Digite el ancho del rectangulo ")));
  57.         float respuestaArea=r.obtenArea();
  58.         float respuestaPerimetro=r.obtenPerimetro();
  59.         JOptionPane.showMessageDialog(null,"El area del rectangulo es = "+ respuestaArea + "n" + "El perimetro del rectangulo es = " + respuestaPerimetro);
  60.        
  61.    
  62.     }
  63.    
  64.    
  65.    
  66. }
  67.  

No se como haria lo subraye en el enunciado (si se que L deb cumplir esto ((( L > 0 && L < 0 ))) al igual que a , no sabria como implementarlo )
Por favor ayudenme.
MUCHAS GRACIAS

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: No se como hacer este pedacito....
« Respuesta #1 en: Viernes 3 de Octubre de 2008, 09:00 »
0
Cita de: "digichap28"
L > 0 && L < 0

Supongo que querrás decir L>0 && L<20.

Cita de: "digichap28"
Los métodos poner

Ya te lo dicen, hay que comprobar a la hora de "poner" ("set" en inglés) el valor, por tanto en setLargo() y setAncho(), tal que:

Código: Java
  1.  
  2. public void setLargo(float L){
  3.      if  (L>0 && L<20)
  4.          largo=L;  
  5. }
  6.  
  7.  
  8. public void setAncho(float a){
  9.      if  (a>0 && a<20)
  10.          ancho=a;
  11. }
  12.  
  13.  

Podrías añadir un aviso o algo en caso de que no se cumpla el rango de los valores. Un saludo.

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: No se como hacer este pedacito....
« Respuesta #2 en: Viernes 3 de Octubre de 2008, 13:59 »
0
UMM, asi lo tenia yo  pero considere q estaba incorrecto porque no me mostraba nada , sino que la respuesta arrojada (area y perimetro) es 0.
Ahora, para devolver un mensaje que tal vez diga que "El dato entrado no es valido, el resultado se vera alterado" , como lo meteria en los metodos set , si lo que me devuelve es un float.

Tendria que ponerlo en otro metodo?
No puedo pq el problema me pide la comprobacion en el SET , pero de la forma que digo no lo veo posible.

Muchas gracias por responder.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: No se como hacer este pedacito....
« Respuesta #3 en: Viernes 3 de Octubre de 2008, 14:16 »
0
Cita de: "digichap28"
como lo meteria en los metodos set , si lo que me devuelve es un float.

Ejem, no, te devuelve void (es decir, nada).

Cita de: "digichap28"
Tendria que ponerlo en otro metodo?

No, no, hay que sacar el mensaje por pantalla simplemente. No te rayes:

Código: Java
  1.  
  2. System.out.println("Error, introduzca un valor en el rango (0,20)");
  3.  
  4.  

por ejemplo.

SFRJ

  • Miembro MUY activo
  • ***
  • Mensajes: 115
    • Ver Perfil
Re: No se como hacer este pedacito....
« Respuesta #4 en: Viernes 3 de Octubre de 2008, 17:11 »
0
Oye que hace esta linea?

r.setLargo(Float.parseFloat(JOptionPane.showInputDialog("Digite el largo del rectangulo ")));

Como consigue un valor float de un String?
Esto es GUI no?

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: No se como hacer este pedacito....
« Respuesta #5 en: Viernes 3 de Octubre de 2008, 18:18 »
0
No le veo el misterio. String showInputDialog(String mensage) crea un campo de texto "flotante" por así decirlo, y retorna lo que hallas puesto en el campo de texto, o sea que si pones 1.4 y le das aceptar, el método devuelve 1.4, que si se le puede hacer parseFloat().

Cita de: "m0skit0"
No, no, hay que sacar el mensaje por pantalla simplemente. No te rayes:

Código: Java
  1.  
  2. System.out.println("Error, introduzca un valor en el rango (0,20)");
  3.  
  4.  

por ejemplo.

También se puede hacer esto:
Código: Java
  1. float largo = Float.parseFloat(JOptionPane.showInputDialog("Digite el largo del rectangulo "));
  2. if(largo > 0 && largo <= 20) {
  3.   JOptionPane.showMessageDialog(null,"El largo del rectangulo debe estar en el rango de 0 a 20");
  4.   exit();
  5. }
  6.  

De igual forma se hace para el ancho del rectángulo, y dejas el código como lo tenías al principio.
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas