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,19 @@
/**
* Esercizio: Calcolo Stipendio Netto
*
* DESCRIZIONE:
* Calcolare lo stipendio netto mensile gestendo straordinari e tasse.
*
* Istruzioni:
* 1. Dichiara 'pagaOrariaBase' (es. 10) e 'oreLavorateStandard' (es. 160).
* 2. Dichiara 'oreStraordinario' (es. 20) e 'moltiplicatoreStraordinario' (es. 1.5, significa che valgono il 50% in più).
* 3. Calcola 'stipendioBase' moltiplicando le ore standard per la paga base.
* 4. Calcola 'stipendioStraordinario' moltiplicando le ore extra per la paga base PER il moltiplicatore.
* 5. Somma i due stipendi per ottenere il 'totaleLordo'.
* 6. Dichiara 'aliquotaTasse' (es. 0.25, ovvero il 25%).
* 7. Calcola le 'tasseDaPagare' (totaleLordo * aliquotaTasse).
* 8. Calcola 'stipendioNetto' (totaleLordo - tasseDaPagare).
* 9. Stampa: "Stipendio Lordo: [valore]", "Tasse: [valore]", "Netto: [valore]".
*/

View File

@@ -0,0 +1,30 @@
/**
* Esercizio (DEBUG): Il Calcolatore di Media Rotto
*
* DESCRIZIONE:
* Uno studente sta cercando di calcolare la sua media scolastica.
* Ha inserito i voti di Matematica, Storia e Fisica.
* Ha anche 2 punti bonus che vuole aggiungere alla SOMMA dei voti prima di fare la media.
*
* Risultato Atteso: (7 + 8 + 6 + 2) / 3 materie = 23 / 3 = 7.66...
* Risultato Attuale della console: 7860.6666...
*
* Ci sono DUE tipi di errori gravi qui:
* 1. Errori di TIPO (Stringhe vs Numeri).
* 2. Errori di PRECEDENZA (Ordine delle operazioni matematiche).
*
* Istruzioni:
* Correggi il codice affinché calcoli la media correttamente.
* NON cancellare le variabili, correggi il loro contenuto o come vengono usate.
*/
let votoMatematica = 7;
let votoStoria = "8";
let votoFisica = "6";
let puntiBonus = 2;
let numeroMaterie = 3;
let mediaFinale = votoMatematica + votoStoria + votoFisica + puntiBonus / numeroMaterie;
console.log("La media finale è:", mediaFinale);

View File

@@ -0,0 +1,15 @@
/**
* Esercizio: Verifica Range Numerico
*
* DESCRIZIONE:
* Controlla se un numero (temperatura) rientra in un intervallo accettabile.
*
* Istruzioni:
* 1. Dichiara una variabile 'temperatura' con un valore a scelta.
* 2. Dichiara 'minimaAccettabile' (es. 18) e 'massimaAccettabile' (es. 25).
* 3. Crea una variabile booleana 'temperaturaOk'.
* 4. Questa variabile deve essere true SOLO SE la temperatura è maggiore o uguale alla minima E minore o uguale alla massima.
* 5. Stampa: "La temperatura è accettabile? " seguito dal valore booleano.
*/

View File

@@ -0,0 +1,22 @@
/**
* Esercizio Extra (DEBUG): L'ordine conta
*
* Descrizione:
* Vogliamo dare un bonus a un dipendente se:
* - Ha fatto vendite alte (> 1000) OPPURE ha ottime recensioni (> 4.5)
* - E INOLTRE (condizione obbligatoria) non deve aver ricevuto reclami.
*
* Il codice attuale dà il bonus anche a chi ha reclami, se ha vendite alte. Questo è SBAGLIATO.
*
* Correggi l'espressione aggiungendo le parentesi necessarie per forzare la logica corretta.
*/
let vendite = 2000;
let recensioni = 3.0;
let haReclami = true;
let dirittoBonus = vendite > 1000 || recensioni > 4.5 && !haReclami;
console.log("Diritto al bonus:", dirittoBonus);
// OUTPUT ATTUALE (Errato): true
// OUTPUT ATTESO (Corretto): false

View File

@@ -0,0 +1,30 @@
/**
* Esercizio Extra: Sistema di Sicurezza Complesso
*
* DESCRIZIONE:
* L'allarme deve suonare (stampare true) se si verifica una situazione di pericolo.
*
* Variabili da dichiarare:
* - movimentoRilevato (bool)
* - orarioNotturno (bool)
* - finestreAperte (bool)
* - codiceInserito (bool)
* - blackout (bool)
*
* Regole dell'allarme:
* L'allarme suona SE:
* 1. (C'è movimento rilevato E è orario notturno)
* OPPURE
* 2. (Le finestre sono aperte E il codice di sicurezza NON è stato inserito)
* OPPURE
* 3. (C'è un blackout)
*
* Stampa il risultato della variabile 'allarmeAttivo'.
* Fai diverse prove cambiando i valori delle variabili per verificare che la logica regga.
*
* Prova a creare casi di test come:
* - movimentoRilevato = true, orarioNotturno = true, finestreAperte = false, codiceInserito = true, blackout = false => allarmeAttivo = true
* - movimentoRilevato = false, orarioNotturno = false, finestreAperte = true, codiceInserito = false, blackout = false => allarmeAttivo = true
* - movimentoRilevato = false, orarioNotturno = false, finestreAperte = false, codiceInserito = true, blackout = true => allarmeAttivo = true
* - movimentoRilevato = false, orarioNotturno = false, finestreAperte = false, codiceInserito = true, blackout = false => allarmeAttivo = false
*/

View File

@@ -0,0 +1,27 @@
/**
* Esercizio Extra: Statistiche Personaggio RPG
*
* DESCRIZIONE:
* In un gioco di ruolo, il danno inflitto dipende da Forza, Arma e Bonus.
*
* Istruzioni:
* 1. Dichiara variabili per: 'forzaBase' (num), 'dannoArma' (num), 'moltiplicatoreCritico' (num, es 1.5).
* 2. Dichiara una variabile booleana 'colpoCritico' (true o false).
* 3. Dichiara una variabile booleana 'nemicoInDifesa' (true o false).
*
* 4. Logica del Danno:
* - Il 'dannoBase' è (forzaBase + dannoArma).
* - Se 'colpoCritico' è true, il dannoBase viene moltiplicato per 'moltiplicatoreCritico'.
* (NOTA: Non puoi usare IF. Usa l'operatore ternario se lo conosci, oppure usa la matematica:
* danno * (1 + (0.5 * colpoCritico)) -> JavaScript converte true in 1 e false in 0).
* - Se 'nemicoInDifesa' è true, il danno finale viene dimezzato (diviso 2).
*
* 5. Calcola e stampa il danno finale in un unico passaggio logico o passaggi sequenziali.
*
* Sfida Matematica: Prova a risolvere sfruttando il fatto che true vale 1 e false vale 0 nei calcoli matematici.
*
* Esempio di test:
* - forzaBase = 50, dannoArma = 20, moltiplicatoreCritico = 2, colpoCritico = true, nemicoInDifesa = false => danno finale = 140
* - forzaBase = 30, dannoArma = 10, moltiplicatoreCritico = 1.5, colpoCritico = false, nemicoInDifesa = true => danno finale = 20
* - forzaBase = 40, dannoArma = 15, moltiplicatoreCritico = 2, colpoCritico = true, nemicoInDifesa = true => danno finale = 55
*/

View File

@@ -0,0 +1,107 @@
/**
* ===========================================
* === 1. Operatori Aritmetici di Base ===
* JavaScript può essere usato come una calcolatrice.
* Abbiamo +, -, * (moltiplicazione) e / (divisione).
* Possiamo stampare i risultati con console.log().
*/
let numeroA = 10;
let numeroB = 5;
// TODO: Crea una variabile 'somma' che contenga numeroA più numeroB e stampala.
// OUTPUT ATTESO: 15
/**
* ===========================================
* === 2. L'operatore Modulo (Resto) ===
* L'operatore % restituisce il resto di una divisione.
* Esempio: 10 % 3 fa 1 (perché il 3 sta nel 10 tre volte con resto 1).
*/
let mele = 14;
let persone = 3;
// TODO: Calcola quante mele rimangono non distribuite usando l'operatore % e stampa il risultato.
// OUTPUT ATTESO: 2
/**
* ===========================================
* === 3. Ordine delle Operazioni (Precedenza) ===
* La moltiplicazione e la divisione avvengono prima di somma e sottrazione.
* Usa le parentesi tonde () per cambiare l'ordine.
*/
let costoBiglietto = 10;
let costoPrevendita = 2;
let numeroBiglietti = 3;
// TODO: Calcola il totale corretto: (costoBiglietto + costoPrevendita) moltiplicato per numeroBiglietti.
// OUTPUT ATTESO: 36
/**
* ===========================================
* === 4. Operatori di Confronto (Debole vs Stretto) ===
* L'operatore == confronta il valore (convertendo il tipo se necessario).
* L'operatore === confronta valore E tipo (MOLTO PIÙ SICURO).
*/
let numeroStringa = "5";
let numeroReale = 5;
// TODO: Stampa il risultato di numeroStringa === numeroReale.
// OUTPUT ATTESO: false
/**
* ===========================================
* === 5. Operatori di Disuguaglianza ===
* Possiamo verificare se un numero è maggiore (>), minore (<),
* maggiore o uguale (>=) o minore o uguale (<=).
* Il risultato è sempre un booleano (true o false).
*/
let età = 17;
let etàMinima = 18;
// TODO: Stampa true se 'età' è maggiore o uguale a 'etàMinima', altrimenti stampa false.
// OUTPUT ATTESO: false
/**
* ===========================================
* === 6. Operatori Logici: AND (&&) ===
* L'operatore && restituisce true SOLO se entrambe le condizioni sono vere.
* true && true -> true
* true && false -> false
*/
let haBiglietto = true;
let haDocumento = true;
// TODO: Crea una variabile 'puòEntrare' che sia vera solo se haBiglietto E haDocumento sono entrambi veri. Stampala.
// OUTPUT ATTESO: true
/**
* ===========================================
* === 7. Operatori Logici: OR (||) e NOT (!) ===
* L'operatore || restituisce true se ALMENO UNA condizione è vera.
* L'operatore ! inverte il risultato (true diventa false e viceversa).
*/
let èSocio = false;
let haInvito = true;
let èBannato = false;
// TODO: Stampa true se (èSocio OPPURE haInvito) E NON è bannato.
// OUTPUT ATTESO: true
/**
* ===========================================
* === 8. Mix Finale ===
* Combiniamo aritmetica e logica.
*/
let puntiGiocatore = 150;
let viteRimaste = 0;
let livelloCompletato = true;
// TODO: Il gioco è "vinto" se (puntiGiocatore > 100 OPPURE livelloCompletato) E (viteRimaste > 0). Stampa il risultato.
// OUTPUT ATTESO: false