PracticU

קבוצות - Sets - שפת Swift

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode › קבוצות - Sets - שפת Swift
מילון מושגים:
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.

קבוצות - Sets - שפת Swift
הקבוצה, או Set ב-Swift, היא אוסף של איברים שלא מאפשר כפילויות ואינו שומר על סדר. היא שימושית כשצריך לדעת אילו ערכים ייחודיים יש, ולא באיזה מקום הם נמצאים.
הצעדים העיקריים
1. הבדל מהמערך: מערך שומר כפילויות וסדר, ואילו קבוצה מסננת כפילויות אוטומטית ואין בה חשיבות לסדר.
2. יצירה והכנסה: מגדירים קבוצה מטיפוס מסוים, למשל מחרוזות, ומכניסים איברים בעזרת insert. ניסיון להכניס ערך שכבר קיים לא יוסיף אותו שוב.
3. גודל הקבוצה: התכונה count מחזירה את מספר האיברים הייחודיים שבקבוצה.
4. איחוד: union מחזירה קבוצה שמכילה את כל האיברים משתי הקבוצות, בלי כפילויות. בדוגמה של שני חוגים, כל התלמידים מופיעים פעם אחת, גם מי שלומד בשניהם.
5. חיתוך: intersection מחזירה רק את מי שנמצא בשתי הקבוצות. בדוגמה, התלמיד שלומד בשני החוגים הוא התשובה.
6. חיסור: subtracting מחזירה את האיברים שבקבוצה הראשונה ולא נמצאים בשנייה.
7. הפרש סימטרי: symmetricDifference מחזירה את האיברים שנמצאים רק באחת משתי הקבוצות, כלומר בלי החלק המשותף.
8. המרה למבנים אחרים: מערך מומר לקבוצה כדי להסיר ממנו כפילויות, ואפשר להמיר בחזרה למערך, ממויין בעזרת sorted או בלי מיון. גם מפתחות או ערכים של מילון אפשר להמיר לקבוצה.
שימו לב
בקבוצה לא מסתמכים על מקום של איבר, כי אין בה סדר. כשצריך סדר, משתמשים במערך.
בסיום השיעור תדעו להשתמש בקבוצה כדי למנוע כפילויות ולנתח השוואה בין שני אוספים בלי לולאות מסובכות.
השיעור הבא בקורס: פונקציות - Functions

פרקי ההרצאה: קבוצות - Sets - שפת Swift

  1. 00:00

    מבוא לקבוצה Set וההבדל ממערך

  2. 00:42

    תכונות הקבוצה: סדר לא חשוב וכפילויות

  3. 01:22

    מתי כדאי להשתמש בקבוצה

  4. 02:17

    הגדרת Set והכנסת איברים עם insert

  5. 03:04

    ספירת איברים בקבוצה עם count

  6. 03:40

    הדפסת קבוצה ובדיקת סדר ההכנסה

  7. 05:08

    פעולות על קבוצות: חיתוך והפרש

  8. 06:05

    איחוד קבוצות עם union

תמלול ההרצאה: קבוצות - Sets - שפת Swift

הטקסט המלא של הדקות הראשונות בהרצאה «קבוצות - Sets - שפת Swift» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:15

    קבוצה, כמו שאנחנו נראה בסרטון הדגמה, היא פשוט אוסף של איברים בדומה למבנה הנתונים האחרים. אז מה מייחד בכל זאת את הקבוצה על פני מערך או מילון?

  3. 00:29

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

  4. 00:49

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

  5. 01:00

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

  6. 01:17

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

  7. 01:26

    לפני שנעבור לדוגמאות אז אני רוצה להגיד עוד כמה מילים על הסיבות שבגללה אני רוצה להשתמש בקבוצה. קודם כל קבוצה עוזרת לנו למנוע כפילויות אז זה ה-use case הבסיסי ביותר והחשוב ביותר להשתמש בקבוצה זה באופן אוטומטי מבנה נתונים שמסנן את כל מה שכפול.

  8. 01:45

    דבר שני וחשוב לא פחות קבוצה אפשר לעשות איתה הרבה מאוד פעולות שאנחנו כמובן נראה אחת אחת בכל סרטוני הדגמה שנקראות חיתוך איחוד הפרש בין קבוצות ואפילו הפרש סימטרי כלומר קבוצות מאפשרות לי לנתח את המידע שנמצא בפנים על ידי סדרת פעולות מוגדרות והן כבר נמצאות בתוכנה אז אני אראה לכם בסרטונים אוסף של מקרים שבהם

  9. 02:11

    כדאי לנו מאוד להשתמש בקבוצה בנוסף ל-Use Case הבסיסי ביותר למנוע כפילויות בואו קודם כל נראה איך להגדיר קבוצה אז אני פשוט מגדיר לעצמי קבוצה בצורה הבאה var בוא נאמר group כלשהו ופה אנחנו נרצה לייצר אולי סט חדש קבוצה באנגלית למקרה שלא ציינו את זה קודם נקראת סט עכשיו אני רוצה לייצר לעצמי סט של סטרינגים סט של מכרוזות

  10. 02:41

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

  11. 02:41

    לנסות להכניס כמה דברים שאני רוצה אבל מה קורה אם אני מנסה לשלול דברים אותו דבר? מה יהיה בקבוצה באמת? בואו נדפיס רגע את הקבוצה וננסה לבדוק את העניין הזה.

  12. 03:09

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

  13. 03:31

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

  14. 03:58

    שלישי אני אריץ שוב את התוכנית ובואו ננסה לראות מה יהיה הסדר אחרי ההדפסה, מה יהיה סדר ההדפסה. אנחנו רואים את סדר ההכנסה אבל סדר ההדפסה הוא שונה, ג'וש אין חשיבות לסדר, אני לא יכול לטעון פה איזשהו סדר מסוים.

  15. 04:17

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

  16. 04:41

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

  17. 05:07

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

  18. 05:19

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

  19. 05:41

    תחשבו שיש לכם כמה תלמידים ואתם רוצים לסנן אותם לדעת איזה תלמידים שלכם שלומדים קסנתר גם לומדים גיטרה או להפך בסדר שלומדים את זה ולא את השני או לומדים גם וגם או לא לומדים אף אחד כל הפעולות האלה אתם יכולים לעשות אותן או בקושי רב בתכנות רגיל או פשוט להשתמש בקבוצה קבוצה עוזרת לנו לנתח את המידע שלנו בצורה מאוד יעילה

  20. 06:09

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

  21. 06:35

    עכשיו בוא נאמר שאני מייצר קבוצה שנייה אסור לי לייצר את הקבוצה הבלית כי אז אני לא אוכל להכניס לשם כלום נכון לא רוצה שהקבוצה תהיה קבוע אני רוצה שהיא תהיה משתנה אני אייצר קבוצה שנייה גרופ 2 ובוא נאמר שיש לנו פה גם כן אוסף של תלמידים אבל בחוג אחר בסדר נגיד אלה הקודמים למדו חוג גיטרה ופה אנחנו מלמדים חוג פסלתר בסדר אז לגרופ 2 אני אוסיף את התלמידים שלומדים

  22. 07:01

    בו על ידי הפעולה אינסרט בוא נגיד דינה לומדת בקבוצה מספר 2 דפנה וגם ג'וש עכשיו בואו נראה מה יהיה האיחוד של שתי הקבוצות האלה בואו פשוט ניקח את גרופ 1 ופשוט אנחנו רוצים לאחד אותו על ידי הפעולה יוניון יוניון נקראת איחוד בעברית ואנחנו רוצים לאחד את גרופ 2 עכשיו מה לדעתכם תהיה

  23. 07:22

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

לקורס המלא: קורס פיתוח אפליקציות לאייפון

ההרצאה הקודמת: מילון - Dictionary - שפת Swift

ההרצאה הבאה: פונקציות - Functions

הרצאות קשורות מקורסים אחרים

  • קבוצות שקילות
  • קבוצות - Exchange 365
  • סוגי קבוצות
  • ניהול קבוצות בשרת לינוקס

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון