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

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 13
61
Hola Ogramar. Buenas preguntas. Voy a intentar darles respuestas.

Si cuando nos pide la cadena pulsamos enter directamente (sin introducir ningún carácter), salta un error
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
¿Por qué?
Por que hay un indice fuera de rango o sea que se ha excedido el numero de indices del array o elemento que utiliza los indices.
¿Cómo podríamos mejorar el código para que no salte ese error?
Con un condicional.
Preguntando ( en este caso en concreto que salta el error cuando no hay elementos en la matriz) si la longitud de ese array o elemento es cero que no ejecute la siguiente instrucción del programa. En otros casos habría que analizar que no entrase en la instrucción si se excede la matriz.

int i=0;
       do {
           System.out.print("Letra " + (i) + ": ");
           if(entradaTeclado.length()!=0){
           System.out.print(entradaTeclado.substring(i,i+1) +"\n");
        }
           i +=1;
        }
        while(i<entradaTeclado.length());

Otra curiosidad: en la octava línea, entre usar String entradaTeclado = ""; y String entradaTeclado; ¿Cuál es la diferencia?
Ninguna.
Ya que si no se inicializan las variables, por defecto Java las inicializa a cero o null.
Pero es una buena practica acostumbrarse a inicializar las variables antes de su uso para evitarnos errores.

 ¿Qué efecto tiene en el programa hacerlo de una manera u otra?
El efecto es el mismo se inicialice así  String entradaTeclado = "" o así  String entradaTeclado
.Como comento en la pregunta anterior, Java las inicia con valores nulos, vacíos o a cero.


Un saludo. ;)

62
Hola. Dejo el Ejercicio  CU00682B del tutorial pdf de programación Java de aprenderaprogramar .Enumerados como clases Enum en Java. Constructores. Método values.

Citar
EJERCICIO

Declara una clase que represente el tipo enumerado que define tipos de piedra con los valores CALIZA, MARMOL, PIZARRA, CUARZITA. Si sus pesos específicos son de 1200, 1423.55, 1325 y 1466.22, crea un programa que muestre el peso de los palets de cada uno de los tipos de piedra. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.


clase main TestTiposDePiedra

Código: [Seleccionar]
import java.io.*;
/**
 *   TestTiposDePiedra

 *
 * @author (paramonso)
 * @version (1.0 // 12/10/2018)
 */
//Ejemplo aprenderaprogramar.com
public class TestTiposDePiedra {
    public static void main (String[ ] Args) {
        String patron ,resultado ;
        TiposDePiedra miTiposDePiedra = TiposDePiedra.CALIZA; //El tipo lo definimos en otra clase como public enum
        System.out.println ("Las piedras del catalogo son : ");
        System.out.println ("Tipo Piedra    \t  Color\t\tPeso especifico\t\t  ");//Ejemplo de uso de print con tabulador \t
        patron="  %s\t %s    %12s\n"; 
        for (TiposDePiedra tmp: miTiposDePiedra.values() ) {
            resultado = String.format(patron,tmp.toString(),tmp.getTipo(),tmp.getPesoEspecifico());
            System.out.print(resultado);
        }
           
        pause();//Pausar pantalla
     
        TiposDePiedra tiposPiedra = TiposDePiedra.MARMOL;
        System.out.println ("\nLa piedra elegida por el sistema es " +tiposPiedra.toString() +
        " con un color " +tiposPiedra.getTipo() + "\ny con un peso específico de " +tiposPiedra.getPesoEspecifico() + " kg/m3");
        System.out.println ("Un palet admite 3.15 m3 de volumen.\n\n A continuación el peso de los palets de las distintas piedras:");
        for (TiposDePiedra tmp: TiposDePiedra.values() ) {
            System.out.println (" el palet de "+tmp.toString() + " pesa 3.15  x  " +tmp.getPesoEspecifico()+"\t="+ (3.15f*(float)tmp.getPesoEspecifico() ) + " kg");
        }
       
    } //Cierre del main
    //Pausar pantalla
   
    public static void pause(){
        int  inChar;
        inChar=0;
        System.out.println("\nPulse Enter para continuar...");
        try {
            inChar = System.in.read();
           
        }
        catch (IOException e){
            System.out.println("Error reading from user");
        }
        System.out.print("\u000C");
    }
} //Cierre de la clase

Clase TiposDePiedra
Código: [Seleccionar]
/**
 * Enumeration class TiposDePiedra - write a description of the enum class here
 *
 * @author (paramonso)
 * @version (1.1 // 12/10/2018)
 */
public enum TiposDePiedra
{
     
    CALIZA  ("Apomazado ",1200.00), //Separamos con comas
    MARMOL  ("Crema      ", 1423.55),
    PIZARRA ("Multicolor", 1325.00),
    CUARZITA("Gris       ", 1466.22);
     
