Academic Year: 2022-2023 Class: Programmazione Calcolatori (Class) Created: April 27, 2023 Tag: C MOC Type:Lecture
Multi Array (Matrici)
Struttura: un array che in modo immaginario viene suddiviso in righe e colonne (in realtà resta un singolo array consecutivo)
Costo scrittura: Costante (data una posizione il costo per scrivere in quella posizione è costante)
Costo Lettura: Costante (data una posizione il costo per leggere il valore associato a quella posizione è costante)
Come calcolare posizione
- Posizione array lineare: riga * numero colonne * colonna
- Coordinata colonna: posizione_lineare % numero_colonne
- Coordinata riga: posizione_lineare / numero_righe
Funzioni
Funzione genera matrice:
- Input: numero righe, numero colonne
- Output: matrice allocata dinamicamente
Funzione stampa matrice per righe:
- input: matrice, numero di righe e numero di collonne
- output: void (ma ne processo stampa la matrice per righe)
Funzione stampa elemento in posizione p e le sue coordinate(riga, colonna):
- Input: matrice, numero colonne della matrice e la posizione dell’elemento
- Output: coordinate dell’elemento e valore associato alla posizione
Matrice Array Array
Struttura:
- Un array principale composto da puntatori agli array righe (la lunghezza di questo array rappresenta il numero di righe)
- degli array (righe) sul quali vengono salvati gli elementi (la lunghezza massima di questi array rappresenta il numero di colonne)
Costo scrittura: Costante (data una posizione il costo per scrivere in quella posizione è costante) Costo Lettura: Costante (data una posizione il costo per leggere il valore associato a quella posizione è costante)
Vantaggi rispetto alla sruttura array base:
- Occupa meno spazio in memoria (non siamo obbligati a creare righe che non ci servono, e le righe possono essere di simensioni diverse oss: dimensione massima resta uguale
- Si adatta meglio a memorie frammentate (le righe possono essere scritte in memeoria in modo non consecutivo ma sparpagliato)
Funzione genera matrice:
- Input: numero righe, numero colonne
- Output: martice
Funzione stampa matrice per righe:
- input: matrice, numero di righe e numero di collonne
- output: void (ma ne processo stampa la matrice per righe)