elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
41  Programación / Java / Re: Problema de generar palabras aleatorias [URGENTE] en: 11 Noviembre 2015, 18:49 pm
Acabo de hacer esto mismo pero en Python y si que me salio, de ahí a pasarlo a Java es solo un paso  :P

Código
  1. import random
  2.  
  3. lista = "PERRO LAPIZ ORDENADOR TECLADO PROCESADOR SISTEMA INTERFAZ UNIX PROGRAMA DISCO CONECTOR CABLEADO ALMOHADILLA VENTANA JERSEY CAMISETA PANTALON RECREO MONITOR BOCADILLO";
  4.  
  5. numeroRandom = random.randint(1, 20);
  6.  
  7. palabraActual = "";
  8. contador = 1;
  9.  
  10. pararCiclo = False;
  11.  
  12. for letra in lista:
  13.    if(letra == " "):
  14.        contador += 1;
  15.        if(pararCiclo == True):
  16.            break;
  17.    if(contador == numeroRandom):
  18.        palabraActual += letra;
  19.        pararCiclo = True;
  20.  
  21. print(str(numeroRandom)+":"+palabraActual);
  22.  
  23.  

Te explico un poco como funciona el Script:
Lo que hace el ciclo for, es recorrer letra por letra la cadena lista.
Cuando el ciclo lee una letra, primero se fija si es igual a un espacio vació, si es así, la variable contador, aumentara en 1. La variable contador sirve para verificar por que palabra va el ciclo.
Luego se hace otra comprobación, que se fija si  contador es igual al numerorandom, osea la palabra que se tiene que obtener de la lista, si lo es, cada letra que se lea del ciclo for, sera agregada a la variable palabraActual.

No pretendo que lo hagas tal cual, pero para que te sirva de orientación xD

Salu2
42  Programación / Scripting / Re: [Python]Detectar teclas globalmente en: 9 Noviembre 2015, 16:57 pm
Gracias por la ayuda amigo   ;-)
Jaja me canse de buscar, lo busque en Español, ingles y en todos los idiomas posibles xD, pero no conocía esas clases, si quiera conociéndolas hubiera podido, soy bastante nuevo en Python  :P
43  Programación / Scripting / Re: [Python]Detectar teclas globalmente en: 9 Noviembre 2015, 01:54 am
Muchísimas gracias  ;D me podrías orientar de como se haría con Ctypes, o facilitar un tutorial de la web?
44  Programación / Scripting / [Python]Detectar teclas globalmente en: 8 Noviembre 2015, 03:55 am
Hay alguna forma de detectar si se pulsa una tecla pero no estando en el programa.
Solo me detecta si pulso una tecla, pero solo cuando mi programa tiene el foco :-\ Pero lo que yo quiero es que me detecte desde cualquier lugar.
Es posible hacer esto?  :-\
45  Programación / Java / Re: Duda herencia de constructor en: 26 Octubre 2015, 06:26 am
Creo que el error es por que cuando haces:

Código
  1. super(name);

En realidad no le estas pasando nada al constructor de la clase padre de Material, por eso da error. Intenta ponerle un valor a la variable name de la clase Author y creo que no debiera darte error.

Salu2.
46  Programación / Java / Re: [Duda]Paso de parámetros por referencia en: 25 Octubre 2015, 04:34 am
Después de investigar bastante, he logrado entender por fin el paso de parámetros en Java  ;-)
Bueno al menos eso creo yo  :P

Intentare explicar lo que entendí:

En muchos artículos leía esto:

En java se pasa todo por valor, lo que hay que entender es que pasa los objetos por referencia, y esas referencias se pasan por valor.

Pero nunca lograba entenderlo del todo. Hasta ahora:

Esta frase significa que los objetos que se pasan por parámetros se pasan por referencia, pero por un valor, y no el objeto en tal como se haría en C/C++. Ese valor es como una especie de apuntador a la memoria en donde se encuentra dicho objeto.

Muestro un ejemplo:

Cuando nosotros creamos un objeto en Java:

Código
  1. Perro perro1 = new Perro("Bobby");

Estamos reservando espacio en memoria para un nuevo objeto, y lo que hacemos es apuntar con la variable perro1 a ese objeto que acabamos de crear.
Podemos tener mas de 1 variable apuntando a un mismo objeto, por ejemplo:

Código
  1. Perro perro1 = new Perro("Bobby");
  2. Perro perro2 = perro1;
  3.  

Como ven las variables perro1, y perro2 están apuntando al mismo objeto. Ahora bien, que pasaría si hago lo siguiente:

Código
  1. Perro perro1 = new Perro("Bobby");
  2. Perro perro2 = perro1;
  3.  
  4. perro1 = new Perro("Lobito");
  5.  

¿Que pasaría con la variable perro2? Pues nada, la variable perro2, seguiría estando igual, seguiría apuntando al mismo objeto de siempre, lo único que paso fue que la variable perro1 esta apuntando a otro objeto nuevo, eso es lo único que paso.

Ahora otro ejemplo pero con métodos, que es lo que me confundía, pero teniendo claro la información anterior, logre entender esto de los pasos por parámetros ;D  :

Tenemos una clase común y corriente, con sus respectivos get y set:

Código
  1. public class Perro {
  2.     private name;
  3.  
  4.     public Perro(String name) {
  5.          this.name = name;
  6.     }
  7.  
  8.     public void setName(String name) {
  9.          this.name = name;
  10.     }
  11.  
  12.     public String getName() {
  13.          return this.name;
  14.     }
  15. }

Y tenemos la clase Main:

Código
  1. public class Main {
  2.  
  3.     pubic Main() {
  4.          Perro perro1 = new Perro("Bobby");
  5.          modificar(perro);
  6.     }    
  7.  
  8.     public void modificar(Perro perro) {
  9.          Perro perro2 = new Perro();
  10.          perro = perro2;
  11.     }
  12.  
  13.     public static void main(String[] args) {
  14.          new Main();
  15.     }
  16. }


Bien, en el constructor de la clase Main, creamos un objeto y la variable que lo esta apuntando es perro1.
Después llamamos al método modificar y le pasamos como parámetro el objeto perro1, PERO... en realidad no le estamos pasando el objeto, si no que le estamos pasando la referencia como un valor a ese objeto, por lo que en el método modificar, la variable perro también esta apuntando al mismo objeto.
Dentro del método modificar creamos otro objeto perro y la variable que lo esta apuntando es perro2, ahora prestemos atención en esta parte:

Cuando hacemos lo siguiente, ¿que creen que pasara?:
Código
  1. perro = perro2;

Lo que pasara es que la variable perro solo apuntara a lo mismo que esta apuntando perro2. En ningún momento estaríamos modificando la variable perro1 que anteriormente creamos. :laugh:

ADVERTENCIA: No estoy 100% seguro de que esta idea sea 100% certera, por favor corrijanme si me equivoco.
Agradecería si me dijeran si mi idea es correcta, así me quito una carga muy pesada de encima  :-\

Un articulo que me ayudo a entender esto: http://www.iteramos.com/pregunta/1043/java-es-por-referencia-o-paso-por-valor

Espero que sirva de ayuda, un saludo  ;)
47  Programación / Java / Re: Ayuda metodo java en: 23 Octubre 2015, 17:56 pm
Para acceder a la posición 0, o la primera posición de un array debes indicarlo con el numero 0.

Así:
Código
  1. lista2.add(numeros[0]);

Si quieres añadir todos los elementos del array numeros en la lista lista2, podrías hacerlo con un ciclo for, así:

Código
  1. for(int i = 0; i < numeros.length; i ++) {
  2.            lista2.add(numeros[i]);
  3. }
  4.  

Si sabes usar el ciclo for, no deberías tener problemas en entender el código.

Si tienes dudas, aquí estamos.
48  Programación / Java / Re: [Duda]Paso de parámetros por referencia en: 21 Octubre 2015, 20:49 pm
Muchas gracias por sus respuestas  ;-)

He leído ambos artículos, y también he llegado a la misma conclusión que kondrag_X1  :-\
No hay caso de que entienda esto:

Citar
En java se pasa todo por valor, lo que hay que entender es que pasa los objetos por referencia, y esas referencias se pasan por valor.

He leído el articulo, el que me paso DarK_FirefoX, pero no logre entenderlo  :huh:

Entonces esto seria lo mismo que por referencia?  :-\

He hecho mas pruebas para indagar un poco mas y esto es lo que paso:

Tengo 3 clases:

Clase con el main
Código
  1. public class PruebaParametros {
  2.  
  3.    public static void main(String[] args) {
  4.        Perro perro = new Perro("Boby");
  5.        System.out.println(perro.nombre);
  6.  
  7.        EditorPerro editorPerro = new EditorPerro(perro);
  8.        System.out.println(perro.nombre);
  9.    }
  10. }
  11.  
  12.  

Clase perro
Código
  1. public class Perro {
  2.  
  3.    String nombre;
  4.  
  5.    public Perro(String nombre) {
  6.        this.nombre = nombre;
  7.    }
  8. }
  9.  
  10.  

Clase que modifica los atributos del perro, en este caso solo el nombre (EditorPerro)
Código
  1. public class EditorPerro {
  2.    private Perro perro;
  3.  
  4.    public EditorPerro(Perro perro) {
  5.        this.perro = perro;
  6.        this.perro.nombre = "Nombre cambiado";
  7.    }
  8. }
  9.  


En el main instancio un objeto de la clase perro y le paso por parámetro el nombre del perro, y luego imprimo el valor de la variable "nombre" del objeto perro para corroborar el cambio. Hasta ahí todo perfecto.

Ahora instancio un objeto de la clase EditorPerro y le paso como parámetro la instancia del objeto perro anteriormente creado, y lo que hace este método de la clase EditorPerro, es:
Hace que la variable "perro" de clase tome el valor de lo que le pase por parámetro, y aquí viene la parte extraña  :-\ , lo que hago es modificar el valor de la variable "nombre" PERO de la clase, la que esta como privada, y lo que hago es cambiar el nombre a "Nombre cambiado", como se puede ver en el código.

Ahora vuelvo al main, e imprimo nuevamente la variable nombre, del objeto Perro, y adivinen que?  :-\ :-\ :-\
Tomo el valor "nombre cambiado"   :P

Osea que cuando el método modifico el objeto de la clase, me modifico también el original y eso que era otro objeto, y que si fuera paso de parámetros por valor, no debería hacer eso.

Debería resignarme a pensar de esta manera? tendré problemas en un futuro si sigo pensando así?  :-\
49  Programación / Java / [Solucionado]Paso de parámetros por referencia en: 21 Octubre 2015, 06:07 am
Estoy muy enredado con esto del paso de parámetros en Java, si es por valor o por referencia  :-\

Estuve leyendo un par de artículos por internet y según dicen que los pasos por parámetros en Java, son por valor y no por referencia.

Pero lo que no me entra en la cabeza, es cuando le paso un objeto como parámetro a un método, este supuestamente si fuera por valor, el método debería tomar una copia del objeto, pero no al contrario, el método efectúa los cambios en el objeto original que le pase  :-\ , Varios artículos que he leído afirman que Java es 100% paso de parámetros por valor, pero cuando se trata de pasar objetos por parámetros, los métodos hacen los cambios en el objeto original que le pase, es decir que no hacen una copia de dicho objeto, al contrario con los datos primitivos(int, long, short, String) que si lo hace.

¿Entonces Java es por valor y por referencia?  :-\
Java es raro :¬¬ es compilado e interpretado también  :-[ jaja pero eso no viene al caso.

¿Alguien sabe por que sucede esto, o que entendí mal?  :-\

Muchas gracias desde ya.
50  Programación / Java / Re: ayuda "InputMismatchException" al usar una variable tipo double en: 8 Mayo 2015, 05:04 am
Hola amigo, nose por que pueda estar pasando, tendría que googlear un poco jeje, pero lo he hecho de esta forma, y funciona perfectamente:

Código
  1. import java.util.Scanner;
  2.  
  3.  
  4. public class IngresoDecimales {
  5.  
  6.  
  7.    public static void main(String[] args) {
  8.      Scanner lec= new Scanner(System.in);
  9.  
  10.        double decimal;
  11.        System.out.println("ingrese un numero con decimal");
  12.        decimal= Double.parseDouble(lec.nextLine());
  13.        System.out.println("el decimal es "+ decimal);
  14.    }
  15.  
  16. }
  17.  

Lo que hice fue:
El String que lee el Scanner, lo convertí a Double, y luego lo imprimí.

Menos mal que Java tiene muchas funciones útiles jeje.

Un saludo!
Páginas: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines