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

Páginas: 1 ... 12 13 14 15 16 [17] 18 19 20
321
Buenas Alex, gracias, si aún no me hago idea de las implicaciones en la parte gráfica pero por otros lenguajes entiendo el ahorro de control de tipologias.

Mil gracias por el comentario.

322
Aprender a programar desde cero / Re:inicio en java
« en: 09 de Abril 2015, 21:50 »
Ahi salen todos en el curso, desde for... hasta while, do.. while, switch todo y for each también.

323
Buenas tardes, ahi va mi respuesta

Citar
Intenta compilar el siguiente código:

public class Test {
    int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + this.getAtrib1());
    } //Cierre del main

    public int getAtrib1() {return atributo1;}
} //Cierre de la clase



¿Qué mensaje de error se obtiene?

non static variable this cannot be referenced from a static context

¿Por qué se obtiene este mensaje de error?

Bueno el metodo main al ser static, solo puede acceder a variables y metodos de su clase si son static también, sino se entiende que son variables y metodos de instancia y no de clase.

En concreto el error en el this, aunque ponga en static la variable y el metodo sigue persistiendo.

Código: [Seleccionar]
    System.out.println ("Atributo 1 vale" + this.getAtrib1()); 
Al quitarlo compila y hace lo que queremos, deduzco que tiene que ver con que "this." hace referencia a la variable de instancia y no de Clase, aunque buscando no lo he podido confirmar cien por cien seguro.

Encontré esto para asegurarme de que no decía una barbaridad.

Citar
this

Al acceder a variables de instancia de una clase, la palabra clave this hace referencia a los miembros de la propia clase en el objeto actual; es decir, this se refiere al objeto actual sobre el que está actuando un método determinado y se utiliza siempre que se quiera hace referencia al objetoactual de la clase.

¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?

Código: [Seleccionar]

/**
 * Write a description of class Test here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class Test {
    static int atributo1;
   
    Test(int atrib) { atributo1 = 0; }

    public static void main (String [] args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + getAtrib1() );
       
    } //cierre main

     static public int getAtrib1() { return atributo1; }
} //cierre clase

También me funciona añadiendo Test.getAtrib1() pero no con el this.getAtrib1 lo que me dio la idea de pensar que this se referia al metodo o variable de instancia y no de clase.
Código: [Seleccionar]
System.out.println ("Atributo 1 vale" + Test.getAtrib1() );

P.D. por lo que veo no acierto con mi deducción del this.getAtrib1, si se refiere a la clase no a instancia, pero aun así me da error y no comprendo porque, poniendo todo static, en cambio Test.getAtrib1 no da error, aunque deberian ser lo mismo. Si alguien puede ilustrarme lo agradeceré porque no lo veo.

324
Aprender a programar desde cero / Re:inicio en java
« en: 09 de Abril 2015, 17:03 »
Buenas oscar91, en esta misma web tienes un curso de Java desde 0 que esta muy muy bien.

Te dejo el link, entiendo quieres aprender sobre bucles etc..

https://www.aprenderaprogramar.es/index.php?option=com_content&view=category&id=68&Itemid=188

325
Buenas tardes, aquí dejo mi ejercicio resuelto

Clase Enum TipoPiedra

Código: [Seleccionar]

/**
 * Enumeration class Piedras - Esta clase contiene los tipos de piedra y sus pesos especificos.
 *
 * @author Lorenzo31
 * @version 09-04-2015
 */

public enum TipoPiedra {

    CALIZA (1200f),

    MARMOL (1423.55f),

    PIZARRA (1325f),

    CUARZITA (1466.22f);

    private final float peso;

    TipoPiedra(float valorPeso) { peso = valorPeso; }

    public float getPeso() { return peso; }
   
    /**
     * Funcion que @return un float y calcula el peso de un palet fijandose en el peso unitario
     * y multiplicandolo por 2.27 que se daba por supuesto en el ejercicio anterior, era un palet
     */
    public float getPesoPalet() { return 2.27f * peso; }

}

Clase Main GestorPiedra

Código: [Seleccionar]
/**
 * Clase Main que recorre los tipos de Enumerados declarados en Enum TipoPiedra
 * @Author Lorenzo31
 */

public class GestorPiedra {
   
    public static void main (String [] args){
       
        System.out.println("Iniciamos el programa ");
       
       System.out.println(" TIPO PIEDRA \t PESO M3 \t PESO TOTAL PALET");
       
        for(TipoPiedra tmp: TipoPiedra.values()){
        System.out.println(tmp.toString()  + "\t \t" + tmp.getPeso() + "kg \t \t" + tmp.getPesoPalet() + "kg" );
    }
    }
}

326
Me ocurrio algo parecido muchos ejercicios atrás y como indicas al hacer nextLine() coge toda la linea y la unica forma que vi de solucionarlo es hacer un new Scanner con el mismo nombre que el anterior y dividirlo en metodos segun que entrada pretendia obtener, int o line etc.. (variable de método)

El resto ya lo has visto tu solo genial ArcanFAC

327
Buenas, aquí dejo mi solución al ejercicio. Un poco laborioso lo de averiguar como recoger enum del usuario, supongo que despues compensa que ya queda todo controlado en los valores que tu deseas se entre.

Sin más ahí va.

Clase Enum MarcaDeVehiculo

Código: [Seleccionar]

/**
 * Enumeration class MarcaDeVehiculo - Tipos de Vehiculos que podran recogerse
 *
 * @author Lorenzo31
 * @version 09-04-2015
 */
public enum MarcaDeVehiculo { FORD, TOYOTA, SUZUKI, RENAULT, SEAT}

Clase Vehiculo

Código: [Seleccionar]

/**
 * Write a description of class Vehiculo here.
 *
 * @author Lorenzo31
 * @version 09-04-2015
 */
public class Vehiculo {
   
    private String matricula;
    private MarcaDeVehiculo marcaCoche;
   
    public Vehiculo(){ matricula = ""; }
   
    /**
     * Método que establece el valor de matricula
     */
   
    public void setMatricula(String valorMatricula){ matricula = valorMatricula; }
   
     /**
     * Método que establece el valor de marcaCoche
     */
    public void setMarcaCoche(MarcaDeVehiculo valorMarcaCoche){ marcaCoche = valorMarcaCoche; }
   
    /**
     * Metodo que devuelve el valor de @return matricula
     */
   
    public String getMatricula (){ return matricula; }
   
   
    /**
     * Metodo que devuelve el valor de @return marcaCoche
     */
    public MarcaDeVehiculo getMarcaCoche (){ return marcaCoche; }
}

Clase GestorVehiculo

Código: [Seleccionar]
import java.util.Scanner;
import java.lang.IllegalArgumentException;

/**
 * @Author Lorenzo31
 * Esta clase recoge datos de matricula y modelo de un Vehiculo y muestra los resultados
 */

public class GestorVehiculo{
   
    public static void main (String [] args){
        Vehiculo coche = new Vehiculo();
        boolean modeloValido = false;

        System.out.println("Iniciamos el programa ");
       
        //Recoge matricula
        System.out.println("Introduce una matricula (String)");
        Scanner entrada = new Scanner(System.in);
        coche.setMatricula(entrada.nextLine() );
       
        //Recoge modelo
        System.out.println("Introduce un nuevo modelo ");
        do{
            try{
                coche.setMarcaCoche(MarcaDeVehiculo.valueOf(entrada.nextLine().toUpperCase()));
                modeloValido = true;
            }catch(IllegalArgumentException e){ System.out.println("Introduce un modelo válido: FORD, TOYOTA, SUZUKI, RENAULT, SEAT"); }
        }while (modeloValido == false);
       
        //Muestra matricula y modelo por pantalla
        System.out.println("Matricula: " + coche.getMatricula() + " Modelo " + coche.getMarcaCoche() );
       
        System.out.println("Final del programa");
    }

}

328
Vale mil gracias Mario, tomo nota de tus consideraciones como siempre, yo interprete un paso en toString pero luego ya me queda claro al ver otras soluciones, el que debia hacerse y el porque del ejercicio.

329
Buenas tardes, dejo mi solución para este ejercicio.

Clase EscanerDatos

Código: [Seleccionar]
import java.util.Scanner;
import java.util.InputMismatchException;

/**
 * Esta clase guarda los valores introducidos por el usuario a partir del teclado
 *
 * @author Lorenzo31
 * @version 08-04-2015
 */
public class EscanerDatos
{
    /**
     * Constructor vacio sin necesidad de parametros
     */
   
    public EscanerDatos(){ /*vacio*/ }

    /**
     * Método que recoge datos por consola y devuelve un double
     * @return devuelve un valor double introducido por el usuario
     */
    public double getDouble(){

        double valor = 0;
         System.out.println("Introduce un valor ");
          do{
           try{
                Scanner escaner = new Scanner(System.in);
                valor = escaner.nextDouble();
            }catch (InputMismatchException e){ System.out.println("Debes introducir un valor double");
            }
          } while (valor == 0);

        return valor;
    }
   
