משתנים או Variables הם שמות אשר נותן המתכנת למיקומים בזיכרון המחשב, שניתן לשמור בהם נתונים בתוכנת מחשב.
נניח שברצונכם לשמור שני ערכים – 10 ו-20 בתוכנית שלכם, על מנת שתוכלו להשתמש בהם בשלב יותר מאוחר. תוכלו לעשות זאת ב-3 צעדים:
- צרו משתנים בעלי שמות מתאימים
- שמרו ערכים אלו במשתנים שיצרתם
- השתמשו בערכים אלו מתוך המשתנים שיצרתם
יצירת משתנים
יצירת משתנים נקראת גם "הכרזת משתנים" בשפת C. לשפות תכנות שונות, יש דרכים שונות ליצור משתנים. לדוגמה אם נרצה ליצור משתנים בשפת C, נעשה זאת בדרך הפשוטה הבאה:
#include int main() { int a; int b; }
תכנית זו אשר כתבנו בשפת C, נועדה לשמור שני מיקומי נתונים בזיכרון, תחת השמות a ו-b, כאשר השתמשנו במילת המפתח int על מנת להצהיר על סוג הנתונים, כלומר שאנו רוצים להזין ערכים שהם מספר שלם אל שני המשתנים הללו. באופן דומה תוכלו ליצור משתנים על מנת לשמור ערכים מסוג long, float, char או כל סוג נתונים אחר. לדוגמה, על מנת לשמור ערכים מסוג float במשתנה b ו-char במשתנה a, נכתוב את הקוד כך:
#include int main() { char a; float b; }
כמו כן ניתן ליצור משתנים שמיועדים להזנת ערכים מסוגי נתונים זהים על ידי כתיבתם באותה השורה, כאשר אנו משתמשים בפסיק על מנת להפריד ביניהם, כפי שמוצג בדוגמה הבאה:
#include int main() { int a, b; }
דברים שחשוב לדעת לגבי משתנים
- שם משתנה בודד יכול להכיל משתנה מסוג נתונים אחד בלבד, כלומר שאם הגדרנו את משתנה a כמשתנה המכיל נתונים מסוג int, אז נוכל לשמור בו נתונים מסוג int בלבד.
- תכנות בשפת C דורש יצירת משתנים לפני שמשתמשים בהם בתוכנית. כלומר שלא ניתן להשתמש בשם משתנה בתוכנית, מבלי שיצרנו אותו קודם. בשפות תכנות מסויימות, כמו Python למשל, ניתן להשתמש בשם משתנה מבלי ליצור אותו קודם.
- ניתן להשתמש בשם משתנה פעם אחת בתוכנית, כלומר שאם הכרזנו בתוכנית על שם משתנה b, לא נוכל להכריז על שם משתנה בעל שם זהה באותה התוכנית שוב, ונצטרך לבחור שם אחר.
- שם הnשתנה יוכל להיות איזה שם שתרצו, אך חשוב לדעת שלרוב שפות התכנות יש מגבלה בסוגי האותיות שניתן להשתמש בהם, ולכן לעת עתה נמליץ לכם להשתמש באותיות A עד Z (לא משנה אם אותיות גדולות או קטנות) והספרות 0 עד 9.
- בשפות כגון Python, אין צורך להכריז על סוג הנתונים כאשר אנו יוצרים משתנים, כלומר שאפשר לשמור את כל סוגי הנתונים במשתנים מבלי שיהיה צורך להגדיר איזה סוג נתונים יש במשתנה.
- כמעט כל שפות התכנות לא מאפשרות לשמור שם משתנה אשר מתחיל בספרות, כלומר ששם המשתנה 540street לא יהיה חוקי, אך שם המשתנה street540 כן יהיה חוקי, משום שהשם מתחיל באותיות ולא במספרים.
ללא מעט שפות תכנות יש חוקים נוספים הנוגעים למשתנים, שכאשר תלמדו אחת משפות תכנות אלו לעומק אז תכירו את החוקים שלה.
הזנת ערכים למשתנים
בחלק הראשון של פרק זה, למדנו כיצד לקבוע שם משתנה, וכעת נלמד כיצד להזין ערכים אל תוך המשתנה אשר יצרנו:
#include int main() { int a; in b; a = 10; b = 20; }
כפי שניתן לראות, הוספנו עוד שתי שורות קוד לתוכנית שלנו כאשר הראשונה מביניהן מזינה את הערך 10 למשתנה a, והשנייה מזינה את הערך 20 למשתנה b. כמעט כל שפות התכנות הקיימות משתמשות בשיטה זו על מנת להזין ערכים למשתנים, כאשר שם המשתנה נכתב מצד שמאל של המשוואה, והערך מצד ימין.
כך שלמעשה למדנו ליצור שם משתנה, ולהזין לתוכו ערכים. כעת משתנה a מכיל את הערך 10, ומשתנה b מכיל את הערך 20, או שניתן גם לומר שהערך במיקום זיכרון a הוא 10 והערך במיקום הזיכרון b הוא 20.
כיצד ניתן לגשת לערכים שהזנו למשתנים
אם לא נשתמש בערכים שהזנו למשתנים, אז אין לנו שום צורך ביצירת שמות משתנים וזה יהיה מיותר. אנו יודעים שבתכנית שכתבנו יש שני משתנים שנתנו להם את שמות המשתנים a ו-b ושהם מכילים את הערכים 10ו-20 בהתאמה ולחוד. כעת נוסיף לתוכנית שלנו שתי שורות קוד שבאמצעותן יוצג לנו פלט שיציג את הערכים ששמרנו במשתנים a ו-b:
#include int main() { int a; int b; a = 10; b = 20; printf( "Value of a = %dn", a ); printf( "Value of b = %dn", b ); }
על מנת שיוצג לנו הפלט הבא:
Value of a = 10
Value of b = 20
את הפונקציה ()printf אתם מכירים מהפרק הקודם. בפרק הקודם השתמשנו בה על מנת להציג את הפלט "!Hello World", כאשר הפעם אנו נשתמש בפונקציה זו על מנת להוציא פלט שיציג לנו את הערכים שהזנו במשתנים שקבענו. שימו לב שבמקום להזין את הערכים במשוואה כתבנו d%. כמו כן אנחנו יכולים להוציא פלט שיציג את שני הערכים באותה השורה בפונקציית ()printf בודדת על ידי שנכתוב את התוכנית כך:
#include int main() { int a; int b; a = 10; b = 20; printf( "Value of a = %d and value of b = %dn", a, b ); }
וכאשר נריץ את התוכנית נקבל את התוצאה הבאה:
Value of a = 10 and value of b = 20
במידה והערך שהזנו למשתנה הוא מסוג נתונים float, אז יהיה עלינו להשתמש ב-f% במקום ב-d%, ואם מדובר בערך שהוא מסוג נתונים char אז יהיה עלינו להשתמש ב-c%. באופן דומה ניתן להשתמש בסוגי הנתונים האחרים עם האות הראשונה שלהם ו-%.
משתנים בשפת JAVA
אם נרצה לכתוב את אותה התוכנית, אך בשפת Java במקום ב-C, אז נכתוב את הקוד שלנו בדיוק כך:
public class Main { public static void main(String []args) { int a; int b; a = 10; b = 20; System.out.println("Value of a = " + a); System.out.println("Value of b = " + b); System.out.println("Value of a = " + a + " and value of b = " + b); } }
ואז נקבל את התוצאה הבאה:
Value of a = 10
Value of b = 20
Value of a = 10 and value of b = 20
משתנים בשפת Python
כפי שציינו מקודם, כאשר אנו משתמשים בשפת Python, אין לנו צורך להגדיר את סוג הנתונים כאשר אנחנו יוצרים נתונים, ואין צורך ליצור משתנים מראש. התוכנית שלפניכם היא אותה התוכנית בשפת Python3.
a = 10 b = 20 print ("Value of a = ", a) print ("Value of b = ", b) print ("Value of a = ", a, " and value of b = ", b)
וכאשר נריץ את התכנית נקבל את התוצאה הבאה:
Value of a = 10
Value of b = 20
Value of a = 10 and value of b = 20