Il pattern accumulatore è uno schema di algoritmo che viene utilizzato per aumentare il valore di una variabile in una iterazione. Di fatto si tratta di accumulare dei valori su una variabile per accrescere il suo valore con una certa logica. Questo pattern è molto utilizzato se per ogni passo è necessario aumentare il valore della variabile. (pattern accumulatore).
Illustriamo ora lo schema del pattern con un flow chart:
Come vediamo dall’algoritmo è stato implementato il pattern contatore per impostare 10 cicli. Ad ogni passo viene letto un numero ed aggiunto alla variabile acc. Al termine dei 10 passi l’accumulatore conterrà la somma totale dei valori.
Il blocco di calcolo fondamentale che si occupa dell’accumulazione è il seguente:
Il significato di questa operazione è “metti in accumulatore quello che era contenuto prima più il nuovo valore”.
Tabella di traccia
Per controllare la correttezza dell’algoritmo possiamo realizzare una tabella di traccia (stack trace) considerando casuali valori in input:
Implementazione
Ecco il codice per implementare in linguaggio C++ l’algoritmo prima descritto dai diagrammi a blocchi:
int main()
{
int cont, acc, num;
cont = 0;
acc = 0;
while(cont<10)
{
cin>>num;
acc = acc+ num;
cont = cont+1;
}
cout<<acc;
}
Prova il codice su ideone.com
Torna a iterazione