ערכי החזרה
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 48 מתוך 78.
עד כה, הפונקציות שלנו הדפיסו פלט ישירות. אבל לעיתים קרובות תרצו שפונקציה תחשב ערך ותחזיר אותו כדי שתוכלו להשתמש בו במקום אחר בקוד שלכם. כאן נכנסים לתמונה ערכי החזרה.
השתמשו בפונקציה return() כדי להחזיר ערך מהפונקציה שלכם:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)פלט:
[1] 8במקום להדפיס בתוך הפונקציה, אנחנו מחזירים את הסכום. לאחר מכן אפשר לשמור את הערך המוחזר במשתנה, להשתמש בו בחישובים או להעביר אותו לפונקציות אחרות.
כך פונקציות הופכות לרב־תכליתיות הרבה יותר:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))פלט:
[1] 16ב-R, אם לא משתמשים ב-return(), הפונקציה מחזירה אוטומטית את הביטוי האחרון שהוערך. עם זאת, שימוש מפורש ב-return() הופך את הקוד לברור יותר, והוא שימושי במיוחד כשרוצים לצאת מפונקציה מוקדם.
אתגר
קלצרו פונקציה בשם calculate_power שמקבלת שני ארגומנטים: base ו-exponent. הפונקציה צריכה להחזיר את התוצאה של העלאת הבסיס בחזקת המעריך (באמצעות האופרטור ^).
קראו שני מספרים מהקלט, המירו אותם לערכים מספריים וקראו לפונקציה שלכם. שמרו את הערך שהוחזר במשתנה בשם result, ואז הדפיסו את result.
לדוגמה, אם הקלט הוא 2 ו-3, הפלט אמור להיות:
[1] 8אם הקלט הוא 5 ו-2, הפלט אמור להיות:
[1] 25נסו בעצמכם
# קרא את הקלט
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: צור פונקציה בשם calculate_power שמקבלת את base ואת exponent
# ומחזירה את base בחזקת exponent באמצעות האופרטור ^
# TODO: קרא לפונקציה שלך עם ערכי הקלט ושמור את התוצאה ב-'result'
# הצג את התוצאה
print(result)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין