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

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

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

קופסה עם שם

דמיינו קופסת נעליים שכתוב עליה בטוש ״ניקוד״, ובתוכה פתק עם המספר 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. מה ״המצב״ של משחק שאתם אוהבים? אילו ערכים משתנים בו בכל רגע?

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

טוענים את הקטע…

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

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

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

שאלות נפוצות

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

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

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

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

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

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

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

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