PracticU

מערך - Array - שפת Swift

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

מערך - Array - שפת Swift
המערך הוא מבנה הנתונים שבו משתמשים ב-Swift כדי לשמור רשימה של ערכים מאותו טיפוס. הוא מתנהג כמו רשימה דינמית, כך שאפשר להוסיף לו איברים גם אחרי שהוגדר.
הצעדים העיקריים
1. הגדרה בסינטקס מקוצר: רשימת הערכים נכתבת בתוך סוגריים מרובעים, למשל רשימת שמות של מחרוזות או רשימת מספרים. כל האיברים צריכים להיות מאותו טיפוס.
2. הוספת איברים: הפעולה append מוסיפה איבר לסוף המערך, וזה אפשרי גם אחרי שהמערך הוגדר.
3. ספירת איברים: התכונה count מחזירה את מספר האיברים שנמצאים במערך כרגע.
4. מעבר על המערך: לולאת for רצה על האיברים עצמם, בדומה ללולאת for each בשפות אחרות, ולא על אינדקסים.
5. מערך ריק: כשצריך מערך בלי איברים בהתחלה, מציינים את הטיפוס ומאתחלים אותו, למשל [Int](). המרצה מציג גם כמה סינטקסים נוספים להתחלת מערך.
6. הסרת איבר: הפעולה remove(at:) מקבלת אינדקס, מסירה את האיבר ומחזירה אותו, כך שאפשר להדפיס אותו או להשתמש בו.
7. אינדקס וערך יחד: enumerated() נותן בלולאה גם את המספר הסידורי וגם את האיבר.
8. סדר קבוע: המערך שומר על הסדר שבו הוכנסו האיברים, וכך הם מודפסים.
תרגיל
התרגיל מבוסס על סדרת פיבונאצ'י, שבה כל מספר הוא סכום שני המספרים שלפניו. התרגילים עולים בקושי: הדפסה של כל האיברים, חישוב סכום וממוצע, חישוב האיבר הבא והוספתו למערך.
בסיום השיעור תדעו להגדיר מערך, להוסיף לו איברים, לספור אותם ולרוץ עליהם בלולאה.
השיעור הבא בקורס: מילון - Dictionary - שפת Swift

פרקי ההרצאה: מערך - Array - שפת Swift

  1. 00:00

    מבוא למערך Array בסוויפט

  2. 00:42

    הגדרת מערך בסינטקס מקוצר

  3. 01:21

    הוספת איברים למערך עם append

  4. 01:57

    ספירת איברים במערך עם count

  5. 02:33

    מעבר על איברי המערך בלולאה

  6. 03:53

    אתחול מערך ריק והדרכים לאתחול

  7. 05:33

    הסרת איבר ממערך עם remove

  8. 06:32

    מעבר על מערך עם אינדקס וערך

תמלול ההרצאה: מערך - Array - שפת Swift

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

  1. 00:02

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

  2. 00:32

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

  3. 01:03

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

  4. 01:21

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

  5. 01:37

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

  6. 01:53

    אז א', אתם רוצים להכיר את הפעולה הפנד, ב', אנחנו רוצים להכיר גם את ה-count, בסדר? אז ה-count עוזר לי לדעת כמה איברים יש, למשל אנחנו נרצה לדעת כמה איברים יש במערך הזה אחרי הפנד, כמה אתם אומרים?

  7. 02:11

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

  8. 02:21

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

  9. 02:33

    אם אתם רוצים לרוץ על מערך ITERATE OVER NRA, אמרנו שגם נראה את הנולאות הקשורות, אנחנו יכולים להשתמש בלולה שלנו בצורה הבאה עבור כל איבר אייטם נקרא לו או נאמבר כלשהו מתוך המערך אם ARR תעשה אוקיי ואם אני אדפיס עכשיו את הנאם שלי הנאם שלי יהיה פעם 1 אחר כך 2 אחר כך 3 אחר כך 4 וכדי שלא תצאו מפה

  10. 03:06

    כשאתם עדיין לא מבינים עד הסוף אז אם אני אכניס 15 אז הלולה הזאת תדפיס 1 תראה את שורה אחר כך תדפיס 2 3 4 ובסוף תדפיס גם את ה-15 בסדר זה הפלט שיודפס לי כאן זה יהיה כל הפלט זאת אומרת הלולה הזאת לא נותנת לי אינדקס אלא היא נותנת לי את האיבר במערך בדומה אולי אתם מכירים לולאות for each בשפות

  11. 03:38

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

  12. 03:56

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

  13. 04:22

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

  14. 04:35

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

  15. 04:51

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

  16. 05:03

    בואו נראה, var פיב 2, דרך אחרונה, בהחלט. אנחנו יכולים לומר שהוא שווה ל-int array, לצורה הבאה array של אינטים, כמו בשפות אחרות. דרך אגב, יש גם את הסינטקס הזה, קוראים לו בשפות אחרות תקראו לו generics אוקיי אני לא ממליץ להשתמש בזה בסוויפט זה יותר סינטקס ששייך לשפות אחרות אבל מגניב טוב לדעת ראינו

  17. 05:33

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

  18. 05:58

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

  19. 06:11

    הפעולה רמוב תדפיס לי את ה-1 ולאחריו המערך יישארו בו 2,3,4 ו-15. תסיר את האיבר האפס וגם תחזיר לי אותו ואני אוכל להדפיס אותו או להשתמש בו כראות עיניי. בסדר?

  20. 06:29

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

  21. 06:45

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

  22. 07:10

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

  23. 07:39

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

  24. 08:10

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

  25. 08:36

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

  26. 08:57

    במקרה כזה אולי נגדיר את i להיות אחד ונעשה i++ בתוך הלולה או שנשתמש בסינטקס אלטרנטיבי. בואו נראה את הסינטקס. אנחנו נרוץ על names.enumerated ואז אנחנו נקבל לא רק את ה-name אלא גם את ה-name וגם את האינדקס ואז נוכל להדפיס את ה-NAME וגם אם תרצו אפשר להדפיס את האינדקס בוא נעשה ככה טרינג אינטרפוליישן

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

ההרצאה הקודמת: לולאות - for - while - שפת Swift

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

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

  • מערך של מבנים - Array
  • קורס סי-שארפ - מערך - Array
  • מערך Array ב-TypeScript
  • מערך Array ב-Javascript

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

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