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 - javi in the sky

Páginas: 1 ... 13 14 15 16 17 [18] 19 20
341
Aprender a programar desde cero / Re:Algoritmo recursivo
« en: 14 de Marzo 2013, 14:52 »
Si llamas por ejemplo al factorial de 5 el proceso es:

Devuelve 5 * factorial (4) entra en primera recursión
factorial (4) devuelve 4 * factorial (3) entra en segunda recursión
factorial (3) devuelve 3 * factorial (2) entra en tercera recursión
factorial (2) devuelve 2 * factorial (1) entra en cuarta recursión
factorial (1) devuelve 1 * factorial (0) entra en quinta recursión
factorial (0) devuelve 1 y termina la quinta recursión que devuelve 1*1

termina la cuarta recursión que devuelve 2*1
termina la tercera recursión que devuelve 3*2*1
termina la segunda recursión que devuelve 4*3*2*1
termina la primera recursión que devuelve 5*4*3*2*1

Si ejecutas esto
Código: [Seleccionar]
public class prueba {

    public static void main (String[] Args){
        System.out.println ("Resultado de factorial de 5 es "+ factorial(5)); 
    }

    static    int factorial (int n){
        if (n==0) { System.out.println ("Caso base"); return 1;}
        else{
            System.out.println ("Recursión");
            return n*factorial(n-1);}
    }
}

El resultado es

Recursión
Recursión
Recursión
Recursión
Recursión
Caso base
Resultado de factorial de 5 es 120


Es decir, cinco recursiones, se llega al caso base y devuelve el resultado



342
Creo que en String response=JOptionPane.showInputDialog(null, "Ingrese nuevo dx"); no debes poner null, sino el objeto padre.

Fíjate en este ejemplo, creo te sirva para ver como modificar un label con el contenido introducido por el usuario:

Código: [Seleccionar]
//(1) PAQUETE

import java.awt.*;

import javax.swing.*;

//(2) FORMULARIO

public class Programa1 extends JFrame {

    //(3) CONTROLES DEL FORMULARIO       

    JPanel jpanel = (JPanel) this.getContentPane();

    JLabel jlabel = new JLabel();

    JTextField jtextfield = new JTextField();   

    //(4) CONSTRUCTOR DEL FORMULARIO       

    public Programa1() {

        //(5) PROPIEDADES DEL CONTENEDOR

        jpanel.setLayout(null);

        jpanel.setBackground(Color.lightGray);

        //(6) PROPIEDADES DE LOS CONTROLES         

        jlabel.setBounds(new Rectangle(5, 15, 220, 21));

        jlabel.setText("Introduzca su peso en kgs por favor");

        jtextfield.setBounds(new Rectangle(225, 15, 80, 21));

        //(7) ADICION DE LOS CONTROLES AL CONTENEDOR       

        jpanel.add(jlabel, null);

        jpanel.add(jtextfield, null);

        //(8) PROPIEDADES DEL FORMULARIO         

        setSize(300,150);

        setTitle("Form1");

        setVisible(true);

        // Con caja de texto
        String seleccion = JOptionPane.showInputDialog(
                this,
                "Petición de datos",
                JOptionPane.QUESTION_MESSAGE);  // el icono sera un iterrogante

        //System.out.println("El usuario ha escrito "+seleccion);

        if((seleccion!=null) && (seleccion.length() > 0)) {
            jlabel.setText(seleccion);  }     

    }

    //(9) METODOS DEL FORMULARIO     

    public static void main(String arg[]) {

        new Programa1();

    }

}


343
Hola! Yo he usado JEvents 2.2.8, supongo que sera igual o parecido, Por defecto jevents te pone primero los eventos mas recientes y luego los sucesivos hacia el futuro. ¿es eso lo que te falla o te refieres a que estas usando un modulo en vez de el componente en sí?

Si es el componente puedes ordenar así: Crea un item de menú que sea de tipo "Date Range", establece una fecha de inicio y una fecha de fin y en event data ordering elige cómo quieres que se muestren los eventos:

Increasing - > primero mas reciente luego mas lejano

Descreasing - > primero mas lejano luego mas reciente


344
Aprender a programar desde cero / Re:Bucles anidados funcionamiento
« en: 28 de Febrero 2013, 10:43 »
Sobre el programa en sí, necesitaría saber exactamente qué es lo que hay que hacer, con varios ejemplos resueltos, para poder hacer un planteamiento.

Sobre los bucles anidados este es un ejemplo sencillo:

public class test {

    public static void main (String[] Args){

        for( int i = 0; i < 2; i++)   {
            System.out.println ("BUCLE EXTERNO con i = " + i);
            for( int j = 0; j <= 4; j++){
                System.out.println ("Estamos en el bucle interno con i = "+i+" y j = " + j);
            }
        }
    }
}

Si se ejecuta se obtiene:

BUCLE EXTERNO con i = 0
Estamos en el bucle interno con i = 0 y j = 0
Estamos en el bucle interno con i = 0 y j = 1
Estamos en el bucle interno con i = 0 y j = 2
Estamos en el bucle interno con i = 0 y j = 3
Estamos en el bucle interno con i = 0 y j = 4
BUCLE EXTERNO con i = 1
Estamos en el bucle interno con i = 1 y j = 0
Estamos en el bucle interno con i = 1 y j = 1
Estamos en el bucle interno con i = 1 y j = 2
Estamos en el bucle interno con i = 1 y j = 3
Estamos en el bucle interno con i = 1 y j = 4


Un bucle define un número de repeticiones, en el ejemplo el bucle externo se repite 2 veces (con i valiendo 0 y 1). Si dentro de un bucle anidamos otro, por cada repetición del bucle externo se producen las n repeticiones que estén establecidas para el bucle interno. En este ejemplo el bucle interno define 5 repeticiones (j de 0 a 4). El resultado es que el total de iteraciones es: nº de repeticiones del bucle externo x número de repeticiones del bucle interno, en este ejemplo 2 x 5 = 10. Fíjate que hay cosas que se producen el número de veces que define el bucle externo (en este ejemplo sólo se muestra 2 veces BUCLE EXTERNO...) mientras que hay cosas que se producen i x j veces (en este ejemplo se muestran 10 veces "Estamos en el bucle...").

Un aspecto importante es la condición para terminación, no es lo mismo poner i < 2 que i<=2. En el primer caso el 2 queda excluido, y en el segundo incluido.


345
Aprender a programar desde cero / Re:Bucles anidados funcionamiento
« en: 27 de Febrero 2013, 22:31 »
Aquí dejo el programa preparado con un main para poder ejecutarlo, cosa que ya he hecho; sin embargo no veo que esté algoritmo haga nada útil. Voy a poner primero el código y luego lo comento:

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

public class test1 {
 

public static void main (String[] Args){

int [] vector = {-33, -5, -3};

System.out.println ("Vector de entrada: " + Arrays.toString(vector));
System.out.println ("Subsecuencia suma máxima = " + subsecuenciaSumaMaxima(vector));
}

public static int subsecuenciaSumaMaxima ( int [] a) {
     int sumaMax = 0;
     int secIni;
     int secFin;
     for( int i = 0; i < a.length; i++)   
          for( int j = i; j < a.length; j++)   
          {
                  int sumaActual = 0;  //Esta declaración aquí dentro supone que sumaActual se machaca en todas las pasadas menos en la última
   
                  for (int k = i; k <= j; k++) 
                        sumaActual += a[k];

                  if ( sumaActual < sumaMax){
                                                sumaMax = sumaActual;
                                                secIni = i;
                                                secFin = j;
                                            }
    }
  return sumaMax;
}

}

Con un vector de tres enteros positivos el algoritmo devuelve siempre cero. Con un vector de tres enteros negativos el algoritmo devuelve la suma de los tres valores.

¿Es esto lo que se supone que debía hacer? Me harían falta ejemplos de qué es lo que se quiere lograr para poder plantear algo útil, porque ahora mismo es que no sé qué es lo que se querría lograr.

Con un vector de tres enteros positivos tenemos el bucle i que va de 0 a 2, el bucle j que va de 0 a 2 y el bucle k que va inicialmente de 0 a 0. Ejecuta sumaActual = 0 + primer elemento del array, al no ser menor que sumaMax j toma su siguiente valor (ahora j=1) y ocurre lo mismo. Ahora j=2, ocurre lo mismo y termina el bucle j. Se llega al return y se acabó.

Con un vector de tres enteros negativos el proceso es igual, pero en cada ocasión sumaActual es menor que sumaMax por lo que se ejecuta el if y se cambian los valores de secIni y secFin (que no sé para qué sirven). Una vez se ha obtenido la suma de los valores negativos se llega al return y se acabó.

¿Para qué sirve tanto bucle?


346
Comunidad / Re:sobre el crackeo de redes wifi
« en: 25 de Febrero 2013, 12:21 »
No tienes que instalar sino usarlo como sistema operativo, lo primero es que a partir del iso generes un cd de arranque (live cd o boot cd) simplemente pasando el iso a un cd, pero no tal cual, ten en cuenta que el iso es una forma de compresión, lo que tienes que hacer es pasar el iso a un cd pero descomprimiéndolo, luego con ese cd podrás arrancar tu ordenador directamente desde el cd

347
Comunidad / Re:sobre el crackeo de redes wifi
« en: 21 de Febrero 2013, 13:13 »
Creo que todas ellas tienen similitudes, yo te recomendaria que empieces con wifislax 4.3

348
De todo un poco... / Re:residuo a depurar en base datos mysql
« en: 18 de Febrero 2013, 17:04 »
Entra al panel de administración de tu hosting -> Busca la administración de las bases de datos, en CPanel es Base de Datos -> PhpMyAdmin.

Una vez dentro selecciona la Base de datos -> en la parte de abajo pincha el enlace de Marcar tablas con residuo a depurar -> en la lista desplegable selecciona Optimizar la tabla.

Tras unos segundos tendrás un mensaje con las operaciones realizadas y verás que se han eliminado los residuos.

349
De todo un poco... / Re:residuo a depurar en base datos mysql
« en: 15 de Febrero 2013, 13:52 »
Qué tal, efectivamente, eso lo puedes borrar para mejorar el rendimiento de la base de datos.

350
De todo un poco... / Re:montar un video mp4 con windows movie maker
« en: 12 de Febrero 2013, 08:29 »
Pues con windows 8 la verdad es que no sé, de todas formas puedes usar un programa más profesional como sony vegas si dispones de tiempo para aprender a usarlo

351
Comunidad / Re:una de esas curiosidades para reir o llorar
« en: 31 de Enero 2013, 16:46 »
Al principio no entendí esa frase "como hojas de papel fueron las que ayudaron a construir semejante obra", pero al releerlo una segunda vez me ha hecho esbozar una sonrisa, muy bueno tanci. A ver si me lleno los bolsillos de hojas de papel con alguna idea brillante.

352
Comunidad / Re:una de esas curiosidades para reir o llorar
« en: 31 de Enero 2013, 11:19 »
Más que bonita, parece un refugio nuclear  :)

353
Puedo asegurar que con el total video converter desmarqué las casillas para instalación de complementos (toolbars, etc.) y aún así se instalaron una serie de aplicaciones en las que yo no tenía interés. Esto no es normal, ni siquiera aunque en los términos de licencia (que prácticamente nadie se lee) digan algo, nunca ha sido normal que al instalar un programa "te cuelen" la instalación de otros tratando de ocultarlo.

354
¿En qué lenguaje estás trabajando? ¿Puedes poner un archivo de texto adjunto con el código y explicar mejor que es lo que quieres hacer?

355
Yo he tenido un problema similar a lo que comentas al bajarme un programa de softonic el Total Video Converter aparte de instalarse programas sin permiso no me ha ido nada bien pero no me he bajado más cosas ultimamente

356
No veo respuesta para cuál es el mejor editor. Yo mismo uso varios, dependiendo de lo que vaya a hacer. El notepad++ por ejemplo va muy bien porque es ligero y tiene muchas funciones útiles, pero se queda corto para funciones un poco más avanzadas o para archivos de mucho tamaño. En ese caso hay que recurrir a alternativas más potentes.

357
Hola javier, la diferencia entre usar php y javascript estaría en que php se ejecuta del lado del servidor y por tanto el código no reside en el ordenador del usuario, mientras que con javascript la ejecución es del lado del cliente (ordenador del usuario) y el código se ejecuta y se encuentra en su ordenador. Con javascript no necesitas comunicar con el servidor y estar intercambiando información con lo que la apariencia es de que el proceso es rápido. Ambas opciones pueden ser válidas, depende de cómo quieras plantear el proceso. Por ejemplo si el usuario escoge una opción en una pantalla y luego en la siguiente pantalla se le van a mostrar los datos usaríamos php; si quieres que en una misma pantalla el usuario vea dinámicamente cómo varían los precios en función de que escoja una opción u otra puedes usar javascript.
En procesos con precios debes tener una validación del lado del servidor para evitar que un usuario por error o por mala intención manipule los datos. Por ejemplo, supón que el precio inicial es 1000 y después del cálculo realizado es 1010. Si lo haces por javascript luego debes validar en php que el valor que te llega es correcto, por ejemplo que no te pueda llegar precio inicial 1000 y después del cálculo 850 porque eso sería erróneo.

358
Todo esto es algo que evoluciona muy rápido porque continuamente estan apareciendo nuevas tablets y dispositivos. Una técnica que parece estar en línea con que las webs se adapten a cualquier dispositivo en el Responsive Design o diseño web adaptativo.

La idea es de "One Web", no solo para navegación en dispositivos móviles sino también en dispositivos de mayor resolución de pantalla como portátiles u ordenadores fijos. El concepto de "One Web" hace referencia a la idea de construir una Web para todos (Web for All) y accesible desde cualquier tipo de dispositivo (Web on Everything).

Aquí hay un desarrollo sobre este tema: http://es.wikipedia.org/wiki/Dise%C3%B1o_web_adaptativo#cite_note-fluid_grid-1

359
Mi opinión viene siendo la siguiente: si lo que se quiere es poder leer libros o textos, que requiere estar mirando fijamente a la pantalla por periodos prolongados, lo mejor es un libro electrónico (e-reader) de los que la pantalla no emite brillo y se pueden leer en todo tipo de condiciones incluso con luz solar. La ventaja de estos es que no cansan a la vista. Si se quiere algo que nos permita conectarnos a internet, enviar mensajes, chatear, ver documentos y archivos de distintos tipos, fotos, etc. lo ideal es un tablet (podría ser un ipad si se quiere pero hay muchas más marcas). Los tablets también permiten leer, son más potentes y atractivos pero el problema que tienen es que cansan la vista si se pretende estar mucho tiempo delante de la pantalla. 

360
Hola en general de acuerdo con lo expuesto con César aunque yo diria que aunque no se tengan capacidades innatas una persona con esfuerzo puede llegar a suplirlas, le puede costar más tiempo y esfuerzo, pero creo que se puede lograr. Conozco varias personas que han llegado a ser buenos programadores partiendo de cero y sin desarrollar estudios de postgrado ni especializaciones.

Páginas: 1 ... 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".