» נושאי לימוד
» נושאי לימוד
יום שני 29 באפריל 2024
שאלות סיכום
דף ראשי  מתחילים  אופרטורים  שאלות סיכום גרסה להדפסה

 

שאלות סיכום

 

 

ש: על מה מבצע האופרטור את פעולתו?

 

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

 

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

 

ת: אופרטור כזה נקרא אופרטור אונארי.

 

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

 

ת: אופרטור כזה נקרא אופרטור בינארי.

 

ש: האם האופרטור (-) הינו אופרטור אונארי או בינארי? נמק.

 

ת: שניהם. כאופרטור אונארי, סימן המינוס (-) גורם לחיסור האופרנד הימני מן האופרנד השמאלי. כאופרטור בינארי, סימן (-) גורם להיפוך הסימן האלגברי של האופרנד הימני.

 

ש: תאר העמסת אופרטורים.

 

ת: בשפות התומכות בכך (כגון ++C), העמסת אופרטורים פירושה שהמתכנת יכול להגדיר מחדש את התנהגותו של אופרטור ביחס לאובייקטים מטיפוס חדש, שמוגדר בתוכנית.

 

ש: האם מתכנתי Java יכולים להעמיס אופרטורים?

 

ת: לא, Java אינה תומכת בהעמסת אופרטורים.

 

ש: מהם הסימנים עבור האופרטורים הבאים ב‑Java: הַשָׂמָה, לא-שווה, חיבור, המרת-טיפוס.

 

ת: הסימנים עבור אופרטורים אלה הם (משמאל לימין):

 

(char)   +          =!         =

 

אופרטור המרת-טיפוס משמש להמרה לטיפוס char.

 

ש: האם אופרטור כלשהו מועמס אוטומטית ב‑Java? אם כן, מהו? תאר את התנהגותו בהעמסה.

 

ת: סימן החיבור (+) מועמס אוטומטית ב‑Java. נתן להשתמש בסימן החיבור לביצוע חיבור אריתמטי. ניתן גם להשתמש בו לחיבור מחרוזות. אולם, סימן החיבור מבצע יותר מאשר חיבור המחרוזות.
הוא מבצע גם המרה
לטיפוס
String. כאשר סימן החיבור משמש לחיבור מחרוזות, האופרנד הימני מומר אוטומטית למחרוזת תווים, לפני שהוא מחובר אל האופרנד השמאלי. זאת בהנחה, שהמהדר יודע מספיק על האופרנד הימני כך שיוכל לבצע את ההמרה כראוי. למהדר יש ידע כזה ביחס לכל הטיפוסים הפרימיטיביים וביחס לרוב, או כל, טיפוסי-ההצבעה המוּבְנים-מראש.

 

ש: לאיזו תכלית משמש אופרטור המרת-טיפוס?

 

ת: אופרטור המרת-טיפוס משמש להמרה מכוונת מטיפוס אחד לטיפוס אחר.

 

ש: האם אופרטור increment הוא אופרטור בינארי?

 

ת: לא, אופרטור increment הוא אופרטור אונארי.

 

ש: מהו הסימן עבור אופרטור increment?

 

ת: הסימן עבורו הם שני סימני חיבור צמודים (++).

 

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

 

ת: ניתן להשתמש באופרטור increment בסימון תחילי ובסימון סופי כאחד. באופן בסיסי,
האופרטור גורם
להגדלת ערך המשתנה, שעליו הוא מופעל, ב‑1.

 

בגירסת הסימון התחילי, האופרטור מופיע מימין לאופרנד (X++), ואילו בגירסת הסימון הסופי הוא מופיע משמאל לאופרנד (++X).

 

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

 

ש: מה יהיה הפלט של אפליקציית Java הבאה?

 

class incr01 { //define the controlling class
  public static void main(String[] args){ //define main
    int x = 5, X = 5, y = 5, Y = 5;
    System.out.println("x = " + x );
    System.out.println("X = " + X );
    System.out.println("x + X++ = " + (x + X++) );
    System.out.println("X = " + X );
    System.out.println();
    System.out.println("y = " + y );
    System.out.println("Y = " + Y );
    System.out.println("y + ++Y = " + (y + ++Y) );
    System.out.println("Y = " + Y );    
  }//end main
}//End incr01 class.  Note no semicolon required
//End Java application

 

 

ת: הפלט של האפליקציה הוא:

 

x = 5
X = 5
x + X++ = 10
X = 6
y = 5
Y = 5
y + Y++ = 11
Y = 6

 

ש: האם אופרטורים בינאריים משתמשים בסימון חוּצִי? אם לא, נמק מדוע לא.

 

ת: לא, אופרטורים בינאריים משתמשים בסימון תוֹכִי, כלומר, האופרטור נמצא בין שני האופרנדים שלו.

 

