¿hay alguna formula mas sencilla que:?
if (array[1] == array[2] == array[3] == array[4] == array[5] == array[6] array[...
como tenga un array[500] no te digo na... :D
valor=array[0];
error=0;
from i=1 to 500;
if(array != valor) error=1; break; end
end
Quote from: PiXeL on March 17, 2011, 09:21:39 AM
valor=array[0];
error=0;
from i=1 to 500;
if(array != valor) error=1; break; end
end
Hay hay esos errores xD
error=0;
from i=1 to 500;
if(array[i - 1] != array[i]) error=1; break; end
end
entonces no hay ninguna funcion que lo compruebe???
y para poner todo el array a un valor? esta si lo hay no??
Para poner a todo un array el mismo valor es así xD
valor=14;
from i=0 to 500;
array=valor;
end
Quote from: PiXeL on March 17, 2011, 10:29:29 AM
Para poner a todo un array el mismo valor es así xD
valor=14;
from i=0 to 500;
array=valor;
end
Otra manera mas eficiente si damos por hecho que 0 es vacio seria:
[code language="bennu"]
while(array
!=0)
array=valor;
i++
end
[/code]
Para poner a cero, o a cualquier valor si el tipo de dato del array es de 1B (byte o char) hay una manera super rápida de hacerlo, pero también peligrosa:
http://wiki.bennugd.org/index.php?title=Memset
Pero lo ideal es lo que te dicen arriba: bucles. Arrays y bucles van siempre cogidos de la mano, quieras o no.
para poner todo a 0 (salvo floats):
memset(&array[0], 0, sizeof(array));
para comparar si todo un array es igual...
for (indice=1,valor=array[0]; indice<max_indice && valor == array[indice]; indice++) end
resultado = (indice==max_indice);
Quote from: FreeYourMind on March 17, 2011, 09:26:30 AM
Quote from: PiXeL on March 17, 2011, 09:21:39 AM
valor=array[0];
error=0;
from i=1 to 500;
if(array != valor) error=1; break; end
end
Hay hay esos errores xD
error=0;
from i=1 to 500;
if(array[i - 1] != array[i]) error=1; break; end
end
Discrepo. El mío requiere un poco más de RAM, pero el tuyo requiere más ciclos de CPU :)
claro, yo no quise comentar nada, pero si, el de free consume mas, porque hace 2 indexados a array por cada ciclo del bucle... encima el if como instruccion y el salto del if y luego el salto del end...
Puede consumir mas pero el mio te dice que posicion tiene el valor distinto...
en todas dice cual es la posicion del valor distinto, en la de pixel es en el i, en la tuya tambien, en la mia es indice.
Venga, optimización definitiva xD
error=0;
from i=1 to 500;
if(array[i] != array[0]) error=1; break; end
end
no pixel, estba mejor la primera, no hagas 2 indexaciones dentro del loop, es mas, si podes evitar los if e instrucciones dentro del loop mejor... aprovecha el if que se hace si o si, que es la condicion de la instruccion loop, yo recomiendo uses for.
No se ve el contenido de las etiquetas code, no se porque...
si no lo seteas no lo ves.
Quote from: PiXeL on March 17, 2011, 06:10:57 PM
Venga, optimización definitiva xD
error=0;
from i=1 to 500;
if(array
!= array[0]) error=1; break; end
end
Asi se puede ver, no entendi lo de setear...
no me acuerdo como es... y no encuento los fuentes del foro...