    /**
     * Método que recoge datos por consola y devuelve un entero
     * @return devuelve un valor int introducido por el usuario entre 1 y 4
     */
    public int getEntero(){
       int valor = 0;
       do{
           try{
                Scanner escaner = new Scanner(System.in);
                valor = escaner.nextInt();
            }catch (InputMismatchException e){ System.out.println("Debes introducir un valor entero");
            }
          } while (valor < 1 || valor > 4);
   
       return valor;   
    }
   
   
}


Clase MiniCalculadoraEjemplo

Código: [Seleccionar]
import java.lang.Math;

/**
 * Esta clase define operaciones matemáticas realizadas a partir
 * de unos valores por que determina el usuario previamente.
 * @author Lorenzo31
 * @version 08-04-2015
 */

public class MiniCalculadoraEjemplo{
   
    /**
     * Constructor sin parámetros ni inicializaciones
     */
   
    public MiniCalculadoraEjemplo(){ /*vacio*/ }
   
    /**
     * Método que calcula el valor absoluto de un número.
     * @param numero : el valor sobre el que se desea ejecutar la operación
     * @return valor absoluto resultante del cálculo
     */
   
    public double getValorAbsoluto(double numero){ return Math.abs(numero); }
   
    /**
     * Método que calcula la raiz cuadrada de un número.
     * @param numero : el valor sobre el que se desea ejecutar la operación
     * @return valor resultante del cálculo de la raiz cuadrada
     */
   
    public double getRaizCuadrada(double numero){ return Math.sqrt(numero); }
}

Clase GestorCalculo

Código: [Seleccionar]

/**
 * Esta clase contiene el main necesario para la ejecución de los calculos
 *
 * @author Lorenzo31
 * @version 08-04-2015
 */
public class GestorCalculo
{
    /**
     * Metodo main que ejecuta las opciones de calculo y pide valor al usuario
     * Con menu para elegir opciones
     * @see <a href = "https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=646:documentar-proyectos-java-con-javadoc-comentarios-simbolos-tags-deprecated-param-etc-cu00680b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188" /> aprenderaprogramar.com – Didáctica en programación </a>
     */
    public static void main (String [] args){
        double numero;
        int valor;
       
        System.out.println("Iniciamos el programa \n ");
       
        MiniCalculadoraEjemplo operar = new MiniCalculadoraEjemplo();
       
        EscanerDatos entrada = new EscanerDatos();
        numero = entrada.getDouble();

       
        do{
            System.out.println(" 1.- Introducir nuevo número \n 2.- Calcular valor absoluto \n 3.- Calcular raiz cuadrada \n 4.-Salir \n");

            valor = entrada.getEntero();

            switch(valor){
                case 1: numero = entrada.getDouble(); break;
                case 2: System.out.println(operar.getValorAbsoluto(numero) ); break;
                case 3: System.out.println(operar.getRaizCuadrada(numero) ); break;
            }
        }while (valor != 4);
   
        System.out.println("Final del programa "); 
    } //final main

}//final clase

330
A ti Mario por las molestias que te tomas y la ayuda de todo el equipo que es genial.

331
Bueno muchas gracias por tu respuesta lo primero Mario.

Sí tengo clara la diferencia entre Set y List que las dos vienen de Collection. Tendré en cuenta lo de los nombres, ya lo hago pero es obvio que a veces resulta dificil poner uno que explique la clase sintetizada y de forma correcta.

Sí la resolución del GestorIterador es genial, pero no es mía, la cogí a posteriori de otro compañero del foro, el doble Iterador, la mía era solo con uno, aunque al menos sabía que algo me faltaba.

La parte en la que dices has añadido un salto de linea creo se podria resolver simplemente cambiando
 
     while(iterObjetos.hasNext()){
                  System.out.print(iterObjetos.next() + ", "); }

por un System.out.println. en ese caso con coma al final.

También adjunto tu petición de eliminar la coma final con tu println("") y el cambio de la clase ConjuntoSet por ListaSet.

Código: [Seleccionar]
import java.util.Iterator;
import java.util.Set;

public class GestorIterador {
    public static void main (String [] args){
        ListaSet prueba = new ListaSet();
        for( Iterator <Set> iterConjunto = prueba.getLista().iterator(); iterConjunto.hasNext();){
       
            for( Iterator iterObjetos = iterConjunto.next().iterator(); iterObjetos.hasNext();)
            {
                System.out.print(iterObjetos.next());
                // añado esta condición que en el caso de ser falsas las dos no imprime la ultima coma
                if (iterConjunto.hasNext() || iterObjetos.hasNext()){System.out.print(", "); }
                System.out.println("");
             }
             
        }

    }
}