ש: מבחינה מעשית, מה משמעות האמירה, שאופרטור שביצע פעולה מחזיר ערך (או מוערך כערך) מטיפוס מסוים?

 

ת: כתוצאה מביצוע פעולה מסוימת, ניתן לומר שהאופרטור מחזיר ערך (או מוערך כערך) מטיפוס מסוים. הטיפוס תלוי באופרטור ובטיפוס האופרנדים שלו. משמעות הדבר היא שלאחר ביצוע הפעולה, האופרטור והאופרנדים בביטוי מוחלפים בערך המוחזר.

 

ש: מהן ארבע הקטגוריות המתוארות במדריך Java של Baldwin? האם אתה מסכים לקיטלוג? אם לא, הסבר מדוע לא.

 

ת: מחברים אחדים מחלקים את האופרטורים של Java לארבע הקטגוריות הבאות:

 

·       אופרטור אריתמטי

·       אופרטור-יחס ואופרטור-תנאי (שב‑++C נהוג לכנותם אופרטור-יחס ואופרטור לוגי)

·         אופרטור לוגי ואופרטור bitwise

·       אופרטור הַשָׂמָה

 

ש: הבא ותאר לפחות חמישה אופרטורים אריתמטיים בינאריים הנתמכים ב‑Java (הבהרה: אופרטור בינארי אינו אופרטור-bitwise).

 

ת: Java תומכת באופרטורים אריתמטיים שונים עבור מספרים מטיפוס integer ו‑floating point. הטבלה הבאה מראה חמישה אופרטורים אריתמטיים בינאריים הנתמכים ב‑Java.

 

אופרטור תיאור

 

+                                  חיבור האופרנדים

-                                   החסרת האופרנד הימני מן האופרנד השמאלי

*                                   כפל האופרנדים

/                                   חלוקת האופרנד השמאלי באופרנד הימני

%                                 השארית בחלוקת האופרנד השמאלי באופרנד הימני

 

ש: נוסף על החיבור האריתמטי, איזה פעולה אחרת מבצע אופרטור סימן החיבור (+)?
הבא קטע קוד לדוגמה, להמחשת תשובתך. הקטע אינו מוכרח להיות הוראה מלאה.

 

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

 

"MyVariable has a value of  " 
     + MyVariable + " in this program."

 

 

ש: כאשר אופרטור סימן החיבור (+) משמש לחיבור מחרוזות, כיצד הוא יתנהג אם האופרנד הימני איננו מטיפוס String? אם האופרטור הימני הוא משתנה שאינו מטיפוס String, איזו השפעה תהיה להתנהגותו של האופרטור על משתנה כזה?

 

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

 

ש: הבא ותאר ארבע אופרטורים אריתמטיים אונאריים הנתמכים ב‑Java.

 

ת: Java תומכת בארבעה אופרטורים אריתמטיים אונאריים:

 

אופרטור תיאור

 

 

+                      לציון ערך חיובי

-                       שלילה, או היפוך הסימן האלגברי

++                    הוספת 1 לאופרנד (תחילי וסופי)

- -                     החסרת 1 מן האופרנד (תחילי וסופי)

 

ש: איזה טיפוס מוחזר על-ידי אופרטור יחס ב‑Java?

 

ת: אופרטור יחס ב‑Java מחזיר טיפוס boolean.

 

ש: הבא ותאר שישה אופרטורים של יחס הנתמכים ב‑Java.

 

ת: Java תומכת בקבוצת האופרטורים הבאים:

 

אופרטור מחזיר ערך "אמת" כאשר...

 

<                      האופרנד השמאלי גדול מן הימני

=<                    האופרנד השמאלי גדול או שווה לימני

>                      האופרנד השמאלי קטן מן הימני

=>                    האופרנד השמאלי קטן או שווה לימני

==                    האופרנד השמאלי שווה לימני

=!                     האופרנד השמאלי שונה מן הימני

 

ש: מה יהיה הפלט שתיצור אפליקציית Java הבאה:

 

class relat01 { //define the controlling class
  public static void main(String[] args){ //define main
    System.out.println("The relational 6<5 is " + (6<5 ));
    System.out.println("The relational 6>5 is " + (6>5 ));
  }//end main
}//End relat01 class.  Note no semicolon required
//End Java application

 

 

ת: התוכנית תיצור את הפלט הבא:

 

 The relational 6<5 is false
The relational 6>5 is true

 

 

ש: הבא ותאר שלושה אופרטורים (המכונים על פי רוב אופרטורים של תנאי ב‑Java או אופרטורים לוגיים ב‑++C), שנהוג לשלבם עם אופרטורים של יחס כדי ליצור ביטויים מורכבים יותר
(המכונים לרוב ביטויי תנאי).
רמז: האופרטור && מחזיר
true אם גם האופרנד השמאלי וגם האופרנד הימני שניהם true.

מהם שני האופרטורים האחרים וכיצד הם מתנהגים?

 

