Menu
CoddyTech

Mencatat Nilai

Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 23 dari 64.

challenge icon

Tantangan

Mudah

Tambahkan perintah GRADE ke gradebook(). Pastikan setiap perintah dari langkah sebelumnya tetap berfungsi persis seperti sebelumnya.

  • GRADE <name> <score>: jika data siswa belum tersimpan, balas no student <name>. Jika tidak, tambahkan skor ke nilai siswa dan balas recorded <score> for <name>.

Skor berupa angka seperti 90 atau 87.5. Tulis skor dalam balasan sesuai cara R mencetak angka tersebut.

Kode yang disediakan meneruskan setiap baris input ke gradebook() sebagai satu perintah dan mencetak setiap balasan yang dikembalikan pada barisnya sendiri. Nama terdiri dari satu kata dengan huruf kecil, dan input hanya berisi perintah yang dijelaskan sejauh ini.

Coba sendiri

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
}

# Kode input/output yang disediakan: biarkan tetap seperti semula
input <- suppressWarnings(readLines(file("stdin")))
cat(gradebook(input), sep = "\n")

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler R online