Copia matrice/vettore e viceversa
Vogliamo disporre gli elementi di una matrice data di dimensioni 3x5 in un vettore. Fatto questo, vedremo come procedere all'operazione inversa. In entrambi i casi, supporremo che l'operazione di "copia" di ciascun elemento da un insieme all'altro, sia sempre sequenziale.
Preleveremo gli elementi dalla matrice secondo l'ordine tradizionale di lettura (da sinistra a destra e dall'alto in basso) e li copieremo nel vettore a partire dal primo elemento e così via. Analogamente, nella copia dal vettore alla matrice: preleveremo il primo elemento dal vettore, poi il secondo e così via, e li inseriremo nella matrice secondo l'ordine normale di lettura.
Copia dalla matrice al vettore
La copia dalla matrice al vettore non comporta particolari difficoltà: un doppio loop nidificato, come al solito, permette di indirizzare tutti gli elementi della matrice. Per l'indirizzamento sul vettore sarà sufficiente una variabile che a partire da 1 si incrementa di un valore pari a 1 ad ogni esecuzione del loop più interno. Ciò detto sarà possibile assegnare il dato contenuto nell'insieme matrice al corrispondente elemento dell'insieme vettore. In termini algoritmici sarà:
IV = 1
- loop IR = 1,3
- loop IC = 1,5
- VETTORE(IV) = MATRICE(IR,IC)
Algoritmo
- IV = 1
- loop IR = 1,3
- loop IC = 1,5
- VETTORE(IV) = MATRICE(IR,IC)
- IV = IV + 1
- fine_loop_IC
- fine_loop_IR
- uscita
Può essere interessante, per esercizio, esaminare un algoritmo diverso che risale all'indice riga-colonna della matrice a partire dall'indice del vettore. Per fare un esempio, se l'indice unidimensionale (quello del vettore) è 5, dobbiamo ottenere un indice a due dimensioni (1,5), o ancora dall'indice unidimensionale 11 all'indice a due dimensioni (3,1).
Cominciamo con il considerare il disegno che riportiamo di seguito nel quale abbiamo scritto per ciascun elemento della matrice l'indice del corrispondente elemento del vettore.