    //Campos tipo constante
    private final String tipo; //Color de la piedra
    private final double pesoEspecifico; //Peso específico de la piedra
    /**
     * Constructor. Al asignarle uno de los valores posibles a una variable del tipo enumerado el constructor asigna
    automáticamente valores de los campos
     */
    TiposDePiedra (String tipo, double pesoEspecifico) {
        this.tipo = tipo;
        this.pesoEspecifico = pesoEspecifico;
    } //Cierre del constructor
    //Métodos de la clase tipo Enum
    public String getTipo() { return tipo; }

    public double getPesoEspecifico() { return pesoEspecifico; }
}

Gracias  ;).

63
Hola. Dejo el Ejercicio CU00681B del tutorial pdf de fundamentos de programación orientada a objetos. Tipos enumerados (enum) Java. Error enum types must not be local.


Clase Vehiculo
Código: [Seleccionar]

/**
 * EjercicioCU00681B enum tipos enumerados
 *
 * @author paramonso
 * @version 1.1
 */

public class Vehiculo
{
    public enum MarcaDeVehiculo{FORD,TOYOTA,SUZUKI,RENAULT,SEAT};
    String matricula;
    MarcaDeVehiculo marca;
    /**
     * Constructor 
     */
    public Vehiculo()
    {
        matricula="";
        marca=null;

    }
    //metodos setters
    public void setMatricula (String matricula ) {
        this.matricula= matricula;
    } 

    public void setMarca(MarcaDeVehiculo marca){
        this.marca=marca;
    }
    //metodos setters
    public String getMatricula(){
        return this.matricula;
    }

    public MarcaDeVehiculo getMarca(){
        return this.marca;
    }

   
}

Clase TestVehiculo

Código: [Seleccionar]
import javax.swing.JOptionPane; // Pedir datos por ventana
 
public class TestVehiculo
{
    public static void main (String[ ] Args)
    {

        String entradaUsuario;
        String matricula,fabricante;
        boolean correcto=false;
        Vehiculo coche=new Vehiculo();
        Vehiculo.MarcaDeVehiculo marca;
        while(correcto==false){
            entradaUsuario = JOptionPane.showInputDialog ( "Introduzca la matricula:" );
            matricula=entradaUsuario;
            entradaUsuario = JOptionPane.showInputDialog ( "Introduzca la Marca de Vehiculo\nla marca ha de ser\n(FORD,TOYOTA,SUZUKI,RENAULT,SEAT) :");
            fabricante=entradaUsuario.toUpperCase();

            for(Vehiculo.MarcaDeVehiculo d: Vehiculo.MarcaDeVehiculo.values()){
                if(d.toString().equals(fabricante)){
                    marca=d;

                    coche.setMatricula(matricula);
                    coche.setMarca(marca);

                    correcto=true;

                    System.out.print( "La marca de coche es :"+coche.getMarca()+"\nMatricula "+coche.getMatricula() );
                }

            }
            if(correcto!=true)
            {
                System.out.print("No ha introducido un valor correcto para la marca del Vehiculo\n");

            }
        }
    }
}

GRacias . ;)

64
Hola Dejo el ejercicio CU00680B del taller de programación java desde cero.
Documentar proyectos Java con Javadoc. Comentarios, símbolos, tags (deprecated, param, etc.) 

Código: [Seleccionar]
/**
 * Ejercicio de aprendeaprogramar.com CU00680U
 * Mini Calculadora que devuelve el valor absoluto de un numero y la raiz cuadrada
 * @author: Pablo Ramon Perez Blasco
 * @version: V7_10_18.2
 */

public class MiniCalculadora{
/**
 * Constructor de la clase. En este caso es un constructor vacio
 */
    public MiniCalculadora(){}
    /**
     * Metodo main() para presentar resultados en pantalla
     */
    public static void main(String[] args){
        System.out.print("Valor absoluto de -123.546 = "+ valorAbsoluto(-123.546)+"\n");
        System.out.print("Raiz Cuadrada de -123 = "+ raizCuadrada(123.546 )+"\n");
    }

    /**
     * Método que devuelve el valor absoluto de un número.
     * Se declara como static para que funcione en el metodo main()
     * @param num Es el parámetro que se le pasa al metodo para hallar el valor absoluto
     * @return Devuelve el valor absoluto del paramero pasado (num)
     */
    public static double valorAbsoluto(double num){
        return Math.abs(num);
    }

