In questo articolo introduco all’uso delle matrici in C++, per conseguire l’obiettivo di una piena padronanza di questa struttura dati, sono stati realizzati anche gli algoritmi notevoli con il software Algobuild che consente prima di scrivere codice C++ et simili di provare i procedimenti risolutivi:
Indice
- Definizione di matrice
- Proprietà caratteristiche delle matrici
- Algoritmi notevoli per le matrici
- Regole per le matrici in C++
- Algoritmo Caricamento di una matrice
- Stampa degli elementi di una matrice
- Stampa per riga o per colonna
- Algoritmo della stampa per riga o colonna di una matrice
- Ricerca con flag nella matrice
- Trasposizione di una matrice
- Appendice Video sull’uso del Software Algobuild
Definizione di matrice
Array bidimensionale costituito da N per M elementi dello stesso tipo (omogenea). E’ una struttura dati ad accesso diretto (assegnate le coordinate di riga e colonna si accede direttamente al dato richiesto). Ogni elemento è selezionato da una coppia di indici uno di riga e uno di colonna. E’ una struttura dati in linguaggio C e C++ la dichiarazione di una matrice è dichiarata con la sintassi tipo nome_matrice[numero riga][numero colonna] ad esempio int mat[30][30] dichiara una atrice di 30 righe per 30 colonne.
Proprietà caratteristiche delle matrici
Una matrice è quadrata quando il numero delle colonne è uguale al numero delle righe.
Una matrice trasposta è una matrice i cui elementi sono trasposti. Sono scambiati gli elementi di riga con quelli di colonna formalmente:
MT[I,J]=M[J,I]
Operazione di trasposizione
Nella matrice quadrata dono definite le diagonali quella principale e quella secondaria. Posta la dimensione della matrice N la diagonale principale è definita dagli elementi tali che i=j e la diagonale secondaria gli elementi caratterizzati dalla proprietà i+j=N.
Algoritmi notevoli per le matrici
Sono definiti “notevoli” in quanto sono procedimenti ricorrenti nella programmazione, quando sono utilizzate come strutture dati le matrici.
Gli algoritmi che sono trattati qui sono:
- Caricamento degli elementi della matrice: ovvero il primo inserimento dati;
- Modifica/Cancellazione degli elementi all’interno della matrice: cambiare valore a degli elementi o cancellarli dalla matrice (la cancellazione può essere logica o fisica). Nella cancellazione logica l’elemento è escluso da altri algoritmi elaborativi (è inserito un marcatore di esclusione), in questo modo l’elemento è sempre recuperabile. Nella cancellazione fisica l’elemento è cancellato spostando tutti gli elementi successivi a partire da quello da cancellare con conseguente riduzione della dimensione della struttura (in tal senso la matrice è trattata come struttura dati dinamica ed è più complesso poiché in C++ richiede l’uso dei puntatori).
- Ricerca di elementi all’interno delle matrice: definito un elemento come “chiave di ricerca” si provvede alla sua individuazione con la restituzione delle coordinate o di un valore che indichi la “mancata” individuazione all’interno della matrice.
- Somma per riga o per colonna degli elementi della matrice: Operazione aggregata che calcola un valore della somma di una riga o di una colonna specifica. E’ possibile anche calcolare la somma di tutti gli elementi.
- Trasposizione della matrice: è costruita una nuova matrice detta “trasposta” che è ottenuta dalla matrice di partenza scambiando le righe con le colonne in simboli MT{i}[j}=M[i][j].
- Calcolo del determinante della matrice (per applicazioni di matematica)
Puoi abbonarti al link al menù principale o cliccando sul link Abbonati Ora!