מה לקנות
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 78 מתוך 78.
אתגר
קלצרו פונקציה בשם what_to_buy שמקבלת שני ארגומנטים: budget (ערך מספרי) ו-prices (וקטור בעל שמות של מחירי פריטים). הפונקציה צריכה להחזיר וקטור תווים שמכיל את שמות כל הפריטים שמחיריהם קטנים מהתקציב או שווים לו.
אם אין פריטים שאפשר להרשות לעצמכם, החזירו וקטור תווים ריק באמצעות character(0).
תקבלו את הקלטים הבאים:
- סכום התקציב (מספר)
- רשימה של שמות פריטים המופרדים בפסיקים (לדוגמה,
apple,banana,steak,bread) - רשימה של המחירים המתאימים המופרדים בפסיקים (לדוגמה,
2,1,15,3)
נתחו את הקלטים כדי ליצור וקטור בעל שמות של מחירים, קראו לפונקציה שלכם והדפיסו את התוצאה. השתמשו ב-print() כדי להציג את וקטור התווים שהוחזר.
לדוגמה, אם הקלט הוא:
5
apple,banana,steak,bread
2,1,15,3הפלט צריך להיות:
[1] "apple" "banana" "bread"אם הקלט הוא:
10
laptop,phone,tablet
999,599,399הפלט צריך להיות:
character(0)רמזים:
- השתמשו ב-
strsplit(input, ",")[[1]]כדי לפצל מחרוזות המופרדות בפסיקים לווקטורים - השתמשו ב-
as.numeric()כדי להמיר את מחרוזות המחירים למספרים - השתמשו ב-
names(prices) <- item_namesכדי ליצור וקטור בעל שמות - השתמשו באינדוקס לוגי עם
names()כדי לחלץ את שמות הפריטים שאפשר להרשות לעצמכם
נסו בעצמכם
# קראו את הקלט
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# פענחו את נתוני הקלט
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# צרו וקטור מחירים בעל שמות
prices <- price_values
names(prices) <- item_names
# TODO: כתבו למטה את הפונקציה what_to_buy
# הפונקציה צריכה לקבל את budget ואת prices כארגומנטים
# ולהחזיר וקטור מחרוזות של שמות פריטים שאפשר לקנות במסגרת התקציב
# קראו לפונקציה והדפיסו את התוצאה
result <- what_to_buy(budget, prices)
print(result)כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטריםתרגלו בעצמכם: קומפיילר R אונליין