    /**
     * Método que devuelve la raíz cuadrada de un número.
     * Se declara como static para que funcione en el metodo main()
     * @param num Es el parámetro que se le pasa al metodo para hallar la raíz cuadrada
     * @return Devuelve la raíz cuadrada del parametro (num)
     */
    public static double raizCuadrada(double num){
        return Math.sqrt(num);
    }
}
Archivo readme.txt
Citar
TÍTULO DEL PROYECTO: MiniCalculadora
PROPÓSITO DEL PROYECTO: Ejercicio para documentar proyectos con una mini calculadora que saca el valor absoluto de un numero y la raíz cuadrada de un numero.
VERSIÓN o FECHA:07/10/2018. 1.0 Rev.1
CÓMO INICIAR ESTE PROYECTO: Ejecutar el metodo main
AUTORES: Redacción aprenderaprogramar.com. Modificado por paramonso
INSTRUCCIONES PARA EL USUARIO:Seguir los ejercicio e instrucciones de aprenderaprogramar.com
Gracias  ;)

65
Hola. Dejo el código para centrar texto en un campo de una longitud dada.
Ejemplo: Tenemos un campo de 20 espacios y en ese campo se ha de centrar un texto de 8 caracteres. El código seria este.

Código: [Seleccionar]

public class CentrarTexto
{
    public static void main(String[] args)   {
        int ancho = 20;//Tamaño del campo a ocupar por la cadena
        String s = "12345678";//Texto
        int lonText=s.length();//longitud del texto
        //Se divide el ancho/2  y tamañoCampo/2
        //en este caso serian 5 y 2 se suman y da 5+2=7 sacamos la mitad del tamaño a ocupar
        int tamañoCampo=(ancho/2)+(lonText/2);
         
        //Se da el primer formateo a (s) con el tamañoCampo=7 lo que seria [***1234]
        //ponemos asteriscos por la izquierda para llenar el total del campo
        //String.format("%7s",s) Justifica el texto a la derecha rellenado con espacios
        String m= String.format("%" + tamañoCampo + "s", s);
        s = String.format("%" + tamañoCampo + "s", s).replace(" ","*");
         
        System.out.print("["+s+"] Primer formateo\n");
        System.out.print("|"+m+"|Primer formateo\n");
        //Se da el segundo formateo a (s) con ancho.Tenemos que s="***1234"=7
        //Con el segundo formato se quedaria s="***1234***"=10
        //ponemos asteriscos por la derecha para llenar el total del campo
        //String.format("%-10s",s) Justifica el texto a la izquierda rellenado con espacios
        s = String.format("%-" + ancho  + "s", s).replace(" ","*");
        m= String.format("%-" + ancho + "s", m);
        System.out.print("["+s+"] Segundo formateo ");
         System.out.print("\n|"+m+"|Segundo formateo\n\n");
    }

}


Espero que lo pueda aprovechar alguien.
 ;)

66
Hola mary conchis.

El código lo veo bien y hace lo que pide el enunciado.
Pero te falta responder a las preguntas.
Citar
¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?

En los foros se nos pide que pongamos en el Asunto del mensaje algo como esto:

Java desde Cero Ejercicio CU00673B static, final en Java (palabras clave). 

Para saber a que ejercicio se refiere y para corregir los ejercicios si ponemos el enunciado entre una cita mejor que mejor.
Ejemplo:
Citar
EJERCICIO

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é?

Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Así los que nos corrigen no tienen que perder tiempo en buscar el tema para ver el enunciado.

Ami me lo han dicho un montón de veces.
Seré Tozudo.

Un saludo.
 :D ;)

67
Hola
Dejo el Ejercicio CU00679B.

Transformar un array en ArrayList Java. Método asList (clase Arrays).
Citar
EJERCICIO

Declara un array que contenga seis booleanos que sean true, true, false, false, true, false. A continuación, crea una lista de tipo LinkedList a partir de dicho array usando la clase Arrays del api de Java. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

 
Código: [Seleccionar]
import java.util.*;
public class TestAsList
{
    public static void main(String[] Args){
     Boolean [ ] miArrayBoolean={true, true, false, false, true, false};   
     List<Boolean> miListaBoolean = new LinkedList<Boolean>();
     
     miListaBoolean = Arrays.asList (miArrayBoolean);
      System.out.print("Elementos en el array original : ");
     for(int i=0;i<miArrayBoolean.length;i++){
         System.out.print(miArrayBoolean[i]+", ");
       
        }
         System.out.println("\nObjetos en la coleccion copiada "+miListaBoolean);
    }
}

Grascias.
 ;)

68
Hola. Dejo el ejercicio CU00678B del tutorial pdf de programación java.
Concepto definición de polimorfismo en Java. ¿Qué es el polimorfismo? .

Me he extendido un poco mas de la cuenta en el código porque no entendía bien el funcionamiento del ArrayList Polimorfo.
Gracias al ejercicio que dejo SantiagoArg pude aclararme de que va el tema ya que soy un poco corto de entendederas.

