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

Páginas: 1 2 3 [4] 5 6 7 8 9
61
Aprender a programar desde cero / Re:Entrega CU00637B
« en: 29 de Agosto 2014, 18:54 »
Perfecto, nada que señalar.

62
Mira aquí llevas un ejemplo del QuickSort en java:

fichero QuickSortClass.java :

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

public class QuickSortClass {

    public static void quickSort(int[] vector, int izquierda, int derecha) {
        int pivote = vector[izquierda];
        int i = izquierda;
        int j = derecha;
        int auxIntercambio;
        while (i < j) {
            while (vector[i] <= pivote && i < j) {
                i++;
            }
            while (vector[j] > pivote) {
                j--;
            }
            if (i < j) {
                auxIntercambio = vector[i];
                vector[i] = vector[j];
                vector[j] = auxIntercambio;
            }
        }
        vector[izquierda] = vector[j];
        vector[j] = pivote;
        if (izquierda < j - 1) {
            quickSort(vector, izquierda, j - 1);
        }
        if (j + 1 < derecha) {
            quickSort(vector, j + 1, derecha);
        }
    }

    public static void main(String[] arg) {
        int[] numeros = new int[40];
        Random rnd = new Random();
        System.out.println("Vector desordenado");
        for (int i = 0; i < numeros.length; i++) {
            numeros[i] = rnd.nextInt(50);
            System.out.print(numeros[i] + " ");
        }
        QuickSortClass.quickSort(numeros, 0, numeros.length - 1);
        System.out.println("\nVector Ordenado");
        for (int n : numeros) {
            System.out.print(n + " ");
        }

    }
}

Una cosa eee, jeje no todo en la vida son algoritmos recursivos...

Bueno un Saludo!!

63
Bueno, pues ya me lo resolvieron, jejeje a ver pongo el mensaje que le mande y su respuesta...XDD

Duda presentada:
Citar
hello, i am using bluej but i look a problem.

When i create a Scanner object and you ask to user for a keyboard input  whithout any output before, the console dont show up when i execute my program with bluej...i wait i wait but dont appear... it´s this normal??

 for this i think that it's a bug... and finally i must to reset the java virtual machine and write an output(System.out) to make its work...
for example:

public class TestInput{

     public static void main(String[] args){
         Scanner tecleado = new Scanner(System.in);
         String chain = tecleado.nextLine();
         System.out.print("The chain value is "+chain);
     }
}


Respuesta:

Citar
Hi Luis,

This is covered in the FAQ:
http://www.bluej.org/faq.html#faq_I_wrote_a_program_that_asks_for_input__using_Scanner_class__System_in_read_______java_io___classes___When_I_run_it__it_does_nothing__and_just_keeps_running_forever_

The terminal window does not automatically open unless something is output to it. BlueJ cannot tell when your program is expecting input.

You simply need to make the terminal window visible (using the menu), as is described in the link that I sent you. There is no need to reset the virtual machine or perform output if you really do not wish to.

regards,

Davin

Para los que no controlan inglés, viene a decir que la consola no se abre automáticamente hasta que no se produzca una salida. Y que simplemente la hagamos visible usando el menú:  View --> Show Terminal.

Bueno la verdad es que es extraño solicitar una entrada sin ningún mensaje previo...
así que nada, cuando soliciteis una entrada sin realizar ninguna salida antes, debéis abrir la terminal manualmente, entonces ya podréis meter la entrada. 

Bueno un saludo.

64
jajajajjajaja esto me a recordado a el scanf del C jejejeje

Debe ser cosa del blueJ, en otros ides no sucede... buena cuestión, estaría bien mandarles a los de blueJ un mensaje con la incidencia... Lo hago?? que pensais??

Bueno un saludo!!

65
Aprender a programar desde cero / Re:ENTREGA CU00636B
« en: 29 de Agosto 2014, 14:24 »
El ejercicio esta totalmente correcto, pero una recomendación...por claridad
cuando hagas un if, un get, un set o algo que conlleve un bloque de código de 1 sola instrucción, yo lo haría así:

Código: [Seleccionar]
public void setTipo (String valorTipo){
       tipo = valorTipo;
}


o así:
Código: [Seleccionar]
public void setTipo (String valorTipo)
{
       tipo = valorTipo;
}


