Autor Tema: Ejercicio CU00673B clase círculo java con funciones calcular área y longitud  (Leído 13012 veces)

momo

  • Principiante
  • **
  • Mensajes: 64
    • Ver Perfil
Pregunta:
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?

Respuesta:

No Es posible ya que vamos a Declarar numeroPi como una constante -- y por lo tanto debe de ir obligatoria mente en cabecera de la clase  si hacemos un método para establecer el valor de numeroPi nos daría un error .



Citar
/*Define una clase Java denominada Circulo que tenga como atributo de clase (estático) y constante
 * numeroPi, siendo esta constante de tipo double y valor 3.1416. Además la clase tendrá el atributo
 * radio (tipo double) que representa el radio del círculo, y los métodos para obtener y establecer los
 * atributos. También debe disponer de un método para calcular el área del círculo (método tipo funcion
 * areaCirculo que devuelve el área) y la longitud del círculo (método tipo función que devuelve la
 * longitud). Busca información sobre las fórmulas necesarias para crear estos métodos en internet si no
 * las recuerdas. En una clase con el método main, declara el código que cree un objeto círculo, le pida
 * al usuario el radio y le devuelva el área y la longitud del círculo.

¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?*/

TESTCIRCULO
Código: [Seleccionar]
public class TestCirculo
{
    public static void main()
    {
        String opcion="",respuesta="";
        EntradaDeTeclado entrada=new EntradaDeTeclado();
        Circulo circulo=new Circulo(0.0);
        do{
            System.out.println(" |             MENU CIRCULO               |");
            System.out.println(" |          1.INGRESAR VALOR         |");
            System.out.println(" |         2. CALCULAR AREA               |");
            System.out.println(" |  3. CALCULAR LONGITUD CUYO RADIO       |");
            System.out.println(" | 4. CALCULAR LONGITUD CUYO DIAMETRO     |");
            entrada.pedirEntrada();
            opcion=entrada.getEntrada();
            int menuCirculo=Integer.valueOf(opcion);

            switch(menuCirculo)
            { 

                case 1:
                {
                    System.out.println("INTRODUSCA EL VALOR");
                    entrada.pedirEntrada();
                    double radio=Double.valueOf(entrada.getEntrada());
                    circulo=new Circulo(radio);
                    System.out.println("GRACIAS POR INGRESAR EL VALOR\nVUELVA AL MENU PRINCIPAL PARA CALCULAR ALGUNAS DE ESTAS TRES OPCIONES:\n1°AREA.\n2°LONGITUD CUYO RADIO.\n3°LONGITUD CUYO  DIAMETRO.");
                    break;   
                }
                case 2:
                {
                    System.out.println(" AREA DE UN CIRCULO : "+"[ "+circulo.areaCirculo()+" ]");
                }
                break;
                case 3:
                {
                    System.out.println("LONGITUD DE UN CIRCULO CUYO RADIO  ES : "+"[ "+circulo.longitudCirculo()+" ]");
                }
                break;
                case 4:
                {
                    System.out.println("LONGITUD DE UN CIRCULO CUYO DIAMETRO  ES : "+"[ "+circulo.longitudCirculoDiametro()+" ]");
               
                }
                break;
                default:
                {
                    System.out.println(" NO EXISTE ESTE VALOR EN EL MENU");
                }
                break;   
            }
            System.out.println("INGRESAR MENU PRINCIPAL SI ES ---> SI <---- PRECIONE [s O S] SI ES--->NO<--- PRECIONE [n O N]");
            entrada.pedirEntrada();
            respuesta=entrada.getEntrada();
        }while(respuesta.equals("s")||respuesta.equals("S"));
        System.out.println("ADIOS AMIGO");
       
    }
}
CIRCULO
Código: [Seleccionar]
import java.lang.Math;
public class Circulo
{
    private static final double PI=3.1416;
    private double radioODiametro;
    public Circulo(double valorRadioODiametro)
    {
        radioODiametro=valorRadioODiametro;
    }
   public double getRadio(){return radioODiametro;}
    public double areaCirculo()
    {
       
        return  PI *Math.pow(radioODiametro,2);
    }
    public double longitudCirculo()
    {
        return  radioODiametro*2*PI;
    }
      public double longitudCirculoDiametro()
    {
        return  radioODiametro*PI;
    }
}