Pongo alguna presentación en pantalla utilizando contadores para poder ver el funcionamiento del Iterator ya que este no utiliza contadores (que se vean) y si hay alguien que no se aclare  y le puede servir aquí esta.

Código: [Seleccionar]
import java.util.*;
public class TestPolimorfismo {
    public static void main (String[] Args) {
        ArrayList<Set> lista = new ArrayList<Set>(); //Declaración del ArrayList lista tipo Set
        Set<String> setCadena = new HashSet<String>(); // Creación del objeto tipo HashSet con contenido Strings
        Set<Integer> setEnteros = new TreeSet<Integer>();// Creación del objeto tipo TreeSet con contenido Integer
        //Llenar ArrayList String
        setCadena.add("sol");
        setCadena.add("luna");
        setCadena.add("saturno");
        //Llenar ArrayList Integer
        setEnteros.add(2);
        setEnteros.add(8);
        setEnteros.add(5);
        //Presentar por pantalla el contenido del HashSet setCadena.
        Iterator enumCadena = setCadena.iterator(); // Crear el iterador para enumCadena
        System.out.print("ARRAYS Y POLIMORFISMO\n\n" );
        System.out.print("Elementos en setCadena (String)\n" );
        System.out.print("Item en enumCadena() : ");
        while (enumCadena.hasNext()) {
            System.out.print( enumCadena.next()+ ";");
        }

        //Presentar por pantalla el contenido del TreeeSet setEnteros.
        Iterator  enumEnteros = setEnteros.iterator(); // Crear el iterador para enumEnteros
        System.out.print("\nElementos en setEnteros (Integer)\n" );
        System.out.print("Item en enumEnteros() : ");
        while (enumEnteros.hasNext()) {
            System.out.print( enumEnteros.next()+"; ");

        }
        // Añadir al ArrayList lista el HashSet (El String) y el TreeSet (El Integer).
        lista.add(setCadena);lista.add(setEnteros);//Polimorfismo Arraylist con diferentes tipos de objetos
       
        System.out.print("\n\nPRESENTAR LISTA CON FOR EXTENDIDO e Iterator \n");

        int s=0;
        for (Set listaDeLista : lista) {
            Iterator<Set> sublistaTmp =listaDeLista.iterator();
            System.out.println("\nComponente ("+s+") de la lista "+listaDeLista);
            int n=0;
            while (sublistaTmp.hasNext()){
                System.out.println("Componente ("+s+") de lista  Componente Iterator<Set> ("+n+") : "+sublistaTmp.next());
                n++;
            }
            s++;
        }
    }
}

Espero que este todo bien.
Gracias.
Un saludo. ;)

69
Hola. Dejo el Ejercicio CU00677B del curso básico de programación Java.
Concepto o definición de interface Java ¿Qué es una interface? Tipos de interfaz.

EJERCICIO

Busca información en la documentación oficial de Java sobre la interface Iterable.
 ¿Qué clases de las que conoces implementan esta interface? 

ArrayList, Subinterfaces( Collection, List, Queue )

 ¿Qué método han de tener disponible las clases que implementan esta interface? 

iterator(), forEach(), spliterator().

¿Para qué sirve este método?

Devuelve un iterador sobre elementos de tipo especificado y los métodos disponibles para los objetos de tipo Iterator nos van a permitir operar con cada elemento de la colección.

En la documentacion de java da esta definicion:
Realiza la acción dada para cada elemento de la Iterable hasta que todos los elementos hayan sido procesados ​​o la acción arroje una excepción.
A menos que la clase implementadora especifique lo contrario, las acciones se realizan en el orden de iteración (si se especifica un orden de iteración).


Gracias.

70
Hola. Dejo el Ejercicio CU00676B del curso para principiantes de programación Java.
Clase Arrays del api Java. Métodos equals (comparar), copyOf (copiar), fill (rellenar)

Código: [Seleccionar]
import java.util.Arrays;
public class TestMetodoFillArrays {
public static void main (String [ ] Args) { //main cuerpo del programa ejemplo aprenderaprogramar.com
int [ ] miArray = new int[10];
Arrays.fill(miArray, 33);
int fromIndex=5, toIndex=8;
for (int tmp: miArray) { System.out.print (tmp + ","); } //Recorrido del array con un for each
System.out.print("\n");
Arrays.fill(miArray,fromIndex , toIndex , 34);
for (int tmp: miArray) { System.out.print (tmp + ","); } //Recorrido del array con un for each

} } //Cierre del main y de la clase

Adios.  ;)

71
Hola. Dejo el Ejercicio CU00675B del tutorial pdf de programación java desde cero. Copiar y comparar arrays en Java. Conceptos: identidad e igualdad.