332
Aquí dejo mi respuesta al ejercicio, muy simple, creo hace lo que se pide, mi duda de si está bien es que solo añado un Objeto String al LinkedList.

Pero mirando no es posible añadir más pues toString(boolean [] a) solo acepta array de boolean, no primitivos por separado (para luego añadirlos uno a uno al LinkedList como Strings.

AsList funcionaria igual pero enviando una referencia o apuntador a un List, que luego habria que desenredar con un Iterator imagino, así que lo deje así.

Código: [Seleccionar]
import java.util.Arrays;
import java.util.LinkedList;

public class BooleanosArray{
   
    public static void main (String[] args){

        boolean [] arrayBooleanos = {true, true, false, false, true, false};

        LinkedList <String> listaUnida = new LinkedList <String>();

        listaUnida.add(Arrays.toString(arrayBooleanos));

        System.out.println(listaUnida);
    }
}

He visto soluciones con asList pero declarando Boolean el array, Clase no boolean primitivos que entendia pide el enunciado.

Si los declaro como Objetos de clase Boolean efectivamente si se puede pasar como List a LinkedList y los asigna uno a uno en la LinkedList.

Código: [Seleccionar]
import java.util.Arrays;
import java.util.LinkedList;

public class BooleanosArray{
   
    public static void main (String[] args){

        Boolean [] arrayBooleanos = {true, true, false, false, true, false};

        LinkedList <Boolean> listaUnida = new LinkedList <Boolean>(Arrays.asList(arrayBooleanos));

        //listaUnida.add(Arrays.toString(arrayBooleanos));

        System.out.println(listaUnida);
    }
}


Cuanta información de golpe espero poco a poco con la práctica se me vaya ordenando en la cabeza todo esto que voy pez :-)

333
Buenas tardes, dejo la solución de mi ejercicio aunque no estoy nada satisfecho.

No se si es la vuelta de Semana Santa pero he encontrado especialmente complicado el ejercicio ( lo cual no es malo ) la razón de que no me convenza es que saco por pantalla los contenidos de los objetos en conjunto y no la información concreta que alberga cada uno. El resultado es el mismo pero en conjunto [ 2, 8,5 ] [ sol, luna,saturno ].

Clase Estrellas

Código: [Seleccionar]
import java.util.HashSet;

public class Estrellas{
   
    private HashSet <String> stars = new HashSet <String>();
   
    public Estrellas(){  //constructor inicializado por defecto
        stars.add("sol");
        stars.add("luna");
        stars.add("saturno");
    }//cierre contructor
   
    public HashSet <String> getEstrellas() { return stars; }
} //cierre clase

Clase Numeros

Código: [Seleccionar]
import java.util.TreeSet;

public class Numeros {
   
    private TreeSet <Integer> numbers = new TreeSet <Integer>();
   
    public Numeros(){  //contructor crea por defecto los objetos
        numbers.add(2);
        numbers.add(8);
        numbers.add(5);
    }
   
    public TreeSet<Integer> getNumeros(){ return numbers; }
}

Clase ConjuntoSet

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Set;

public class ConjuntoSet {

    private ArrayList <Set> conjuntoObjetos = new ArrayList <Set>();

    public ConjuntoSet(){
        //Creo objeto Estrellas y lo añado al conjuntoObjetos
        Estrellas estrella1 = new Estrellas();
        conjuntoObjetos.add(estrella1.getEstrellas());
        //Creo objeto Numeros y lo añado al conjuntoObjetos
        Numeros numero1 = new Numeros();
        conjuntoObjetos.add(numero1.getNumeros());
    }

    public ArrayList<Set> getConjunto(){return conjuntoObjetos; }
}

Clase GestorIterador

Código: [Seleccionar]
import java.util.Iterator;


public class GestorIterador {

    public static void main (String [] args){

        ConjuntoSet prueba = new ConjuntoSet();

        Iterator iter = prueba.getConjunto().iterator();

        while(iter.hasNext()){
            System.out.print(iter.next());}

    }
}

Quizás si en la clase ConjuntoSet, creara fuera del contructor los new Estrellas y Numeros, podria llamarlos en el main con un get que los devolviera y hacer un Iterador independiente de cada uno, pero no me convence demasiado tampoco.

