Guida sulle matrici e uso in C++

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

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)
Per continuare a leggere questo articolo devi sottoscrivere un abbonamento
Puoi abbonarti al link al menù principale o cliccando sul link Abbonati Ora!