Citar
EJERCICIO

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?
Datos primitivos y Objetos
¿Qué tipo de datos almacena el ArrayList?
Solo Objetos

 

Clase Test

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

public class TestArraysYArraisList
{
    public static void main(String [] Args){
       
        ArrayList<Integer>lista1=new ArrayList<Integer>();
       
        lista1.add(12);lista1.add(22);lista1.add(-38);
       
        System.out.print("\nCONTENIDO DE lista1 ANTES DE AÑADIR unArray\n");
        int cont,i=0,n=0;
         for(int listaElementos: lista1){
                            System.out.print("ArrayList lista1["+i+"] ="+listaElementos+"\n");i++;//Contenido de unArray
               }
        int [] unArray={2,-4,3,-7};
       
         System.out.print("\nCONTENIDO DE UN ARRAY  \n");
        for (cont=0;cont<unArray.length;cont++){
            System.out.print("Array["+cont+"] ="+unArray[cont]+";\n");//Contenido de unArray
            lista1.add(unArray[cont]);// Se añade unArray a la lista1 de ArrayList
        }
       
        System.out.print("\nCONTENIDO DE lista1 DESPUES DE AÑADIR unArray\n");
         i=0;
        for(int listaElementos: lista1){
            if (listaElementos==(unArray[n]))
            {
                System.out.print("ArrayList lista1["+i+"] ="+listaElementos+"  unArray["+n+"]= "+unArray[n]+"\n");i++;n++;//Contenido de unArray
            }else {
                System.out.print("ArrayList lista1["+i+"] ="+listaElementos+"\n");i++;//Contenido de unArray
            }

        }
    }
}

72
Hola. Dejo el Ejercicio CU00674B del curso de fundamentales de programación orientada a objetos de aprenderaprogramar.

Proyectos Java. Package e import. Jerarquía, visibilidad y organización de clases. 

Citar
EJERCICIO

Crea un proyecto Java con la siguiente estructura:

a) Un package denominado formas dentro del cual existan los siguientes packages: formas1dimension, formas2dimensiones y formas3dimensiones.

b) Dentro del package formas1dimension deben existir las clases Recta y Curva.

c) Dentro del package formas2dimensiones deben existir las clases Triangulo, Cuadrilatero,Elipse, Parabola e Hiperbola.

d) Dentro del package formas3dimensiones deben existir las clases Cilindro, Cono y Esfera.

Clase TestPaketes

Código: [Seleccionar]

package Formas;
import Formas.formas1dimension.*;
import Formas.formas2dimension.*;
import Formas.formas3dimension.*;

public class TestPaketes
{
 public static void main(String []args)
    {
    //forma1dimension
    Recta recta1 = new Recta();
    Curva curva1 = new Curva();
    //forma2dimension
    Triangulo trian1 = new Triangulo();
    Elipse elipse1= new Elipse();
    Cuadrilatero cuadri1=new Cuadrilatero();
    Parabola parabola1=new Parabola();
    Hiperbola hiper1=new Hiperbola();
    //forma3dimension
    Cilindro clindro1= new Cilindro();
    Cono cono1=new Cono();
    Esfera esfera1=new Esfera();
   }
}

Clase Recta

Código: [Seleccionar]
package Formas.formas1dimension;
public class Recta
{
   private int x;
    public Recta()
    {  x = 0;   }
  public int sampleMethod(int y)
    {return x + y;  }
}


Clase Curva
Código: [Seleccionar]
package Formas.formas1dimension;
public class Curva
{
    // instance variables - replace the example below with your own
    private int x;
     
    public Curva()
    { x = 0; }
    public int sampleMethod(int y)
    {return x + y;}
}

Clase Triangulo
Código: [Seleccionar]
package Formas.formas2dimension;
public class Triangulo
{
  private int x;
  public Triangulo(){x = 0;}
  public int sampleMethod(int y) { return x + y;}
}

class Elipse
Código: [Seleccionar]
package Formas.formas2dimension;
 public class Elipse
{ private int x;
    public Elipse()
    { x = 0;}
     public int sampleMethod(int y)
    { return x + y;}
}

class Cuadrilatero
Código: [Seleccionar]
package Formas.formas2dimension;
 public class Cuadrilatero
{   private int x;
    public Cuadrilatero()
    {x = 0;}
public int sampleMethod(int y)
    {return x + y;}
}

class Parabola
Código: [Seleccionar]
package Formas.formas2dimension;
public class Parabola
{private int x;
     public Parabola(){x = 0;}
    public int sampleMethod(int y){return x + y;}
}