Después de mirar un poco algun ejercicio de compañeros añado la clase GestorIterador con lo que creo soluciona mi problema, que imprimia en conjunto y no por separado los elementos.

Clase GestorIterador (Mejorada creo)

Código: [Seleccionar]
import java.util.Iterator;
import java.util.Set;


public class GestorIterador {

    public static void main (String [] args){

        ConjuntoSet prueba = new ConjuntoSet();

        Iterator <Set> iterConjunto = prueba.getConjunto().iterator();

        while(iterConjunto.hasNext()){
            Iterator iterObjetos = iterConjunto.next().iterator();
                 
              while(iterObjetos.hasNext()){
                  System.out.print(iterObjetos.next() + ", "); }
               
        }

    }
}

Veo no es lo mismo Iterador iter, que Iterador <Set> iter, le avisas que dentro del iter habra nuevos Objetos de tipo Set que puedes volver a iterar, eso creo, este ejercicio es algo lío

334
Si claro, básicamente he creado el otroArray como copyOf de miarray pero con dos posiciones en 0 final de más.
Despues, for(int i = 0; i < otroArray.length; i++) recorro el nuevo array hasta su length.

if( otroArray [ i ] < 0 ){ Arrays.fill (otroArray, i, i + 1, 33);}

Y aquí la condición if compara el valor que guarda la referencia otroArray[posición], si es menor a cero, Oses negativo, coloca con el Arrays.fill el valor 33 sustituyendo, para lograr q solo coloque una poicion ese valor, se usa los parámetros intermedios, desde la posición i ( comparada en el if, la que queremos cambiar) hasta i+1 que como tu indicas es exclusivo, no la coge, luego solo cambia la posición i.

Ejemplo

Para i = 1: otroArray [ 1] = -4. Esto es menor a 0 y entra en el if
    Arrays.fill ( otroArray, 1 , 2, 33) excluye posicion dos, luego solo cambia la 1( que es -4) por un 33

Espero sirva la explicacion Ogramar . Saludos

335
Buenas, adjunto ejercicio usando fill con indices inicial y final (exclusivo), era solo una práctica pero ahi va igual por si a alguien le aporta.

Código: [Seleccionar]

import java.util.Arrays;

//uso metodo copyOf clase Arrays
public class FillConIndices{
    public static void main (String [] args){
        int [] miArray1 = { 2, -4, 3, -7};

        for ( int miNumero : miArray1 ) {System.out.println("miArray1 " + miNumero ); }

        System.out.println("");

        int [] otroArray = {1, 2, 4, 8};

        for ( int miNumero : otroArray ) { System.out.println("otroArray " + miNumero ); }

        System.out.println("Son mismo objeto?   " + (miArray1 == otroArray) );
        System.out.println("Tienen mismo contenido?   " + Arrays.equals(miArray1, otroArray) );

        //Copiamos el array utilizando copyOf de la clase Arrays

        otroArray = Arrays.copyOf(miArray1, miArray1.length + 2);

        for(int i = 0; i < otroArray.length; i++){
            if( otroArray[i] < 0 ){ Arrays.fill (otroArray, i, i + 1, 33);}
        }

        for ( int miNumero : otroArray ) { System.out.println ("otroArray " + miNumero ); }
        System.out.println("Son mismo objeto?   " + (miArray1 == otroArray) );
        System.out.println("Tienen mismo contenido?   " + Arrays.equals(miArray1, otroArray) );
    }
}



336
Entendido, gracias por el consejo Ogramar, entiendo que para hacerlos mas legibles los metodos deben explicar que hacen o retornan.

Tomo nota y lo tendré presente en el futuro.

337
Buenas aquí va mi solucion al ejercicio.

Citar
Crea un programa Java donde declares un array de enteros tipo int miArray1 cuyo contenido inicial sea {2, -4, 3, -7}. Muestra su contenido por pantalla. Copia el contenido de este array a un ArrayList denominado lista1 y muestra su contenido por pantalla. ¿Qué tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?

¿Qué tipo de datos almacena el array? Puede almacenar tanto primitivos como Objetos, el array siempre será una colección de elementos con índice, sea de primitivos o de objetos. En este ejercicio los datos almacenados en el array son tipos primitivos (números simples)

¿Qué tipo de datos almacena el ArrayList? Solo almacena Objetos, para numeros usa Integer, Double, Float...  En este ejercicio el ArrayList almacena objetos Integer.

Clase TestArrayList, muy sencilla solo era de verificación.

