Si definisce matrice a N righe e a M colonne, o più brevemente matrice di tipo N x M, una tabella con N x M elementi
omogenei, disposti su:
• N linee orizzontali (righe)
• M linee verticali (colonne).
Gli elementi si indicano di solito con una stessa lettera munita di 2 indici:
• il primo per indicare la riga
• il secondo per indicare la colonna a cui appartengono.
→ Questa struttura prende il nome di ARRAY BIDIMENSIONALE o MATRICE
Per la dichiarazione di una matrice faremo riferimento alla seguente sintassi:
Le operazioni base sulle matrici sono analoghe a quelle viste per i vettori.
INIZIALIZZAZIONE E STAMPA DI
UNA MATRICE
LE MATRICI IN C++
Per dichiarare una matrice bisogna utilizzare un’istruzione formata così:
tipoVariabile nomeMatrice [numeroRighe] [numeroColonne];
• TipoVariabile è tipo di dato di cui si vuole costruire la matrice (può essere int, char, float, double, bool...)
• numeroRighe e numeroColonne devono essere dei valori costanti e rappresentano come dice il nome il
numero di righe e di colonne della matrice.
Per esempio, creiamo una matrice nella quale registrare la temperatura misurata, in una settimana, ogni 6 ore.
Float Temperature[7][4];
Come per gli array le celle delle righe e delle colonne si contano a partire da 0.
→ Nella dichiarazione di una matrice, la dimensione delle righe può essere omessa (non quella delle colonne).
MATRICE TRASPOSTA → inverte colonne e righe: la riga diventa colonna e la colonna diventa riga.
Un record è caratterizzato da un nome, che lo identifica e si riferisce a esso nella sua globalità. RECORD
I campi che lo compongono sono caratterizzati da un nome e dal tipo di dato che possono contenere.
Chiamiamo struttura di un record la definizione dei campi che compongono il record stesso
Per definire il record possiamo eseguire due step:
1. metodo di rappresentazione tabellare (lo preparo io non va nel codice)
2. metodo di dichiarazione sintattica, molto vicino a quello utilizzato da alcuni linguaggi di programmazione.
Per definire un record occorre specificare:
a. Nome della variabile record;
b. Nome di ogni campo
c. Tipo di ogni campo
I RECORD: SINTASSI
Nella terminologia del linguaggio C/C++, i record vengono chiamati strutture. Una struttura può contenere al proprio
interno dati di tipo aggregato: array e struct. Per esempio, per dichiarare la struttura automobile o
equivalentemente “una struttura di tipo automobile” o ancora “un tipo di struttura automobile”, scriveremo:
UNSIGNED: variabile intera
sempre positiva
Esempi di dichiarazioni:
Per riferirsi ad un particolare campo di una struttura, utilizziamo la cosiddetta dot notation, secondo la seguente
sintassi:
Esempi di sintassi:
Assegniamo ad una variabile x di tipo unsigned il valore della cilindrata (campo) contenuto in una variabile
a3 di tipo automobile. Per cui la variabile x ora conterrà il valore 1900
Per assegnare al campo cilindrata della variabile a1 di tipo automobile un nuovo valore
Per inserire con un gets nella struct alla targa della variabile a2
STRUCT E ARRY:
Una struttura può contenere al proprio interno dati di tipo aggregato: array e struct.
Per rappresentare in una struct volo sia i dati relativi ai voli di una compagnia aerea, che la lista dei passeggeri dei
voli:
Se dovessimo registrare anche l’età e magari la statura dei passeggeri, la matrice non sarebbe più adeguata , perché
dovremmo gestire dati non omogenei → sarebbe dunque necessario utilizzare un’altra struct, interna alla prima.
Lista è un vettore i cui elementi
sono di tipo struct passeggero.
(non usare l'inizializzazione con parentesi graffe nemmeno per gli zeri)
#include <iostream> {
using namespace std; matrice[i][j]=0; 10000
int main() } 01000
{ } 00100
int matrice[5][5]; } //stampa la matrice 00010
//memorizza la matrice for(int i=0;i<5;i++)
for(int i=0;i<5;i++) 00001
{
{ for(int j=0;j<5;j++)
for(int j=0;j<5;j++) {
{ cout<<matrice[i][j]<<" ";
if(i==j) }
{ cout<<endl;
matrice[i][j]=1; }
} }
else