Menu
Coddy logo textTech

Noten eintragen

Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 23 von 64.

challenge icon

Aufgabe

Einfach

Füge den Befehl GRADE zu gradebook() hinzu. Lass alle Befehle aus den vorherigen Schritten weiterhin genau wie zuvor funktionieren.

  • GRADE <name> <score>: Wenn der Student nicht gespeichert ist, gib no student <name> zurück. Andernfalls füge die Punktzahl zu den Noten des Studenten hinzu und gib recorded <score> for <name> zurück.

Punktzahlen sind Zahlen wie 90 oder 87.5; gib sie in der Antwort so aus, wie R die Zahl ausgibt.

Der bereitgestellte Code übergibt jede Eingabezeile als einen Befehl an gradebook() und gibt jede zurückgegebene Antwort in einer eigenen Zeile aus. Ein Name ist ein kleingeschriebenes Wort, und die Eingabe enthält nur die bisher beschriebenen Befehle.

Probier es selbst

gradebook <- function(commands) {
  grades <- list()
  replies <- c()
  for (cmd in commands) {
    parts <- strsplit(cmd, " ")[[1]]
    name <- parts[2]
    if (parts[1] == "ADD") {
      if (name %in% names(grades)) {
        replies <- c(replies, paste(name, "already exists"))
      } else {
        grades[[name]] <- numeric(0)
        replies <- c(replies, paste("added", name))
      }
    }
  }
  replies
}

# Bereitgestellter Ein-/Ausgabecode: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
cat(gradebook(input), sep = "\n")

Alle Lektionen in Logik und Ablaufsteuerung

Übe selbstständig: Online-R-Compiler