Código: [Seleccionar]
import java.util.ArrayList;

public class TestArrayList{

    public static void main (String[] args){
        int [] miArray1 = {2, -4, 3, -7};

        for(int numArray : miArray1){ System.out.println("miArray1 " + numArray); }

        ArrayList<Integer> lista1 = new ArrayList<Integer>();

        for(int i = 0; i < miArray1.length ; i++){
            lista1.add(miArray1[i]);}

        for (int numArray : lista1){ System.out.println("lista1 " + numArray); }
    }
}

338
Dejo una version que basicamente en el main añade una opcion para cambiar de nuevo el radio sin tener que terminar el programa y reiniciarlo. Algun cambio más para adaptarlo pero poca cosa.

Sobre todo por si algo de lo que hago es mejorable, tengo en cuenta todos los comentarios y consejos siempre.

Clase EntradaDatos

Código: [Seleccionar]
import java.util.Scanner;
import java.util.InputMismatchException;

public class EntradaDatos{
    private double numero = 0;

    public EntradaDatos(){ /*vacio*/ } //constructor

    public void entradaDouble(){ //recoger el double por Scanner
        numero = 0;
        do{
            try{
                Scanner entrada = new Scanner(System.in);
                numero = entrada.nextDouble();
            }catch (InputMismatchException e){ System.out.println("Debes introducir un numero para el radio");}
        }while(numero == 0);
    }

    public int entradaEntero(){
        int opcion = 0; 
        do{
            try{
                Scanner entrada = new Scanner(System.in);
                opcion = entrada.nextInt();
            }catch(InputMismatchException e){ System.out.println("Debes introducir un numero del 1 al 4");}
        }while(opcion < 1 && opcion >4);
        return opcion;
    }

    //getter
    public double getDouble(){ return numero;}
}// cierre clase

Clase Circulo

Código: [Seleccionar]
public class Circulo{
   
    private static final double NUMEROPI = 3.1416; //En mayuscula porque es final, no se puede modificar
    private double radio;
   
    public Circulo(){ //constructor inicializo y asigno valor a radio;
        radio = 0.0; }
   
    //Setter   
    public void setRadio(double valorRadio){
        radio = valorRadio; }
    //Getters
        public double getRadio(){ return radio; }
    public double getNumeroPi(){ return NUMEROPI; }
    // Funcion que devuelve el area del circulo
    public double areaCirculo(){ return NUMEROPI * (radio * radio); }
    //Funcion que devuelve longitud del circulo
    public double longitudCirculo(){ return 2*NUMEROPI*radio; }
}

Clase OperacionesCirculo

Código: [Seleccionar]
public class OperacionesCirculo{

    public static void main (String[] args){
        boolean salida = false;
        Circulo circunferencia = new Circulo();  //creo el nuevo Circulo

        System.out.println("Por favor introduce el radio de la circunferencia");

        EntradaDatos entrada = new EntradaDatos(); //pido datos con nuevo EntradaDatos
        entrada.entradaDouble();
        circunferencia.setRadio(entrada.getDouble()); //hacemos un setRadio para pasar el valor a instancia de clase Circulo

        //menu que mientras no se seleccione CASE 3 no pondra en true el boolean salida
        while(salida == false){
            System.out.println("\n 1.- Introducir Nuevo Radio del Circulo \n 2.- Dar Area Circulo \n 3.- Dar Longitud del Circulo \n 4.-Salir ");
            switch (entrada.entradaEntero()){
                case 1: System.out.println("Por favor introduce el radio de la circunferencia"); entrada.entradaDouble(); circunferencia.setRadio(entrada.getDouble()); break;
                case 2: System.out.println("\n El area del circulo es " + circunferencia.areaCirculo()); break;
                case 3: System.out.println("\n La longitud del circulo es " + circunferencia.longitudCirculo()); break;
                case 4: salida = true; break;
            } //cierre switch
        } //cierre while
        System.out.println("Final del programa");
    }//cierre main
}//cierre clase

339
Muchas gracias Ogramar, y por los apoyos recibidos que hacen falta, el curso es duro. Pero tremendamente útil,

340
Comunidad / Re:Buenas a todos
« en: 31 de Marzo 2015, 14:18 »
Muchas gracias por los apoyos Marcos y César y ni dudarlo que ayudaré a los que empiecen el curso.

Espero seguir adelante con este y al terminar hacer el avanzado, el saber casi no ocupa lugar ;)

Gracias.

Páginas: 1 ... 12 13 14 15 16 [17] 18 19 20

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