Le matrici fra teoria e pratica in C++ – n.1

Introduzione

Questo articolo, ha lo scopo di introdurre alcuni algoritmi e nozioni sule matrici e il loro uso nel linguaggio di programmazione C++:
Le matrici rivestono un’importanza per tutti le applicazioni gestionali e scientifiche che coinvolgono una grande quantità di dati.
Alla fine dell’articolo è presente una video esercitazione per spiegare alcune nozioni introdotte in questo articolo.


Nozioni base sulle matrici

Le matrici in informatica sono:

Array bidimensionale costituito da N per M elementi dello stesso tipo (omogenea);
E’ una struttura dati ad accesso diretto, infatti 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 matrice di 30 righe per 30 colonne.
Diversi sono gli algoritmi che possono essere realizzati con le matrici quali:

  • Caricamento degli elementi della matrice
  • Modifica/Cancellazione degli elementi all’interno della matrice
  • Ricerca di elementi all’interno delle matrice
  • Somma per riga o per colonna degli elementi della matrice
  • Calcolo del determinante della matrice (per applicazioni di matematica)

Regole per la matrici in C++ (valide anche per il linguaggio C)

La matrici come i vettori possono essere statici o dinamici (in questo caso sono necessari l’uso dei puntatori), in quest’articolo le matrici sono esaminate con un approccio statico. La dichiarazione delle dimensioni avviene all’inizio del programma o del sotto programma.
Un array di stringhe può essere visto come una matrice di caratteri, se ad ogni stringa è attribuita la stessa lunghezza.
Per dichiarare una matrice di caratteri in C/C++ la dichiarzzione è del tipo:
char mat[numero righe][numero caratteri];
dove numero_righe è il numero di stringhe e numero caratteri indica la lunghezza di ogni stringa.

Algoritmi notevoli per le matrici

Tutti gli algoritmi che sono esposti in quest’articolo sono presentati come algoritmi che in codifica hanno come traduzione un sotto programma.
Le operazioni da eseguire per realizzare il caricamento sono la conoscenza delle dimensioni della matrice numero di righe e colonne, e la definizione di una matrice.
L’algoritmo per il caricamento della matrice prevede un doppio ciclo, il primo sulle righe e il secondo sulle colonne.
Il DAB (Diagramma a Blocchi o di Flusso) è:

Diagramma blocchi del squarciamento di una matrice di dimensioni p e q.

La codifica in C++ del sotto programma è:

void carica(int mat[][30], int p, int q)
{
 int i,j;
 for (i=0;i<p;i++)
  for (j=0;j<q;j++)
    {
     cout << "Digita elementi di matrice:\n";
     cin >> mat[i][j];
    }
}

Per continuare a leggere questo articolo devi sottoscrivere un abbonamento
Puoi abbonarti al link al menù principale o cliccando sul link Abbonati Ora!