Esercizio 5
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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".
|
||||||
|
*/
|
||||||
@@ -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"
|
||||||
@@ -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.
|
||||||
|
*/
|
||||||
@@ -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.
|
||||||
22
JS_Esercizi/JS_Esercizi 05 - Funzioni/extra/numero_primo.js
Normal file
22
JS_Esercizi/JS_Esercizi 05 - Funzioni/extra/numero_primo.js
Normal 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`
|
||||||
|
*/
|
||||||
115
JS_Esercizi/JS_Esercizi 05 - Funzioni/tutorial_interattivo.js
Normal file
115
JS_Esercizi/JS_Esercizi 05 - Funzioni/tutorial_interattivo.js
Normal 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
|
||||||
Reference in New Issue
Block a user