Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تسجيل الدرجات

جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 23 من 64.

challenge icon

التحدي

سهل

أضف الأمر GRADE إلى gradebook(). أبقِ كل أمر من الخطوات السابقة يعمل تمامًا كما كان من قبل.

  • GRADE <name> <score>: إذا لم يكن الطالب مخزّنًا، فأرجِع no student <name>. وإلا فألحِق الدرجة بدرجات الطالب وأرجِع recorded <score> for <name>.

الدرجات أرقام مثل 90 أو 87.5؛ اكتبها في الرد بالطريقة التي تطبع بها R الرقم.

يمرّر الكود المزوّد كل سطر إدخال إلى gradebook() باعتباره أمرًا واحدًا، ويطبع كل رد مُعاد في سطر مستقل. الاسم كلمة واحدة مكوّنة من أحرف صغيرة، ولا يحتوي الإدخال إلا على الأوامر الموضّحة حتى الآن.

جرّب بنفسك

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
}

# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input <- suppressWarnings(readLines(file("stdin")))
cat(gradebook(input), sep = "\n")

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم R عبر الإنترنت