משתנים: קופסאות של מידע

תכנות · לכיתות ד׳–ט׳

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

קופסה עם שם

דמיינו קופסת נעליים שכתוב עליה בטוש ״ניקוד״, ובתוכה פתק עם המספר 0. בכל פעם שהשחקן אוסף מטבע, פותחים את הקופסה, קוראים את המספר, מוסיפים לו 1 ומחליפים את הפתק. זה בדיוק משתנה: שם (התווית) וערך (מה שבפנים). השם נשאר קבוע, והערך יכול להשתנות — ומכאן השם ״משתנה״.

בפייתון יוצרים משתנה בשורה אחת: score = 0. סימן השוויון כאן לא אומר ״שווה״ כמו במתמטיקה, אלא ״שים בתוך״: שים 0 בקופסה שנקראת score. לפעולה הזאת קוראים השמה. כדי להוסיף נקודה כותבים score = score + 1 — המחשב קורא את הערך הישן, מוסיף 1, ושם את התוצאה בחזרה. בסקראץ׳ יוצרים משתנה בכפתור ״צור משתנה״, ומשתמשים בבלוקים ״קבע ניקוד ל־0״ ו״שנה ניקוד ב־1״.

סוגי מידע

לא כל הקופסאות מכילות את אותו סוג דבר. יש מספרים שלמים, כמו 7 או ‎-3. יש מספרים עשרוניים, כמו 2.5. יש טקסט — אות, מילה או משפט — שבתכנות נקרא מחרוזת, כי הוא ״מחרוזת״ של תווים, כמו חרוזים על חוט. ויש ערך בוליאני, שיכול להיות רק אמת או שקר. לכל אחד מאלה קוראים טיפוס נתונים, והמחשב מתייחס לכל טיפוס אחרת.

הנה ההבדל בפעולה: print(5 + 5) מציג 10, כי אלה שני מספרים. אבל print("5" + "5") מציג 55! המירכאות הופכות את 5 לטקסט, ו״חיבור״ של טקסטים פירושו להדביק אותם זה לזה. זה מפתיע בהתחלה, וזו גם סיבה נפוצה לבאגים: מספר שהמשתמש הקליד מגיע לתוכנית כטקסט, וצריך להמיר אותו למספר לפני שמחשבים איתו.

איך בוחרים שם טוב

מחשב לא אכפת לו איך קוראים למשתנה — x, a1 או banana. אבל לאנשים שקוראים את הקוד, כולל אתם בעוד שבוע, זה מאוד אכפת. שם כמו score, lives או player_name מסביר מיד מה יש בקופסה. שם כמו x מכריח לנחש. מתכנתים מנוסים אומרים שקוד נקרא הרבה יותר פעמים ממה שהוא נכתב, ולכן שווה להשקיע בשמות.

יש גם כמה כללים טכניים. בפייתון שם משתנה לא יכול להתחיל בספרה, לא יכול להכיל רווח (משתמשים בקו תחתון במקום), ויש מילים ששמורות לשפה עצמה — כמו if, for ו־while — ואי אפשר להשתמש בהן כשמות. ועוד דבר חשוב: פייתון מבדילה בין אותיות גדולות לקטנות, כך ש־Score ו־score הם שני משתנים שונים לגמרי.

משתנים בכל מקום

כמעט כל תוכנה מחזיקה הרבה משתנים. במשחק: ניקוד, חיים, רמה, המיקום של הדמות (x ו־y), המהירות שלה, והאם היא קופצת עכשיו (אמת או שקר). באפליקציית מזג אוויר: הטמפרטורה, שם העיר והאם צפוי גשם. בכל רגע, הערכים במשתנים מתארים את ״המצב״ של התוכנה.

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

✅ חידון: משתנים: קופסאות של מידע

1. מה זה משתנה?

2. מה פירוש השורה ⁦score = 0⁩ בפייתון?

3. מה יקרה אחרי ⁦score = score + 1⁩ אם score היה 4?

4. מה יציג ⁦print("5" + "5")⁩?

5. איך נקרא בתכנות טקסט כמו "שלום"?

6. איזה שם משתנה אסור בפייתון?

7. למה כדאי לבחור שם כמו lives ולא x?

8. איפה שומרים שמות של כל התלמידים בכיתה?

🖨️ דף עבודה להדפסה

8 שאלות, שאלות לחשיבה ודף תשובות עם הסברים.

📘 מושגים מהשיעור

💬 שאלות לשיחה

  1. אילו משתנים צריך כדי לבנות משחק ״תפוס את התפוח״? תנו לכל אחד שם טוב.
  2. למה לדעתכם מחשב מתייחס אחרת למספר 5 ולטקסט "5"?
  3. מה ״המצב״ של משחק שאתם אוהבים? אילו ערכים משתנים בו בכל רגע?

📖 קטע קריאה בנושא: 🤖 הריקוד של הרובוט

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

יעל התחילה לכתוב את ההוראות. אחרי שלוש כבר היו לה שתים־עשרה שורות, והיד התעייפה. ״אם נמשיך ככה, יהיו לנו ארבעים שורות,״ . ״ואם נטעה בשורה אחת, יהיה קשה למצוא את הטעות.״

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

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

ואז עלה לה רעיון. ״אם אני רוצה שהוא ירקוד לאורך כל השיר, אני צריכה רק לשנות את המספר!״ היא שינתה מ־10 ל־20, והרובוט המשיך לרקוד עד סוף השיר.

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

📖 מילון הקטע
  • לקראת — לפני, כהכנה ל־
  • מחיאת — מכה של כף יד בכף יד
  • נאנחה — הוציאה אוויר בעייפות או בצער
  • לולאה — הוראה לחזור על פעולות כמה פעמים
  • מקש — כפתור במקלדת
  • חזרות — הפעמים שעושים משהו שוב

שאלות

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

עוד שיעורים בתכנות

לכל 16 השיעורים בתכנות ←

חוברת ומבחן לדוגמה לכיתה

שאלות נפוצות

למה קוראים לזה משתנה?

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

מה ההבדל בין משתנה במתמטיקה למשתנה בתכנות?

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

מה זה טיפוס נתונים?

הסוג של הערך: מספר שלם, מספר עשרוני, מחרוזת (טקסט), בוליאני (אמת או שקר), רשימה ועוד. הטיפוס קובע מה אפשר לעשות עם הערך — למשל, אפשר לחלק מספרים, אבל לא מילים.

שווה להסתכל גם על תכנות לילדים, ולומדים.

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