class Hiperbola
Código: [Seleccionar]
package Formas.formas2dimension;
public class Hiperbola
{private int x;
public Hiperbola(){x = 0;}
public int sampleMethod(int y){return x + y;}
}

class Cilindro
Código: [Seleccionar]
package Formas.formas3dimension;
public class Cilindro{
  private int x;
 public Cilindro() { x = 0;}
 public int sampleMethod(int y) { return x + y; }
}

class Cono
Código: [Seleccionar]
package Formas.formas3dimension;
 public class Cono{
    private int x;
     public Cono() {x = 0;}
     public int sampleMethod(int y) { return x + y; }
}

class Esfera
Código: [Seleccionar]
package Formas.formas3dimension;
public class Esfera
{ private int x;
 public Esfera() { x = 0; }
 public int sampleMethod(int y) { return x + y; }
}

Gracias. :D

73
Hola. Dejo el Ejercicio CU00672B del curso básico de aprendizaje de programación orientada a objetos. Generar números aleatorios en Java. Clase Random y método nextInt. Ejercicio ejemplo resuelto.

Citar
EJERCICIO

Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aleatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Clase 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

Clase TestPseudoAleatorios

 
Código: [Seleccionar]
/// Programa Test de obtención de números pseudoaleatorios aprenderaprogramar.com
public class TestPseudoAleatorios {
    public static void main (String [ ] Args) {
        boolean salir ;
        Integer tmpAdivinar,tmpEntrada  ;
        NumeroAleatorio numeroAdivinar = new NumeroAleatorio ();
        tmpAdivinar = numeroAdivinar.getNumeroAleatorio();
        String msg="";
         System.out.print ("Por favor introduzca el número a Adivinar ");
         EntradaDeTeclado entrada = new EntradaDeTeclado();
         entrada.pedirEntrada();
           
        do {
           
            tmpEntrada=Integer.parseInt(entrada.getEntrada());
            salir=tmpEntrada.equals(tmpAdivinar);
           
            if (tmpEntrada>tmpAdivinar){msg="El numero que ha introducido es mayor que el numero a adivinar\n";}
            if (tmpEntrada<tmpAdivinar){msg="El numero que ha introducido es menor que el numero a adivinar\n";}
           
            if (salir){
                System.out.print('\u000C');//Borrar pantalla por gentileza de Cesar Krall moderador de aprenderaprogramar.com
                System.out.print("!!!!!!! NUMERO ACERTADO !!!!!!!!!!!!\nNumero introducido :"+
                tmpEntrada+ "\nNumero a adivinar :"+tmpAdivinar+"\n");
            }
            else{
                System.out.print('\u000C');//Borrar pantalla por gentileza de Cesar Krall moderador de aprenderaprogramar.com
                System.out.print("NO LO HA ACERTADO. VUELVA A INTENTARLO\n"+msg);
                System.out.print ("Por favor introduzca el número a Adivinar ");
                entrada.pedirEntrada();
            }
             
        } while(!salir); //Cierre do while

        System.out.println ("Gracias por utilizar el programa");
    }
}   //Cierre del main y de la clase

Clase NumeroAleatorio

Código: [Seleccionar]
import java.util.Random;
public class NumeroAleatorio {
    private int numeroAleatorio;

    //Constructor
    public  NumeroAleatorio () {
          Random numAleato=new Random();
         numeroAleatorio=numAleato.nextInt(100)+1 ;// ¿Para que sea 1 el numero menor y 99+1 = 100 el mayor? ¿?
           } //Cierre del constructor
   
    public void NumeroAleatorio(){
         
    }

    public int getNumeroAleatorio(){return numeroAleatorio;}
} //Cierre de la clase

Gracias.
Un saludo. ;)

74
Hola danizeppelin.

Se trata de eso de corregir nuestros propios fallos y coger código de otros que mejore nuestra forma de programar.

No es que el programa que yo ( o tu ) he hecho este mal por que se puede mejorar es que se puede mejorar.

Un saludo.
 ;)

75
Hola Ogramar.

No se si es que yo no entiendo bien lo que quiere decir por defecto.
En la corrección del ejercicio me dices:
Citar
Buenas, el ejercicio está bien resuelto aunque el constructor no es adecuado porque los valores de defecto que has tomado no son lógicos tal y como he comentado en https://aprenderaprogramar.com/foros/index.php?topic=7101.0

Para mi por defecto puede ser que en el constructor los atributos se pueden iniciar con cualquier valor ya sea nulo, cadena vacía, cero o le ponga el valor que yo quiera.

Otra cosa sería iniciar los atributos en el constructor con sus valores nulos o sea a cero , false, cadena vacia o null.
Estos valores tambien son por defecto, pero en el ejercico pide:
Citar
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Medico (que representa a un médico de un hospital). Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. En cada método, incluye una instrucción para que se muestre por consola un mensaje informando del cambio. Por ejemplo si cambia la especialidad del médico, debe aparecer un mensaje que diga: “Ha cambiado la especialidad del médico de nombre … . La nueva especialidad es: …”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

