# Informatica 2 Liceo Scientifico Scienze Applicate/Matrici e Array

Informatica 2 Liceo Scientifico Scienze Applicate
Copertina Tutti i moduli · Sviluppo
* Linguaggi di programmazioneInformatica 2 Liceo Scientifico Scienze Applicate/Linguaggi di programmazione
* Compilare un programmaInformatica 2 Liceo Scientifico Scienze Applicate/Compilare un programma
* CiaoMondoInformatica 2 Liceo Scientifico Scienze Applicate/CiaoMondo
* AreaRettangoloInformatica 2 Liceo Scientifico Scienze Applicate/AreaRettangolo
* AreaTrapezioInformatica 2 Liceo Scientifico Scienze Applicate/AreaTrapezio
** Compito1Informatica 2 Liceo Scientifico Scienze Applicate/Compito1
* Programmazione ImperativaInformatica 2 Liceo Scientifico Scienze Applicate/Programmazione Imperativa
* Diagrammi di FlussoInformatica 2 Liceo Scientifico Scienze Applicate/Diagrammi di Flusso
* Operatori AritmeticiInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Aritmetici
* Istruzione ifInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione if
** Esercizio Equazione 2^ gradoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Equazione 2^ grado
** Esercizio Calcola lo ScontoInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto
** Esercizio Calcola lo Sconto2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizio Calcola lo Sconto2
* Operatori LogiciInformatica 2 Liceo Scientifico Scienze Applicate/Operatori Logici
** Esercizio x interno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x interno all'intervallo
** Esercizio x esterno all'intervalloInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio x esterno all'intervallo
* Istruzione switchInformatica 2 Liceo Scientifico Scienze Applicate/Istruzione switch
** Esercizio Scelta EquazioneInformatica 2 Liceo Scientifico Scienze Applicate/Esercizio Scelta Equazione
* Altre Istruzioni di Scelta o DiramazioneInformatica 2 Liceo Scientifico Scienze Applicate/Altre Istruzioni di Scelta o Diramazione
* Istruzioni di RipetizioneInformatica 2 Liceo Scientifico Scienze Applicate/Istruzioni di Ripetizione
** Es (do-while) Indovina il numeroInformatica 2 Liceo Scientifico Scienze Applicate/Es (do-while) Indovina il numero
** Es (while) La nonna è stancaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) La nonna è stanca
** Es (for) Somma di 5 numeriInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Somma di 5 numeri
** Es (for) Analisi sequenza datiInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Analisi sequenza dati
** Es (for) Sequenze NumericheInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Sequenze Numeriche
** Es (for) SupermarketInformatica 2 Liceo Scientifico Scienze Applicate/Es (for) Supermarket
** Es (while) Bisca ClandestinaInformatica 2 Liceo Scientifico Scienze Applicate/Es (while) Bisca Clandestina
* Compito2Informatica 2 Liceo Scientifico Scienze Applicate/Compito2
* I vettoriInformatica 2 Liceo Scientifico Scienze Applicate/I vettori
** Es Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es Usiamo i vettori
** Es2 Usiamo i vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es2 Usiamo i vettori
** Es3 Supermarket con vettoriInformatica 2 Liceo Scientifico Scienze Applicate/Es3 Supermarket con vettori
** Compito dic 2019Informatica 2 Liceo Scientifico Scienze Applicate/Compito dic 2019
** BubbleSortInformatica 2 Liceo Scientifico Scienze Applicate/BubbleSort
** Ricerca DicotomicaInformatica 2 Liceo Scientifico Scienze Applicate/Ricerca Dicotomica
* Matrici e ArrayInformatica 2 Liceo Scientifico Scienze Applicate/Matrici e Array
** Es matrici battaglia navaleInformatica 2 Liceo Scientifico Scienze Applicate/Es matrici battaglia navale
** Es matrici 1Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 1
** Es matrici 2Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici 2
* PuntatoriInformatica 2 Liceo Scientifico Scienze Applicate/Puntatori
* StructInformatica 2 Liceo Scientifico Scienze Applicate/Struct
** Es Bubble Sort con StructInformatica 2 Liceo Scientifico Scienze Applicate/Es Bubble Sort con Struct
* FunzioniInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni
* Funzioni Void e non VoidInformatica 2 Liceo Scientifico Scienze Applicate/Funzioni Void e non Void
** esercizi1 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi1 funzioni
** esercizi2 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi2 funzioni
** esercizi3 funzioniInformatica 2 Liceo Scientifico Scienze Applicate/esercizi3 funzioni
* BacktrackingInformatica 2 Liceo Scientifico Scienze Applicate/Backtracking
* TemplateInformatica 2 Liceo Scientifico Scienze Applicate/Template
* FileInformatica 2 Liceo Scientifico Scienze Applicate/File
** File di TestoInformatica 2 Liceo Scientifico Scienze Applicate/File di Testo
** File BinariInformatica 2 Liceo Scientifico Scienze Applicate/File Binari
** File RecordsInformatica 2 Liceo Scientifico Scienze Applicate/File Records
** Es FilesInformatica 2 Liceo Scientifico Scienze Applicate/Es Files
* Esercizi VacanzeInformatica 2 Liceo Scientifico Scienze Applicate/Esercizi Vacanze
** Esercizi1Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi1
** Esercizi2Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi2
** Esercizi3Informatica 2 Liceo Scientifico Scienze Applicate/Esercizi3
* Olimpiadi Informatica
** NobileChimicoInformatica 2 Liceo Scientifico Scienze Applicate/NobileChimico
** Sunnydale
** MappaAnticaInformatica 2 Liceo Scientifico Scienze Applicate/MappaAntica
Modifica il sommario

## Le Matrici

Dopo aver visto il vettore che è una struttura 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 bidimensionale, 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:
se voglio una matrice di nome mat con 3 righe e 4 colonne i cui elementi sono interi devo dare il comando:
per caricare il numero 15 nella cella riga 0 colonna 1 do il comando
Gli indici, come nei vettori, partono da zero, il primo indice per convenzione e' il numero di riga e il secondo è il numero di colonna se la matrice ha 3 righe e 4 colonne l'indice della riga puo' assumere i valori 0,1,2 e quello della colonna 0,1,2,3. per passare in rassegna tutte le celle di una matrice devo generare tutte le coppie di indici
per farlo uso 2 cicli for annidati del tipo
il primo ciclo for fissa la riga sulla quale si vuole lavorare e il secondo ciclo for passa in rassegna le colonne di quella riga, le istruzioni fra parentesi graffe hanno a disposizione la coppia i,j che assume via via tutte le combinazioni riga,colonna possibili
Quando viene creata una matrice nella memoria del computer vengono prese un insieme di celle contigue (come nei vettori) e i dati sono memorizzati per riga.Ad esempio se dichiaro e inizializzo una matrice con il comando
visto che per memorizzare un intero servono 4byte, in memoria ram vengono prese 48 celle contigue dove le prime 4 servono per memorizzare il primo valore, le successive 4 per memorizzare il secondo valore, le successive 4 per memorizzare il terzo valore etc, se la prima cella ha indirizzo 1000 il primo valore si trova all'indirizzo 1000 e occupa 4 byte, il valore successivo si trova all'indirizzo 1004 e occupa 4 byte, il terzo a 1008 e occupa 4 byte, in generale l'elemento di riga i e colonna j si trova nella posizione 1000+ (i*dimcolonne+j)*numerobytenecessaripermemorizzarequeltipodidati
Vediamo come inserire i valori in una matrice e poi stamparla per righe , \t e' un carattere di escape e serve per inserire una tabulazione dopo ogni cifra per garantire l'allineamento dei numeri nelle rispettive colonne

## 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
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
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