Informatica 2 Liceo Scientifico Scienze Applicate/Matrici e Array: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
{{Informatica 2 Liceo Scientifico Scienze Applicate}}
== Le Matrici ==
Dopo aver visto il vettore che è una strutturestruttura dati omogenea monodimensionale ( gli elementi che lo compongono sono dello stesso tipo e sono accessibili mediante un solo indice ) passiamo a una seconda struttura dati: la matrice. La matrice è una struttura dati omogenea bi-dimensionalebidimensionale , cioe' gli elementi che la compongono sono accessibili mediante una coppia di indici generalmente indicati come "riga" e "colonna". Come per i vettori la struttura dati e' omogenea , cioe' i dati che la compongono sono tutti dello stesso tipo, equivale alla rappresentazione dei dati di una tabella (con dati tutti dello stesso tipo ad esempio tutti pesi, oppure tutti prezzi etc.) le cui celle sono identificabili mediante il numero di riga e il numero di colonna.
Per dichiarare una matrice si utilizza la seguente sintassi:
 
Riga 8:
se voglio una matrice di nome mat con 3 righe e 4 colonne i cui elementi sono interi devo dare il comando:
 
int mat[3][4];<br />
 
per caricare il numero 15 nella cella riga 0 colonna 1 do il comando
mat[0][1]=15;
[[File:Matrice3righe 4colonne valori.png|500px|Matrice 3*4 Valori memorizzati]]<br />
 
Line 31 ⟶ 34:
[[File:Matrice3righe 4colonne allocazione in RAM.png|800px|Allocazione matrice 3*4 in memoria ram]]<br />
 
Vediamo come inserire i valori in una matrice e poi stamparla per righe , /t serve per inserire una tabulazione dopo ogni cifra per garantire l'allineamento dei numeri nelle rispettive colonne
 
== Inserimento e stampa dati in una matrice ==
<source lang=php>
Line 52 ⟶ 55:
for(i=0;i<nr;i++)
{for(j=0;j<nc;j++)
cout<<mat[i][j]<<"/t";
cout<<endl;
}
Line 59 ⟶ 62:
}
</source>
 
==Array==
I vettori e le matrici non sono che casi particolari degli array, strutture dati indicizzate con uno o più indici, se voglio memorizzare la temperatura di una stanza posso utilizzare un array tridimensionale dove gli indici assumono il significato delle coordinate spaziali x,y,z , se voglio memorizzare un filmato posso pensarlo come a tante immagini bidimensionali x,y al variare del tempo t , anche in questo caso utilizzo un array con 3 dimensioni x,y,t se voglio memorizzare informazioni spaziali al variare del tempo (campo magnetico la cui intensita' e' variabile nel tempo e che viene misurato in un certo spazio) possiamo usare un array quadridimensionale con indici x,y,z,t .Per dichiarare un array quadridimensionale per analogia con i vettori e le matrici posso usare un comando del tipo<br />
int magnetismo[3][12][23][45] ;
poi per fissare il campomagnetico al valore 5 nel punto spaziale x=2, y=3, z=4 nell'istante temporale t=20 uso un comando del tipo
magnetismo[2][3][4][20]=5
NB il c non controlla se gli indici che utilizzate per accedere all'elemento dell'array sono validi cioe' se rispettano le dimensioni massime di ciascun indice, quindi se sbagliate spesso andate a sovrascrivere delle celle che non appartengono al vostro array con conseguenze spesso nefaste del tipo il programma e' stato terminato perchè ha tentato di scrivere su un blocco dimemoria di cui non aveva i permessi, la caratteristica di poter scrivere oltre le dimensioni consentite e' usato per azione di hackeraggio
 
[[Categoria:Informatica 2 Liceo Scientifico Scienze Applicate|Matrici e Array]]