
100 = a או true = b גורם לשגיאה. לדברי הדובר, הקומפיילר מציין שהצד השמאלי של השמה חייב להיות משתנה.const string fileName = "C:\\Program Files\\myfile.ext";הטקסט המלא של הדקות הראשונות בהרצאה «קבועים - פקודת Const» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו את הנושא של משתנים וטיפוסים אנחנו עוברים למשהו שנקרא קבועים קונסטנט קבוע זהו ערך שלא ניתן לשינוי ישנם מספר סוגים שונים של קבועים שניתן להשתמש איתם בעולם התכנות אז בואו נפתח פרויקט חדש ונראה את הסוגים השונים אנחנו הולכים לפייל ניו פרוג'קט קונסול אפליקיישן
נפתח פרויקט נקרא לו קונסטנטס ונתחיל אז קודם כל אנחנו יכולים בעולם התכנות להשתמש במשהו שנקרא קבועים. אם אני עכשיו רושם את המספר 100, מבחינת עולם התכנות מספר הוא קבוע.
זאת אומרת, אנחנו לא יכולים עכשיו לבוא ולהגיד ש-100 שווה ל-300. בואו נזכר רגע מה פעולת ההשמה אומרת.
פעולת ההשמה, כלומר אופרטור שווה אומר, קח את הערך שנמצא מימין לשווה ותנסה להכניס אותו למה שנמצא משמאל לשווה. כמובן אי אפשר לשנות את הערך 100 ופתאום להחליט ש-100, היום והלאה הולך להיות 300 לכן 100 הוא קבוע ולא ניתן לשינוי אם אנחנו עכשיו פותחים משתנה int number ומכניסים לתוכו את
הערך 100 מה שעשינו פה בעצם זה לקחנו את הקבוע 100 והכנסנו אותו לתוך משתנה שנקרא number כלומר תא זיכרון שהשם של התא נקרא number הסוג שלו הוא אינטג'ר כלומר יכול לקבל מספרים שלמים ולכן לא הייתה לנו שום בעיה לקחת את ה-100 ולהכניס אותו לתוך ה-number אבל אנחנו צריכים להבדיל פה בין שני דברים
number הוא משתנה variable ו-100 הוא קבוע שנכנס לתוך המשתנה עכשיו מה זה אומר קבוע ומה זה אומר משתנה למה number נקרא משתנה מפני שאנחנו יכולים לשנות את הערך שבתוכו לערך אחר במהלך ריצת התוכנית זאת הסיבה שהוא משתנה הוא יכול לקבל כל הזמן ערכים שונים וסך הכל מגירה שאפשר להכניס בתוכה כל מיני ערכים
100 הוא קבוע מפני שספציפית את המספר 100 אנחנו לא יכולים לשנות ולהגיד שמהיום כל המאיות בעולם יהפכו להיות 200 או משהו כזה אז 100 נחשב כקבוע אם אנחנו כרגע נציג מה יש בתוך number אנחנו נראה כמובן שבתוכו יושב הערך 100 בואו נריץ את זה ונראה שעל המסך מוצג לנו 100 איזה עוד קבועים קיימים אם אנחנו פותחים משתנה שיכול
לקבל מכרוזות כלומר טקסטים אנחנו יכולים להכניס לתוכו מכרוזת בתוך גרשיים כאן לדוגמה הכנסנו את המכרוזת הלואו המכרוזת הלואו שנכתבת בצורה כזאת גם היא נחשבת כקבוע כקונסטנט אנחנו לא יכולים אף פעם לרשום הלואו שווה למשהו אחר הדבר הזה כמובן יטען אותנו שגיאה ויגיד לנו אי אפשר לשנות את הלואו בואו נסתכל
רגע מה נכתב כאן ומה מה שאנחנו יכולים לראות כאן בשגיאה שמוצגת למעלה The left-hand side of an assignment must be a variable property או אינדקסר של פרופרטי ואינדקסר בפוג של משתנים.
אז בעצם מה שחייב להיות בצד שמאל של השמה חייב להיות משתנה וכאן אנחנו רואים שאפילו התוכנית אומרת לנו שהדבר הזה זה לא משתנה.
אם זה לא משתנה זה כמובן לא ניתן לשינוי ולכן הוא קבוע. בואו נדפיס את str ונראה שמה שמוצג כאן זה Hello.
עוד קבועים ערך true לא ניתן לשינוי אנחנו לעולם לא יכולים לבוא ולהגיד true שווה false בואו נסתכל ונראה ששוב פעם קיבלנו שגיאה על ה true אי אפשר לשנות true בואו נרשום פה b1 b2 ונציג את b1 ונציג את b2 נריץ ונראה שהצגנו את הקבועים true וfalse אז true וfalse גם הם קבועים מטיפוס בוליאן איזה עוד סוגי קבועים
קיימים דאבל קבוע שהוא ערך מספרי עם נקודה עשרונית הוא נריץ וקיבלנו 12.34 שימו לב זה קבוע שהוא ממשי ריל כלומר מספר עשרוני וזה קבוע שהוא מספר שלם עוד קבועים שיש לנו וכתבים כאן אנחנו רואים שיש לנו את התו A לדוגמה ו-A הוא קבוע מסוג Character כמובן ש-CH הוא לא קבוע אלא משתנה ויכול לקבל את הקבוע
עצמו כל אלו הם קבועים שניתן לכתוב אותם בקוד. ברגע שאנחנו כותבים בקוד 100 או Hello או True או False או איזשהו מספר עשרוני או איזשהו תו גודד, זה נחשב שאנחנו כתבנו קבוע בתוך הקוד, וזה נחשב למשהו שנקרא Hard Coded. זאת אומרת שהערך הזה 100 הוא צרוב בקוד, לא ניתן לשינוי לעולם,
לא ניתן לשינוי על ידי הלקוח, הערך 100 ספציפית לא ניתן לשינוי על ידי הלקוח, וזה אומר שכל הזמן התוכנית הזאת תייצר את המספר 100 ותשים אותו פה.
זה הסיבה שהוא צרוב בתוך הקוד ולכן נקרא Hardcoded. כנ"ל ה-hello גם הוא Hardcoded. כנ"ל true, false, המספר הזה וה-tab. כל אלה נחשבים Hardcoded כי הם צרובים בקוד.
עכשיו מבחינת הטיפוסים. כל פעם שאנחנו רושמים מספר שלם הטיפוס שלו זה אינטג'ר. כל פעם שאנחנו רושמים מחרוזת בגרשיים הטיפוס של הקבוע הזה הוא סטרינג.
כלומר לכל קבוע ישנו טיפוס נתונים. הטיפוס של מחרוזת עם גרשיים זה סטרינג. הטיפוס של הקבוע true הוא בוליאן. הטיפוס של הקבוע false הוא בוליאן. הטיפוס של מספר עשרוני כלשהו הוא דאבל.
הטיפוס של תו בודד שעטוף בגרש גרש הוא תמיד char, Character. ולכן אלו הטיפוסים של כל הקבועים. עכשיו, אנחנו יכולים להשתמש באיזשהו קבוע, והיכולת מצב שאנחנו רוצים את הקבוע הזה בהמון המון מקומות בקוד שלנו.
לדוגמה, אנחנו רוצים איזשהו שם של קובץ שאנחנו רוצים לעבוד איתו בכל מיני מקומות בתוכנית. אז אם בכל מקום בתוכנית שאנחנו נרצה לעבוד עם הקובץ הזה, בואו נניח נקרא לו, הוא נמצא ב-c נקודתיים, ונקרא לו program files, נקרא myfile.ext נניח שזה הקבוע שאנחנו רוצים לעבוד איתו אז הערך הזה יכול להשתנות במהלך
ריצת התוכנית למה מפני שיכול להיות מצב שיום בהיר אחד אנחנו לא נרצה myfile.ext אנחנו נרצה myfile2.ext מאיזושהי סיבה אנחנו נרצה לשנות את השם של הקובץ או נחליט בעצם שלא נכון שהוא יהיה בתיקיית פרוגרם פיילס אלא נכון שהוא יהיה בתיקיית פרוגרם פיילס בתוכה הוא יהיה בתיקייה ובתוכה בתיקיה b ולאחר מכן על השם של הקובץ.
לכן אם אנחנו לוקחים את המחרוזת הזאת וכותבים אותה בהמון המון המון מקומות בקוד אז אם בעתיד אנחנו נרצה לשנות אנחנו נצטרך ללכת ולאתר את כל המקומות בקוד שהשתמשנו עם המחרוזת הזאת בכדי להגיע לקובץ שלנו ולשנות את כל המקומות וזה יכול להיות סיפור בעייתי.
א', יכול להיות שאנחנו בטעות נשנה דברים אחרים, ב', יכול להיות שאנחנו נשכח לשנות במקום אחד או יותר ולכן מאוד חשוב שיהיה לנו איזשהו תא זיכרון שיחזיק לנו את הנתון הזה.
אז אולי היה כדאי שנפתח סטרינג fine name שווה לכל הסיפור הזה. ואז אנחנו לא משתמשים יותר עם המחרוזת הזאת, אלא אנחנו פשוט משתמשים עם השם fine name.
וכך בכל מקום שאנחנו רוצים להתייחס לשם של הקובץ, יש לנו את fine name שאנחנו יכולים להתייחס אליו. כאן לדוגמה הצגנו אותו על המסך.
שימו לב שכאשר זה מוצג אז backslash מופיע פעם אחת, כאשר רשמנו בקוד backslash שכפלנו אותו פעמיים. יש לזה סיבה ואנחנו נלמד את הסיבה הזאת כאשר אנחנו נלמד פרק מיוחד על תווים בודדים.
ואנחנו נראה ש-backslash יש לו משמעות מיוחדת ואם אנחנו רוצים להתייחס ל-backslash אחד כמו לדוגמה בנתיב אנחנו צריכים לשכפל אותו פעמיים.
אוקיי אז בעצם זה כבר פתרון יותר טוב. במקום לרשום מאה פעם את השם של הקובץ הזה עם הנתיב המלא בכל מקום שאנחנו רוצים לפתוח את הקובץ או לקרוא ממנו או לכתוב אליו פשוט פעם אחת שמנו אותו בתוך התא הזיכרון הזה ואז התייחסנו לתא הזיכרון מה הבעיה עם הדבר הזה?
קודם כל ברור שזה חסך לנו לכתוב את המכובד הרבה פעמים ברור שזה נותן לנו את היתרון שאם אנחנו רוצים לשנות בעתיד את המיקום של הקובץ אנחנו משנים רק בהגדרה הזאת אבל כעת מתכנת מסוים בתוכנית יכול ללכת לא להבין מה אומר פייל ניין ולהכניס לתוכו משהו אחר לדוגמה ABC. ברגע שהוא
עשה את זה אז הוא בעצם דרס את הקובץ המקורי ואנחנו לא מעוניינים שהדבר הזה יקרה? יכול להיות שהוא לא הבין גם מה פירוש פייל ניים ופשוט דרס אותו.