Return to Video

שינוי מערכים - Modifying Arrays (Video Version)

  • 0:01 - 0:04
    עד כה, ראינו איך ליצור מערך ואיך לגשת אליו.
  • 0:04 - 0:13
    אבל, בדיוק כמו משתנים אחרים, אחד הדברים
    המגניבים לגבי מערכים הוא היכולת לשנות אותם
    באופן דינמי בזמן שהתוכנית רצה.
  • 0:13 - 0:16
    אוקיי, תנו לי רגע להראות לכם למה אני מתכוונת.
  • 0:16 - 0:21
    יש לנו כאן תוכנית שמציגה את Hopper
    שמחזיק כמה בלונים - ממש חמוד.
  • 0:21 - 0:29
    איך שזה עובד זה שיש לנו מערך של מיקומים
    xPositions שיש בו שני מספרים, שאומרים
    היכן אנחנו רוצים להציג את הבלונים.
  • 0:29 - 0:35
    ואז כאן למטה יש לנו לולאה,
    והלולאה הזו עוברת על כל האיברים של המערך
  • 0:35 - 0:47
    ועבור כל אחד מהם, היא מציררת קו ממיקום
    ה-x הזה ליד של Hopper,
    ואז מציירת אליפסה במיקום ה-x הזה בגודל
    30x40 פיקסלים, וזה הבלון שלנו.
  • 0:47 - 0:58
    אוקיי, מגניב. עכשיו שאנו רואים איך זה עובד,
    אנחנו יודעים שאם נרצה שעוד בלון יופיע,
    אנחנו יכולים פשוט להוסיף עוד מספר למערך.
    למשל 300.
  • 0:58 - 1:02
    יפה. עכשיו יש לנו שלושה בלונים, ו-Hopper שמח.
  • 1:02 - 1:11
    אבל נניח שאנחנו רוצים לתת למשתמש שלא
    יודע לתכנת את היכולת להוסיף בלונים חדשים.
  • 1:11 - 1:18
    אז רצינו לתת את התוכנית למשתמש ולומר לו -
    "היי, אתה יכול ללחוץ איפה שאתה רוצה את הבלון,
    והבלון יופיע."
  • 1:18 - 1:21
    זה יהיה מגניב, לא? אני חושבת שכן.
  • 1:21 - 1:27
    אז, איך נעשה את זה? אנחנו רוצים
    שהתוכנית שלנו תשתנה עם הזמן, נכון?
  • 1:27 - 1:30
    בכל פעם שהמשתמש לוחץ,
    בלון יופיע במקום שהוא לחץ.
  • 1:30 - 1:38
    נתחיל בלהזיז את כל הקוד הזה לתוך
    פונקציית ציור (draw) כדי שיהיה קל
    לשנות את זה עם הזמן.
  • 1:38 - 1:43
    נזיז את זה למטה ונוסיף הזחה ימינה. אוקיי, נהדר.
  • 1:43 - 1:48
    עכשיו נרצה לבדוק,
    האם המשתמש לוחץ על העכבר ברגע זה?
  • 1:48 - 1:55
    אנחנו יכולים לעשות זאת עם תנאי if.
    אז נרשום if (mouseIsPressed),
    ואז נעשה משהו.
  • 1:55 - 2:01
    מה נעשה? אם העכבר לחוץ,
    אנחנו רוצים איכשהו להוסיף מספר למערך הזה.
  • 2:01 - 2:04
    בואו נחזיר אותו למצב שיכיל רק שני איברים. אוקיי.
  • 2:04 - 2:10
    אנחנו רוצים להוסיף מספר למערך הזה איכשהו.
    אני אראה לכם דרך אחת שנוכל לעשות זאת.
  • 2:10 - 2:19
    נרשום
    xPositions[2] = mouseX;
  • 2:19 - 2:22
    אוקיי, תנו לי רק להראות לכם שזה עובד
  • 2:22 - 2:27
    לחצתי, והנה יש לי בלון. אז מה זה עשה?
  • 2:27 - 2:38
    זה אומר שאנחנו מסתכלים על המערך,
    ומוצאים את האיבר במקום ה-2, ותזכרו שזה האיבר
    השלישי כי המערכים שלנו מתחילים מאפס.
  • 2:38 - 2:42
    אבל אתם רואים שאין איבר שלישי, נכון?
    אין שום דבר במקום הזה.
  • 2:42 - 2:46
    אז כתוב כאן שנמצא את המקום הזה,
    ונשים בו את mouseX.
  • 2:46 - 2:51
    לא היה שם כלום, ועכשיו במקום כלום
    זה יכיל את mouseX.
  • 2:51 - 3:00
    עכשיו המערך שלנו מכיל שלושה פריטים,
    ולולאת ה-for הזו כאן למטה עוברת עליו,
    ומציירת גם את הבלון השלישי הזה
  • 3:00 - 3:04
    די מגניב, עכשיו אני אלחץ עוד ונראה איך זה עובד.
  • 3:04 - 3:11
    אתם רואים שבכל פעם שאני לוחצת, זה מצייר
    את הבלון השלישי במקום שלחצתי עם העכבר
  • 3:11 - 3:19
    זה כי אנחנו כל הזמן דורסים את המקום ה-2,
    הדבר שנמצא באינדקס 2.
  • 3:19 - 3:23
    אנחנו כל הזמן דורסים אותו עם ה-mouseX הנוכחי.
  • 3:23 - 3:35
    אז תמיד יהיו לנו רק שלושה בלונים כי יש לנו
    את זה במקום ה-0, את זה במקום ה-1,
    ואנחנו תמיד משנים את המקום ה-2. אוקיי?
  • 3:35 - 3:40
    זה מגניב, אבל מה שאנחנו באמת רוצים זה לתת
    למשתמש ליצור המון בלונים, נכון?
  • 3:40 - 3:44
    כך שבכל פעם שהוא לוחץ, יש בלון חדש.
  • 3:44 - 3:51
    זה אומר שאנחנו צריכים כל הזמן להגדיל
    את האינדקס של האיבר במערך
    שאנחנו שומרים בו את המיקום.
  • 3:51 - 3:56
    אנחנו לא רוצים שהוא יהיה 2 כל הזמן,
    אנחנו רוצים שהוא יהיה 2, ואז 3, ואחר כך 4,
    ואז 5, ואז 6, וכן הלאה.
  • 3:56 - 4:01
    אנחנו יכולים לעשות את זה באמצעות משתנה סופר -
    counter. נרשום newInd = 2;
  • 4:01 - 4:06
    זה מה שהוא יתחיל איתו,
    ואז כאן נרשום newInd במקום 2.
  • 4:06 - 4:10
    ואז מה שאנחנו באמת רוצים לעשות זה
    לרשום
    newInd++
  • 4:10 - 4:16
    כלומר בכל פעם נוסיף לו 1.
    הוא יתחיל בתור 2, ואז יהפוך ל-3, ואז ל-4.
  • 4:16 - 4:18
    בכל פעם שלוחצים על העכבר, האינדקס יגדל.
    בואו ננסה את זה.
  • 4:18 - 4:22
    יופי! המון בלונים. מסיבת בלונים!
  • 4:22 - 4:32
    זה מגניב, נכון? אבל זו לא הדרך הכי טובה
    לעשות את זה, כי מסתבר שלהוסיף פריטים
    למערך זה משהו שנרצה לעשות הרבה
  • 4:32 - 4:35
    כך שיש לנו דרך פשוטה יותר לעשות זאת.
  • 4:35 - 4:43
    תנו לי רק למחוק את הדברים שעשינו.
    אוקיי, אנחנו לא צריכים את זה יותר.
    נהפוך את להערה.
  • 4:43 - 4:51
    אוקיי, אז עושים את זה כך -
    xPositions.push ואז mouseX.
  • 4:51 - 4:57
    אז מה שעשינו כאן זה לקרוא למתודה push
    על המערך xPositions.
  • 4:57 - 5:05
    כלומר אנחנו קוראים לסוג של פקודה על המערך.
    אנחנו אומרים למערך, "היי, תכניס את הערך החדש
    הזה, שנמצא ב-mouseX, תכניס אותו בסוף המערך".
  • 5:05 - 5:12
    בכל פעם שקוראים לקוד הזה, בכל פעם שהמשתמש
    לוחץ על העכבר, אנחנו בודקים מההמיקום של העכבר
    mouseX ונוסיף את המספר לסוף המערך.
  • 5:12 - 5:17
    כך שהמערך אמור לגדול ולגדול ולגדול.
    בואו נתחיל מחדש וננסה את זה.
  • 5:17 - 5:23
    יפה, זה עבד!
    וזה הרבה פחות קוד ממה שהיה לנו קודם. אוקיי?
  • 5:23 - 5:28
    רוב הזמן, אתם תרצו להשתמש ב-push אם
    אתם הולכים להוסיף דברים למערך בצורה הזאת.
  • 5:28 - 5:32
    וזה די מגניב כי אתם יכולים פשוט להגדיל
    את המערכים עוד ועוד במהלך התוכנית.
  • 5:32 - 5:36
    למשל כשיש לכם אנימציה או כשיש משתמשים
    שעושים דברים, אתם יכולים לעשות הרבה יותר.
  • 5:36 - 5:41
    אז עד עכשיו ראיתם בערך 90% מהדרכים
    שבהם כנראה תשתמשו במערכים.
  • 5:41 - 5:47
    אבל יש הרבה דברים אחרים שתוכלו לעשות עם
    מערכים. אז אם יש לכם שאלות, פשוט שאלו בדיונים.
  • 5:47 - 5:51
    אבל תוודאו שאתם שולטים היטב בכלים הבסיסיים האלו קודם.
Title:
שינוי מערכים - Modifying Arrays (Video Version)
Description:

זהו פשוט צילום מסך של שיעור הקוד האינטראקטיבי שלנו, שהוכן כדי להקל על הכנת כתוביות ותרגום. עדיף לצפות בשיעורים שלנו בכתובת:
https://www.khanacademy.org/cs/programming/

This is just a screen grab of our interactive coding talk-through, prepared to make captioning and translation easier. It is better to watch our talk-throughs here:
https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
05:51

Hebrew subtitles

Revisions