עבור לתוכן

עזרה בניתוח קדימות של אופרטורים לוגיים ב- C++

Featured Replies

פורסם

אתן כמה דוגמאות לשאלות. אינני יודע בכלל איך נגשים לשאלות מסוג כזה.

ארצה לדעת היכן יש חומר תיאורטי בעניין הקדימות של אופרטורים.

דוגמה 1:

מה יהיה ערכו של X?

x = 7>2&&!(5<9)||10>5;

דוגמה 2:

מה יוחזר עבור a=1?

int f(int a)
{
return a!=0&&a<3;

}

דוגמה 3

1/2*3

דןגמה 4

כיצד מחושב הביטוי x = y = 4 + z++ * 5 / (2 + 7) ?

אני לא מבקש רק תשובות סופיות אלא גם הסבר כיצד מחושב כל ביטוי.

תודה

עוד שאלה

לא הבנתי את ההסבר: (בעיקר את המושגים אונרי ובינאירי):

לשימוש באופרטורים + - * בצורה האונרית יש עדיפות על השימוש בהם בצורה הבינארית.

מצ"ב דוגמה

[attachment deleted by admin]

פורסם
  • מחבר


x=0;//false

טעות. התשובה הנכונה: X=1

אינני מבין מדוע :nixweiss:

אגב, האתר שהצעת - מעולה!

פורסם

הבנתי למה:


x = 7>2&&!(5<9)||10>5;

(7>2) && ( !(5<9) || (10>5) )
True And ( [Not False] Or True)
True And True

פורסם

לדעתי זה ככה: (עדיין, התוצאה 1)


x = (7>2)&&!(5<9)||(10>5);

כלומר, ביטוי מתמטי קודם לביטוי לוגי (זה פשוט סביר שזה יהיה ככה, ובדר"כ זה מתאים להיגיון - הבעייתיות היחידה היא כשאתה לא יודע מה יותר סביר).

פורסם

הבנתי למה:


x = 7>2&&!(5<9)||10>5;

(7>2) && ( !(5<9) || (10>5) )
True And ( [Not False] Or True)
True And True

זה לא נכון. זה צריך להיות:

(true and false) or true

יש קדימות לAND ע"פ OR

A יהייה גם כן TRUE, מכיוון ששני האופרנדים יקבלו הם TRUE.

ולאחרון: אתה לוקח את ערכו של Z, ומחשב איתו את כל החישובים(מכפיל תערך ב- 5 ומחלק ב- 9, ובסוף מוסיף 4). אחרי החישוב ערכו של Z יגדל. את מה שיצא(לפני ההגדלה של Z) אתה שם ב- Y ולאחר מכן ב- X.

אונרי - משתנה ואופרנד.

בינארי - משתנה, אופרנד ואחריו עוד משתנה

פורסם

כמה פאשלות בשתי תגובות :s07:

נורא מצטער :P

פורסם
  • מחבר

(ולאחרון: אתה לוקח את ערכו של Z, ומחשב איתו את כל החישובים(מכפיל תערך ב- 5 ומחלק ב- 9, ובסוף מוסיף 4). אחרי החישוב ערכו של Z יגדל. את מה שיצא(לפני ההגדלה של Z) אתה שם ב- Y ולאחר מכן ב- X.

א. תודה. הבנתי!

ב. "אחרי החישוב ערכו של Z יגדל" - התכוונת יגדל ב-1 בגלל ה ++? ומתי זה יקרה בדיוק?

ג. עוד שאלה: 3*1/2 מה זה? חצי כפול שלוש או אחד חלקי שש? ולמה זה שווה לאפס?

פורסם

ב. "אחרי החישוב ערכו של Z יגדל" - התכוונת יגדל ב-1 בגלל ה ++? ומתי זה יקרה בדיוק?

ג. עוד שאלה: 3*1/2 מה זה? חצי כפול שלוש או אחד חלקי שש? ולמה זה שווה לאפס?

ב. Z יגדל ב- 1. כעיקרון זה יקרה לפני חישוב כל מה שיש שם, אך זה יחזיר את הערך הקודם של Z(לפני ההגדלה), כך שזה כאילו הוא קודם מחזיר את הערך ואחר כך מגדיל.

ג. זה חצי כפול 3, מכיוון שאין סוגריים במכנה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים