Rückblick – Häufigkeitszähler
Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 37 von 56.
Führen Sie Hashes mit Standardwerten, Iteration und Sortierung aus den vorherigen Kapiteln in einer klassischen Herausforderung zusammen: einem Wortfrequenzbericht.
Aufgabe
MittelLies eine einzelne Eingabezeile, einen Satz. Erstelle ein Hash.new(0), das jedes Wort (anhand von Leerzeichen getrennt, kleingeschrieben) seiner Häufigkeit zuordnet.
Gib dann Folgendes aus:
- Die Gesamtzahl der eindeutigen Wörter
- Eine Zeile pro Wort in absteigender Häufigkeit (Gleichstände werden alphabetisch nach Wort aufgelöst) in diesem Format:
<word>: <count>
Für die Eingabe the quick brown fox jumps over the lazy dog the dog lautet die Ausgabe:
8
the: 3
dog: 2
brown: 1
fox: 1
jumps: 1
lazy: 1
over: 1
quick: 1Probier es selbst
input = gets.chomp
# TODO: Erstelle ein Hash.new(0) von Wort → Anzahl, dann gib aus:
# 1) die Anzahl der eindeutigen Wörter
# 2) Einträge sortiert nach Anzahl absteigend, bei Gleichstand nach Wort aufsteigend
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