6.3 KiB
Prendere Decisioni: Processore di Voti degli Studenti
Obiettivi di Apprendimento
In questo esercizio, metterai in pratica i concetti di decision-making appresi in questa lezione creando un programma che elabora i voti degli studenti provenienti da diversi sistemi di valutazione. Utilizzerai istruzioni if...else, operatori di confronto e operatori logici per determinare quali studenti superano i loro corsi.
La Sfida
Lavori per una scuola che si è recentemente fusa con un'altra istituzione. Ora devi elaborare i voti degli studenti provenienti da due sistemi di valutazione completamente diversi e determinare quali studenti stanno superando i corsi. Questa è un'ottima opportunità per esercitarti con la logica condizionale!
Comprendere i Sistemi di Valutazione
Primo Sistema di Valutazione (Numerico)
- I voti sono espressi con numeri da 1 a 5
- Voto sufficiente: 3 e superiore (3, 4 o 5)
- Voto insufficiente: Inferiore a 3 (1 o 2)
Secondo Sistema di Valutazione (Lettere)
- I voti sono espressi con lettere:
A,A-,B,B-,C,C- - Voti sufficienti:
A,A-,B,B-,C,C-(tutti i voti elencati sono sufficienti) - Nota: Questo sistema non include voti insufficienti come
DoF
Il Tuo Compito
Dato il seguente array allStudents che rappresenta tutti gli studenti e i loro voti, costruisci un nuovo array studentsWhoPass contenente tutti gli studenti che superano i corsi secondo i rispettivi sistemi di valutazione.
let allStudents = [
'A', // Letter grade - passing
'B-', // Letter grade - passing
1, // Numeric grade - failing
4, // Numeric grade - passing
5, // Numeric grade - passing
2 // Numeric grade - failing
];
let studentsWhoPass = [];
Approccio Passo-Passo
- Imposta un ciclo per esaminare ogni voto nell'array
allStudents - Controlla il tipo di voto (è un numero o una stringa?)
- Applica le regole del sistema di valutazione appropriato:
- Per i numeri: verifica se il voto è >= 3
- Per le stringhe: verifica se è uno dei voti validi sufficienti
- Aggiungi i voti sufficienti all'array
studentsWhoPass
Tecniche di Codice Utili
Utilizza questi concetti di JavaScript dalla lezione:
- Operatore typeof:
typeof grade === 'number'per verificare se è un voto numerico - Operatori di confronto:
>=per confrontare i voti numerici - Operatori logici:
||per verificare più condizioni di voto con lettere - Istruzioni if...else: per gestire i diversi sistemi di valutazione
- Metodi degli array:
.push()per aggiungere i voti sufficienti al nuovo array
Output Atteso
Quando esegui il programma, studentsWhoPass dovrebbe contenere: ['A', 'B-', 4, 5]
Perché questi voti sono sufficienti:
'A'e'B-'sono voti validi con lettere (tutti i voti con lettere in questo sistema sono sufficienti)4e5sono voti numerici >= 31e2sono insufficienti perché sono voti numerici < 3
Testare la Soluzione
Testa il tuo codice con diversi scenari:
// Test with different grade combinations
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
let testGrades2 = [5, 'A', 2, 'C-', 4];
// Your solution should work with any combination of valid grades
Sfide Bonus
Una volta completato l'esercizio base, prova queste estensioni:
- Aggiungi validazione: Controlla la presenza di voti non validi (come numeri negativi o lettere non valide)
- Calcola statistiche: Determina quanti studenti superano e quanti falliscono
- Conversione dei voti: Converti tutti i voti in un unico sistema numerico (A=5, B=4, C=3, ecc.)
Rubrica
| Criteri | Esemplare (4) | Competente (3) | In via di sviluppo (2) | Principiante (1) |
|---|---|---|---|---|
| Funzionalità | Il programma identifica correttamente tutti i voti sufficienti da entrambi i sistemi | Il programma funziona con piccoli problemi o casi limite | Il programma funziona parzialmente ma ha errori logici | Il programma ha errori significativi o non funziona |
| Struttura del Codice | Codice pulito e ben organizzato con logica if...else appropriata | Buona struttura con istruzioni condizionali adeguate | Struttura accettabile con alcuni problemi organizzativi | Struttura scarsa, logica difficile da seguire |
| Uso dei Concetti | Utilizzo efficace di operatori di confronto, operatori logici e istruzioni condizionali | Buon utilizzo dei concetti della lezione con piccole lacune | Utilizzo parziale dei concetti della lezione ma mancano elementi chiave | Utilizzo limitato dei concetti della lezione |
| Risoluzione del Problema | Dimostra una chiara comprensione del problema e un approccio elegante alla soluzione | Buon approccio alla risoluzione del problema con logica solida | Approccio adeguato con qualche confusione | Approccio poco chiaro, non dimostra comprensione |
Linee Guida per la Consegna
- Testa il tuo codice accuratamente con gli esempi forniti
- Aggiungi commenti per spiegare la tua logica, soprattutto per le istruzioni condizionali
- Verifica che l'output corrisponda ai risultati attesi:
['A', 'B-', 4, 5] - Considera i casi limite come array vuoti o tipi di dati imprevisti
💡 Suggerimento Pro: Parti dalle basi! Fai funzionare prima la funzionalità principale, poi aggiungi caratteristiche più sofisticate. Ricorda, l'obiettivo è esercitarti con la logica decisionale utilizzando gli strumenti appresi in questa lezione.
Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione AI Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche potrebbero contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale umana. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.