Pero nunca lo haría como lo haces tu, ya que al estar las llaves pegadas a la instrucción es mas trabajoso ver donde empieza y donde acaba el código....
Solo es una recomendación, eee, si tu crees que te vas a quedar sin folio sigue como lo haces, pero cuando lo presentas a otra gente, para mi es mas claro verlo si la llave esta sola en una linea....

No se que opinarán los demás, pero la encuesta esta abierta XDD

Bueno un saludo!!

66
Aprender a programar desde cero / Re:EJEMPLO CU00636B
« en: 29 de Agosto 2014, 14:07 »
Hola bueno intento explicarte tu duda, la cual no se si he entendido correctamente.

Por norma general, consenso, estandarización o como quieras llamarlo los métodos que tienen como sus tres primeras letras de inicio get o set, simplemente son métodos que en la mayoría de los casos solo tendrán dentro una instrucción, O establecer el valor del atributo(set) para el cual fue creado, O devolver el valor de atributo(get) para el que fue creado.

Por ejemplo, imagina que tenemos un atributo llamado edad de tipo int, pues este atributo llevaría asociados sus métodos set y get, que serían:

Código: [Seleccionar]
public int getEdad(){
     return edad;
}

public void setEdad(int paramEdad ){
     edad=paramEdad;
}


Como siempre digo... todo método debe tener una única funcionalidad. La funcionalidad del get es devolver el valor de un atributo, pues todo el código contenido en el método get debe ir dirigido a devolver el valor de la edad y ya esta.

Con el set lo mismo, la función de un método set, es la de establecer el valor de un atributo, pues todo su código debe ir dirigido nada mas a establecer el valor del atributo y ya esta.

Esto que comento anteriormente es lo ideal a la hora de programar, es decir cumplir una serie de normas que se suelen exigir despues en un entorno profesional.

Por otro lado tu a cada método le puedes poner el código que quieras, como si le quieres meter 1000 lineas a un método set, pero como comento no es lo ideal.



Por otro lado analizando tu ejercicio creo que la forma correcta es tal y como lo tienes.
Excepto por el método setDesplazamiento, yo para ajustarme a los estándares, partiría ese método en 2 y crearía los métodos setDesplazamientoX(...) y setDesplazamientoY(...)
y cuyo código sería:

Código: [Seleccionar]
public void setDesplazamientoX(int param){
desplazamientoX=param;
}
public void setDesplazamientoY(int param){
desplazamientoY=param;
}

Por otro lado, si te dicen también que imprimas por pantalla, pues lo incluyes, pero no mucho mas.

Ahora otra cosa... sobre la sobrecarga de métodos("duplicar")...Creo que lo verás dentro de un par de lecciones, pero te adelanto algo:

Esto se puede hacer siempre y cuando entre los métodos a sobrecargar, haya una diferencia en los parámetros de entrada, te pongo un ejemplo:

Código: [Seleccionar]
public void checkAdmitido(boolean valor){
if(valor==true){
System.out.println("Admitido");
}
else{
System.out.println("No Admitido");
}
}

public void checkAdmitido(){
if(admitido==true){
System.out.println("Admitido");
}
else{
System.out.println("No Admitido");
}
}
public void checkAdmitido(String valor){
        if(valor.equals("true")){
System.out.println("Admitido");
}
else{
System.out.println("No Admitido");
}
}

Estos tres métodos anteriores si te fijas, se llaman igual, pero pueden coexistir en una misma clase, ya que los tres presentan diferencias entre los parámetros de entrada, uno tiene un parámetro de tipo boolean, otro  tiene un parámetro de tipo String, y el ultimo no tiene parámetros. Por lo cual este método checkAdmitido(...) se dice que está sobrecargado.

Y bueno nada mas, espero que te sirva la lección, jeje.

Un salduo!!

NOTA: Por cierto, una buena indentación(orden en el código) también es muy importante.

67
Hola amigo, yo creo que lo que nos muestras en la imagen no es un table, sino que son divs....Podrías pasarnos un enlace a ese tutorial para poder ver realmente de que se trata....o subirlo a mega, dropbox o alguno de esos sitios?

Ejk sin verlo, será prácticamente imposible...Bueno, esperamos tu respuesta, un saludo!!

68
Aprender a programar desde cero / Re:Genericos y código Legazy
« en: 28 de Agosto 2014, 23:02 »
A ver te explico porque necesitas el casting.

