Menu
Coddy logo textTech

בדיקת שייכות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 14 מתוך 64.

x %in% set בודק כל איבר של x ומחזיר ערך לוגי אחד לכל איבר. all() בודק אם כל הבדיקות הן TRUE, ו־any() בודק אם לפחות אחת מהן כזו.

required <- c("flour", "eggs", "milk")
pantry <- c("eggs", "salt", "flour")
print(required %in% pantry)
print(all(required %in% pantry))
print(any(required %in% pantry))

פלט:

[1]  TRUE  TRUE FALSE
[1] FALSE
[1] TRUE

בצעו אינדוקס עם בדיקה שלילית כדי להציג את הפריטים החסרים, לפי הסדר של הווקטור הראשון:

required <- c("flour", "eggs", "milk", "sugar")
pantry <- c("eggs", "flour")
missing <- required[!(required %in% pantry)]
print(missing)

פלט:

[1] "milk"  "sugar"

setequal(a, b) בודקת אם שני וקטורים מכילים את אותם ערכים, בלי להתחשב בסדר ובחזרות:

print(setequal(c("a", "b"), c("b", "a", "a")))
print(setequal(c("a", "b"), c("a", "c")))

פלט:

[1] TRUE
[1] FALSE

בווקטור ריק, all() היא TRUE ו-any() היא FALSE: כשלא נדרש דבר, שום דבר לא חסר.

which() ממירה וקטור לוגי למיקומים של ערכי TRUE שבו, וכך מראה לך היכן נמצאות ההתאמות:

required <- c("flour", "eggs", "milk")
pantry <- c("eggs")
print(which(!(required %in% pantry)))

פלט:

[1] 1 3
challenge icon

אתגר

קל

השלימו את check_recipe(required, pantry). החזירו ready כאשר כל המרכיבים הנדרשים נמצאים במזווה. אחרת החזירו missing: ואחריו המרכיבים החסרים, לפי הסדר של required, כשהם מופרדים באמצעות , .

הקוד שסופק קורא את המרכיבים הנדרשים ואת תכולת המזווה כשורות המופרדות בפסיקים, ומדפיס את הערך שהוחזר.

נסו בעצמכם

check_recipe <- function(required, pantry) {
  # כתבו כאן את הקוד שלכם
  ""
}

# קוד קלט/פלט שסופק: השאירו אותו כפי שהוא
input <- suppressWarnings(readLines(file("stdin")))
cat(check_recipe(strsplit(input[1], ",")[[1]], strsplit(input[2], ",")[[1]]), sep = "\n")
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר R אונליין