Mi scuso per la lentezza nel postare le lezioni,purtroppo sono molto occupato con la scuola,problemi personali e studio di XNA(eh si.appena lo inizieremo non lo finiremo più XD).
Argomenti:
- -Introduzione;
-Dalla teoria alla pratica;
-Proprietà;
-Fine
Introduzione:
Per array(tradotto in italiano "matrice") è una struttura di dati,contenente una serie di variabili(anche detti "elementi della matrice") indicizzati(ossia,nella matrice,ogni elemento ha un indice di riferimento per essere "ricercato" e utilizzato a nostro piacimento).
Una matrice ha una dimensione(stiamo già entrando nell'ottica di programmazione a oggetti),cioè determina il numero di indici assegnati ad ogni elemento della matrice(Questo lo vedremo dopo,quando vi parlerò della proprietà .Length).
Quindi,una matrice con dimensione pari ad :
- -0 è detta vuota;
-1 è detta unidimensionale;
-2 è detta bidimensionale;
-3 è detta tridimensionale;
e così via...
Dalla teoria alla pratica
Bene,dopo una laboriosa teoria,passiamo direttamente alla pratica.
Per dichiarare una matrice dobbiamo seguire questa semplice sintassi:
tipo di dato [] identificatore(nome della variabile) ;
Analizziamo la riga di codice:
Nulla di diverso,tranne l'aggiunta delle parentesi quadre [].Queste hanno il compito di segnalare all'IDE che stiamo dichiarando una matrice e non una semplice variabile.
Esempio:
int[] arrayx; //abbiamo dichiarato una matrice di nome "arrayx" di tipo int
Settiamo la dimensione della matrice:
Si può benissimo effettuare durante la dichiarazione o dopo,vediamo come:
int[] arrayx; //dichiaro una matrice di tipo int arrayx = new int[5]; //ora la matrice "arrayx" ha una dimensione di 5 elementi
o più direttamente:
int[] arrayx = new int[5];
Semplice no?(;
(Il tutto è introdotto dalla parola chiave new che crea una nuova istanza del tipo int).
Matrici di diversa dimenzione:
Come ho già menzionato prima,vi ho mensionato che in base alla dimensione della matrice,possiamo avere diversi tipi di essa :
- -Unidimensionale (1 sola dimensione);
-Bidimensionale (2 dimensioni);
-Tridimensionale(3 dimensioni);
-Matrice di matrici(non le tratteremo,se vi interessano,andate qui http://msdn.microsof...y/2s05feca.aspx )
ecc..(anche se le ultime due rientrano nella categoria di matrici multidimensionali)
Le unidimensionali le abbiamo appena viste,possiamo immaginarle come una riga di numeri che si sussegono.
Es.
int[] numb = new int[] {0,5,7,8,9};
0 5 7 8 9
NOTA:
-I valori/variabili vengono racchiuse nelle parentesi graffe;
-Qui ho inizializzato e dichiarato la matrice nello stesso momento,attraverso la parola chiave new,ma volendo potremmo sintetizzare il tutto così:
int[] numb = {0,5,7,8,9};
ATTENZIONE: Questo è valido solo al momento della dichiarazione!
In un momento diverso avremmo errore dall'IDE.
Es.
int[] numb;
numb = new int[] {0,5,7,8,9}; //Ok!
numb = {0,5,7,8,9}; //Errato!
Volendo potremmo assegnare diversi elementi ad ogni indice separatamente:
int[] x; x[0] = 5; x[1] = 7; x[2] = 1; e così via..
-Vi ricordo che l'indicizzazione,in una matrice,parte da zero.Dove una matrice con n elementi viene indicizzata da 0 a n-1(Se assegniamo alla matrice una dimensione di 5 elementi,l'ultimo di essi non avrà indice 5,ma 4!);
-Se si supera la dimensione della matrice prestabilita avremo un'errore(es.
int[] numb = new int[3] {0,1,2,3,} //Avremo un'errore,abbiamo 4 elementi e non tre!)
-Se si utilizza una variabile per indicare la dimensione della matrice,deve essere definita come costante:int i = 3;
int[] numb = new int[i] {valori } //i non è costante!
Bene dopo aver introdotto un la base(complicata all'inizio XD),passiamo a discutere sugli altri tipi di matrice.
Bidimensionali;
Il nome dice tutto,l'unica differenza è l'identificatore,ossia nelle parentesi quadre,al momento della dichiarazione va inserita la virgola ,:
int[,] numb2D = new int[2,2]; //Creerà una matrice bidimensionale composta da due "righe" e da due "colonne";
Eh si!Quando parliamo di matrici dobbiamo immaginarle come una sorta di griglia(quando si passa al tipo multidimensionale) formata da righe e colonne,dove il primo valore corrisponde alle righe e il secondo alle colonne.
Quindi se scrivessimo:
int[,] numb2D = new int[1,1] {{a,b},{c,d}}
Astrattamente sarebbe :
| 0 | 1 |
0 | a | b |
1 | c | d |
Ho preferito usare le lettere per non creare confusioni.
Quindi a avrà "coordinate" 0,0;
b(0,1), c(1,0) , d(1,1).
Le stesse regole dette prima,valgono anche qui.
Tridimensionale:
Tre dimensioni,nulla di nuovo.Fra le parentesi quadre,non metteremo una virgola,ma due.
int[,,] numb3D = new int[,,];
Proprietà:
La proprietà che vi parlerò è .Length.Essa restituisce la lunghezza di una matrice.
int[] numb = new int[5]; Console.WriteLine(numb.Length); //Ciò restituirà 5
Semplice proprietà che risulterà utile quando svilupperemo la Dialogbox del nostro Rpg.Ossia,per poter "spezzare" il testo(andare a capo) si pone una condizione che se la lunghezza della matrice contenente il testo supera il riquadro del dialogo,ristamperà il testo a capo(con coordinate x=0 e y += 1).
Fine:
La prima parte finisce qui,per la seconda ci servirà conoscere l'uso dei cicli(che tratteremo nella prossima lezione,a breve spero).Ora compiti!.
No,scherzo,per farmi perdonare,niente compiti,vi lascio svagare nelle matrici a vostro piacimento^^