Tu cuando creas un ArrayList, le estas diciendo que tipos de elementos va a contener.

Cuando creas el iterador como lo estas haciendo, empiezas a recorrer la lista y obtienes uno de los elementos de la lista a través del iterador, el iterador no sabe que tipo de elementos está sacando de la lista.

Y por esto tienes que realizar casting, porque el iterador de la forma que tu lo estas creando, devuelve un elemento de tipo Object(Clase padre de todas las clases en java)
entonces el casteo es obligatorio para convertir ese elemento de tipo Object en el tipo que a ti te interesa, en este caso Integer.


En cambio, existe el iterador genérico, para crearlo seria del siguiente modo: 

Código: [Seleccionar]
Iterator<Tipo_objeto_a_manejar> nombreIterador= nombreLista.iterator();

De esta manera, ya si le estas diciendo con que tipo de objetos va a manejar el iterador.

Te adjunto un ejemplo de cada iterador:

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


public class TestIterador {
    public static void main(String[] arg){
        ArrayList<Integer> listaNumeros=new ArrayList<>();
        Integer aux;
        for(int i=0;i<100;i++){
            listaNumeros.add(i);
        }
        /*Iterador normal, con este tenemos que hacer casting,
        porque no sabe que tipo de elementos esta sacando de la lista */
        Iterator iL1=listaNumeros.iterator();
        while(iL1.hasNext()){
            aux=(Integer)iL1.next();
            System.out.println("Numero con iterador normal: "+aux);
        }
        /*Iterador genérico, este si sabe los tipos de los elementos q
        saca de la lista, por tanto no es necesario hacer casting */
        Iterator<Integer> iL2=listaNumeros.iterator();
        while(iL2.hasNext()){
            aux=iL2.next();
            System.out.println("Numero con iterador generico: "+aux);
        }
       
    }
}

Un saludo!!

69
Hola me gustaría retractarme sobre un termino que he estado usando en los post  de este thread anteriores a este y quizá pueda dar lugar a confusiones.

A ver en los dos tochos de post anteriores, he usado la palabra genérico haciendo alusión a algo a lo que realmente no es genérico.

Con mi forma de usarlo, me he querido referir a no juntar distintas funcionalidades dentro de un método, lo que viene siendo el principio SRP:

 SRP (Simple Responsability Principle): toda clase o componente(método, estructura, enum, constructor, etc) debe tener una única responsabilidad(Por ejemplo la responsabilidad de Buscar) y todas sus funciones deben orientarse hacia ésta.

A este concepto es a lo que me refiero con genérico en en mis post anteriores.



En cambio existen una serie de técnicas en java que nos permiten hacer que una clase trabaje con distintos tipos de objetos y es usando tags(<>) junto al nombre de la clase.

Por ejemplo la Clase ArrayList<> funciona de esta manera, ya que al crear un objeto de la clase, tenemos que indicarle también con que tipo de objetos vamos a trabajar.

Me gustaría dejar esto claro, ya que quizá alguien halla podido interpretar este termino de manera incorrecta.

Para terminar pondré un ejemplo de como si sería un método buscar()  genérico:

Archivo BuscarGenerico.java
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class BuscarGenerico<T> {

    public List<T> buscar(List<T> lista, T elementoABuscar) {
        List<T> resultado = new ArrayList<>();
        Iterator<T> iL = lista.iterator();
        T tmp;
        while (iL.hasNext()) {
            tmp = (T) iL.next();
            if (tmp instanceof String) {
                String elementoLista = (String) tmp;
                String elementoBuscado = (String) elementoABuscar;
                if (elementoLista.contains(elementoBuscado)) {
                    resultado.add(tmp);
                }
            } else {
                if (tmp.equals(elementoABuscar)) {
                    resultado.add(tmp);
                }
            }
        }

        return resultado;
    }
}

Fichero Persona.java

Código: [Seleccionar]
public class Persona {

    String nombre;
    String apellido;

    public Persona(String param1, String param2) {
        this.nombre = param1;
        this.apellido = param2;
    }

    @Override
    public boolean equals(Object p) {
        Persona tmp = (Persona) p;
        if ((this.nombre.equals(tmp.nombre)) && (this.apellido.equals(tmp.apellido))) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public String toString() {
        return nombre + " " + apellido;
    }
}

Fichero TestBuscarGenerico.java

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


public class TestBuscarGenerico {

    public static void main(String[] arg) {
        ArrayList<String> lista = new ArrayList<>();
        String cadena;
        //Usando el metodo para buscar cadenas
        for (int i = 0; i < 60; i++) {
            if (i % 2 == 0) {
                cadena = "Posicion par " + i;
                lista.add(cadena);
            } else {
                cadena = "Posicion impar " + i;
                lista.add(cadena);
            }
        }
        ArrayList<String> resultado = new ArrayList<>();
        String cadenaABuscar = "1";
        BuscarGenerico<String> utilBuscar = new BuscarGenerico<>();
        resultado = (ArrayList) utilBuscar.buscar(lista, cadenaABuscar);

        for (String s : resultado) {
            System.out.println("esta cadena a sido encontrada: " + s);
        }
        //Usando el metodo para buscar numeros
        ArrayList<Integer> listaNumeros = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            listaNumeros.add(i);
        }
        BuscarGenerico<Integer> utilBuscarNumero = new BuscarGenerico<>();
        ArrayList<Integer> resultadoNumeros = (ArrayList<Integer>) utilBuscarNumero.buscar(listaNumeros, 57);

        for (Integer i : resultadoNumeros) {
            System.out.println("Número encontrado: " + i);
        }
        //Usando el metodo para buscar personas
        ArrayList<Persona> listaPersonas = new ArrayList<>();
        Persona p1 = new Persona("Felipe", "gonzalez");
        listaPersonas.add(p1);
        Persona p2 = new Persona("perico", "buengustos");
        listaPersonas.add(p2);
        Persona p3 = new Persona("filipo", "octavo");
        listaPersonas.add(p3);
        Persona p4 = new Persona("manuel", "maqueda");
        listaPersonas.add(p4);
        BuscarGenerico<Persona> utilBuscarPersona = new BuscarGenerico<>();
        Persona personaABuscar = new Persona("perico", "buengustos");
        ArrayList<Persona> resultadoPersonas = (ArrayList<Persona>) utilBuscarPersona.buscar(listaPersonas, personaABuscar);
        for (Persona p : resultadoPersonas) {
            System.out.println("Persona Encontrada: " + p);
        }

    }

}

Y esto que he puesto(BuscarGenerico) si es una una clase Genérica.

Bueno, espero que el concepto haya quedado mas o menos claro y que no haya confusiones.

Bueno un saludo!

70
Aprender a programar desde cero / Re:ENTREGA CU00634B
« en: 28 de Agosto 2014, 11:47 »
Bueno, si controlas el lenguaje, claro que puedes hacerlo programando, pero este ejercicio es de los iniciales, y cuyo objetivo es aprender a crear expresiones condicionales.

A veces hay que usar un poco el coco y no delegarlo todo en el ordenador, si tu(con tu cabeza) eres capaz de evaluar las expresiones, te resultará mas sencillo trabajar con ellas a la hora de montarlas y saber como se comportaran....

Un saludo!

 

71
Aprender a programar desde cero / Re:Practica CU00637B
« en: 28 de Agosto 2014, 11:40 »
Esta bien, jeje no creo que haya nada que señalar. XDD tu post me a recordao a la canción de la bomba de king africa...

Bueno un saludo!

72
Hola, le he echado un ojo al código y tienes una etiqueta <label></label> mal cerrada...

tu lo tienes asi:

