סיכום – מחשבון בטוח
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 56 מתוך 64.
אתגר
קשההשלם את evaluate(expr). ביטוי הוא <number> <operator> <number> עם רווחים סביב האופרטור, כגון 8 / 2. העלה שגיאות באמצעות stop() עבור כל בעיה, לפי הסדר הבא:
expected: number operator numberכאשר אין בדיוק שלושה חלקים'<part>' is not a numberעבור חלק המספר הראשון שלא ניתן להמיר, כגון'x' is not a numberunknown operator <op>כאשר האופרטור אינו+,-,*או/division by zero
אחרת החזר את התוצאה, מעוגלת לארבע ספרות אחרי הנקודה העשרונית באמצעות round(value, 4).
לאחר מכן השלם את run_all(exprs): הערך כל ביטוי בתוך tryCatch() והחזר שורה אחת לכל ביטוי, 8 / 2 = 4 או 5 / 0 -> error: division by zero.
הקוד שסופק מעביר כל שורת קלט אל run_all() ומדפיס כל שורה שהוחזרה.
נסו בעצמכם
evaluate <- function(expr) {
# כתבו את הקוד שלכם כאן
0
}
run_all <- function(exprs) {
# כתבו את הקוד שלכם כאן
character(0)
}
# קוד קלט/פלט שסופק: השאירו אותו כפי שהוא
input <- suppressWarnings(readLines(file("stdin")))
cat(run_all(input), sep = "\n")
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
תת־מחרוזות עם substr()עיצוב עם sprintf()פיצול וחיבורחיפוש במחרוזותהחלפת טקסטסיכום – בונה שמות משתמש4מטריצות
יצירת מטריצותאינדוקס מטריצותסיכומי שורות ועמודותאריתמטיקה של מטריצותסיכום – תרשים מקומות ישיבה2שליפות לפי מפתח-ערך
שליפת וקטורים לפי שםבדיקת מפתחותהוספה והסרה של מפתחותמעבר בלולאה על שמותחזרה – דלפק המניות11טיפול בשגיאות
העלאת שגיאות באמצעות stop()תפיסת שגיאות באמצעות tryCatch()אזהרות ו-finallyאימות קלטסיכום – מחשבון בטוחתרגלו בעצמכם: קומפיילר R אונליין