Foros del Web » Programación para mayores de 30 ;) » Java »

ayuda con un programa

Estas en el tema de ayuda con un programa en el foro de Java en Foros del Web. Hola, estoy haciendo un programa en java que tire una moneda 10 veces, cada vez que caiga la moneda me diga que cayo, y luego ...
  #1 (permalink)  
Antiguo 04/03/2008, 23:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
ayuda con un programa

Hola,
estoy haciendo un programa en java que tire una moneda 10 veces, cada vez que caiga la moneda me diga que cayo, y luego de 10 intentos me de el porcentaje de caras y sellos en los 10 intentos. Pero siendo nuevo en esto estoy un POCO, por no decir mucho, confundido con esto. he leido un poco para hacer el programa, pero esto creo que se me sale de las manos.

por favor me ayudan y gracias de antemano.

Código:

/*  llamando librerias*/

      import javax.swing.JOptionPane;
      import java.util.*;

/*  Declaracion de la clase */

    public class FlipCoin

    {

/*  Definicion del metodo */

    public static void main(String[ ] args)
    {

/*  declarando variables*/

        flipsString = 0;
        Random pick = new random ();
        final int totalFlips = 10;
        final int HEADS = 0;
        final int TAILS = 1;
        int face;
       

/*   Seleccion del jugador */

        flipsString = JOptionPane.showInputDialog(null, "Presione ENTER para tirar la
        moneda");
        if (flipsString == totalFlips)
        total = Integer.parseInt(flipString);

//      Tirada inicial de la moneda

        public void flip1 ()
       {
             flip1();
        }


//      tirada de la moneda escogiendo un valor random.

        public void flip ()
       {
             face = pick.nextInt(2);
       }

 
//     es verdadero si la moneda cae en caras

      public boolean flip()
      {

       //   escoje un numero entre 0 o 1 al random.  Verdadero si
      //   es 0 (HEADS)

     coinFace = ((int)(2 * Math.random()) == 0);
   
      //   Conteo de las tiradas de la moneda
   
     flips++;
     totalFlips++;

      //   Conteo del numero de caras
   
      if (coinFace == HEADS)
                 {
         heads++;
         totalHeads++;
                  else
                      tails++;
     }
   
     return coinFace;
    }


     public boolean isHeads ()
     {
             return (face == HEADS);
     }
 
 //  Returns the current face of the coin as a string.
 
    public String toString()
   {
         String faceName;

    if (face == HEADS)
         faceName = "Heads";
   
    else
    faceName = "Tails";

    return faceName;
}

// Calculo de los porcentajes 


   PerHEADS =  (HEADS * 100)/10;
   PerTAILS = (100 - PerHEADS);

// Despliegue del resultado

monedaString = JOptionPane.showMessageDialog(null, "el porcentaje de Caras o Sellos "
        + "\ndespues de 10 intentos es: "
        + "\n HEADS " + PerHEADS + "%"
        + "\n TAILS " + PerTAILS + "%");

}
  #2 (permalink)  
Antiguo 05/03/2008, 01:10
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: ayuda con un programa

Para empezar hay un ...
Cita:
public void flip1 ()
{
flip1();
}
...bucle recursivo infinito.

Y luego... esta mezclada la declaracion de funciones con el codigo del main...¿?

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 06/03/2008, 00:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: ayuda con un programa

Gracias GreenEyed.

tiene razon en eso. ya revise y ahora estoy probando cada paso del programa para luego unirlo todo.

en esta seccion (ya tengo 3 funcionando) la idea es que el computador escoja al randon un numero entre dos opciones (estas serian cara o sello) y luego mantenga la suma de ellas (vamos viendo como avanza) hasta que se acaben los 10 intentos.

Me esta presentado estos dos errores:
cambio.java:30: illegal start of type
return cara;
^
cambio.java:30: <identifier> expected
return cara

Espero estar haciendo las cosas bien.

Gracias por su ayuda

Código:
import javax.swing.JOptionPane;
import java.util.*;

// Llamar la clase
public class cambio
{

//Llamar el metodo
public static void main (String [] args)
{

//declarar variables
Random pick = new random(2);
final int HEADS = 0;
final int TAILS = 1;
}

//El pc escoge al random un valor
public void  tiro()
{
cara = ((int) (2 * math.random()) == 0);

//cuenta el numero de tiradas
flips++;
totalFlips++;

// Determina si cayo cara o sello y suma al uno u otro
if(cara == HEADS)
{
  heads++;
  totalHeads++;
}
  else{
  tails++;}   

//muestra cuantas caras y cuantos sellos van
  JOptionPane.showMessageDialog(null, "heads" + heads + "tails" + tails, "Flip a Coin", JOptionPane.INFORMATION_MESSAGE);
}

//vuelve a empezar
return cara;
}
  #4 (permalink)  
Antiguo 06/03/2008, 21:27
 
Fecha de Ingreso: enero-2005
Mensajes: 92
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: ayuda con un programa

Mira, necesitas aprender mucho mas del lenguaje y mejorar la lógica

Con práctica saldrás adelante, tu programa debe quedar resuelto de la siguiente manera:

Código:
import javax.swing.JOptionPane;
import java.util.*;

public class cambio {
  static int i = 0; //contador
  
  static int totalFlips = 0; //tiros totales
  static int heads = 0; //caras
  static int tails = 0; //cruces
  static int TOT = 10; //total tiros
    
  final static int HEADS = 0;
  final static int TAILS = 1;
  
  public static void main (String [] args) {
	double pcara, pcruz;
	for (i=0; i<TOT; i++) {
      tiro();
    }
    pcara = heads / TOT;
    pcruz = tails / TOT;
    JOptionPane.showMessageDialog(null, ""+pcara);
    JOptionPane.showMessageDialog(null, "Porcentaje cara: " + pcara + "\nPorcentaje cruz: " + pcruz);
  }

  public static void tiro() {
	int cara;
    cara = (int)(Math.random()*2);
    totalFlips++;

    if(cara == HEADS) {
      heads++;
      JOptionPane.showMessageDialog(null, "Tiro: " +(i+1)+ "\nResultado: Cara");
    }
    else {
      tails++;
      JOptionPane.showMessageDialog(null, "Tiro: " +(i+1)+ "\nResultado: Cruz");
    }
  }

}
  #5 (permalink)  
Antiguo 07/03/2008, 05:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 173
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: ayuda con un programa

De todos modos, yo te digo el porcentaje: 50%. Y si tiras al infinito, 50% justo. Estadística pura:D.

Saludos.
__________________
http://javautil.blogspot.com/

Blog de programación en JAVA con apuntes, dudes, manuales, aplicaciones y mas.
  #6 (permalink)  
Antiguo 08/03/2008, 21:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 13
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: ayuda con un programa

Gracias PHP Novatillo,

Definitivamente el que sabe... sabe. Tienes toda la razon en que necesito trabajar mucho en la logica y el lenguaje.

Desde mi punto de vista creo que tengo la idea, me falta es poner todo en el correcto orden.

El programa funciona de maravilla y despues de analizarlo, ahora entiendo lo que hice mal, errores y faltas. Gracias de nuevo y he aprendido mucho.

Hasta la proxima
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.