6.1 KiB
Beslissingen nemen: Studenten Cijferverwerker
Leerdoelen
In deze opdracht oefen je de concepten van besluitvorming uit deze les door een programma te bouwen dat studentencijfers uit verschillende beoordelingssystemen verwerkt. Je gebruikt if...else-verklaringen, vergelijkingsoperatoren en logische operatoren om te bepalen welke studenten hun vakken halen.
De Uitdaging
Je werkt voor een school die onlangs is gefuseerd met een andere instelling. Nu moet je studentencijfers uit twee totaal verschillende beoordelingssystemen verwerken en bepalen welke studenten slagen. Dit is een perfecte kans om je vaardigheden in voorwaardelijke logica te oefenen!
Begrip van de Beoordelingssystemen
Eerste Beoordelingssysteem (Numeriek)
- Cijfers worden gegeven als getallen van 1-5
- Voldoende: 3 en hoger (3, 4 of 5)
- Onvoldoende: Lager dan 3 (1 of 2)
Tweede Beoordelingssysteem (Lettercijfers)
- Cijfers worden gegeven als letters:
A,A-,B,B-,C,C- - Voldoende cijfers:
A,A-,B,B-,C,C-(alle genoemde cijfers zijn voldoende) - Let op: Dit systeem bevat geen onvoldoende cijfers zoals
DofF
Jouw Taak
Gegeven de volgende array allStudents, die alle studenten en hun cijfers vertegenwoordigt, maak je een nieuwe array studentsWhoPass met alle studenten die slagen volgens hun respectieve beoordelingssystemen.
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 = [];
Stapsgewijze Aanpak
- Zet een lus op om elk cijfer in de array
allStudentste doorlopen - Controleer het type cijfer (is het een getal of een string?)
- Pas de juiste beoordelingsregels toe:
- Voor getallen: controleer of het cijfer >= 3 is
- Voor strings: controleer of het een van de geldige voldoende lettercijfers is
- Voeg voldoende cijfers toe aan de array
studentsWhoPass
Handige Code Technieken
Gebruik deze JavaScript-concepten uit de les:
- typeof-operator:
typeof grade === 'number'om te controleren of het een numeriek cijfer is - Vergelijkingsoperatoren:
>=om numerieke cijfers te vergelijken - Logische operatoren:
||om meerdere lettercijfercondities te controleren - if...else-verklaringen: om verschillende beoordelingssystemen te verwerken
- Array-methoden:
.push()om voldoende cijfers toe te voegen aan je nieuwe array
Verwachte Uitvoer
Wanneer je programma wordt uitgevoerd, zou studentsWhoPass het volgende moeten bevatten: ['A', 'B-', 4, 5]
Waarom deze cijfers slagen:
'A'en'B-'zijn geldige lettercijfers (alle lettercijfers in dit systeem zijn voldoende)4en5zijn numerieke cijfers >= 31en2zakken omdat ze numerieke cijfers < 3 zijn
Testen van je Oplossing
Test je code met verschillende scenario's:
// 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
Bonusuitdagingen
Als je de basisopdracht hebt voltooid, probeer dan deze uitbreidingen:
- Voeg validatie toe: Controleer op ongeldige cijfers (zoals negatieve getallen of ongeldige letters)
- Tel statistieken: Bereken hoeveel studenten slagen versus zakken
- Cijferconversie: Converteer alle cijfers naar één numeriek systeem (A=5, B=4, C=3, etc.)
Beoordelingscriteria
| Criteria | Uitmuntend (4) | Voldoende (3) | Redelijk (2) | Onvoldoende (1) |
|---|---|---|---|---|
| Functionaliteit | Programma identificeert correct alle voldoende cijfers uit beide systemen | Programma werkt met kleine problemen of randgevallen | Programma werkt gedeeltelijk maar bevat logische fouten | Programma heeft aanzienlijke fouten of werkt niet |
| Code Structuur | Schone, goed georganiseerde code met correcte if...else-logica | Goede structuur met passende voorwaardelijke verklaringen | Acceptabele structuur met enkele organisatorische problemen | Slechte structuur, moeilijk te volgen logica |
| Gebruik van Concepten | Effectief gebruik van vergelijkingsoperatoren, logische operatoren en voorwaardelijke verklaringen | Goed gebruik van lesconcepten met kleine hiaten | Enig gebruik van lesconcepten maar mist belangrijke elementen | Beperkt gebruik van lesconcepten |
| Probleemoplossing | Toont duidelijk begrip van het probleem en een elegante oplossingsaanpak | Goede probleemoplossingsaanpak met degelijke logica | Voldoende probleemoplossing met enige verwarring | Onduidelijke aanpak, toont geen begrip |
Inleverinstructies
- Test je code grondig met de gegeven voorbeelden
- Voeg opmerkingen toe die je logica uitleggen, vooral bij de voorwaardelijke verklaringen
- Controleer of de uitvoer overeenkomt met de verwachte resultaten:
['A', 'B-', 4, 5] - Overweeg randgevallen zoals lege arrays of onverwachte datatypes
💡 Pro Tip: Begin eenvoudig! Zorg dat de basisfunctionaliteit werkt, en voeg daarna meer geavanceerde functies toe. Onthoud, het doel is om besluitvormingslogica te oefenen met de tools die je in deze les hebt geleerd.
Disclaimer:
Dit document is vertaald met behulp van de AI-vertalingsservice Co-op Translator. Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal moet worden beschouwd als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor eventuele misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling.