שינוי מערכים - 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/ - Video Language:
- English
- Duration:
- 05:51
nataly.eliyahu edited Hebrew subtitles for Modifying Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Modifying Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Modifying Arrays (Video Version) | ||
nataly.eliyahu edited Hebrew subtitles for Modifying Arrays (Video Version) |