SA-MP Forums Archive
[Duda] Array y Strings - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Duda] Array y Strings (/showthread.php?tid=520442)



[Duda] Array y Strings - xTexTx - 19.06.2014

Hola, estuve leyendo el post de TheChaoz, y no entiendo, lo he leнdo 4 veces detenidamente y no entiendo de dуnde salen los nъmeros y los codigos de los Array y Strings.

їAlguien se puede tomar la molestia para explicarme las siguientes cosas?:

pawn Код:
new MiArray[3];
//Asignaciуn:
MiArray[0] = 1;//Asignamos el valor '1' en el index 0 de nuestro array
MiArray[1] = 50;//Asignamos el valor '50' en el index 1 de nuestro array
//Lectura:
printf("El valor almacenado en el index 0 de MiArray es %i", MiArray[0]);//Accedemos al valor almacenado en el index 0
pawn Код:
new Array_1[5], Array_2[4], Array_3[10];
Array_1 = {10, 15, 25, 40, 65};
Array_2 = {72, 111, 108, 97};//Este es nuestro string que contiene la palabra "Hola"
Array_3 = {15, 26, 14, 51, 85, 64, 35, 12, 45, 36};

//Para ejemplificar simplificaremos todo y pensaremos que esto en memoria, se almacena algo asi:
10 15 25 40 65 72 111 108 97 15 26 14 51 85 64 35 12 45 36
               |           |

Si alguien se tomara las molestias, estarнa muy agradecido...


Respuesta: [Duda] Array y Strings - JustBored - 19.06.2014

Es muy sencillo y ъtil al mismo tiempo el tema de las arrays.
Cuando creamos una array, los datos por defecto se asignan a 0, la representaciуn grбfica de esto:
pawn Код:
new miarray[5];
Es esta:

IndexValor
0\0
1\0
2\0
3\0
4\0
Si queremos introducir la palabra Hola en la array, simplemente se hace esto:

pawn Код:
miarray = "Hola";
Y en la tabla que tenнamos nosotros en cada celda se asignaba en la celda el valor correspondiente de la letra osea que esto:
IndexValor
0\0
1\0
2\0
3\0
4\0
Paso a ser esto:

IndexValor
0H
1o
2l
3a
4\0
Siempre se asigna una celda de mбs a las que vamos a usar ya que esto indica que es el final de la tabla. Por eso hice 5 indices y no 4.
Ahora cuando asignamos nъmeros se hace de otra forma, supone que queremos tener una array y que en el lugar 0 se asigne el valor 112, en el 1 el 203 en el 2 el 89, luego en el 3 el 22 y en el 4 el 1092.
Si queremos hacer eso tenemos que hacer esto:

pawn Код:
miarray[0] = 112;
miarray[1] = 203;
miarray[2] = 89;
miarray[3] = 22;
miarray[4] = 1092;
Osea para asignar un nъmero a una array en PAWN se sigue la siguiente sintaxis:

pawn Код:
<variable>[indice] = <valor>
Si se agrega un nъmero que tiene decimales se tiene que agregar le tag Float: al momento de declarar la variable.

Recuerda que si o si en el ъltimo espacio tiene que tener valor nulo, osea \0 (NULL). Otra cosa hablando de las arrays es que no se puede acceder a un нndice invalido. Supone que tenemos una array de 5 celdas, si queremos acceder a una celda mayor a 5 el comportamiento es indefinido, puede crashear el servidor o no.


Re: [Duda] Array y Strings - SickAttack - 19.06.2014

Vamos con la primera parte:
pawn Код:
new MiArray[2];
MiArray[0] = 1;
MiArray[1] = 50;
printf("El valor almacenado en el index 0 de MiArray es %i", MiArray[0]);
"new MiArray[3];" indica la cantidad de indices que hay, por ejemplo si hacemos esto "new MiArray[5]", entonces tenemos 5 indices (0-4) para insertar ciertos valores.
"MiArray[0] = 1;" el "[0] " es el numero de indice que queremos insertar un valor determinado, si haces "MiArray[4] = 20" entonces estamos insertando el valor "20" en el indice 4 de nuestro array.
"MiArray[1] = 50;" es igual al anterior.
"printf("El valor almacenado en el index 0 de MiArray es %i", MiArray[0]);" es un formateo de mensaje, lo que esta guardado en el indice numero "0" osea "1" ( MiArray[0] = 1; ) se remplazara por "%i".

Vamos con la segunda parte:
pawn Код:
new Array_1[5], Array_2[4], Array_3[10];
Array_1 = {10, 15, 25, 40, 65};
Array_2 = {72, 111, 108, 97};
Array_3 = {15, 26, 14, 51, 85, 64, 35, 12, 45, 36};
"new Array_1[5]" Array_1 solo es el nombre que se le da, en cambio el "[5]" indica el numero de celdas que se va a utilizar.
"Array_2[4]" y "Array_3[10]" igual que el anterior.
"Array_1 = {10, 15, 25, 40, 65};", "Array_2 = {72, 111, 108, 97};" y "Array_3 = {15, 26, 14, 51, 85, 64, 35, 12, 45, 36};" son un cierto tipo de "hash" por decirse asi, por ejemplo el "72" es el caracter "h", el "111" es el caracter "o", el "108" es el caracter "l" y el "97" es el caracter "a".

Espero que te sirva! Saludos!


Respuesta: [Duda] Array y Strings - Swedky - 19.06.2014

Cuando se intenta acceder a un нndice invбlido todo el script se detiene (es como que retorna la funciуn).


Re: [Duda] Array y Strings - xTexTx - 19.06.2014

Muchas gracias por comentar y explicarme, me olvide de borrar el post, es que 2 minutos despues de publicarlo, volvн a leerlo y se me dio por buscar en ****** "Cуdigos ASCII" y entendн porque los cуdigos estaban en esa cifra, gracias