8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
OPERAZIONI SUI VETTORI O ARRAY MONODIMENSIONALI
N. B. In un algoritmo un vettore o array non può quasi mai essere manipolato come se fosse un unico oggetto ma si deve sempre operare sui singoli elementi componenti.
In altre parole, considerato un certo array di nome v, indipendentemente dal tipo di dati base posseduto dai suoi elementi- semplice( INT, REAL, CHAR e BOOL) o strutturato( tipo RECORD)- non si potrà quasi mai scrivere:
Leggi( v) oppure Scrivi( v) perchè dovremo leggere o scrivere tali valori considerandoli uno alla volta.
N. B. il quasi è dovuto al fatto che vi è un’ unica eccezione costituita dai vettori o array monodimensionale di CHAR( detti STRINGHE) per i quali, considerata l’ enorme importanza da essi rivestito nell’ ambito della programmazione, oltre alla " normale " gestione elemento per elemento, sono state anche previste delle apposite funzioni ed alcune deroghe a quanto detto finora. Sarà dunque possibile( ed apparirà da subito estremamente conveniente) introdurre nuove funzionalità nella pseudocodifica dedicate ESCLUSIVAMENTE agli ARRAY MONODIMENSIONALI DI CARATTERI( ossia alle STRINGHE) per ampliare la possibilità di effettuare confronti, copie, assegnazioni oppure conoscere il numero complessivo di elementi, utilizzando l’ intera stringa( evitando quindi di dover procedere carattere per carattere)
A livello logico si possono definire delle operazioni base( alle quali corrispondono dei sottoprogrammi e quindi dei sottoalgoritmi) proprie di questo tipo di struttura dati:
• CARICAMENTO( o LETTURA) degli elementi di un vettore o array;
• VISUALIZZAZIONE( o STAMPA) degli elementi di un vettore o array;
• SHIFT SINISTRO( PARZIALE o COMPLETO) degli elementi di un vettore o array;
• SHIFT DESTRO( PARZIALE o COMPLETO) degli elementi di un vettore o array;
• ROTAZIONE a SINISTRA degli elementi di un vettore o array;
• ROTAZIONE a DESTRA degli elementi di un vettore o array;
• RICERCA SEQUENZIALE di un elemento all’ interno di un vettore o array;
• RICERCA BINARIA( o DICOTOMICA) di un elemento all’ interno di un vettore o array;
• ORDINAMENTO INGENUO( o SEQUENZIALE) degli elementi di un vettore o array;
• ORDINAMENTO A BOLLE( o BUBBLE SORT) degli elementi di un vettore o array.
Altre operazioni che occasionalmente possono essere richieste su questo tipo di struttura dati e che possono essere ottenute a a partire dalle precedenti sono:
• COPIATURA: tutto il vettore o parte di esso può dover essere copiato in un ' altro vettore secondo un determinato criterio;
• FUSIONE( o MERGE): può essere richiesta la combinazione di 2 o più vettori in un unico vettore secondo un determinato criterio;
• SPLIT( o SEPARAZIONE): opposta della precedente un ' unico vettore può essere suddiviso in 2 o più vettori secondo un determinato criterio.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 5