ENTRADADETECLADO
Código: [Seleccionar]
import java.util.Scanner; //Importación de la clase Scanner desde la biblioteca Java
public class EntradaDeTeclado {  // Definimos la clase EntradaDeTeclado aprenderaprogramar.com
    private String entradaTeclado; //Variable de instancia (campo) del método
 
    //Constructor
    public EntradaDeTeclado ()  {
        entradaTeclado=""; } //Cierre del constructor
 
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
    } //Cierre del método pedirEntrada
 
    public String getEntrada () {
        return entradaTeclado;
 } //Cierre del método getEntrada
} //Cierre de la clase



Una Pregunta Como haría para Hacer una Limpieza de pantalla es decir una ves que retorne al menú la consola se limpie

Se es una manera que es aplicando un for y mandar a imprirmir un espacio en blanco n cantidad de veces sea posible.

pero quiero saber si existe un paquete de la api de java  que llegue a realizar esta función   
« Última modificación: 05 de Octubre 2014, 11:26 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00673B
« Respuesta #1 en: 02 de Octubre 2014, 23:07 »
Hola momo
Citar
Pregunta:
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?
Respuesta:
No Es posible ya que vamos a Declarar numeroPi como una constante -- y por lo tanto debe de ir obligatoria mente en cabecera de la clase  si hacemos un método para establecer el valor de numeroPi nos daría un error .
Respuesta correcta

Tu ejercicio demuestra imaginación en la presentación. Bien.

-----------------------
Clase TestCirculo
Quiero decirte que en el primer menú, no sabía que había que hacer. He tenido que mirar el código para entender como iba la cosa.
Yo empecé con la opción 2 y todo daba cero.
No estaría de más poner la primera opción algo como:
1 Antes de nada Ingresar valor del radio
Y después escoger cualquiera de las otras opciones

Otra cosa. Cuando entras en el switch en el case 1:
Presentas este mensaje
Citar
System.out.println("GRACIAS POR INGRESAR EL VALOR\nVUELVA AL MENU PRINCIPAL PARA CALCULAR ALGUNAS DE ESTAS TRES OPCIONES:\n1°AREA.\n2°LONGITUD CUYO RADIO.\n3°LONGITUD CUYO  DIAMETRO.");
cuyos números no coinciden con el menú principal

Deberías cuidar los detalles


Otra manera de hacer esto
Circulo circulo=new Circulo(0.0);
es
Circulo circulo;
declaras sin inicializar, pues ya lo haces dentro del switch con
circulo=new Circulo(radio);

Una última cosa. Escribir todo en mayúsculas, destaca. Si, es como hablar siempre a gritos.
Si quieres que tus menús destaquen, pon adornos como hiciste en los extremos del texto, juega con la indentación del texto (poner espacios para centrar el texto), y lo que se te ocurra.

---------------------
Clase Circulo
Te repito lo que digo a otros compañeros.
Cada atributo de la clase debe tener sus métodos set y get

El atributo  'radioODiametro' tiene un nombre muy particular. Para ti tal vez es explicativo, pero yo lo encuentro un lio.
Tal vez ha sido la mejor manera que encontraste para hablar de radio y diámetro en la clase, pero yo creo que te has liado. Todos sabemos que el radio es la mitad del diámetro y al revés.
Yo habría escogido o radio o diámetro, y si necesito el otro pues multiplico por dos o divido por dos, y ya está

Veo que creas dos métodos para calcular la longitud del círculo según usas el radio o el diámetro. ¿Por que no has hecho lo mismo para el área del círculo?

Espero que mis notas te sirvan para mejorar.
Saludos

momo

  • Principiante
  • **
  • Mensajes: 64
    • Ver Perfil
Re:Ejercicio CU00673B
« Respuesta #2 en: 03 de Octubre 2014, 04:13 »
Hola Amigo Toni Gracias Por tus recomendaciones las tomare en cuenta :)

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00673B
« Respuesta #3 en: 03 de Octubre 2014, 21:10 »
Hola momo
Para limpiar la pantalla en cualquier momento durante la ejecución del programa:
Mostrar un mensaje por pantalla con el carácter de control '\f'
Ejemplo
System.out.println ("\fTexto mostrado despues de limpiar la pantalla");

Saludos

 

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