Jump to content

Array: Single si Multi-Demensional


Guest Rock

Recommended Posts

Acum am ceva timp liber si m-am gandit sa fac(defapt sa traduc) un tutorial despre array.

Ce sunt, cum se folosesc si ce reprezinta.

O singura dimensiune:

Sa incepem cu un exemplu:

new MyArray[ 10 ];

Acest cod va creea o constructie care va contine 10 elemente si ar arata cam asa:

scaled.php?server=32&filename=1dbase.png&res=medium

Acesta este ca patratele goale din caietul de mate. Fiind simplu se mai poate numii si "string".

Daca ar fii sa enumeram patratelele intregul rand ar avea id-ul 0 iar fiecare celula ar avea numere de la 0 la 9.

scaled.php?server=689&filename=1dbase2.png&res=medium

ATENTIE: Intotdeauna prima celula va incepe cu id-ul 0, nu 1. Daca numeri de la 0 la 9 o sa vezi ca sunt 10 sloturi in string.

Dupa cum vezi sloturile par goale dar un string nu poate fii gol asa ca el este umplu cu caractere "NULL".

Acest lucru ajuta compilerul sa isi dea seme unde se termina string-ul din acele celule.

Avand in vedere asta string-ul nostru arata defapt asa:

scaled.php?server=213&filename=1dbase3.png&res=medium

"\0" este un caracter constant care mai poate fii denumit si "NULL"(gol, liber, fara valoare).

Acum sa vedem cum ar arata daca am introduce si un cuvant in acel string:

new MyArray[ 10 ] = "Computers";

scaled.php?server=207&filename=1dbase4.png&res=medium

Daca as fi facut

new MyArray[ 10 ] = "Computerss";

As fi primit la compilare

error 018: initialization data exceeds declared size
Pentru ca nu este spatiu pentru caracterul NULL. De asemenea mai putem face: new MyArray[ 10 ] = { 'C', 'o', 'm', 'p', 'u', 't', 'e', 'r', 's' }; Este acelasi lucru ca new MyArray[ 10 ] = "Computers"; Acum sa folosim acel array: new MyArray[ 10 ] = "Computers"; printf( "%s", MyArray ); sau printf ( "%c%c%c%c%c%c%c%c%c%c", // '%c' este pentru caracterele din array MyArray[ 0 ],     MyArray[ 1 ],     MyArray[ 2 ],     MyArray[ 3 ],     MyArray[ 4 ],     MyArray[ 5 ],     MyArray[ 6 ],     MyArray[ 7 ],     MyArray[ 8 ],     MyArray[ 9 ] ); Amandoua codurile vor arata in consola "Computers" Daca incerci: printf( "%i" /* %i este pentru integrer (numere) */, MyArray[ 0 ] ); Vei vedea in consola "67" pentru ca 67 este numarul ASCII pentru litera "c" Nota: Daca declari un string fara marime, compilerul ii va da automat marimea necesara string-ului. new BlaBla[ ] = "Bla"; // ar devenii: new BlaBla[ 4 ] = "Bla"; Doua dimensiuni: Acum ca stii mai multe despre string-urile simple e timpul sa te invet despre string-urile string-urilor. Stiu suna ciudat dar chiar asa e. Cand declari o noua variabila: new MyArray_2D[ 7 ][ 8 ]; Si va arata asa: scaled.php?server=198&filename=2dbase.png&res=medium Un array 2D cu continut: scaled.php?server=824&filename=61146715.png&res=medium Mai multe explicatii: new MyArray_2D [ ] [ ] = { "One", "Two",   "Three" };         printf( "%s", MyArray_2D ); // Vei primii la compilare niste erori pentru ca  MyArray_2D este un Array 2D // Acesta trebuie indexat cu un ID // Fa in felul asta: printf( "%s", MyArray_2D[ 0 ] ) ; // Vei vedea in consola "One" pentru ca in primul(0) rand al array-ului este string-ul "One" printf( "%s", MyArray_2D[ 0 ][ 0 ] ); // De asemenea vei vedea "One" pentru ca in functia printf lai specificat ca string folosind %s // Va citii toate caracterele pana ajunge la caracterul NULL printf( "%c", MyArray_2D[ 0 ][ 0 ] ); // In consola va aparea "O" pentru ca in pozitia 0 si 0 in array este caracterul "O" printf( "%s", MyArray_2D[ 1 ] ); // In consola va aparea "Two",  daca folosesti MyArray_2D[ 2 ] va aparea "Three" si tot asa Alt exemplu mai simplu: new Announcements [ 4 ] [ 128 ] = {     // [ 0 ] ............................................................     /* [ 0 ] */ "Pentru a te teleporta la ... foloseste ...!",     /* [ 1 ] */ "Serverul este creat de ... si ...",     /* [ 2 ] */ "Va rugam nu injurati",   /* [ 3 ] */ "Respectati Regulamentul!!!" }; SendClientMessageToAll( -1, Announcements[ random( sizeof Announcements ) ] ); Aici sizeof Announcements va returna 4. Random la 4 va da 0 sau 1 sau 2 sau 3. Si evident, daca este o variabila o putem schimba: format( Announcements[ 0 ], 128, "Indexul 0 a fost schimbat" ); printf( "%s", NewsHeadlines[ 0 ] ); Trei dimensiuni: Si acum cea mai grea parte, array-ul cu 3 dimensiuni. Cum vam spus si mai devreme, array-ul cu 2 dimensiuni este string-ul string-urilor, aceasta este string-ul, string-urilor, string-urilor. Suna complicat, stiu. Oricum, asa vom creea un array cu 3 dimensiuni. new Array_3D [ 4 ] [ 4 ] [ 4 ]; Si ar arata asa: scaled.php?server=252&filename=3dbase1.png&res=medium Daca am l-am numerota ar arata asa: scaled.php?server=684&filename=3dbase.png&res=medium In script: new Array_3D_A [ 3 ] [ 5 ] [ 12 ] = {     {"Pen",    "Book",    "Paper",  "Notes",  "Pencil"},     {"Laptop",  "Computer", "Cell",  "Pad",    "Pod"},     {"Car",    "Bike",    "Bus",    "Train",  "Muscle"} }; for ( new index = 0; index < sizeof Array_3D_A; index++ ) { printf (   "Objects: %s | %s | %s | %s | %s",   Array_3D_A[ index ][ 0 ],   Array_3D_A[ index ][ 1 ],     Array_3D_A[ index ][ 2 ],         Array_3D_A[ index ][ 3 ],         Array_3D_A[ index ][ 4 ] ); } Iar in consola va aparea:
Objects: Pen | Book | Paper | Notes | Pencil
Objects: Laptop | Computer | Cell | Pad | Pod
Objects: Car | Bike | Bus | Train |

// to be continued

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.