8: I dati e la loro struttura nella programmazione( ARRAY, MATRICI, RECORD) Vers. 10.0 – Maggio 2025
Lo SHIFT è una operazione che consente di spostare di una posizione( a destra o a sinistra) tutti gli elementi del vettore( SHIFT COMPLETO) o solo una parte di essi( SHIFT PARZIALE).
Nello SHIFT COMPLETO a SINISTRA tutti gli elementi del vettore saranno spostati di una posizione verso sinistra ad eccezione del primo elemento che va perso( ossia il contenuto della seconda posizione occuperà la prima, quello della terza la seconda, e così via fino a quello dell’ ultima posizione che occuperà la penultima) con il conseguente risultato di avere in penultima ed ultima posizione lo stesso elemento.
Graficamente
Prima dello shift completo verso sinistra
1 2 3 4 5 6 7 8 9 10
8 7 6 9 23 21 5 40 13 12 indici
Dopo dello shift completo verso sinistra
1 2 3 4 5 6 7 8 9 10
7 6 9 23 21 5 40 13 12 12
N. B. Per TUTTE le operazioni di SHIFT le tabelle dei dati individuate in precedenza restano immutate
Esempio: Scrivere algoritmo risolutivo che esegua lo shift completo verso sinistra dei suoi elementi.
ALGORITMO ShiftCompletoSinistro MAXDIM 10 PROCEDURA main()
v: ARRAY [ MAXDIM ] DI INT n: INT i: INT
INIZIO
/* leggi la dimensione del vettore da caricare( vedi esercizio precedente)*/ …. /* carica gli elementi nel vettore( vedi esercizio precedente) */ …. /* effettua lo shift completo verso sinistra degli elementi nel vettore */ PER i � 1 A( n – 1) ESEGUI v [ i ] � v [ i + 1 ] i � i + 1 FINE PER
/* visualizza gli elementi precedentemente immessi nel vettore shiftati a sx( vedi esercizio precedente)*/ …. FINE
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 8