libri-javascript-python

La successione di Fibonacci è una successione di numeri interi positivi in cui ciascun numero a cominciare dal terzo è la somma dei due precedenti e i primi due sono 1, 1.

Quindi ad esempio la successione di N numeri dove N è uguale a 10 sarà questa:

1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55

Per lo sviluppo dell’algoritmo prendiamo due variabili primo e secondo e ad entrambe assegniamo il valore 1, in quanto rappresentano i primi due termini della successione di Fibonacci, quindi avremo:

primo=1

secondo=1

Visualizziamo in output le due variabili.

Successione di Fibonacci

A questo punto prendiamo in input N che indica quanti numeri della successione di Fibonacci vogliamo calcolare.
Di volta in volta sarà l’utente a decidere quanti termini vorrà visualizzare.
Poniamo che N sia almeno uguale a 2, per poter stampare almeno due termini della successione di Fibonacci e quindi con un ciclo do-while richiediamo N qualora fosse minore di 2. In questo modo l’utente è obbligato per andare avanti ad inserire un numero maggiore o uguale a 2.

DO_WHILE
IN N
END DO_WHILE

Creiamo un ciclo definito che duri N volte meno 2, in quanto i primi due numeri sono stati inseriti (primo e secondo). Utilizziamo per tale scopo una variabile contatore che chiamiamo i e che facciamo partire da 2, per i motivi suddetti.

All’interno del ciclo calcoliamo il terzo numero della successione di Fibonacci, usando una variabile di nome terzo che poniamo uguale alla somma di primo più secondo, cambiamo le variabili primo che poniamo uguale a secondo e secondo che poniamo uguale a terzo, in questo modo si calcolano tutti i termini della successione di Fibonacci finché il contatore non raggiunge N.

terzo=primo + secondo

primo=secondo

secondo=terzo

Visualizziamo in output la variabile terzo e abbiamo terminato l’algoritmo.

Di seguito la pseudocodifica e il diagramma di flusso della successione di Fibonacci sviluppato con Algobuild:

PROG main
 ASSIGN primo=1
 ASSIGN secondo=1
 OUT primo
 OUT secondo
 DO_WHILE //N<2
  IN N
 END DO_WHILE N<2
 ASSIGN I=2
 WHILE I<=N
   ASSIGN terzo=primo+secondo
   OUT terzo
   ASSIGN primo=secondo
   ASSIGN secondo=terzo
   ASSIGN I=I+1
  END WHILE //I<=N
END PROG //main

successione di fibonacci

Alcuni link utili

Indice argomenti diagramma a blocchi

Numeri primi da 1 a 100

Array con algobuild

Divisori di un numero con algobuild

Algoritmi di selezione sugli angoli

Algoritmi di selezione

Triangoli con algobuild

Fibonacci con algobuild

Serie buffa con algobuild

Numeri amicabili con algobuild

Numeri perfetti con algobuild

Massimo fra tre numeri

Minore fra tre numeri