Código: [Seleccionar]
<form name="form1" method="post" action="buscador_grandeza.php">
<label>Buscar por Colonia:
<input type="text" name="txtBusqueda" id="txtBusqueda"><br>
Seleccione Municipio*:
<select name="selCiudad" id="selCiudad">
<option value="-1" selected>Ver todas las Propiedades</option>
<option value="39">Abasolo</option>
<option value="40">Agualeguas</option>
<option value="41">Allende</option>
<option value="42">Anáhuac</option>
<option value="43">Apodaca</option>
<option value="44">Aramberri</option>
<option value="45">Bustamante</option>
<option value="46">Cadereyta Jiménez</option>
<option value="47">Cerralvo</option>
<option value="48">China</option>
<option value="49">Ciénega de Flores</option>
<option value="50">Doctor Arroyo</option>
<option value="51">Doctor Coss</option>
<option value="52">Doctor González</option>
<option value="53">El Carmen</option>
<option value="54">Galeana</option>
<option value="55">García</option>
<option value="56">General Bravo</option>
<option value="57">General Escobedo</option>
<option value="58">General Terán</option>
<option value="59">General Treviño</option>
<option value="60">General Zaragoza</option>
<option value="61">General Zuazua</option>
<option value="62">Guadalupe</option>
<option value="63">Hidalgo</option>
<option value="64">Higueras</option>
<option value="65">Hualahuises</option>
<option value="66">Iturbide</option>
<option value="67">Juárez</option>
<option value="68">Lampazos de Naranjo</option>
<option value="69">Linares</option>
<option value="70">Los Aldamas</option>
<option value="71">Los Herreras</option>
<option value="72">Los Ramones</option>
<option value="73">Marín</option>
<option value="74">Melchor Ocampo</option>
<option value="75">Mier y Noriega</option>
<option value="76">Mina</option>
<option value="77">Montemorelos</option>
<option value="78">Monterrey</option>
<option value="79">Parás</option>
<option value="80">Pesquería</option>
<option value="81">Rayones</option>
<option value="82">Sabinas Hidalgo</option>
<option value="83">Salinas Victoria</option>
<option value="84">San Nicolás de los Garza</option>
<option value="85">San Pedro Garza García</option>
<option value="86">Santa Catarina</option>
<option value="87">Santiago</option>
<option value="88">Vallecillo</option>
<option value="89">Villaldama</option>
</select>
</label>
<input type="submit" name="cmdBuscar" id="cmdBuscar" value="Buscar">
</form>


y debería estar así:

Código: [Seleccionar]
<form name="form1" method="post" action="buscador_grandeza.php">
<label>Buscar por Colonia:</label>
<input type="text" name="txtBusqueda" id="txtBusqueda"><br>
Seleccione Municipio*:
<select name="selCiudad" id="selCiudad">
<option value="-1" selected>Ver todas las Propiedades</option>
<option value="39">Abasolo</option>
<option value="40">Agualeguas</option>
<option value="41">Allende</option>
<option value="42">Anáhuac</option>
<option value="43">Apodaca</option>
<option value="44">Aramberri</option>
<option value="45">Bustamante</option>
<option value="46">Cadereyta Jiménez</option>
<option value="47">Cerralvo</option>
<option value="48">China</option>
<option value="49">Ciénega de Flores</option>
<option value="50">Doctor Arroyo</option>
<option value="51">Doctor Coss</option>
<option value="52">Doctor González</option>
<option value="53">El Carmen</option>
<option value="54">Galeana</option>
<option value="55">García</option>
<option value="56">General Bravo</option>
<option value="57">General Escobedo</option>
<option value="58">General Terán</option>
<option value="59">General Treviño</option>
<option value="60">General Zaragoza</option>
<option value="61">General Zuazua</option>
<option value="62">Guadalupe</option>
<option value="63">Hidalgo</option>
<option value="64">Higueras</option>
<option value="65">Hualahuises</option>
<option value="66">Iturbide</option>
<option value="67">Juárez</option>
<option value="68">Lampazos de Naranjo</option>
<option value="69">Linares</option>
<option value="70">Los Aldamas</option>
<option value="71">Los Herreras</option>
<option value="72">Los Ramones</option>
<option value="73">Marín</option>
<option value="74">Melchor Ocampo</option>
<option value="75">Mier y Noriega</option>
<option value="76">Mina</option>
<option value="77">Montemorelos</option>
<option value="78">Monterrey</option>
<option value="79">Parás</option>
<option value="80">Pesquería</option>
<option value="81">Rayones</option>
<option value="82">Sabinas Hidalgo</option>
<option value="83">Salinas Victoria</option>
<option value="84">San Nicolás de los Garza</option>
<option value="85">San Pedro Garza García</option>
<option value="86">Santa Catarina</option>
<option value="87">Santiago</option>
<option value="88">Vallecillo</option>
<option value="89">Villaldama</option>
</select>

<input type="submit" name="cmdBuscar" id="cmdBuscar" value="Buscar">
</form>

fijate que la etiqueta label, la cierro justo cuando termina el texto que contendrá el label... y tu estabas dejando dentro del label todo el <select...>, el <input...>, etc

Un saludo!

73
Lo veo todo muchísimo mas claro, e incluso tu tienes que notarlo cuando vas a buscar un método... jeje

Bueno lo veo todo arreglado, sobre el punto 4, no buscaba que lo implementaras en este ejercicio, simplemente era una indicación para el futuro, aunque bien intentado.

El punto 4 que te remarque, es el mas difícil de controlar y planificar, yo lo que intente transmitirte, era que siempre ahí que intentar crear métodos genéricos, por ejemplo el caso que te comente del método buscar.

Tu método buscar solo es útil en tu programa, ya que mezclas comandos de consola(salida por consola,entrada por teclado  ), con la acción de buscar en si. Esto no es muy eficiente... por eso te decía como ejemplo que se podría crear un método buscar genérico y apartar esa funcionalidad de consola en otro sitio.

He cogido un método buscar de los que tenias comentado y lo he modificado de forma que hiciera lo que yo te comente.

Código: [Seleccionar]
public ArrayList<Legislador> buscaNombre(String nombre) {
       
        ArrayList<Legislador> resultado = new ArrayList<>();

        Iterator<Legislador> iL = listinLegisladores.iterator();
        Legislador tmpLeg;
        int contador = 0;
        while (iL.hasNext()) {
            tmpLeg = iL.next();
            if (tmpLeg.getNombre().contains(nombre)) {
                resultado.add(tmpLeg);
            }
        }

        return resultado;
    }
   
Si te fijas, es un simple método que recibe como tu bien intentaste un String con el nombre para la búsqueda y recorre el listín buscando todos los legisladores que coincidan, cuando encuentra uno, lo mete en el array, así hasta que termina el listín. Al terminar devuelve un arraylist con todos los legisladores que ha encontrado.

Pues bien, ya tienes el método buscar genérico, ahora puedes crear tanto métodos para tratar ese array de resultados diferentes como quieras. Por ejemplo a mi se me ocurren cuatro por ejemplo:

Nota: No los escribiré, solo es una demostración de lo que intento transmitirte   

Código: [Seleccionar]
public void mostrarPorConsola(ArrayList<Legislador> lista){
/* metodo que reciba un array list de legisladores y lo
muestra por consola*/     
}
public void mostrarEnVentana(ArrayList<Legislador> lista){
/*metodo que reciba un array list de legisladores y lo
muestra en un JFrame*/
}
public void guardarEnArchivo(ArrayList<Legislador> lista){
/*metodo que reciba un array list de legisladores y guarde
los datos en un archivo*/
}
public void guardarEnBBDD(ArrayList<Legislador> lista){
/*metodo que reciba un array list de legisladores y guarde
los datos en una bbdd */
}

Imagina que ahora invocamos al método buscar, lo haríamos de la siguiente forma.
Código: [Seleccionar]
ListinLegisladores listin=new ListinLegisladores();
//imaginamos que ya esta relleno y todo el royo...
ArrayList<Legislador> resultadoBusqueda=listin.buscaNombre("pepito");

Como ves ahora tengo un arraylist con los resultados de la Búsqueda, ahora que quieres
mostrarlo en la consola , mostrarlo en una ventana, guardarlo en la bbdd, guardarlo en un fichero o todo a la vez... XDDD

Código: [Seleccionar]
listin.mostrarPorConsola(resultadoBusqueda);
listin.mostrarEnVentana(resultadoBusqueda);
listin.guardarEnArchivo(resultadoBusqueda);
listin.guardarEnBBDD(resultadoBusqueda);

Como ves he creado un método cuya única función es buscar y punto y me devuelve un resultado que después trato con otros métodos.

Si miramos tu método buscar, en el incluyes ya la funcionalidad de mostrar y incluso la función de si el usuario quiere seguir en el menú o no... Por eso este método que tu creaste es irreutilizable, solo servirá para tu aplicación.

Por ejemplo, el método mostrarPorConsola, en ese es en el que si meterías toda esa funcionalidad que tu tienes.... tratando el arrayList de resultados...

Pero por ejemplo lo que te decía, si en un futuro tu jefe te dice oye que ahora queremos lo mismo pero en una ventana... Pues el método buscar nos seguiría sirviendo sin tener que modificarlo, solo modificarías el método mostrarPorConsola(...) que se convertiría en mostrarEnVentana(...)

