פקודת השמה

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

בשפות תכנות, פקודת השמה היא פקודה המציבה ערך חדש במשתנה. פקודה זו קיימת, כפקודה בסיסית, במרבית שפות התכנות.[1]

הסימן הנפוץ לפקודת השמה הוא =, אך קיימות לו וריאציות רבות בשפות שונות. דוגמאות אחדות מוצגות בטבלה הבאה, שבה variable הוא שמו של המשתנה, ו-expression הוא הערך שפקודת ההשמה מציבה במשתנה.

שפה סימון הפקודה דוגמה
PL/I, Fortran, C, Java variable = expression A = B + 5
ALGOL, פסקל, Ada variable := expression A := B + 5
COBOL MOVE expression TO variable MOVE B TO A
BASIC LET variable = expression LET A = B + 5

ביצוע פקודת ההשמה כולל שני שלבים:

  • חישוב ערכו של הביטוי (expression בטבלה לעיל).
  • כתיבת הערך שחושב במשתנה (variable בטבלה לעיל). לעיתים מלווה שלב זה בהמרת הערך של הביטוי לטיפוס של המשתנה, למשל המרה מטיפוס נומרי לטיפוס מחרוזת.

השמה לעומת השוואה[עריכת קוד מקור | עריכה]

בחלק משפות התכנות, לסימן = שתי משמעויות:

  • השמה
  • השוואה בין שני ערכים (למשל בפקודת if).

כפל משמעויות זה עלול לבלבל מתכנתים מתחילים, ולכן בשפות אחרות משמשים למטרות אלה שני סימנים נפרדים, למשל = להשמה, == להשוואה.[2]

בשפת PL/I, שבה הסימן = משמש בשתי המשמעויות, ניתן למצוא את שתיהן יחד בפקודה הבאה:

A = B = C

שפירושה: כאשר B שווה ל-C, המשתנה A יקבל את הערך "אמת" (המיוצג בשפה זו על ידי ביט שערכו 1), וכאשר B אינו שווה ל-C, המשתנה A יקבל את הערך "שקר".

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ What are Assignment Statement: Definition, Assignment Statement Forms, Toppr-guides, ‏2021-03-23 (באנגלית אמריקאית)
  2. ^ Kenneth Leroy Busbee, Assignment vs Equality, 2018-12-15