تسجيل الدرجات
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 23 من 64.
التحدي
سهلأضف الأمر 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")
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهمتدرّب بنفسك: مترجم R عبر الإنترنت