C# | משתנים
-
משתנים בC# יש 7 סוגי משתנים שכיחים בC#:
int- ערכים שלמים קטנים מ10 ספרות
long - ערכים שלמים מעל 10 ספרות
foat- ערכים ממשים דיוק אחרי הנקודה עד 7 ספרות
double- ערכים ממשים עם דיוק אחרי הנקודה של עד 16 ספרות
char- תו אחד, כל תו על שיש על המקלדת כמו @,$,& וגם תווים סמוים כמו אנטר שנרשם בין גרשיים
string- מחרוזת תווים בין גרשיים כמו “menchem”
bool- ערך בוליאני (אמת ושקר) יש שתי תוצאות true (אמת) או false(שקר)
בתוכנית בC# לפני שמשתמשים במשתנה חיבים להצהיר שהוא קיים איך עושים את זה?
כותבים את טיפוס המשתנה (לדוגמה int) ואחריו את שם המשתנה לדוגמה כדי להצהיר על המשתנים t1 וt2 מטיפוס int נכתוב כך:int t1, t2;
אם מצהירים על יותר ממשתנה אחד שמים פסיק ורווח בין לבין
כל פקודה בC# מסתימת בסימן ;
נסביר טיפה על תווים
כל תו בודד מוגדר בטיפוס משתנה char את התו לדוגמה h צריך לתחום בשתי גרשים כלומר כך ‘h’ לכל תו יש ערך מספרי על פי טבלת unicode לדוגמה כל האותיות הגדולות באנגלית מופיעות ברצף הקוד של האות A הוא 65 ושל B הוא 66 וכן הלאה
למה צריך את הקוד unicode?
בשביל לדעת מה ההפרש בין 2 אותיות וכדי לדעת אם 2 האותיות שוות ויש עוד דברים…
דוגמאות לערכים:
ערך הunicode של הספרה 0 הוא 48 ושל הספרה 9 הוא 57
ערך הunicode של האות A הוא 65 ושל האות Z הוא 90
ערך הunicode של האות a הוא 97 ושל האות z הוא 122
ערך הunicode של התו רווח אשר ירשם כ: ’ ’ הוא 32הוראות השמה:
יש שתי אפשרויות להשמה ב C#
- מיד אחרי שהצהרנו לדוגמה אנחנו רוצים שישיה לנו משתנה בשם s מטיפוס int והערך שלו יהיה 5 אז נכתוב כך:
int s = 5;
הצהרנו על המשתנה ואז מיד השמנו לו את הערך 5
2.הצהרה על המשתנה ואחרי זה בשורה חדשה השמה זה יראה כך:int s; s = 5;
פעולות חשבוניות
סדר פעילויות החשבון זהה לזה שבמתמטיקה רגילה כומר כפל וחילוק ו% ואחרי זהה חיבור וחיסור אם רוצים לקבוע סדר שונה אפשר לשים סוגרים עגולים
הסימנים בהם משתמשים לפעולות
כפל *
חילוק /
חיבור+
חיסור -
שימו לב: בפועלת חילוק אם המחלק והמחולק מטיפוס שלם(לדוג’ int) אז גם התוצאה תהיה מטיפוס שלם לדוגמה 13/5 יהיה שווה 2 כי יש רק פעמים שלמות אבל אם אחד מהם מטיפוס ממשי (לדוג’ double) לתרגיל 13/5.0 התשובה תהיה 2.6
בהצלחה!
אם יש שאלות ניתן להגיב או בצאט או בפוסט (אם אפשר לפתוח פה @Men770 ?) -
@מנחם-ציון מה עם var?
לא הצלחתי להבין מה ההבדל בין var ל string -
@נ-נח אמר בC# | משתנים:
@מנחם-ציון מה עם var?
לא הצלחתי להבין מה ההבדל בין var ל stringאיפה VAR?לא כתבתי
-
@מנחם-ציון נכון, שאלתי למה לא כתבת… גם var זה משתנה בסי שארפ
-
@נ-נח אמר בC# | משתנים:
@מנחם-ציון נכון, שאלתי למה לא כתבת… גם var זה משתנה בסי שארפ
כתבתי רק משתנים שכיחים יש עוד…
-
@נ-נח אמר בC# | משתנים:
גם var זה משתנה בסי שארפ
זה משתנה ‘מנוחש’ כלומר - בכל המשתנים שהוא פירט בפוסט - ה-type של המשתנה מוגדר (פשוט כשאתה יוצר משתנה int זה יוצר משתנה מספרי מהסוג המסוים)
משא"כ var אין שום אינדיקציה על הtype של המשתנה. התכנה מנחשת בעצמה מה הtype.
מה הבעיה בזה? אני לא מבין בC# אבל יכול לנחש שלפני הכל זה יוצר בעיות בכל התבססות על ערכים מספריים (כלומר כשרוצים לבצע עליהם או איתם - מניפולציות חשבוניות)
ויכול ליצור בעיות בהשוואות (כלומר equality. ב-C# אין אמנם את האופרטור === אבל אני יכול לנחש שיש איזה תהליך של השוואה בטוחה יותר ובטוחה פחות) -
@מנחם-ציון אמר בC# | משתנים:
int- ערכים שלמים קטנים מ10 ספרות
לייתר דיוק
במספרים חיוביים עד המספר 2,147,483,647 (1 - 31^2)
ובשליליים עד 2,147,483,648-לכל תו יש ערך מספרי על פי טבלת unicode
מצורף טבלת ASCII למי שמעוניין קרדיט
כמו שכתבו Char - התווים הרגילים, Dec - הייצוג המספרי (Decimal).
אם רוצים את קוד הASCII של מספר מוסיפים לו 48 ואותו דבר הפוך למעבר מASCII למספרים רגילים
וההמרה באותיות מקטנות לגדולות מחסרים 32 ומאותיות גדולות לקטנות מוסיפים 32. -
@מנחם-ציון לא זכור לי שיצא להתעסק עם קוד יוניקוד בC# כמעט.
'a' == 'a' // True 'a' == 'b' // False 'a' < 'b' // True 'b' < 'b' // False 'a' > 'b' // False 'a' - 'b' // -1
מה חסר כאן?
למה צריך לדעת קוד יוניקוד? -
@men770 אמר בC# | משתנים:
@מנחם-ציון לא זכור לי שיצא להתעסק עם קוד יוניקוד בC# כמעט.
'a' == 'a' // True 'a' == 'b' // False 'a' < 'b' // True 'b' < 'b' // False 'a' > 'b' // False 'a' - 'b' // -1
מה חסר כאן?
למה צריך לדעת קוד יוניקוד?מה הכוונה מה חסר?
קוד יונקוד זה בשביל המרה ואם אני זוכר נכון יכול להיות שצריך גם בש יל לכתוב בעברית… -
@מנחם-ציון אמר בC# | משתנים:
@men770 אמר בC# | משתנים:
@מנחם-ציון לא זכור לי שיצא להתעסק עם קוד יוניקוד בC# כמעט.
'a' == 'a' // True 'a' == 'b' // False 'a' < 'b' // True 'b' < 'b' // False 'a' > 'b' // False 'a' - 'b' // -1
מה חסר כאן?
למה צריך לדעת קוד יוניקוד?מה הכוונה מה חסר?
קוד יונקוד זה בשביל המרהכלומר?
ואם אני זוכר נכון יכול להיות שצריך גם בשביל לכתוב בעברית…
לא.
-
@men770 אמר בC# | משתנים:
@מנחם-ציון אמר בC# | משתנים:
@men770 אמר בC# | משתנים:
@מנחם-ציון לא זכור לי שיצא להתעסק עם קוד יוניקוד בC# כמעט.
'a' == 'a' // True 'a' == 'b' // False 'a' < 'b' // True 'b' < 'b' // False 'a' > 'b' // False 'a' - 'b' // -1
מה חסר כאן?
למה צריך לדעת קוד יוניקוד?מה הכוונה מה חסר?
קוד יונקוד זה בשביל המרהכלומר?
עיין
https://techno-tech.cf/topic/473/c-המרה-בי
%D7%9F-%D7%98%D7%99%D7%A4%D7%95%D7%A1%D7%99-%D7%9E%D7%A9%D7%AA%D7%A0%D7%99%D7%9D -
@men770 אמר בC# | משתנים:
@מנחם-ציון אמר בC# | משתנים:
@men770 אמר בC# | משתנים:
@מנחם-ציון לא זכור לי שיצא להתעסק עם קוד יוניקוד בC# כמעט.
'a' == 'a' // True 'a' == 'b' // False 'a' < 'b' // True 'b' < 'b' // False 'a' > 'b' // False 'a' - 'b' // -1
מה חסר כאן?
למה צריך לדעת קוד יוניקוד?מה הכוונה מה חסר?
קוד יונקוד זה בשביל המרהכלומר?
ואם אני זוכר נכון יכול להיות שצריך גם בשביל לכתוב בעברית…
לא.
מה הכוונה מה חסר כאן שכתבת למעלה לא הבנתי…
-
@chv
זה לא מדויק, המילה השמורה var לא מנחשת - אלא מזהה את טיפוס המשתנה, שים לב ששורה כזו תיכשל בקימפול
var s;
ואילו שורה כזו לא:
var s = "hello";
בזמן הקימפול המילה var מוחלפת לstringלגבי מה שכתבו על unicode, אין שום סיבה לדעת את זה באמת, זה רק המיפוי של המספרים לתווים, לגבי הייצוג של המספרים האלה זה כבר תלוי בקידוד, בזה C# בד"כ משתמשת בUTF16, אבל ממש לא מחויבת לכך, בשביל להשיג בייטים של מחרוזת בקידוד מסוים צריך להשתמש ב-
Encoding.GetEncoding(...).GetBytes(<C# string>);