En lo que esta resaltado en negrita yo interpreto que tengo que poner por defecto algún valor dentro de los atributos, para que cuando yo modifique alguno de ellos aparezca en el mensaje el cambio que yo he echo.

Si inicio los atributos a nulos ("",False,0 etc) al presentar el cambio por pantalla no me aparecería el cambio del valor inicial con el que se hace o si ya que el valor inicial seria nulo("",false,0 etc..).
 
Gracias. ;)
Un saludo.

76
Hola Ogramar. Gracias por seguir corrigiendo mis ejercicios.

Lo hice así por que en el enunciado no ponía explícitamente que inicializáramos los atributos nulos. Es correcto lo que tú me dices. Si se inician todos los atributos como "",0 o null, indica que la persona esta recién creada o no, porque algunos atributos los puede llevar por defecto en este caso es el nombre ya que los demás atributos están como cadenas vacías, false o 0.

Tendré en cuenta para los próximos ejercicios poner el nombre como me indicas. Gracias.
Un saludo. ;)

77
Hola. Dejo el Ejercicio CU00633B del curso básico de programación orientada a objetos con Java. Operadores aritméticos en Java. +, -, *, / y %. Operador mod o resto de una división entre enteros.

Citar
EJERCICIO

Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Define un método de nombre “calculoParaMultiploEdad” que no recibe parámetros y es tipo procedimiento cuyo cometido será el siguiente: determinar cuántos años faltan para que la edad del médico sea múltiplo de 5 y mostrar un mensaje informativo por pantalla. Por ejemplo si el médico tiene 22 años deberá en primer lugar obtener el resto de la división de 22 entre 5, que es 2. Ahora obtendrá los años que faltan para que el médico tenga una edad múltiplo de 5, que serán 5-2 = 3 años. A continuación deberá mostrar un mensaje por consola del tipo: “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de … años”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola, y que cuando cambias la edad aparece correctamente el tiempo que falta para que la edad sea múltiplo de 5. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

Código: [Seleccionar]
//Declaracion de la clase
public class Medico{
    String nombre;                    //Nombre del medico
    String apellido;                  //Apellido del medico
    int edad;                         //Su edad
    boolean casado;                   //¿Esta casado?
    String numeroDNI;  //Su numero de identidad
    String especialidad;              //Su especialidad
    //Constructor y  atributos de la clase
    public Medico(){
        nombre= "Paquito";
        apellido= "El Chocolatero";
        edad= 0;
        casado= false;
        numeroDNI= "12305640-M";
        especialidad= "Novel";
    }
   
//Metodos setter
    public void setNombre(String valueName){
        System.out.println("Se ha cambiado el nombre del medico especialista " +  especialidad + " a : " +valueName);
        nombre= valueName;
    }

    public void setApellido(String valueApellido){
        System.out.println("Se ha cambiado el apellido del medico especialista  " + especialidad + " " +nombre +" a: "+valueApellido);
        apellido= valueApellido;
    }

    public void setEdad(int valueEdad){
        System.out.println("Se ha cambiado la edad del medico especialista "+ especialidad+ " "+ nombre +" "+ apellido +" a: "+valueEdad);
        edad= valueEdad;
    }

    public void setCasado(boolean valueCasado){
         System.out.println("El medico especialista " + especialidad +" "+ nombre +" "+ apellido +" ahora esta casado? : "+valueCasado);
         casado= valueCasado;
    }

    public void setnumeroDNI(String valuenumeroDNI){
        System.out.println("Se ha cambiado el numero de identidad del medico "+ nombre + " " +apellido + " de  "+numeroDNI +" a: "+valuenumeroDNI);
        numeroDNI= valuenumeroDNI;
    }

    public void setEspecialidad(String valueEspecialidad){
        System.out.println("Se ha cambiado la especialidad del medico "+nombre +" " + apellido +" de " + especialidad +" a: "+valueEspecialidad);
        especialidad= valueEspecialidad;
    }

    public String getNombre(){ return nombre;}

    public String getApellido(){return apellido;}

    public int getEdad(){return edad;}

    public boolean getCasado(){return casado;}

    public String getnumeroDNI(){return numeroDNI;}

    public String getEspecialidad(){return especialidad;}
   
    public void calculoParaMultiploEdad(){
        int resto, faltan;
        resto=edad % 5;
        faltan=5-resto;
         System.out.println("El Medico "+nombre+" "+apellido+ " Especialista en " +especialidad+ " tendra una edad multiplo de 5 dentro de :"+ faltan +" años");
       
    }
}
Gracias.

