Java - ayuda java

   
Vista:

ayuda java

Publicado por jose (7 intervenciones) el 19/08/2013 10:06:39
Alguien puede por favor ayudarme con un problema de java. Resulta que tengo que generar un programa que me haga combinaciones. ejemplo. Si ingreso 5 números: 3-45-32-22-1, entonces el sistema debe generar combinaciones de tres números, con los números ingresados y listar las que se generan. Hasta el momento he usado arreglos, ingreso los números y los ordeno de menor a mayor, pero después se me hace un queso como seguir para que se generen las combinaciones con los números ingresados.

Por favor si alguien fuera tan amable de ayudarme, se lo agradecería, soy nuevo en java :)

gracias.
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

ayuda java

Publicado por Francisco Javier (22 intervenciones) el 21/08/2013 18:58:23
Hola jose.
Saludos : )

aquí te dejo el código para realizar lo que estas pidiendo.
no sé si necesites que la impresión lleve un formato específico, pero en general aquí está : )


int numero[] = new int[5];
Random r=new Random();

for(int i=0;i<5;i++){
System.out.println("Ingresar numero "+(i+1)+": ");
numero[i]=Integer.parseInt(teclado.readLine());
}

System.out.println("Numeros juntos -> "+numero[r.nextInt(5)]+numero[r.nextInt(5)]+numero[r.nextInt(5)]);

Estoy a tus órdenes para cualquier duda : )
Saludos.
--> Francisco Gracia <--
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 java

Publicado por Jose (7 intervenciones) el 23/08/2013 17:08:14
Gracias Francisco, lo probare y después subo el código fuente.
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 java

Publicado por Francisco Javier (22 intervenciones) el 23/08/2013 17:09:47
Para servirte amigo : )
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 java

Publicado por jose (7 intervenciones) el 23/08/2013 20:05:25
Hola Francisco, sabes, use tu codigo, pero me sale este error de sintaxis:


Exception in thread "main" java.lang.Error: Unresolved compilation problem:
teclado cannot be resolved

declare la paquete java.io.IOException para las entradas y salidas de datos, pero igual me sale este error, una vez mas, gracias :)
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 java

Publicado por Francisco Javier (22 intervenciones) el 23/08/2013 20:53:13
El objeto "teclado" es una instancia de lectura que utilizo.
Perdón, olvide agregarla en el código
Es la siguiente:
BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

incluyéndola en el código, te quedaría de la siguiente manera:

BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
int numero[] = new int[5];
Random r=new Random();

for(int i=0;i<5;i++){
System.out.println("Ingresar numero "+(i+1)+": ");
numero[i]=Integer.parseInt(teclado.readLine());
}

System.out.println("Numeros juntos -> "+numero[r.nextInt(5)]+numero[r.nextInt(5)]+numero[r.nextInt(5)]);

el import necesario es:
import java.io.*;

necesitas agregar en tu main un throws:
throws IOException
public static void main(String args[]) throws IOException
así te quedaria

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 java

Publicado por Jose (7 intervenciones) el 23/08/2013 22:59:49
Gracias, ahora si funciono, voy a ponerme a estudiar de una vez todo esto, que de por si es muy entretenido, y despues posteo el codigo fuente, ah ver que opinas, muchas gracias. :)
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 java

Publicado por Francisco Javier (22 intervenciones) el 24/08/2013 00:04:25
De nada Jose, para servirte : )

PD: si necesitas más ayuda pasame tu correo electrónico y te agrego como amigo, así podemos estar más en contacto.

Saludos.

______________________________________________
Francisco Javier G.P.
Ing. Sistemas Computacionales.
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 java

Publicado por Jose (7 intervenciones) el 24/08/2013 21:02:28
así queda el programa, solo hay un inconveniente. Resulta que cuando ingresa y te calcula una combinación de los números ingresos, estos en ocaciones se repiten. Me explico, ejemplo:

Ingresas 3-6-12-23-44

