8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
LA STRUTTURA DATI VETTORE O ARRAY MONODIMENSIONALE
DEF: Un vettore o array monodimensionale è una struttura dati di tipo sequenziale, costituita da un insieme di elementi omogenei tra loro individuabili per mezzo di un“ indice”( ossia ad accesso diretto).
Per quanto riguarda la modalità di allocazione è possibile realizzare un vettore o array sia a carattere statico che dinamico. Per quanto riguarda il supporto di memorizzazione è possibile memorizzare i valori appartenenti ad un vettore o array in strutture di memoria oppure in archivi o file.
N. B. Al momento ci limiteremo a trattre vettori o array a carattere statico memorizzati in opportune strutture di memoria presenti nella RAM( ossia nella memoria di lavoro volatile).
A causa della sequenzialità della struttura dati vettore l’ indice, i cui valori devono appartenere all’ insieme dei numeri naturali, definisce una relazione di ordine totale rispetto agli elementi componenti ossia permette di dire per ciascun elemento se precede o segue un altro nell’ ambito del vettore stesso.
N. B. In PSEUDOCODIFICA per poter effettuare la dichiarazione di una variabile di questo tipo dovremmo scrivere:
< NomeVettore >: ARRAY [< MAXDIMENSIONE >] DI < TipoElemento > dove:
• < NomeVettore > contiene il nome che si stabilisce per il vettore( in accordo alle regole di nomenclatura già fissate nella pseudocodifica per le variabli di tipo elementare);
• < MAXDIMENSIONE > è una costante intera CHE DEVE ASSUMERE OBBLIGATORIAMENTE un valore maggiore di zero( per poter parlare di vettore almeno un elemento ci deve essere);
• < TipoElemento > è il tipo di dati posseduto da tutti gli elementi componenti( detto anche tipo base del vettore)
Esempio: Se dichiaro v: ARRAY [ 8 ] DI INT mi riferirò ad un vettore o array monodimensionale contenente al massimo 8 elementi di elementi del tipo intero di nome v.
L’ organizzazione usata nel vettore è rigida ossia comporta alcuni svantaggi quando occorre manipolare i suoi elementi:
1. difficoltà di inserimenti o cancellazioni: proprio a causa della contiguità delle celle di memoria dove sono rappresentati gli elementi di un vettore, l’ operazione di inserimento dovrebbe prevedere la riscrittura verso destra di tutti gli elementi a seguire( shift a destra) mentre l’ operazione di cancellazione dovrebbe prevedere la riscrittura verso sinistra di tutti gli elementi a seguire( shift a sinistra) per non lasciare alcuna posizione di memoria inutilizzata nel vettore;
2. dimensione statica: è necessario fissare a priori un limite massimo di elementi che il vettore potrà contenere( limite massimo non modificabile durante l’ esecuzione).
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 4