
In questa lezione svolgeremo alcuni esercizi sul ciclo for in JavaScript in modo tale da comprenderne meglio il funzionamento.
Esercizi sul ciclo for in JavaScript – primo esercizio
Progettate un algoritmo in JavaScript che stampi tutte le coppie di numeri naturali la cui somma è 30.
Ragioniamo innanzitutto su una possibile soluzione del presente algoritmo.
L’algoritmo dovrà stampare dunque le seguenti coppie (30,0), (29,1), (28,2), (27,3), (26,4) e così via.
Quindi partiamo assegnando al primo termine il valore 30 ed al secondo il valore 0. Dopo decrementiamo di 1 il primo termine e incrementiamo il secondo.
Per fare questo chiaramente mi servirà un ciclo che iteri queste operazioni finchè è necessario.
Quindi definiamo una variabile somma a cui assegniamo il valore iniziale 30.
Dopo creiamo una variabile a che poniamo uguale a somma e che poi all’interno del ciclo decrementremo di 1. Utilizziamo poi la stessa variabile i per il secondo termine della coppia, in quanto partirà da 0 e arriverà fino a 30.
Ecco dunque una possibile risoluzione.
var somma = 30;
var a = somma;
for (var i = 0; i <= somma; i++){
console.log(a, i);
a--;
}
Il console.log del seguente programma mi stamperà tutte le coppie di numeri che danno come somma 30. Quindi (30,0), (29,1), (28,2) ... (2,28), (1,29),(0,30).
Se vogliamo evitare ripetizioni ci potremmo fermare alla coppia (15, 15).
Ecco dunque una variante dell'algoritmo precedente:
var a = 30;
for (var i = 0; i <= a; i++){
console.log(a, i);
a--;
}
In questo caso abbiamo fatto senza della variabile somma, utilizzando la condizione i <= a.
Esercizi sul ciclo for in JavaScript - secondo esercizio
Inserire N coppie di numeri reali, contare quelle che generano un prodotto negativo, positivo oppure uguale a zero, ma senza eseguire l’operazione.
In questo secondo algoritmo dobbiamo introdurre N coppie di numeri e per ciascuna controllare i segni in modo da stabilire il risultato del prodotto.
Verifichiamo innanzitutto se a e b sono entrambi positivi oppure entrambi negativi, infatti in questo caso so che il prodotto è sicuramente positivo.
Dopo verifichiamo se uno dei due termini è uguale a 0 ed in tal caso il prodotto è nullo.
Infine, se queste condizioni non sono vere il prodotto è sicuramente negativo.
Utilizzo dei contatori prodPos, prodN, prodNeg, per memorizzare i vari conteggi. Chiaramente devono essere inizializzati a zero.
Ecco dunque una possibile risoluzione dell'algoritmo:
var n = parseInt(prompt('quante coppie di numeri vuoi inserire?'));
var prodPos = 0, prodN = 0, prodNeg = 0;
for (var i = 0; i < n; i++){
var a = parseInt(prompt('inserisci il primo numero'));
var b = parseInt(prompt('inserisci il secondo numero'));
if ((a > 0 && b > 0) || (a < 0 && b < 0)) {
prodPos++;
} else if (a == 0 || b == 0){
prodN++;
} else {
prodNeg++;
}
}
console.log(prodPos);
console.log(prodN);
console.log(prodNeg);
In questa lezione abbiamo affrontato dei semplici esercizi sul ciclo for in JavaScript, nelle prossime lezioni vedremo altri esempi.
Alcuni link utili
Introduzione al tutorial JavaScript
Come utilizzare JavaScript alert
Come utilizzare JavaScript confirm