Menu
Coddy logo textTech

Datentransformator

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy. Lektion 56 von 56.

Die Abschlussaufgabe: Forme einen Datensatz in einen Übersichtsbericht um. Kombiniere Filtern, Zuordnen, Gruppieren, Fehlerbehandlung und die Definition von Methoden in einem Programm.

challenge icon

Aufgabe

Mittel

Das Array students ist gegeben. Jeder Eintrag ist ein Hash mit :id, :grades (ein möglicherweise leeres Array von Ganzzahlen) und :subjects (ein Array von Zeichenketten).

Definiere eine Methode transform_dataset(students), die einen Hash mit zwei Schlüsseln zurückgibt:

  • :qualified_ids: sortiertes Array der :ids von Studierenden, die mindestens eine Note haben und bei denen all Noten strikt über 70 liegen (verwende all?).
  • :subject_counts: ein Hash, der jedes von den qualifizierten Studierenden belegte Fach der Anzahl der qualifizierten Studierenden zuordnet, die es belegen.

Wenn das :grades-Array eines Studierenden leer ist, ist die Person nicht qualifiziert; überspringe sie stillschweigend.

Rufe anschließend die Methode auf und gib Folgendes aus:

  1. Die qualifizierten IDs, verbunden mit , und mit Qualified: als Präfix. Wenn keine vorhanden sind, gib Qualified: (none) aus.
  2. Eine Zeile pro Fach (alphabetisch sortiert) im Format <subject>: <count>.

Für das standardmäßige students lautet die Ausgabe:

Qualified: S1, S4
biology: 1
history: 1
math: 2
physics: 1

Probier es selbst

students = [
  { id: "S1", grades: [85, 92, 78], subjects: ["math", "physics"] },
  { id: "S2", grades: [65, 80, 90], subjects: ["math", "biology"] },
  { id: "S3", grades: [],          subjects: ["art"] },
  { id: "S4", grades: [88, 95],    subjects: ["math", "biology", "history"] },
  { id: "S5", grades: [70, 75],    subjects: ["chemistry"] }
]

# TODO: def transform_dataset(students), return { qualified_ids:, subject_counts: }
# TODO: qualifizierte IDs und Fächeranzahlen ausgeben
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Programmfluss

Übe selbstständig: Online-Ruby-Compiler