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

@@ -1,5 +1,5 @@
/** /**
* Esercizio Intermedio: Calcolo Area * Esercizio: Calcolo Area
* *
* Descrizione: * Descrizione:
* Scrivi una funzione che calcoli l'area di un rettangolo e la restituisca. * Scrivi una funzione che calcoli l'area di un rettangolo e la restituisca.

View File

@@ -0,0 +1,15 @@
/**
* Esercizio: Convertitore Euro-Dollaro
*
* Descrizione:
* Simula un convertitore di valuta semplice.
*
* Istruzioni:
* 1. Crea una funzione `convertiInDollari` che accetta un parametro `euro`.
* 2. Assumi che il tasso di cambio sia 1.1 (1 Euro = 1.1 Dollari).
* 3. La funzione deve restituire l'importo convertito.
* 4. Chiama la funzione con 50 euro e stampa il risultato.
*
* Con 50 euro, l'output dovrebbe essere "50 Euro sono 55 Dollari".
* Con 100 euro, l'output dovrebbe essere "100 Euro sono 110 Dollari".
*/

View File

@@ -0,0 +1,21 @@
/**
* Esercizio (DEBUG): Il Risultato Scomparso
*
* Descrizione:
* Vogliamo calcolare il cubo di un numero (numero**3) oppure (numero * numero * numero).
* Il codice esegue il calcolo, ma quando stampiamo il risultato otteniamo "undefined".
*
* Obiettivo:
* 1. Analizza la funzione `calcolaCubo`.
* 2. Trova cosa manca per far "uscire" il valore dalla funzione.
* 3. Correggi il codice.
*/
function calcolaCubo(n) {
let cubo = n * n * n;
}
let risultato = calcolaCubo(3);
console.log("Il cubo di 3 è: " + risultato);
// Attualmente stampa: "Il cubo di 3 è: undefined"
// Dovrebbe stampare: "Il cubo di 3 è: 27"

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`
*/

View File

@@ -0,0 +1,115 @@
/**
* ===========================================
* === 1. Dichiarazione e Chiamata ===
* Una funzione è un blocco di codice riutilizzabile.
* Si dichiara con la parola chiave 'function'.
* Il codice dentro la funzione non viene eseguito finché non la "chiami".
*/
// Esempio:
function saluta() {
console.log("Ciao mondo!");
}
// Per eseguirla:
saluta();
// TODO: Dichiara una funzione chiamata 'stampaBenvenuto' che stampi "Benvenuto al corso!".
// Poi chiama la funzione.
// OUTPUT ATTESO:
// Benvenuto al corso!
/**
* ===========================================
* === 2. I Parametri ===
* Le funzioni possono ricevere dati in ingresso chiamati "parametri".
* I parametri agiscono come variabili locali dentro la funzione.
*/
function salutaPersona(nome) {
console.log("Ciao " + nome);
}
// TODO: Chiama la funzione 'salutaPersona' due volte:
// 1. Passando il nome "Mario".
// 2. Passando il nome "Luigi".
// OUTPUT ATTESO:
// Ciao Mario
// Ciao Luigi
/**
* ===========================================
* === 3. Parametri Multipli ===
* Puoi passare più parametri separandoli da virgola.
* L'ordine è importante!
*/
// TODO: Scrivi una funzione 'descriviPersona' che accetta due parametri: 'nome' e 'età'.
// La funzione deve stampare: nome + " ha " + età + " anni."
// Poi chiamala con "Anna" e 25.
// OUTPUT ATTESO:
// Anna ha 25 anni.
/**
* ===========================================
* === 4. Il Valore di Ritorno (Return) ===
* Una funzione può "restituire" un risultato al codice che l'ha chiamata.
* Si usa la parola chiave 'return'.
*/
function somma(a, b) {
let risultato = a + b;
return risultato;
}
let x = somma(5, 3); // x ora vale 8. Nulla viene stampato qui.
console.log("Il risultato è: " + x);
// TODO: Scrivi una funzione 'moltiplica' che accetta due numeri e RESTITUISCE (return) il loro prodotto.
// Poi salva il risultato di moltiplica(4, 5) in una variabile e stampalo.
// OUTPUT ATTESO:
// 20
/**
* ===========================================
* === 5. Usare le Funzioni nella Logica ===
* Possiamo usare il valore restituito da una funzione direttamente dentro un 'if'.
*/
// TODO: Scrivi una funzione 'èMaggiorenne' che accetta un numero (età).
// Se età >= 18 restituisce true, altrimenti false.
// Poi scrivi un if che usa questa funzione per stampare "Sei maggiorenne" o "Sei minorenne".
// OUTPUT ATTESO (provando con 20):
// Sei maggiorenne
/**
* ===========================================
* === 6. Scope (Visibilità) ===
* Le variabili definite dentro una funzione (con let) NON esistono fuori di essa.
* Stessa cosa vale per i parametri, che sono visibili SOLO dentro la funzione.
* È chiamato "scope" (ambito) della variabile.
*/
function testScope(variabileLocale) {
let segreto = "Codice123" + variabileLocale;
return segreto;
}
// TODO: Prova a decommentare la riga sotto e osserva l'errore.
// console.log(segreto);
// console.log(variabileLocale);
// TODO: Correggi l'errore: crea una variabile 'codiceEsterno' e assegnale il risultato della chiamata a 'testScope("456")'.
// Poi stampa 'codiceEsterno'.
// OUTPUT ATTESO:
// Codice123456