ת: ב‑Java נתמכים שלושת האופרטורים הלוגיים (אופרטורֵי-תנאי) הבאים:

 

Operator  Typical Use       Returns true if 
&&        Left && Right     Left and Right are both true
||        Left || Right     Either Left or Right is true 
!         ! Right           Right is false 

 

 

ש: תאר את התנהגותו המיוחדת של האופרטור || בביטוי הבא, במקרה שהערך של המשתנה a נמוך מערכו של המשתנה b:

  (a<b)||(c<d)                                       

 

ת: מאפיין חשוב של התנהגות האופרטורים && ו‑|| ב‑Java הוא, שהביטויים מוערכים משמאל לימין, והערכת הביטוי מסתיימת ברגע שניתן לקבוע את תוצאתה. בביטוי שלמעלה, למשל, אם המשתנה a קטן מהמשתנה b, אין צורך להמשיך ולהעריך את ערכו של האופרנד הימני של האופרטור || על מנת לקבוע את ערכו של הביטוי כולו. באופן כזה, תהליך ההערכה יסתיים ברגע שנקבע כי a קטן מ‑b.

 

ש: מהם הסימנים המשמשים עבור האופרטורים bitwise and ו‑bitwise or?

 

ת: ב‑Java האופרטור & הוא bitwise and והאופרטור | הוא bitwise or.

 

ש: האופרטור logical and מיוצג ב‑Java באמצעות הסימן &&. מהו הייצוג של האופרטור bitwise and ב‑Java?

 

ת: האופרטור bitwise and מיוצג על-ידי הסימן &.

 

ש: הבא ותאר חמישה אופרטורים ב‑Java אשר מבצעים את פעולותיהם על האופרנדים סיבית אחר סיבית (אופרטורֵי-bitwise)?

 

ת: הטבלה הבאה מציגה שבעה אופרטורֵי-bitwise הנתמכים ב‑Java.

 


Operator    Typical Use         Operation

 >>     OpLeft >> Dist      Shift bits of OpLeft right by
                            Dist bits (signed)
 ><     OpLeft << Dist      Shift bits of OpLeft left by 
                            Dist bits
 >>>    OpLeft >>> Dist     Shift bits of OpLeft right 
                            by Dist bits (unsigned)
 &      OpLeft & OpRight    Bitwise and of the two 
                            operands
 |      OpLeft | OpRight    Bitwise inclusive or of the 
                            two operands       
 ^      OpLeft ^ OpRight    Bitwise exclusive or (xor) of 
                            the two operands
 ~      ~ OpRight           Bitwise complement of the 
                            right operand (unary)
 

 

 

ש: האם ב‑Java פעולת הזזה מסומנת לימין מאכלסת את הסיביות שהתפנו באפסים,
בעוד שהזזה לשמאל והזזה בלתי-מסומנת לימין מאכלסות את הסיביות שהתפנו בסיבית הסימן?
אם לא, נמק מדוע לא.

 

ת: לא. ב‑Java הזזה מסומנת לימין מאכלסת את הסיביות שהתפנו בסיבית הסימן, ואילו הזזה לשמאל או הזזה בלתי-מסומנת לימין מאכלסות את הסיביות שהתפנו באפסים.

 

ש: בפעולת הזזה מסומנת לימין ב‑Java, האם הסיביות שהוזזו אל מעבר לקצה הימני הן אבודות?
אם תשובתך שלילית, הסבר מדוע.

 

ת: כן. ב‑Java וגם ב‑++C סיביות שהוזזו אל מעבר לקצה הימני הן אבודות.

 

ש: השתמש בסימנים 1 ו‑0 ליצירת טבלה המציגה את ארבעת צירופיהם האפשריים.
הראה את תוצאת הביצוע של פעולת
bitwise and על כל אחד מהצירופים.

 

ת:

 

1 and 1 נותן 1

1 and 0 נותן 0

0 and 1 נותן 0

0 and 0 נותן 0

 

ש: השתמש בסימנים 1 ו‑0 ליצירת טבלת אמת של ארבעת צירופיהם האפשריים.
הראה את תוצאות הביצוע של פעולת
bitwise inclusive or על כל אחד מן הצירופים.

 

ת: עבור bitwise inclusive or

 

1 or 1 נותן 1

1 or 0 נותן 1

0 or 1 נותן 1

0 or 0 נותן 0

 

 25-12-03 / 20:07  נוצר ע"י רונית רייכמן  בתאריך 
 קטגוריות של אופרטורים - הקודםהבא - ביטויים 
תגובות הקוראים    תגובות  -  0
דרכונט
מהי מערכת הדרכונט?
אינך מחובר, להתחברות:
דוא"ל
ססמא
נושאי לימוד
חיפוש  |  לא פועל
משלנו  |  לא פועל
גולשים מקוונים: 6