Vettori e Matrici
Vettori o array chiamateli come volete
Vettore
Un vettore è un oggetto in java, in particolare una sequenza di elementi tutti dello stesso tipo. Un vettore per essere utilizzato va dichiarato con la parola chiave new:
int vet[ ] = new int[n];
dove vet è il nome del vettore e n è un numero positivo.
Ho due modi per inizializzare un vettore:
- int vet[ ] = new int[10];
- int vet[ ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Con il primo metodo creo un vettore di dieci elementi tutti inizializzati a zero; con il secondo creo un vettore che ha ogni elemento incluso nelle parentesi graffe e nello stesso ordine.
Se volessi creare un array di caratteri, allora dovrei fare:
- char vet[ ] = new char[10];
- char vet[ ] = { 'a', 'e', 'i', 'o', 'u' }; // Un array che contiene le vocali
Posso anche creare un array di stringhe:
- String vet[ ] = new String[5]; // Array che contiene cinque stringhe
Prendiamo in esame il vettore:
- char vocali[] = { 'a', 'e', 'i', 'o', 'u' };
- a => in prima posizione => indice 0 => vocali[0]
- e => in seconda posizione => indice 1 => vocali[1]
- i => in terza posizione => indice 2 => vocali[2]
- o => in quarta posizione => indice 3 => vocali[3]
- u => in quinta posizione => indice 4 => vocali[4]
Allora possiamo dire:
Procediamo con un altro esempio. Immaginiamo di avere un vettore di numeri interi e di voler trovare il più grande: è abbastanza intuitivo procedere con un ciclo for per individuarlo. Ecco il metodo TrovaMax che restituisce il massimo di un vettore:
public static int TrovaMax(int vet[]){
int i;
int max = vet[0];
for(i=0;i<vet.length;i++){ // length = restituisce la lunghezza del vettore
if(vet[i]>max) max = vet[i];
}
return max;
}
Quando lavoriamo con gli array usiamo sempre il ciclo for, perché lavoriamo con una quantità ben definita di dati. Pertanto usare il while, anche se corretto a livello di algoritmo, sarebbe non aver capito l'utilità del for (praticamente è come se gli mancassimo di rispetto).
Matrice
Una matrice è un array bidimensionale e come tale possiede due indici (riga e colonna). Quindi bisogna prestare attenzione solo alle coordinate, poi per identificare un valore o creare una matrice la sintassi non cambia molto rispetto ai "normali" array:
- int M[ ][ ] = new int[5][5]; // Creo una matrice quadrata 5x5
- x = M[5][2]; // Copio in una variabile l'elemento che ha coordinate (5, 2) dove 5 è l'indice della riga e 2 l'indice della colonna.
Scarica il file OperazioniMatrici.java:
https://mega.nz/#!LNNUSRja!S3_KCAsrzhRo1tFrWrF7tsFWP2I6AQBtwD_j2F_VxBw