Problema metodo

Iniciado por anman, 25 Diciembre 2007, 19:19 PM

0 Miembros y 3 Visitantes están viendo este tema.

anman

Hola,quiero hacer un metodo para que un conjunto de metodos me aparezcan aleatoriamente y no todos ellos¿como lo puedo hacer?He estao intentando con el math.random pero no consigo nada.Agradeceria mucho que alguien me guiara un poco

Casidiablo

Pues no te entendí nada... tomate el tiempo que sea necesario explicando lo que necesitas y qué has hecho.

Un saludo!

anman

Voy a intentar explicarlo mejor.Yo tengo que hacer un trivial,cada pregunta del trivial la he puesto en un metodo.Quiero hacer un metodo para que cada pregunta aparezca aleatoriamente,no en orden como las he puesto.He intentado hacer un metodo y ponerle el math.random pero no consegui nada

egyware

no se como funciona realmente el metodo Math.random pero
si por casualidad devuelve numeros entre 0 y 1 esta ecuacion matematica te puede servir u con este metodo de java tb
Código (java) [Seleccionar]

//.. dentro de tu clase
private double random; /*supongamos que aqui guardamos el numero al azar
perteneciente al intervalo [0,1] que nos devuelve algun metodo que genere numero aleatorios*/
private int a = 10; /* aqui defino como a la cantidad de preguntas posibles que allan le puse como ejemplo 10 preguntas*/
public String getPregunta(){
ramdom = getRandom();/*aqui es mi supesto metodo que genera numeros entre
0 y 1*/
int caso = ((int)(ramdom*a))+1;
switch(caso){
//... casos
case 1:
return "Alguna respuesta o llamada a metodo"
case 2:
return getPregunta2();
}
return "";
}

eso suerte xauu

anman

Una pregunta y el metodo getRandom ¿que pones?

egyware

#5
 :huh: :huh:
Nose
se supone que el metodo era fictisio
lo que pasa es que nunca usado el metodo de Math.random() y como no lo he usado no se cual es el rango de numeros que devuelve, yo antes de programar en java programa en Qbasic y para obtener numero aleatorios era algo asi
Código (qbasic) [Seleccionar]

Randomize Timer
a = 10' es la cantidad de casos le pondre 10
caso = fix(rnd * a)+1
Select Case a
case 1
'...
' :huh: :huh: buaa se me olvido como era programar en Qbasic

yap pero era algo asi voy a revisar la clase Math si te puedo ayudar en algo más
xauu
suerte

PS: ya listo quedaria algo asi
Código (java) [Seleccionar]

//.. dentro de tu clase
private double random; }
/*supongamos que aqui guardamos el numero al azarperteneciente al intervalo [0,1] que nos devuelve algun metodo que genere numero aleatorios*/
private int a = 10;
/* aqui defino como a la cantidad de preguntas posibles que allan le puse como ejemplo 10 preguntas*/
public String getPregunta(){
random = Math.random();/*aqui esta el metodo de la clase Math que devuelve numeros entre 0 y 1*/
int caso = ((int)(random*a))+1;switch(caso){
//... casos
case 1:
return "Alguna respuesta o llamada a metodo";
case 2:
return getPregunta2();
}return "";
}

Te doy un consejo
cuando no sepas algo de algun metodo puedes revisar el Api de java
yo lo revise u justo era lo que necesita numeros entre [0,1]
xau suerte

anman

#6
Tengo el siguiente codigo:public static void preguntasTema1() {

c = new Console();
c.gotoxy(5,2);
c.cputs("Usuario:" +TestJava.nombre);
double ramdom;
         int a=10;
         
         ramdom=Math.random();
    int caso = ((int)(ramdom*a))+1;
     
    switch(caso){

      case 1:
    pregunta1_tema1();
         
      case 2:
       pregunta2_tema1();
       
      case 3:
      pregunta3_tema1();
     
  case 4:
pregunta4_tema1();

  case 5:
    pregunta5_tema1();
  case 6:
  pregunta6_tema1();
  case 7:
    pregunta7_tema1();
  case 8:
    pregunta8_tema1();
  case 9:
    pregunta9_tema1();
  case 10:
    pregunta10_tema1();
  case 11:
    pregunta11_tema1();
  case 12:
    pregunta12_tema1();
  case 13:
    pregunta13_tema1();
  case 14:
    pregunta14_tema1();
  case 15:
    pregunta15_tema1();
  case 16:
    pregunta16_tema1();
  case 17:
    pregunta17_tema1();
  case 18:
    pregunta18_tema1();
  case 19:
            pregunta19_tema1();
  case 20:
    pregunta20_tema1();

  }

Lo que me pasa ahora es que me aparece aleatorio la primera ,pero las demas seguidas

Casidiablo

Uisshhh... con el debido respeto... eso que haces está feo. Es mejor que tengas solo un metodo que se llame por ejemplo pregunta, y al que le pasas un parámetro con el número de la pregunta:

public void pregunta(int x)

y luego cosas como:

pregunta(5);
pregunta(8);
pregunta(random);
pregunta(x);

Un saludo!

anman

No si lo habia hecho asi:public static void preguntasTema1() {

c = new Console();
c.gotoxy(5,2);
c.cputs("Usuario:" +TestJava.nombre);
double ramdom;
         int a=10;
         
         ramdom=Math.random();
    int caso = ((int)(ramdom*a))+1;
     
    switch(caso){

      case 1:
      preguntas_resumen();
         
   
  }
}
    public static void preguntas_resumen(){
   
pregunta1_tema1();
pregunta2_tema1();
pregunta3_tema1();
pregunta4_tema1();
pregunta5_tema1();
pregunta6_tema1();
pregunta7_tema1();
pregunta8_tema1();
pregunta9_tema1();
pregunta10_tema1();
pregunta11_tema1();
pregunta12_tema1();
pregunta13_tema1();
pregunta14_tema1();
pregunta15_tema1();
pregunta16_tema1();
pregunta17_tema1();
pregunta18_tema1();
pregunta19_tema1();
pregunta20_tema1();

  }

pero no me funciona,no se porque

Casidiablo

Haber... creo que no me has entendido... eso de hacer :

pregunta1_tema1();
pregunta2_tema1();
pregunta3_tema1();
pregunta4_tema1();
preguntan_tema1();

está muy mal. Lo mejor es hacerlo como te puse arriba. Si quieres pon TODO el código que tienes y te intento ayudar. Mi MSN es castidiablo@gmail.com por si quieres soporte online XD.

un saludo!