Rückblick – Notenklassifizierer
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 durch Kommas getrennte Liste ganzzahliger Punktzahlen aus der Eingabe. Gib für jede Punktzahl eine Zeile aus:
<score>: <letter> (<status>)Dabei stammt letter aus einem case für die Punktzahl:
90..100→A80..89→B70..79→C60..69→D- alles andere →
F
Und status verwendet einen ternären Operator: passing, wenn die Punktzahl mindestens 60 beträgt, andernfalls failing.
Gib nach der Schleife Top scorer: <score> aus, aber nur 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
Überblick über String-MethodenString-InterpolationStrings durchlaufenSplitten und VerbindenRückblick – String Weaver4Blocks, Procs & Lambdas
Was ist ein Block?do..end vs. geschweifte KlammernDas Schlüsselwort yieldBlock-ParameterProcs und LambdasRückblick – Benutzerdefinierter Iterator2Bereiche
Was ist ein Bereich?BereichsmethodenBereiche in Case / WhenWiederholung – Übung zu Bereichen5Das Enumerable-Kraftpaket
Select und RejectMap verkettenReduce / Injectcount, all?, any?, none?group_by und partitionsort_by, min_by, max_byZusammenfassung – Datenpipeline8Fortgeschrittene Entscheidungsfindung
Case mit Klassen & Regexwhen mit mehreren WertenTernärer OperatorInline-if / unlessRückblick – NotenklassifiziererÜbe selbstständig: Online-Ruby-Compiler