Presentiamo una possibile soluzione di un algoritmo che rappresenta una serie buffa e lo svilupperemo con Algobuild.
Chiaramente ci possono essere tante altre possibili soluzioni, io l’ho pensata così. Nei commenti potete pure dire la vostra.
I flow chart ci aiutano ad avere uno schema di quello che poi può essere sviluppato con vari linguaggi di programmazione e non solo, anche con ambienti di programmazione di tipo grafico come Scratch (qui trovate alcuni esempi di programmi sviluppati in Scratch)
Definiamo la serie buffa
Immaginiamo una serie buffa di numeri interi così definita: gli elementi di posto 1, 2, 3 valgono tutti uno e in generale avremo che l’elemento di posizione i con i>=4 è uguale alla somma di (i-1) e (i-3).
Quindi avremo:
primo=1
secondo=1
terzo=1
Seondo quanto detto prima avremo così che quarto=primo+terzo
Quindi ad esempio gli N elementi della serie buffa con N=9 sono 1,1,1,2,3,4,6,9,13.
Algoritmo della serie buffa sviluppato con Algobuild
Impostiamo nei rettangoli (ricordiamo che in Algobuild il rettangolo rappresenta l’assegnamento) i valori iniziali di primo, secondo e terzo. Stampiamo i primi tre valori della serie buffa utilizzando come forma il parallelogramma.
Prendiamo in input N (utilizziamo il parallelogramma che rappresenta l’input) ovvero il numero degli elementi della serie buffa che vogliamo avere.
Poi facciamo partire la variabile contatore i da 3 perché i primi tre numeri ce li abbiamo e finché i non raggiunge N continuiamo a calcolare i numeri della serie buffa.
All’interno del ciclo (in Algobuild il ciclo while è rappresentato con il rombo), che verrà ripetuto N-3 volte, abbiamo la sequenza di passi necessari per produrre la nostra serie buffa.
Quindi assegniamo a quarto il valore di primo + terzo, stampiamo il risultato e poi cambiamo le tre variabili. Così primo diventerà secondo, secondo diventerà terzo e terzo diventerà quarto.
In figura sotto potete vedere l’algoritmo della serie buffa sviluppato con Algobuild. (dovete aggiungere gli output di primo, secondo e terzo che ho omesso!)
Alcuni link utili
Indice argomenti diagramma a blocchi
Divisori di un numero con algobuild
Algoritmi di selezione sugli angoli
Numeri amicabili con algobuild