rinomina esercizi js

This commit is contained in:
2026-02-12 18:36:35 +01:00
parent f0b6b85b36
commit 60878cf770
150 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
/**
* Esercizio: Calcolo Area
*
* Descrizione:
* Scrivi una funzione che calcoli l'area di un rettangolo e la restituisca.
*
* Istruzioni:
* 1. Crea una funzione `calcolaArea` che accetta due parametri: `base` e `altezza`.
* 2. La funzione deve restituire (`return`) il prodotto dei due numeri.
* 3. Fuori dalla funzione, definisci due variabili per base e altezza.
* 4. Chiama la funzione passando le variabili e stampa il risultato in una frase: "L'area è: [risultato]".
*
* Con base = 5 e altezza = 10, l'output dovrebbe essere "L'area è: 50".
* Con base = 7 e altezza = 3, l'output dovrebbe essere "L'area è: 21".
*/

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,37 @@
/**
* Esercizio Extra2: Calcolatore BMI - Indice di Massa Corporea
*
* Descrizione:
* Calcola l'Indice di Massa Corporea (BMI) e determina la categoria di peso.
* Questo esercizio richiede di SPEZZARE il lavoro in PIÙ FUNZIONI.
*
* Obiettivo:
* Implementare due funzioni che lavorano insieme:
* 1. Una che calcola l'indice BMI
* 2. Una che determina la categoria di peso basata sul BMI
*
* Istruzioni:
* 1. Crea una funzione `calcolaBMI(peso, altezza)` che:
* - Accetta il peso in kg e l'altezza in metri
* - Calcola BMI usando la formula: BMI = peso / (altezza × altezza)
* - Restituisce il BMI arrotondato a 1 decimale
*
* 2. Crea una funzione `categorizzaBMI(bmi)` che:
* - Accetta il valore del BMI
* - Restituisce una categoria in base a questi intervalli:
* * BMI < 18.5 → "Sottopeso"
* * 18.5 ≤ BMI < 25 → "Peso normale"
* * 25 ≤ BMI < 30 → "Sovrappeso"
* * BMI ≥ 30 → "Obeso"
*
* 3. Crea una funzione principale `valutaPeso(peso, altezza)` che:
* - Chiama calcolaBMI() per ottenere l'indice
* - Chiama categorizzaBMI() per ottenere la categoria
* - Restituisce una stringa descrittiva come:
* "BMI: 24.5 | Categoria: Peso normale"
*
* Esempio di utilizzo:
* valutaPeso(70, 1.75) dovrebbe indicare "BMI: 22.9 | Categoria: Peso normale"
* valutaPeso(100, 1.75) dovrebbe indicare "BMI: 32.7 | Categoria: Obeso"
* valutaPeso(50, 1.75) dovrebbe indicare "BMI: 16.3 | Categoria: Sottopeso"
*/

View File

@@ -0,0 +1,39 @@
/**
* Esercizio Extra2: Convertitore di Temperature
*
* Descrizione:
* Crea un sistema di conversione tra Celsius e Fahrenheit.
* Questo esercizio richiede di SPEZZARE il lavoro in PIÙ FUNZIONI.
*
* Obiettivo:
* Implementare tre funzioni:
* 1. Una che converte Celsius → Fahrenheit
* 2. Una che converte Fahrenheit → Celsius
* 3. Una funzione principale che usa le prime due
*
* Istruzioni:
* 1. Crea una funzione `celsiusToFahrenheit(celsius)` che:
* - Accetta un numero di gradi Celsius
* - Calcola la conversione usando la formula: (C × 9/5) + 32
* - Restituisce il risultato
*
* 2. Crea una funzione `fahrenheitToCelsius(fahrenheit)` che:
* - Accetta un numero di gradi Fahrenheit
* - Calcola la conversione usando la formula: (F - 32) × 5/9
* - Restituisce il risultato
*
* 3. Crea una funzione `converti(valore, da, a)` che:
* - Accetta il valore, il tipo di partenza (es: "C" o "F") e il tipo di arrivo
* - Se da="C" e a="F", chiama celsiusToFahrenheit()
* - Se da="F" e a="C", chiama fahrenheitToCelsius()
* - Se da === a, restituisce il valore invariato
* - Altrimenti restituisce null e stampa un messaggio di errore
*
* Esempio di utilizzo:
* converti(0, "C", "F") dovrebbe restituire 32
* converti(100, "C", "F") dovrebbe restituire 212
* converti(32, "F", "C") dovrebbe restituire 0
* converti(98.6, "F", "C") dovrebbe restituire circa 37
* converti(25, "C", "C") dovrebbe restituire 25
* converti(25, "C", "X") dovrebbe restituire null e stampare un messaggio di errore
*/

View File

@@ -0,0 +1,46 @@
/**
* Esercizio Extra2: Gestione Semplice di un Conto Bancario
*
* Descrizione:
* Simula un conto bancario con operazioni di deposito, prelievo e calcolo di interesse.
* Questo esercizio richiede di SPEZZARE il lavoro in PIÙ FUNZIONI.
*
* Obiettivo:
* Creare un'interfaccia di funzioni per gestire un conto bancario semplice.
*
* Istruzioni:
*
* 1. Crea una variabile globale `saldo` = 0 (rappresenta il saldo del conto)
*
* 2. Crea una funzione `deposita(importo)` che:
* - Accetta un importo
* - Se importo è negativo o zero, restituisce null e stampa un messaggio di errore
* - Aggiunge l'importo al saldo globale
* - Restituisce il nuovo saldo
*
* 3. Crea una funzione `preleva(importo)` che:
* - Accetta un importo
* - Se importo è negativo o zero, restituisce null e stampa un messaggio di errore
* - Se importo > saldo, restituisce null e stampa "Saldo insufficiente"
* - Sottrae l'importo dal saldo
* - Restituisce il nuovo saldo
*
* 4. Crea una funzione `calcolaInteresse(tassoAnnuale)` che:
* - Accetta un tasso di interesse annuale (es: 2.5 per il 2.5%)
* - Calcola l'interesse: saldo × (tassoAnnuale / 100) / 12 (interesse mensile)
* - Restituisce l'interesse calcolato
*
* 5. Crea una funzione `applicaInteresse(tassoAnnuale)` che:
* - Chiama calcolaInteresse() per ottenere l'importo dell'interesse
* - Aggiunge questo importo al saldo usando deposita()
* - Restituisce il nuovo saldo
*
* 6. Crea una funzione `visualizzaSaldo()` che:
* - Restituisce il saldo formattato come stringa: "€ 1234,56"
*
* Esempio di utilizzo:
* deposita(1000) // saldo = 1000
* preleva(200) // saldo = 800
* applicaInteresse(2) // aggiunge circa 1.33 euro (0.02 × 800 / 12)
* visualizzaSaldo() // "€ 801,33"
*/

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