إضافة الطلاب
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 22 من 64.
في هذا المشروع، تبني دفتر درجات يقرأ الأوامر، أمرًا واحدًا في كل سطر، ويرد على كل منها. وعبر خمس خطوات، يتعلم إضافة الطلاب، وتسجيل الدرجات، وإعداد تقارير بالمتوسطات، والعثور على الطالب المتفوق. تعمل كل خطوة على توسيع الدالة نفسها gradebook(commands).
ADD ada
GRADE ada 90
AVG ada
REPORT
TOPتوجد الدرجات في قائمة مُسمّاة: يربط اسم كل طالب بمتجه رقمي يحتوي على درجات ذلك الطالب. تناسب القائمة هذا الاستخدام لأن كل طالب يمتلك عدة قيم.
grades <- list()
grades[["ada"]] <- numeric(0)
grades[["ada"]] <- c(grades[["ada"]], 90)
print(length(grades[["ada"]]))
print(names(grades))الناتج:
[1] 1
[1] "ada"إن numeric(0) متجه رقمي فارغ. لن ينجح إسناد c() هنا: فهو NULL، وإسناد NULL يزيل إدخالًا من القائمة.
يتم تقسيم كل أمر عند المسافات، لذا فإن parts[1] هو الأمر وparts[2] هو الاسم. وتحدد سلسلة if / else if الإجراء الذي يجب تنفيذه:
for (cmd in commands) {
parts <- strsplit(cmd, " ")[[1]]
name <- parts[2]
if (parts[1] == "ADD") {
# معالجة ADD
}
}يتم تجميع الردود باستخدام replies <- c(replies, ...) وإرجاعها في النهاية.
التحدي
سهلأكمل gradebook(commands) للأمر الأول:
ADD <name>: إذا كان الطالب جديدًا، خزّنه دون درجات وردّ بالعبارةadded <name>. وإذا كان الاسم مخزّنًا بالفعل، فردّ بالعبارة<name> already exists.
يمرّر الكود المزوّد كل سطر إدخال إلى gradebook() باعتباره أمرًا واحدًا، ويطبع كل رد مُعاد في سطر مستقل. الاسم عبارة عن كلمة واحدة بأحرف صغيرة، ويحتوي الإدخال فقط على الأوامر الموضّحة حتى الآن.
جرّب بنفسك
gradebook <- function(commands) {
grades <- list()
replies <- c()
for (cmd in commands) {
parts <- strsplit(cmd, " ")[[1]]
name <- parts[2]
# اكتب الكود الخاص بك هنا
}
replies
}
# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input <- suppressWarnings(readLines(file("stdin")))
cat(gradebook(input), sep = "\n")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهمتدرّب بنفسك: مترجم R عبر الإنترنت