Successione di Fibonacci in JavaScript

Successione di Fibonacci in JavaScript

In questa lezione implementeremo un algoritmo sulla successione di Fibonacci in JavaScript.

Innanzitutto ricordiamo che 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 se voglio vedere i primi 10 termini della successione di Fibonacci ho: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55.

Algoritmo sulla successione di Fibonacci in JavaScript

Chiedere in input, attraverso un prompt, quanti numeri calcolare e visualizzarli uno sotto l’altro.

Per sviluppare questo algoritmo innanzitutto ragioniamo sulle variabili che ci serviranno. Sicuramente occorre utilizzare due variabili per memorizzare i primi due termini. Dunque, ad esempio, primo=1 e poi secondo=1.

Poi ci servirà una terza variabile dove memorizzare la somma del primo termine con il secondo. Dunque terzo = primo + secondo.

Bene, dopo aver definito questo ragionamento, occorre andare a ripetere alcune operazioni.

All’inizio abbiamo questa situazione: primo=1, secondo=1 e terzo=1+1=2.

Quindi occorre spostare il valore di secondo in primo ed il valore di terzo in secondo, in modo da sommarli. Dunque: primo=1, secondo=2 e terzo=3.

Andando avanti con questo procedimento avremo primo=2, secondo=3 e terzo=5.

In definitiva dobbiamo dunque ripetere (iterare alcune istruzioni).

Soluzione all’algoritmo sulla successione di Fibonacci in JavaScript

Ecco una possibile soluzione dell’algoritmo in JavaScript.

Chiediamo attraverso un prompt quanti numeri della successione di Fibonacci visualizzare. Dopo dichiariamo le variabili necessarie e facciamo gli assegnamenti.

Con un ciclo for poi ripetiamo le seguenti istruzioni: c = a + b e poi a=b e b=c, cioè scambiamo a con b e b con c.

Ecco dunque il codice completo:


N = prompt('Quanti numeri vuoi visualizzare?: ');
var a = 1;
var b = 1;
var c;
document.write(a + '
' + b + '
'); for (var i = 0; i< N-2; i++){ c = a + b; a = b; b = c; document.write(c + '
'); }

Possiamo anche aggiungere un controllo dell’input su N utilizzando ad esempio il ciclo do while. Facciamo in modo dunque che l’utente inserisca un numero maggiore di 2.


do {
  N = prompt('Quanti numeri vuoi visualizzare?: ');
} while (N <= 2);

Analogamente si poteva trovare una soluzione per il controllo dell’input utilizzando il while.


N = prompt('Quanti numeri vuoi visualizzare?: ');
while (N <= 2){
    N = prompt('Quanti numeri vuoi visualizzare?: ');
}

In questa lezione abbiamo semplicemente visto un esempio sulla successione di Fibonacci, nelle prossime lezioni affronteremo altri esempi utilizzando i cicli in JavaScript.

Alcuni link utili

Indice tutorial JavaScript

Introduzione a JavaScript

Il linguaggio JavaScript

Come utilizzare JavaScript alert

Come utilizzare JavaScript confirm

Utilizzare JavaScript prompt

Variabili in JavaScript

Do while JavaScript

Do while JavaScript

Il ciclo do while in JavaScript, così come negli altri linguaggi dove questo costrutto esiste, consente di eseguire le istruzioni almeno una volta. Se la condizione è vera allora si ripete nuovamente il ciclo, altrimenti si passa all’istruzione successiva.

Il ciclo do-while è difatti un costrutto post-condizionale.

Sintassi do while JavaScript

La sintassi del do while è dunque questa:

do {

      // istruzioni;

} while (condizione);

Si può chiaramente avere anche una singola istruzione da eseguire.

La semantica del costrutto do-while è dunque questa:

1. Si esegue l’istruzione (o più di una);

2. Dopo si valuta la condizione, la quale può essere vera o falsa.

3. Quindi se la condizione è vera si ritorna al punto 1; altrimenti si passa all’istruzione successiva.

Esempio 1 – do while JavaScript

Come primo esempio ripropongo un esercizio già sviluppato con il ciclo while nella precedente lezione.

Visualizziamo i numeri da 0 a 9 in ordine crescente.

Per questo esempio inizializziamo sempre una variabile contatore: c = 0.

Poi, con il ciclo do while, stampiamo la prima istruzione, incrementiamo c di 1 e solo dopo valutiamo la condizione. Se la condizione è vera allora il ciclo ripartirà nuovamente eseguendo le stesse istruzioni.

Da notare che se avessi erroneamente inserito la condizione c >10, comunque le istruzioni all’interno del do-while sarebbero state eseguite almeno una volta.

Ecco di seguito il codice completo:

let c = 0;
do {
   console.log(c + '</br>');
   c++;
} while (c < 10);

Corso su JavaScript

Esempio 2 – do while JavaScript

In questo secondo esempio utilizzeremo il ciclo do while per effettuare un controllo dell’input. Questo infatti è uno dei maggiori casi in cui il ciclo do while viene utilizzato.

Controllare che un numero preso in input sia positivo e richiederlo in caso contrario.

All’interno del ciclo inseriamo l’istruzione che serve a prendere un dato in input. Solo dopo controlliamo se tale valore è negativo. Se questa condizione è vera il ciclo verrà ripetuto.

Ecco dunque il codice completo:

let a;

do {
  a = prompt("Inserisci un numero:");
} while (a<0);
        
console.log(a);

In questo esempio abbiamo utilizzato la funzione prompt di JavaScript che serve per aprire una finestra del browser con un campo di input per l’inserimento dei dati.

Esempio 3 – controllo dell’input su due dati in input

In questo terzo esempio sul ciclo do while in JavaScript prendiamo in input due numeri e controlliamo se entrambi sono positivi, altrimenti li richiediamo.

La risoluzione dell’esercizio è simile al precedente, ma occorre prestare attenzione alla condizione. Infatti, occorre testare se a oppure b sono minori di zero. Si può indurre, erroneamente, ad utilizzare l’operatore logico and ( && ), ma in questo caso il programma non riesegue il ciclo se uno dei due numeri è negativo.

Provate a riflettere proprio su questo!

Di seguito il codice completo:

let a, b;

do {
   a = prompt("Inserisci il numero a:");
   b = prompt("Inserisci il numero b:");
} while ((a<0) || (b<0));
	   
console.log(a + '</br>');
console.log(b);

In questa lezione abbiamo introdotto il ciclo do while in JavaScript, nelle prossime lezioni proporrò tanti altri esempi.

Alcuni link utili

Tutorial JavaScript

Il linguaggio JavaScript

Come utilizzare JavaScript alert

Come utilizzare JavaScript confirm

Utilizzare JavaScript prompt

Variabili in JavaScript