[pamplinas] cuentas y aritmeticas

Started by Futu-block, January 18, 2013, 12:35:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Futu-block

haciendo cuentas me ha surgido un problemin que me trae de cabeza, resulta que hago una cuenta del uno al nueve, ahora me interesa agrupar de tres en tres, por consiguiente hago la operacion


Numero % 3 = Resultado;


pero claro, resulta que el resto de 3 es 0 y no me interesa, me interesa que sea tres y poner una variable tipo:


if (resultado == 0) resultado = 3; end


es coger por el camino largo cuando debe de haber una forma mas potable de hacela mejor, ya que si uso una division no me sale un numero entero cuando no es multiplo de tres; si uno una resta sale los numeros negativos al principio....


Una solucion quiero, jijiji ;)

carles

¿Has probado el operador mod? sirve para obtener el resto de una división.


ejemplos:

9 mod 3 = 0
55 mod 4 = 3
[size=78%]84 mod 6 = 0[/size]
92 mod 30 = 2


SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

¿Y si te sale 4 ó 5 hay algún problema?

Porque si al resultado de % le sumas 3 tienes el problema solucionado, claro que los resultados son 3, 4 y 5 respectivamente.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

SplinterGU

mod y % es el modulo de una division, o sea, el resto... 3/3  da por resto 0, 2/3 el resto es 2... 4/3 el resto es 1... ahora si queremos obtener de 0 a 3... el mod debe ser por 4... 3/4 el resto es 3...

pero no se que quiere hacer futublog... como sea, me suena que no se entendio bien que es mod o %.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

#5

partimos de la base que tengo tres grupos de tres procesos, pero para simplificarlo quiero solo un proceso que haga por los tres, asi que uso un bloque for con una numeracion del uno al nueve para cuando que cada vez que se cree un proceso sea uno distinto...




en cuanto a lo anterior, la idea es no sumarle nada, aunque en vez de usar del uno al nueve se puede usar del cuatro al doce...nop, volvemos a tener ceros del resultado...

pero si del tres al once...

SplinterGU

el % o mod te da valores desde 0 hasta el valor que le pongas - 1... pero si tu tienes 3 y quieres uno de esos 3, pues es ( ( x - 1 ) % 3 ) + 1 y tendras los valores

para 1 = 1
2 = 2
3 = 3
4 = 1
5 = 2
6 = 3
7 = 1
8 = 2
9 = 3


de otra forma sin el +1, tendras

1 = 1
2 = 2
3 = 0
4 = 1
5 = 2
6 = 0
7 = 1
8 = 2
9 = 0

vamos que es una chorrada todo el asunto... te estabas ahogando en un vaso de agua...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

esto es si los numeras de 1 a 9, si los numeras de 0 a 8 (9 en total) sera ( x % 3 ) + 1
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

si, es una chorrada, pero me gusta comerme el coco, es grati, jijiji

pos eso, vamo al lio; si me interesa el cero, está bien porque tambien me marca la posicion, el problema que tengo es que el cero me lo hace en tercer lugar y me interesaria en primero...
Lo que me lleva a reflexionar: si uso del 0 al 8 me encuentro con el cero en primer lugar ¿no?

pero no se, es que abusar del cero de esa forma a mi no me hace gracia, pero creo que es parte de la programacion, porque la cosa vá de unos y ceros, jijiji

SplinterGU

0 es un elemento mas, si te interesa el cero, no veo el problema, entonces 3 elementos son de 0 a 2... no de 0 a 4... contemos... 0, 1, 2, 3... son 4 elementos... o quieres 4 o quieres 3... decidete...

si quieres numerar desde 0, y te sirve marcar desde 0 para los grupos... pues entonces te sirve el x % 3... te dara, 0, 1 y 2 (3 grupos)...

bueno, tienes todas las cartas sobre la mesa, usa las que mas te gusten... todas son lo mismo, dividen en 3 grupos... de 0 a 2, de 1 a 3, lo mismo... 3 grupos a fin de cuentas.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Futu-block

correcto, hay que contar con el cero, en tres grupos de tres para tres elementos o sea:
'012' '345' y '678'

estas reflexiones me sirven a mi de mucho, gracias por tu paciencia ;)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

laghengar

Entonces, ¿No te sirve hacer (x%3)+3?
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O

Futu-block

pues no, empiezo usando el cero, entonces el resto es cero y la posicion es cero, la siguiente cuenta es uno, asi que la posicion es una vez la indicada, la siguiente cuenta es dos y la posicion dos veces....

la cuarta vez es un tres, al dividirlo entre tres sale cero y vuevo a la posicion inicial, cero


la idea es simplificar al maximo, y si quitas solo dos caracteres (+3) mejor que mejor ;)

laghengar

Pues no me he enterado  ;D , pero bueno, me alegro que te haya ido bien al final. Un saludo.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O