y la combinación que te da es: 3-6-3, lo cual esta malo, ya que no se debería repetir el numero en una combinación.

En eso estoy tratando de cambiarlo, otra pregunta. si quieres que el sistema que arroje mas combinaciones de los números ingresados?, es necesario usar un "for" o un "if". Y lo otro, como se pondría un rango, o sea que te muestre una cantidad limite, y no todas las existentes, de antemano, 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
package loteria;
 
import java.io.IOException;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
 
 
 
public class loteria4 {
public static void main(String[]args) throws IOException {
	Scanner in = new Scanner(System.in);
	int nr[];
	int n,i;
	Random r=new Random();
	do {
		System.out.println("Ingrese cantidad de numeros:");
		n=in.nextInt();
 
	}while(n<0 || n>50);
	nr=new int[n];
	   for(i=0; i<n; i++)
	     {
	       System.out.print(""+nr[i]+ "");
	       nr[i]=in.nextInt();
	     }
 
 
	     Arrays.sort(nr);
	     System.out.println("El orden de los numeros:");
	     for ( i=0; i<nr.length; i++){
	    	 System.out.println(""+ nr[i]+ "");
}
	     System.out.println("Numeros juntos -> " + nr [ r.nextInt ( 5) ]  + nr [ r.nextInt (  5) ] + nr [ r.nextInt (  5) ] );
 
}
}
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 java

Publicado por Francisco Javier (22 intervenciones) el 24/08/2013 21:16:53
para no repetir números que se agregan al arreglo " nr " necesitas hacer un chequeo antes de agregarlo:

for (int i=0;i<nr.Length;i++)
{
if(nr[i]=in.nextInt())
{
System.out.println("numero ya existe, ingrese otro");
nr[i]=in.nextInt();
}
}


ahora, no entendí muy bien eso de las combinaciones que mostrará el sistema, pero creo que va por aquí:

System.out.println("numero de combinaciones a mostrar:");
combinaciones=in.nextInt();

for( int i=0; i<combinaciones; i++ )
{
System.out.print( "" + rn[i]+" "); // al print quitarle el "ln" para que imprima los números en una sola
//linea : )
}
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 java

Publicado por Jose jortega570@gmail.com (7 intervenciones) el 25/08/2013 22:44:30
Hola Francisco,

Gracias por el código. No entendí muy bien a que te refieres hacer un chequeo antes de agregarlo.

Dejo mi correo para que hablemos por ahí mejor.

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 java

Publicado por Jose (7 intervenciones) el 14/09/2013 10:56:55
Sigo trabajando con mi programa, y lo que no entiendo como hacer es que me eliga de numeros ingrsados una combincion al azar, sino que ahora solo me lista los primeros 4 numeros, en vez de elegirlos al azar.

aca va el codigo:

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
import java.util.Scanner;
import java.util.Random;
public class Llenar3{
public static void main(String[]args){
Random random = new Random();
 
int [] arreglo = new int[7];
 
int [] comb = new int [3];
 
 
Scanner in = new Scanner(System.in);
 
int n;
 
System.out.println("ingrese nr");
 
for (int i=0; i<arreglo.length;i++){
	System.out.println("valor: " +(i+1));
 arreglo[i]=in.nextInt();
}
 
 System.out.println("combinacion");
        for(int i = 0; i < arreglo.length; i++){
				System.out.println(arreglo[i]);
 
                if(comb[i] == arreglo[i] ){
 
             }
         }
}
 
}
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
Imágen de perfil de Francisco Javier

ayuda java

Publicado por Francisco Javier (22 intervenciones) el 14/09/2013 17:34:43
eso es por que estas imprimiendo los números contenidos en el arreglo, sin instrucciones de "Random"

System.out.println("combinacion");
for(int i = 0; i < arreglo.length; i++){
System.out.println(arreglo[i]);
}

lo que hace, simplmente imprime los números del arreglo

¿Qué hay que hacer?
declarar un random de 0 a 7
y se lo mandas a la posición de arreglo, fin (=

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