Rückblick – Noten-Klassifizierer
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 42 von 56.
Kombinieren Sie mehrwertige case-Anweisungen, ternäre Operatoren und Inline-Modifikatoren, um Prüfungsergebnisse in einem kurzen Skript zu klassifizieren.
Aufgabe
MittelLies eine kommagetrennte Liste von ganzzahligen Punktzahlen (Scores) aus der Eingabe ein. Gib für jede Punktzahl eine Zeile aus:
<score>: <letter> (<status>)Wobei letter aus einem case für die Punktzahl ermittelt wird:
90..100→A80..89→B70..79→C60..69→D- alles andere →
F
Und status verwendet einen Ternary-Operator: passing, wenn die Punktzahl mindestens 60 beträgt, andernfalls failing.
Gib nach der Schleife Top scorer: <score> aus: aber nur dann, wenn die maximale Punktzahl 90 oder höher ist (verwende ein Inline-if).
Für die Eingabe 95,72,55,88 lautet die Ausgabe:
95: A (passing)
72: C (passing)
55: F (failing)
88: B (passing)
Top scorer: 95Probier es selbst
scores = gets.chomp.split(",").map(&:to_i)
# TODO: Für jede Punktzahl gib "<n>: <letter> (<status>)" aus
# TODO: Gib "Top scorer: <max>" nur aus, wenn max >= 90 ist
Alle Lektionen in Logik & Programmfluss
1Strings im Detail
String-Methoden im ÜberblickString-InterpolationIterieren über StringsSplit und JoinRückblick – String Weaver4Blöcke, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas yield-SchlüsselwortBlock-ParameterProcs und LambdasZusammenfassung – Eigener Iterator7Hashes Teil 2
Hash.new mit StandardwertenIterieren über HashesVerschachtelte HashesZusammenführen und TransformierenRückblick – Häufigkeitszähler10Projekt - Studentenverwaltung
ProjektübersichtStudent hinzufügen5Enumerable-Kraftpaket
Select und RejectMap-VerkettungReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Data Pipeline8Fortgeschrittene Entscheidungslogik
Case mit Klassen & RegexMulti-Value whenTernärer OperatorInline if / unlessRückblick – Noten-Klassifizierer