La verdad que como te digo es uno de los puntos mas complicados de controlar, no te preocupes, que con el tiempo aprenderás a separar la funcionalidad.

Pero una cosa te digo, eee tu no lo haces mal, porque en los métodos de la clase UtilConsola lo has echo. Son métodos genéricos que reciben una serie de parámetros y realizan una funcion concreta, ninguno mezcla funcionalidad pues continua tb haciendolo dentro de las clases modelos que vas creando como listín, etc... Al fin y al cabo las clases son modelos, y un listín, en su método buscar, si es para buscar... no le metas nada mas, busca y después tratas el resultado....

Bueno lo que te digo, no le des muchas vueltas, porque con el tiempo te irás dando cuenta de estas cosas.

Un Saludo!

74
Aprender a programar desde cero / Re:Practica (CU00619B)
« en: 27 de Agosto 2014, 19:46 »
Hola esta bien para ser un ejercicio así teórico, pero te comento:

   Horario de Vuelo
   Pista donde despegara
   Piloto para el vuelo

estos tres atributos no los consideraría atributos de un avión. Los veo mas para una clase llamada Vuelo por ejemplo. Son atributos que si que los usará un avión cuando tenga un vuelo, pero no por el echo de ser avión, ya tiene un horario, a lo mejor el avión acaba de salir de fabrica, o a lo mejor esta en un museo... No se si captas la idea. Los demás están bien.

Los métodos están bien quitando los que te sobrarían tras quitar estos atributos que te he comentado...

Pero yo ademas añadiria otras operaciones como son volar, aterrizar, despegar, rellenarCombustible, ....

De todas formas es un ejercicio inicial y es mas teórico, conforme profundices iras adquiriendo destreza en esto de las propiedades y los métodos de una clase.   

Un saludo!!

75
Aprender a programar desde cero / Re:ENTREGA:CU00633B
« en: 27 de Agosto 2014, 19:30 »
Esta perfectisimamente perfecto excepto por un detalle.... jajajajajajaja

Las Ñ´s jajajaja quítalas antes de que lo vea alguien que entienda porque eso duele a la vista, jajaja.

Los lenguajes de programación por lo general usan alfabeto ingles, y las ñ no les mola a los guiris.

Pero nada compi has empezado perfecto.

76
Bueno, he estado repasando tu código y tienes fallos de falta de atención...

en la clase matrixita (que dicho sea vaya nombrecito...):

  • Bueno, dentro del método  mostrar_matriz(..) estas llamando al método llenar_matriz(...).

Esto no debe ser así, es un método recursivo, se debería llamar a si mismo...

  • Bueno, dentro del método  mostrar_menor_matriz(..), te vuelve a pasar lo mismo estas llamando al método llenar_matriz(...).

  • Por otro lado en el método mostrar_menor_matriz(...), encuentras el menor, pero no lo devuelves...

A parte de todo esto están los errores que estas cometiendo en cuanto al nombre de métodos, atributos, variables, parámetros, clases, etc.... No cumples con los estándares, y eso en el futuro te acarreará problemas...

En fin, mira he modificado tu código para que funcione, échale un ojo y comparalo con el que tenias para que veas las diferencias...

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

public class Matrixita {

    private int[][] matriz = {{2, 4, 4}, {6, 6, 9}, {8, 10, 12}};

    int sw = 0;
    int sw1 = 0;

    public int[][] llenar_matriz(int i, int j, int filas, int columnas) {
        Scanner teclado = new Scanner(System.in);

        if (sw == 0) {
            if (i < filas) {

                if (j < columnas) {

                    System.out.println("digite numero de posicion " + " " + i + " " + j);
                    matriz[i][j] = teclado.nextInt(); // la puta madreeeeeeee >.< 

                    llenar_matriz(i, j + 1, filas, columnas);

                }

                if (j == columnas) {

                    llenar_matriz(i + 1, 0, filas, columnas);
                }
            } else {
                System.out.println("matriz llenada satisfactoriamente");
                sw = 1;
            }
        }
        return this.matriz;

    }

    public void mostrar_matriz(int i, int j, int filas, int columnas) {

        if (sw1 == 0) {
            if (i < filas) {

                if (j < columnas) {
                    System.out.println("- " + i + " " + j);
                    System.out.println(matriz[i][j]);
                    mostrar_matriz(i, j + 1, filas, columnas);
                }

                if (j == columnas) {
                    System.out.println("-----------------------------------");
                    mostrar_matriz(i + 1, 0, filas, columnas);

                }
            } else {
                sw1 = 1;
            }
        }

    }