78
Hola. Dejo el ejercicio CU00623B del tutorial pdf de programación java.
¿Qué es una clase java? Concepto. Atributos (propiedades o campos), constructor y métodos.

Citar
EJERCICIO

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo Persona. Define una clase Persona análoga a la que hemos visto para taxis, pero en este caso considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String). Define un constructor y los métodos para poder establecer y obtener los valores de los atributos. Compila el código para comprobar que no presenta errores. Para comprobar la corrección de tu solución puedes consultar en los foros aprenderaprogramar.com.


Código: [Seleccionar]
public class Persona{
    private String nombre;                //Nombre
    private String apellido;              //Apellido
    private int edad;                     //Edad
    private boolean estadoCivil;          //¿Casado/a?, Si/No
    private String numeroIdentificacion;  //Numero de documento

    //Constructor
    public Persona(){
        nombre= "";
        apellido= "";
        edad= 0;
        estadoCivil= true;
        numeroIdentificacion= "No establecido aun";
    } //Cierre del constructor

    //Método para establecer sus características
    //Nombre
    public void setNombre (String valorNombre){
        nombre= valorNombre;
    }
    //Apellido
    public void setApellido (String valorApellido) {
        apellido= valorApellido;
    }
    //Edad
    public void setEdad (int valorEdad) {
        edad= valorEdad;
    }
    //Estado civil
    public void setEstadoCivil (boolean valorEstadoCivil) {
        estadoCivil= valorEstadoCivil;
    }
    //Número de documento
    public void setNumeroIdentificacion (String valorNumeroIdentificacion) {
        numeroIdentificacion= valorNumeroIdentificacion;
    }//Cierre del método

    //Obtener sus características
    //Nombre
    public String getNombre () { return nombre;}
    //Apellido
    public String getApellido () {return apellido;}
    //Edad
    public int getEdad () {return edad;}
    //Estado Civil
    public boolean getEstadoCivil () {return estadoCivil;}
    //Número de identificación
    public String getNumeroIdentificacion () {return numeroIdentificacion;}
}//Cierre de la clase
Gracias.
Un saludo. ;)

79
Hola Dejo el Ejercicio CU00619B del manual de programación Java. Conceptos de objetos y clases en Java. Definición de instancia.

Citar
EJERCICIO

Considera que queremos representar mediante un programa Java los aviones que operan en un aeropuerto. Crea un esquema análogo al que hemos visto para vehículos, pero en este caso para aviones. Define cuáles podrían ser las clases y cuáles podrían ser algunos objetos de una clase. Para comprobar la corrección de tu solución puedes consultar en los foros aprenderaprogramar.com.


SUPERCLASE        CLASES                     OBJETOS                       ATRIBUTOS
                                                          avionCarga1                   matricula,kg
                           AvionDeCarga           avionCarga2                           "
   AVION                                             avionCarga_n                          "
                         
                                                         avionPasaje1                  matricula,numPasa
                          AvionDePasajeros      avionPasaje2                             "
                                                         avionPasaje_n                            "

                          Jet                           jetPrivado                      matricula,empresa
                                                         jetServicioPub                            "

80
Hola. Dejo el Ejercicio CU00649B del tutorial pdf de programación Java.
Estudiando el concepto de método Java. El método substring de la clase String. Extraer caracteres

Envío algunos ejercicios con retraso porque creía que no había que enviar el código y solo comprobar el funcionamiento en BlueJ. :o :o

Citar
EJERCICIO

Crea una clase (ponle el nombre que quieras) que carezca de atributos y cuyo constructor esté vacío. En dicha clase debe existir un método tipo función que reciba 3 cadenas de texto y devuelva la cadena de texto combinación de: las dos primeras letras de la primera cadena, seguidas por un espacio en blanco, seguidas de las cuatro primeras letras de la segunda cadena, seguidas de un guión medio y seguido de las 6 primeras letras de la tercera cadena. Puedes comprobar si es correcta tu solución consultando en los foros aprenderaprogramar.com.
Código: [Seleccionar]

public class Cadenas
{
    //Sin parametros
    public Cadenas()
    {
         //Constructor vacio
    }
  public static void main (String [ ] args) {
      String a,b,c,resultado;
      a="Solo";
      b="Sale el caracol cuando";
      c="Amanece";
      resultado=Textos(a,b,c);
   System.out.print("El resultado es :"+resultado );
 
    }
   
   
     public static String Textos(String a, String  b,String c){
          String combinacion;
          combinacion=a.substring(0,3)+" "+b.substring(0,5)+"-"+c.substring(0,6);
          return combinacion;
     }
}

Gracias. :o

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 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".