Esercizio 5

This commit is contained in:
2026-02-02 23:30:10 +01:00
parent d61dc3c74f
commit 0043f1f83f
7 changed files with 224 additions and 1 deletions

View File

@@ -0,0 +1,26 @@
/**
* Esercizio Extra: Calcolatrice Modulare
*
* Descrizione:
* Invece di fare tutto in una funzione, creeremo piccole funzioni specializzate.
*
* Istruzioni:
* 1. Crea almeno tre funzioni semplici che restituiscono un valore:
* - `somma(a, b)`
* - `sottrai(a, b)`
* - `moltiplica(a, b)`
* - (opzionale) `dividi(a, b)`
*
* 2. Crea una funzione principale `eseguiOperazione` che accetta 3 parametri:
* - `n1`
* - `n2`
* - `operazione` (una stringa "+", "-", "*" o "/")
*
* 3. Dentro `eseguiOperazione`, usa un `if` o `switch` su `operazione`.
* 4. In base al tipo, CHIAMA la funzione specifica (es. `somma(n1, n2)`) e restituisci il suo risultato.
*
* Con 5, 3 e "+" come input, `eseguiOperazione` dovrebbe restituire 8.
* Con 10, 4 e "-" dovrebbe restituire 6.
* Con 6, 7 e "*" dovrebbe restituire 42.
* Con 20, 5 e "ciao" dovrebbe restituire undefined, null o NaN.
*/

View File

@@ -0,0 +1,24 @@
/**
* Esercizio Extra (DEBUG): Variabili Fantasma (Shadowing)
*
* Descrizione:
* Il programmatore voleva aggiornare una variabile globale `punteggio` dentro una funzione.
* Tuttavia, ha commesso un errore nella dichiarazione dei parametri o delle variabili interne,
* creando una nuova variabile locale che "nasconde" quella globale.
*
* Il punteggio finale rimane 0 invece di 10.
*
* Obiettivo:
* Correggi la funzione affinché modifichi la variabile esterna `punteggioTotale`.
*/
let punteggioTotale = 0;
function aggiungiPunti(punti) {
let punteggioTotale = punti;
console.log("Punteggio dentro la funzione: " + punteggioTotale);
}
aggiungiPunti(10);
console.log("Punteggio finale globale: " + punteggioTotale); // Stampa 0, dovrebbe essere 10.

View File

@@ -0,0 +1,22 @@
/**
* Esercizio Extra: Verifica Numero Primo
*
* Descrizione:
* Un numero primo è divisibile solo per 1 e per se stesso.
*
* Obiettivo:
* Scrivi una funzione `èPrimo(n)` che restituisce `true` se il numero è primo, e `false` se non lo è.
*
* Istruzioni:
* 1. La funzione accetta un numero `n`.
* 2. Se `n` è minore di 2, restituisci `false`.
* 3. Usa un ciclo `for` che parte da 2 e arriva fino a `n - 1`.
* 4. Dentro il ciclo, controlla se `n` è divisibile per il contatore (n % i === 0).
* 5. Se trovi un divisore, restituisci SUBITO `false` (il numero non è primo).
* 6. Se il ciclo finisce senza trovare divisori, restituisci `true`.
*
* Con 7 dovrebbe restituire `true`
* Con 10 dovrebbe restituire `false`
* Con 401 dovrebbe restituire `true`
* Con 459 dovrebbe restituire `false`
*/