    public int mostrar_menor_matriz(int i, int j, int filas, int columnas, int i1, int j1) {
        int menor = 1000;

        if (i < filas) {

            if (j < columnas) {
                //System.out.println("- " + i + " " + j);
                if (matriz[i][j] < matriz[i1][j1]) {
                    menor = matriz[i][j];

                } else {
                    menor = matriz[i1][j1];
                }
                mostrar_menor_matriz(i, j + 1, filas, columnas, i1, j1);
            }

            mostrar_menor_matriz(i + 1, 0, filas, columnas, i1, j1);
        }
        return menor;
    }

}



Clase MatrizRecursiva:

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

public class MatrizRecursiva {

    public static void main(String[] Args) {

        int filas;
        int columnas;

        Matrixita mi_matriz = new Matrixita();
        Scanner leer = new Scanner(System.in);

        System.out.println("digite el numero de filas  ");
        filas = leer.nextInt();

        System.out.println("digite el numero de columnas ");
        columnas = leer.nextInt();

        int[][] matriz = mi_matriz.llenar_matriz(0, 0, filas, columnas);

        System.out.println("--------------- matriz-----------------");
        mi_matriz.mostrar_matriz(0, 0, filas, columnas);

        System.out.println("el menor dato de la matriz :");
        int menor = mi_matriz.mostrar_menor_matriz(0, 0, filas, columnas, 0, 0);
        System.out.println(menor);
    }

}
 
Y nada tio yo veo que mas o menos el código lo controlas, pero necesitas por un lado repasar conceptos básicos y por otro lado y lo mas importante... prestar atención en lo que haces.

Bueno un saludo!!

77
al componente al que le quieras bloquear el menu contextual, añádele este atributo:

oncontextmenu="return false"

Así:
Código: [Seleccionar]
<img  oncontextmenu="return false" src="http://img.desmotivaciones.es/201101/Presentation1_1.jpg"  />

Eso es lo mas sencillo....

78
Pues yo parece que lo entendí...XDD

misterhch intenta ser mas conciso y mas claro la próxima vez para que te podamos ayudar mejor.

Sobre tu ofrecimiento de salud, gracias pero yo soy de España...

Bueno, un saludo!

79
Hola, no se si es esto lo que buscas... la forma mas fácil es con CSS...

Un ejemplo de como cortar una imagen...
fichero imagen_cortada.html :
Código: [Seleccionar]

<html>
<head>
<title>Ejemplo cortar imagen</title>
<style type="text/css">
.contenedor{
float:left;
margin:.5em 10px .5em 0;
overflow:hidden;
border:1px solid #ccc;
}

/* margenes negativos que realizaran el corte */
.contenedor img{
margin:-200px -80px -70px -50px;
}
.derecha{
float:right;
}
</style>
</head>

<body>
Imagen Cortada<br>
<div class="contenedor"><img src="http://img.desmotivaciones.es/201101/Presentation1_1.jpg" /></div><br>

<div "class="derecha" >Imagen Real<br><img  src="http://img.desmotivaciones.es/201101/Presentation1_1.jpg"  /></div>
</body>
</html>


Consiste básicamente en establecer mágenes negativos a la imagen.
Lo que no entiendo es lo de que no se muestre lo del header... Bueno ira a ver si lo del css que te pongo te vale y sino intenta mostrarnos un ejemplo mas detallado de lo que necesitas.

Un saludo!!

80
Por cierto a tu select en la condición es que le falta la mitad, le falta la columna de la select principal con la que vas a comparar la subselect y también le falta el operador...

Código: [Seleccionar]
select idhabitacion from habitacion where idhabitacion in (select idhabitacion from habitacion where idhabitacion > 2)


Si te fijas entre el where y la subselect, yo le he metido:
  • idhabitacion ->que es la columna con la que estoy comparando lo que me devuelve la subselect
  • in -> Es el operador de la condición

Si la ejecutas, con esas dos cosas, ya te funciona... que te haga lo que tu quieres ya es otra cosa, pero al menos ya devuelve algo...

Páginas: 1 2 3 [4] 5 6 7 8 9

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