Le strutture dati Semplici

Indice dei contenuti

Link di affiliazione Link di affiliazione Link di affiliazione Link di affiliazione Link di affiliazione Link di affiliazione

Strutture dati semplici

Introduzione

In informatica spesso si devono utilizzare grosse quantità di informazioni e pertanto per il loro utilizzo e gestione occorre definire delle variabili personalizzate, che in modo collettivo raggruppino dei dati che hanno lo stesso tipo di caratteristiche.
Una struttura dati semplice è pertanto una struttura dati costruita dall’utente a partire da quelle semplici. Esse si distinguono in omogenee e eterogenee. Nel primo caso l’aggregato ottenuto è costituito da elementi dello stesso tipo mentre nel secondo sono di tipo diverso. Tutte le strutture dati astratte sono temporanee quando la memorizzazione avviene in memoria centrale. I dati in essa inseriti, sono disponibili solo per il tempo necessario all’esecuzione del programma. Ben altra cosa è l’utilizzo di strutture dati permanenti, nei quali i dispositivi atti alla memorizzazione dell’informazione sono i supporti di mMatriciemoria di massa.

Vettori e Matrici

Un vettore è una variabile strutturata costituita da n variabili di tipo semplice identificata da un nome collettivo e da un indice che ne seleziona il valore. La nomenclatura sui vettori suole indicare i vettori con il nome collettivo seguito da una coppia di parentesi al cui interno è indicato l’indice che obbligatoriamente indicando una posizione è intero. Ad esempio a[3]indica il terzo elemento del vettore, a[i] indica l’i-mo elemento del vettore. Alcuni linguaggi di programmazione ammettono la dichiarazione della dimensione del vettore nella parte dichiarativa (pascal, fortran) altri invece consentono un dimensionamento dinamico nel programma. Normalmente anche se la dimensione del vettore deve essere fissata all’inizio prima dell’esecuzione dell’algoritmo, non è un grosso problema ricondurlo ad una gestione dinamica come vedremo in alcuni esempi.
Il vettore graficamente può essere rappresentato con un insieme di caselle al cui interno vi sono i valori che possono essere sia di tipo semplice che composto.
Normalmente per l’utilizzo del vettore è opportuno procedere al caricamento dei valori attraverso l’utilizzo di un ciclo. Supponiamo di voler caricare un vettore di nome b co

In informatica spesso si devono utilizzare grosse quantità di informazioni e pertanto per il loro utilizzo e gestione occorre definire delle variabili personalizzate, che in modo collettivo raggruppino dei dati che hanno lo stesso tipo di caratteristiche.
Una struttura dati astratta è pertanto una struttura dati costruita dall’utente a partire da quelle semplici. Esse si distinguono in omogenee e eterogenee. Nel primo caso l’aggregato ottenuto è costituito da elementi dello stesso tipo mentre nel secondo sono di tipo diverso. Tutte le strutture dati astratte sono temporanee quando la memorizzazione avviene in memoria centrale. I dati in essa inseriti, sono disponibili solo per il tempo necessario all’esecuzione del programma. Ben altra cosa è l’utilizzo di strutture dati permanenti, nei quali i dispositivi atti alla memorizzazione dell’informazione sono i supporti di Matrici e memoria di massa.

Imposto da 10 elementi interi; l’algoritmo sotto forma di pseudo-codice è:

  1. InizioPer i= 0 a 9 esegui
  2. ciclo
  3. scrivi “dammi elemento”
  4. leggi b[i]
  5. fine ciclo
  6. fine

Il flow chart del seguente algoritmo è:

E’ semplice generalizzare per un qualunque array di N elementi, dove N è richiesto in input all’algoritmo.
In questo esempio viene chiesto all’utente di inserire dei valori da tastiera che verranno memorizzati nel vettore b[]. Come primo esercizio si scambino gli elementi di posto pari con quelli di posto dispari di un vettore di 10 elementi interi. Dopo aver caricato il vettore come fatto in precedenza l’algoritmo che risponde la problema dovrebbe essere:

  1. Per i=0 a 4 esegui
  2. ciclo
  3. temp=a[i]
  4. a[i]=a[2i]
  5. a[2i]=temp
  6. fine ciclo
  7. fine


In questo algoritmo si è utilizzata la variabile “temp” per memorizzare temporaneamente i valori che vengono soprascritti con l’istruzione 4. Un altro esercizio potrebbe essere dato un vettore di 10 elementi contare e visualizzare quante volte un elemento introdotto da tastiera si ripete. in questo problema oltre al vettore a[] è necessario utilizzare una variabile “cont” intera che conti il numero delle occorrenze, una variabile “num” che contenga l’elemento inserito da tastiera di cui si vuole verificare il numero delle occorrenze. La procedura per il caricamento è sempre la stessa per cui la omettiamo. L’algoritmo che risolve il problema richiesto sarà:

  1. inizio
  2. cont=0
  3. scrivi “inserisci l’elemento da cercare”
  4. leggi num
  5. Per k=0 a 9 esegui
  6. ciclo
  7. se a[i]=num allora
  8. cont=cont+1
  9. fine ciclo
  10. scrivi “il numero di volte che si ripete il valore inserito è: ” ,num
  11. fine

Il flow chart della ricerca è:

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