Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: RaTHSoDiC en 11 de Febrero de 2003, 10:12:53 PM

Título: Por favor NECESITO AYUDA en java :(
Publicado por: RaTHSoDiC en 11 de Febrero de 2003, 10:12:53 PM
                                :(  Vereis, quiero crear un pekeño programilla usando arrays en java (nada de javascript ni cosas de esas) en el que se represente como si fuera la sala de un cine en la que eliges los numeros de butacas k kieres reservar. Si la butaca sta ocupada la representa con una X y si sta libre con una O. Como se haría?
No hace falta el codigo fuente solo necesito la idea, pq no se me ocurre :( aunke el codigo es bienvenido :P

gracias de antemano.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 12:12:39 AM
                                ... no entiendo exactamente cuál es el problema. No sé nada de java, pero en pseudocódigo declaras una matriz de carácteres (por ejemplo, la matriz butaca), y haces butaca[j]='O' si está libre y butaca[j]='X' si está ocupada. Para que te liste cuáles están O y cuáles X, haces dos "paras" anidados, es decir,
para n=1 hasta i hacer
para m=1 hasta j hacer
 imprime el valor butaca[n][m];
finpara;
finpara;                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: seryu en 12 de Febrero de 2003, 05:31:58 PM
                                lo ideal seria una matriz numerica donde 0 sea butaca sin ocupar, y 1 ocupada. de tal forma qe tendrias.

butaca_x[].y[];

aunqe como los cines no suelen ser cuadrados, sino qe tienes laterales, centrales y demas qe te rompen la simetria, lo mejor es un array lineal, ordenado por el numero de butaca.

si el cine esta ordenado por filas, y dentro de cada fila tiene una serie de numero de butaca, entonces si te sirve el array bidimensional.

suerte  :ojo:                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: RaTHSoDiC en 12 de Febrero de 2003, 07:23:50 PM
                                :D Gracias seryu, se hace asi, pero tiene que ser con una matriz bidimensional y me encuentro con el problema k dices. Los numeros tienen k ir del 1 al 64 (1,2,3...) y las filas en el array las cuenta como 0,1 0,2 0,3... Como podria hacer para k el usuario pida un numero (p ejemplo el 10) y que marke una X en el 1,1 (en este caso).                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 07:57:23 PM
                                1 - 2 - 3 - 4 - 5
6 - 7 - 8 - 9 -10
11-12-13-14-15


Quiero la butaca 13

i=13 div 5 = 2
j= 13 mod 5 = 3

Fila 2, columna 3.

butaca[j]=X                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: RaTHSoDiC en 12 de Febrero de 2003, 08:10:55 PM
                                :o  deberia dar fila 2 columna 2 pq cuenta desde el cero. y como lo has hecho!? mod y div k significa? gracias me stais ayudando mazo.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: seryu en 12 de Febrero de 2003, 08:53:15 PM
                               
Citar1 - 2 - 3 - 4 - 5
6 - 7 - 8 - 9 -10
11-12-13-14-15


Quiero la butaca 13

i=13 div 5 = 2
j= 13 mod 5 = 3

Fila 2, columna 3.

butaca[j]=X

son filas de 5 elementos, por eso es div 5.

con la division entera y el resto puedes sacarlo (xqe al ser elementos de un array no te sirve para nada los decimales).
de todas formas si lo piensas se te ocurrira a ti solo.

tengo la butaca 13, pero necesito una i..

13 / 5 (numero butacas) = 2

2 * 5 (numero butacas) = 10

13 - 10 = 3 qe son las butacas de la fila qe buscas...

espero qe asi lo comprendas mejor.

un saludo.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 09:02:48 PM
                                ¿Cuentas desde cero? Yo no he contado desde cero. Pongamos el caso del cero.

Columna
Fila 0: 0 1 2 3 4 5
Fila 1: 0 1 2 3 4 5
Fila 2: 0 1 2 3 4 5

Veámoslo como una matriz 3x6 [0..2][0..5]

la i variará de 0 a 2, la j de 0 a 5

Si quiero encontrar la butaca número 7 de la matriz (el primer cero de la segunda fila) tendré que hacer (7 div max_filas_matriz) para sacar la fila que busco (div es el cociente de la división entera) y (7 mod max_columnas_matriz) para sacar la columna que busco (mod es el módulo o resto de la división entera). 7 div 3 = 2 y 7 mod 6 = 1, es decir, fila 2, columna 1. Como hemos comenzado a contar a partir del cero sólo tienes que restarle uno al resultado de cada uno. Fila 1 columna 0.
En resumen.
Posición: [(númeroquebuscas div max_filas_matriz)-1][(númeroquebuscas mod max_columnas_matriz)-1]

En fin, no sé si te he liado más o qué. Más resumido aún, con max_f el número de filas de tu matriz (lo he escrito matrix todo el rato, cagontó) y con max_c el número de columnas de tu matriz, y num el número de butaca que quieres reservar:

butaca[(num div max_f)-1][(num mod max_c)-1]                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: RaTHSoDiC en 12 de Febrero de 2003, 09:19:27 PM
                                Gracias, creo k ya lo pillo! decia k contaba desde cero las filas y las columnas pero se arregla restando un 1 al mod. Gracias p todo :P                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 09:27:02 PM
                                y al div también, que las filas también empiezan por cero.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: RaTHSoDiC en 12 de Febrero de 2003, 09:29:29 PM
                                nono, solo al mod. En el ejemplo k has puesto t tiene k dar 2,2 y a ti t dió 2,3. :P                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 09:37:17 PM
                                Pues no, antes me equivoqué. Me daba 3,3 pero puse 2, 3 porque comencé a contar desde cero, mira si soy inútil. Hay que restarle a los dos.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 09:40:40 PM
                                Me he hecho un lío yo mismo. Fíate de lo segundo que he dicho y no de lo primero. Hay que restarle uno a los dos lados. Dentro de cinco minutos me contradeciré.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 09:47:43 PM
                                Han pasado siete minutos y ya no estoy seguro de que nada de lo que te he dicho esté bien. Si hubiera tratado de elegir el 15 no funcionaría.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 12 de Febrero de 2003, 09:53:58 PM
                                Vale, tenías razón tú y mi otro yo. Sólo hay que restarle uno en el mod. Voy a suicidarme un rato.

Edito: tengo que rectificar también la fórmula. Es:

butaca[num div columnas][(num mod columnas) -1]                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Repoker en 17 de Febrero de 2003, 01:24:52 AM
                                Mars, no intentes doblar la cuchara, porque la cuchara no existe. XDDDD                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Zaelsius en 19 de Febrero de 2003, 01:14:25 PM
Bueno, sólo comentar que en este tipo de situaciones(rejillas 2D) se suele emplear más la construcción:



celdaXY = array[x+width*y]



Esto es más optimo...
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 19 de Febrero de 2003, 11:31:42 PM
                                Pero tú lo que buscas no es un valor, sino la posición en la matriz en la que asignar ese valor. Si yo te digo que quiero la butaca 12, según tu fórmula no hay manera posible de saber qué valor x e y corresponden a esa butaca 12 (habría que sacarlo de la manera que había expuesto antes). A menos que no te haya entendido bien, claro.                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Zaelsius en 20 de Febrero de 2003, 03:59:00 PM
¿A quien estás respondiendo ahora Mars? ¿A mi?
Por si acaso...

Para obtener X,Y de celda..

X=Celda MOD width
Y=(Celda - X)/width

Creo que era así...y con MOD me refiero al resto de la división
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Mars Attacks en 20 de Febrero de 2003, 04:00:23 PM
                                Pues es la misma solución a la que había llegado pero en lugar de pensar en una matriz, pensando en un array unidimensional, ¿no?                                
Título: Por favor NECESITO AYUDA en java :(
Publicado por: Zaelsius en 20 de Febrero de 2003, 05:19:59 PM
                                Pozí :idea: