רישום ציונים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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מטריצות
יצירת מטריצותאינדוקס מטריצותסיכומי שורות ועמודותאריתמטיקה של מטריצותסיכום – תרשים מקומות ישיבהתרגלו בעצמכם: קומפיילר R אונליין