ערכי החזרה
חלק מהיחידה יסודות במסלול ה-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 אונליין