Java - Ayuda chicos con esto, es fácil pero no logro hacerlo :(

   
Vista:

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 14/06/2013 20:22:51
No se cómo hacer que me coja las variables dentro de las funciones, vamos que no se cómo crear dentro del main 2 funciones una para las preguntas y otra para las respuestas y que las variables inicializadas en el main me las coja... cómo se hace??? :( será una tontería pero no logro hacerlo :( :( gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class PatataCaliente {
 
    public static void main (String []args){
        // Variables
        int numero = 0;// Que el usuario introduce por pantalla
        int intentos = 0;// intentos del usuario. Máximo 10
        int numPregunta = (int)(Math.random()*3);
        String pregunta="";
        int respuesta = 0;
 
        // Ejecucion del programa
        switch( numPregunta ){
            case 0:
                 pregunta = "En que año nacio Albert Einstein ";
                 respuesta = 1893 ;
                 break ;
            case 1:
                pregunta = "En que año nacio Federico Garica Lorca ";
                respuesta = 1893 ;
                break ;
            default:
                pregunta = "En que año nacio Miguel Indurain ";
                respuesta = 1893 ;
                break ;
        }
 
        Scanner teclado = new Scanner(System.in);
 
        do{
                System.out.println(pregunta);
                numero = teclado.nextInt();
                intentos++;
                System.out.println("La fecha seleccionada fue: " + numero);
                if (numero > respuesta){
                    System.out.println("La fecha es menor. Intentalo otra vez.");
                }
                if (numero < respuesta ){
                    System.out.println("La fecha es mayor. Intentalo otra vez.");
                }
        }while( numero != respuesta && intentos < 10);
 
        if( intentos < 11){
            System.out.println("Enhorabuena. La fecha era:  " + respuesta);
            System.out.println("Lo has conseguido en " + intentos + " intentos." + " Te has salvado por los pelos.");
        }else{
            System.out.println("Has superado el numero de intentos: " + intentos + " Explota la patata.");
        }
}
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 14/06/2013 21:36:23
hii Silvia,
¿A que te refieres con crear funciones en el main? El main es como una funcion (metodo) y ¿necesitas crear una función dentro de otra función?.
De todas maneras para que las variables se puedan utilizar en toda la clase se deben declarar como tal, osa fuera del main a esto se le llaman campos o variables de clase. Otra cosa es que debido a que los metotodos son estaticos se deben declarar como static tambien eso si no piensas utilizar la clase como un objeto PatataCaliente. ej:
1
2
3
4
5
6
7
8
9
10
public class Ej{
static int a;
public static void main(string argumentos[ ]){
 a=4;
 otroMetodo();
}
public static void otroMetodo(){
a=3;
}
}

Otro ejemplo sin estatico
1
2
3
4
5
6
7
8
9
10
11
public class Ej{
int a;
public static void main(string argumentos[ ]){
 Ej e= new Ej();
 e.a=2;
 otroMetodo();
}
public void otroMetodo(){
a=3;
}
}

Observa atentamente la palabra static en el 1er ejemplo, y como en el segundo ejemplo la quito.
Espero te ayude, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 14/06/2013 22:16:21
Hola gracias. a lo que me refiero es que eso es un ejercicio, y dentro del main, esos 2 trozos de código tengo que separarlos en 2 funciones ó 2 procedimientos.

y claro si creaba una función no me cogía las variables declaradas fuera.

probaré con el ejemplo que me dices a ver si lo consigo.

muchas gracias por la ayuda :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 14/06/2013 22:59:58
no entiendo por qué me deja crear la primera función y en la 2ª me peta...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class PatataCaliente {
    int numero = 0;// Que el usuario introduce por pantalla
        int intentos = 0;// intentos del usuario. Máximo 10
        int numPregunta = (int)(Math.random()*3);
        String pregunta="";
        int respuesta = 0;
    public void main (String []args){
        // Variables
        FormularPreguntas();
        FormularRespuestas();
 
        }
 
    public void FormularPreguntas(){
        // Ejecucion del programa
        switch( numPregunta ){
            case 0:
                 pregunta = "En que año nacio Albert Einstein ";
                 respuesta = 1893 ;
                 break ;
            case 1:
                pregunta = "En que año nacio Federico Garica Lorca ";
                respuesta = 1893 ;
                break ;
            default:
                pregunta = "En que año nacio Miguel Indurain ";
                respuesta = 1893 ;
                break ;
        }
        public void FormularRespuestas(){
        Scanner teclado = new Scanner(System.in);
        do{
                System.out.println(pregunta);
                numero = teclado.nextInt();
                intentos++;
                System.out.println("La fecha seleccionada fue: " + numero);
                if (numero > respuesta){
                    System.out.println("La fecha es menor. Intentalo otra vez.");
                }
                if (numero < respuesta ){
                    System.out.println("La fecha es mayor. Intentalo otra vez.");
                }
        }while( numero != respuesta && intentos < 10);
 
        if( intentos < 11){
            System.out.println("Enhorabuena. La fecha era:  " + respuesta);
            System.out.println("Lo has conseguido en " + intentos + " intentos." + " Te has salvado por los pelos.");
        }else{
            System.out.println("Has superado el numero de intentos: " + intentos + " Explota la patata.");
        }
}
 
 
 
}
 
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 14/06/2013 23:07:27
Y aunque lo ponga así, que ya me pilla las variables, me peta la 2ª función dice que illegal start of expression...(lo quité del main para que se quitaran unos petes pero ahora sale ese otro zzz)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public class PatataCaliente {
    int numero = 0;// Que el usuario introduce por pantalla
        int intentos = 0;// intentos del usuario. Máximo 10
        int numPregunta = (int)(Math.random()*3);
        String pregunta="";
        int respuesta = 0;
    public void main (String []args){
        // Variables
        FormularPreguntas();
 
 
        }
 
    public void FormularPreguntas(){
        // Ejecucion del programa
        switch( numPregunta ){
            case 0:
                 pregunta = "En que año nacio Albert Einstein ";
                 respuesta = 1893 ;
                 FormularRespuestas();
                 break ;
            case 1:
                pregunta = "En que año nacio Federico Garica Lorca ";
                respuesta = 1893 ;
                FormularRespuestas();
                break ;
            default:
                pregunta = "En que año nacio Miguel Indurain ";
                respuesta = 1893 ;
                FormularRespuestas();
                break ;
        }
 
    public void FormularRespuestas(){
        Scanner teclado = new Scanner(System.in);
        do{
                System.out.println(pregunta);
                numero = teclado.nextInt();
                intentos++;
                System.out.println("La fecha seleccionada fue: " + numero);
                if (numero > respuesta){
                    System.out.println("La fecha es menor. Intentalo otra vez.");
                }
                if (numero < respuesta ){
                    System.out.println("La fecha es mayor. Intentalo otra vez.");
                }
        }while( numero != respuesta && intentos < 10);
 
        if( intentos < 11){
            System.out.println("Enhorabuena. La fecha era:  " + respuesta);
            System.out.println("Lo has conseguido en " + intentos + " intentos." + " Te has salvado por los pelos.");
        }else{
            System.out.println("Has superado el numero de intentos: " + intentos + " Explota la patata.");
        }
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 14/06/2013 23:15:03
Ya me sale, pero tengo un problema. me dice que un método no estático no puede ser referenciado por un contexto estático(referido a la llamada del main a FormularPreguntas(), cómo lo soluciono??:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public class PatataCaliente {
    int numero = 0;// Que el usuario introduce por pantalla
        int intentos = 0;// intentos del usuario. Máximo 10
        int numPregunta = (int)(Math.random()*3);
        String pregunta="";
        int respuesta = 0;
    public static void main (String []args){
        // Variables
        FormularPreguntas();
 
 
        }
 
    public void FormularPreguntas(){
        // Ejecucion del programa
        switch( numPregunta ){
            case 0:
                 pregunta = "En que año nacio Albert Einstein ";
                 respuesta = 1893 ;
                 FormularRespuestas();
                 break ;
            case 1:
                pregunta = "En que año nacio Federico Garica Lorca ";
                respuesta = 1893 ;
                FormularRespuestas();
                break ;
            default:
                pregunta = "En que año nacio Miguel Indurain ";
                respuesta = 1893 ;
                FormularRespuestas();
                break ;
        }
    }
 
    public void FormularRespuestas(){
        Scanner teclado = new Scanner(System.in);
        do{
                System.out.println(pregunta);
                numero = teclado.nextInt();
                intentos++;
                System.out.println("La fecha seleccionada fue: " + numero);
                if (numero > respuesta){
                    System.out.println("La fecha es menor. Intentalo otra vez.");
                }
                if (numero < respuesta ){
                    System.out.println("La fecha es mayor. Intentalo otra vez.");
                }
        }while( numero != respuesta && intentos < 10);
 
        if( intentos < 11){
            System.out.println("Enhorabuena. La fecha era:  " + respuesta);
            System.out.println("Lo has conseguido en " + intentos + " intentos." + " Te has salvado por los pelos.");
        }else{
            System.out.println("Has superado el numero de intentos: " + intentos + " Explota la patata.");
        }
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Renzo nevermindman@gmail.com (125 intervenciones) el 15/06/2013 00:03:35
Hola Silvia,
los métodos formular preguntas y formular respuestas que usas dentro del mail (que es estático) también tienen que ser estáticos.

Saludos

Te invito a visitar mi web:

http://www.imagineanddo.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 15/06/2013 00:07:10
y cómo hago que sean estáticos esos métodos? poniendo public static void ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Renzo nevermindman@gmail.com (125 intervenciones) el 15/06/2013 00:12:42
Exacto,
ahora seria bueno que leas lo que significa que es un método estático. En pocas palabras
Si tienes un clase A y dentro de esta tienes el metodoA que es estático. Para consumir dicho método no es necesario que instancies la clase A (new A()) para que puedas usar el método; suficiente con hacer A.metodoA().


Si te fui de utilidad, apoyame suscribiendote a mi web
http://www.imagineanddo.com
y regalandome un like:
https://www.facebook.com/pages/imagineanddocom/101250883361427?ref=ts&fref=ts

Saludos

Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 15/06/2013 00:14:39
muchas gracias, a ver si me peudes ayudar con la otra duda que puse en el foro en otro post ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Renzo nevermindman@gmail.com (125 intervenciones) el 15/06/2013 00:16:03
Escribeme el link
o mandamelo al gmail


Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda chicos con esto, es fácil pero no logro hacerlo :(

Publicado por Silvia (11 intervenciones) el 15/06/2013 00:23:41
es este:

http://www.lawebdelprogramador.com/foros/Java/1386754-No_entiendo_los_conceptos_basicos_:%28.html

está antes de este post justo jeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar