rinomina esercizi js
This commit is contained in:
19
javascript/02_Operatori/esercizi/calcolo_stipendio.js
Normal file
19
javascript/02_Operatori/esercizi/calcolo_stipendio.js
Normal 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]".
|
||||
*/
|
||||
|
||||
|
||||
30
javascript/02_Operatori/esercizi/debug_media_voti.js
Normal file
30
javascript/02_Operatori/esercizi/debug_media_voti.js
Normal 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);
|
||||
15
javascript/02_Operatori/esercizi/logica_range.js
Normal file
15
javascript/02_Operatori/esercizi/logica_range.js
Normal 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.
|
||||
*/
|
||||
|
||||
|
||||
22
javascript/02_Operatori/extra/debug_precedenza_logica.js
Normal file
22
javascript/02_Operatori/extra/debug_precedenza_logica.js
Normal 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
|
||||
30
javascript/02_Operatori/extra/sistema_sicurezza.js
Normal file
30
javascript/02_Operatori/extra/sistema_sicurezza.js
Normal 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
|
||||
*/
|
||||
27
javascript/02_Operatori/extra/statistiche_personaggio.js
Normal file
27
javascript/02_Operatori/extra/statistiche_personaggio.js
Normal 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
|
||||
*/
|
||||
107
javascript/02_Operatori/tutorial_interattivo.js
Normal file
107
javascript/02_Operatori/tutorial_interattivo.js
Normal 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
|
||||
Reference in New Issue
Block a user