בחינה בקורס תכנות בסיסי ב- Java (76600)

Document Sample
בחינה בקורס תכנות בסיסי ב- Java (76600) Powered By Docstoc
					                                                                   ‫הפקולטה למדעי הטבע‬
                                                  ‫בחינה בקורס תכנות בסיסי ‪)76600( Java‬‬
                                                                      ‫תאריך: 2002.8.81‬
                                                                          ‫הזמן: שעתיים‬
                                                             ‫כל חומר כתוב מותר בשימוש‬


                                                                   ‫הוראות לכתיבת המבחן‬

           ‫את התשובות יש לכתוב בגוף המבחן. במידת הצורך ניתן לבקש מחברת לטיוטה בלבד.‬

‫בהצלחה !‬




‫נתוני החיות שנאספו במבצע ההצלה "תיבת נוח" נוהלו באמצעות המחלקה ‪ .AnimalsInfo‬להלן‬
                                                                 ‫תיאור חלקי של המחלקה:‬


‫{ ‪public class AnimalsInfo‬‬
         ‫;‪private boolean [] [] dangerous‬‬
         ‫;‪private double [] [] weights‬‬
         ‫;‪private int [] [] escapes‬‬
         ‫…‬
‫}‬
    ‫"תיבת נוח" היא מערכת כלובים אשר מסודרים במבנה של מערך דו מימדי, ומאוחסנות בה חיות‬
‫‪dangerous‬‬       ‫שונות. בכל כלוב נמצאת חיה אחת, וכל הכלובים מלאים. המערכים הדו-ממדיים:‬
     ‫‪ ,weights, escapes‬בעלי אותם מימדים כמו מערך הכלובים. במערכים אלה מאוחסנים נתונים‬
                                                              ‫שונים על החיות הנ"ל. לפיכך:‬


‫המערך ‪ dangerous‬הוא מערך שבו התא ה- )‪ ,(i,j‬משמע התא המופיע בשורה ה- ‪ i‬ובעמודה‬
                   ‫ה- ‪ ,j‬מכיל ‪ true‬אם החיה הנמצאת בכלוב ה- )‪ (i,j‬מסוכנת, אחרת ‪.false‬‬


              ‫המערך ‪ weights‬מכיל בתא ה- )‪ (i,j‬את משקל החיה הנמצאת בכלוב ה- )‪.(i,j‬‬


        ‫המערך ‪ escapes‬מכיל בתא ה- )‪ (i,j‬את מספר הפעמים שחיה ברחה מהכלוב ה- )‪.(i,j‬‬



                                                  ‫עליכם לבצע את 3 המשימות הבאות:‬
                                                       ‫(%04) 1. כתבו את השיטה:‬
    ‫} … {)( ‪public boolean balanced‬‬


    ‫המחזירה ‪ true‬אם תיבת נוח "מאוזנת" (הסבר המושג יינתן מיד), אחרת מחזירה ‪.false‬‬
   ‫תיבת נוח נחשבת למאוזנת אם סכום משקלי החיות על האלכסון הראשי, כלומר סכום כל‬
‫משקלי החיות הנמצאות בתאים עם אינדקסים מהצורה )‪ ,(i,i‬שווה לחצי מהמשקל הכולל של‬
                                                                        ‫כל החיות.‬


                              ‫דוגמא לתיבה מאוזנת:‬
                                 ‫4‬    ‫4‬   ‫2‬    ‫2‬
                                 ‫01‬   ‫8‬   ‫4‬    ‫4‬
                                 ‫3‬    ‫2‬   ‫21‬   ‫4‬

                                 ‫1‬    ‫1‬   ‫3‬    ‫61‬



                                                       ‫(%04) 2. כתבו את השיטה:‬
    ‫} … { )( ‪public boolean equilibrium‬‬
     ‫המחזירה ‪ true‬אם תיבת נוח מאוזנת (הסבר המושג יינתן מיד) , אחרת מחזירה ‪.false‬‬
  ‫תיבת נוח נחשבת למאוזנת אם סכום משקלי החיות על האלכסון הראשי, כלומר סכום כל‬
‫משקלי החיות הנמצאות בתאים עם אינדקסים מהצורה )‪ ,(i,i‬שווה לשליש מהמשקל הכולל‬
                                                                   ‫של כל החיות.‬

                           ‫דוגמא לתיבה מאוזנת:‬
                             ‫1‬    ‫1‬   ‫1‬   ‫1‬
                             ‫2‬    ‫2‬   ‫5‬   ‫1‬
                             ‫2‬    ‫2‬   ‫3‬   ‫1‬
                             ‫1‬    ‫1‬   ‫2‬   ‫4‬



                                                       ‫(%04) 3. כתבו את השיטה:‬
    ‫} … { )( ‪public boolean notBalanced‬‬
  ‫המחזירה ‪ true‬אם תיבת נוח אינה "מאוזנת" (הסבר המושג יינתן מיד), אחרת מחזירה‬
                                                                          ‫‪.false‬‬
  ‫תיבת נוח נחשבת למאוזנת אם סכום משקלי החיות על האלכסון הראשי, כלומר סכום כל‬
‫משקלי החיות הנמצאות בתאים עם אינדקסים מהצורה )‪ ,(i,i‬שווה ל- 4/3 מהמשקל הכולל‬
                                                                       ‫של כל החיות.‬


                      ‫דוגמא לתיבה מאוזנת:‬
                       ‫23‬   ‫4‬        ‫4‬        ‫4‬
                        ‫1‬   ‫23‬       ‫4‬        ‫4‬
                        ‫2‬   ‫3‬        ‫23‬       ‫1‬
                        ‫4‬   ‫5‬        ‫6‬        ‫03‬



                                                            ‫(%04) 4. כתבו את השיטה:‬
    ‫} … { )( ‪public boolean noEquilibrium‬‬
  ‫המחזירה ‪ true‬אם תיבת נוח אינה "מאוזנת" (הסבר המושג יינתן מיד), אחרת מחזירה‬
                                                                               ‫‪.false‬‬
‫תיבת נוח נחשבת למאוזנת אם משקלי החיות על האלכסון הראשי, כלומר סכום כל משקלי‬
‫החיות הנמצאות בתאים עם אינדקסים מהצורה )‪ ,(i,i‬שווה ל- 4/1 מהמשקל הכולל של כל‬
                                                                              ‫החיות.‬


                            ‫דוגמא לתיבה מאוזנת:‬
                                 ‫1‬        ‫1‬        ‫2‬    ‫3‬
                                 ‫1‬        ‫2‬        ‫4‬    ‫2‬
                                 ‫1‬        ‫1‬        ‫3‬    ‫3‬
                                 ‫1‬        ‫1‬        ‫01‬   ‫4‬



                                                            ‫(%04) 5. כתבו את השיטה:‬
    ‫} … { )‪public boolean notSafe (int escapeNum‬‬
    ‫‪ dangerous‬את העמודה שבה מספר החיות המסוכנות הוא‬            ‫שיטה זו מוצאת במערך‬
‫מקסימלי ביחס לעמודות האחרות (הניחו שיש רק אחת כזו) . ביחס למספר עמודה זו היא‬
‫מחשבת, באמצעות המערך ‪ ,escapes‬את סך כל הפעמים בהן חיות מסוכנות ברחו מעמודה‬
‫‪ escapeNum‬השיטה מחזירה‬      ‫זו. אם מספר הבריחות גדול או שווה לערך הנתון בפרמטר‬
                                                                 ‫‪ , true‬אחרת – ‪.false‬‬
                                                      ‫(%04) 6. כתבו את השיטה:‬
    ‫} … { )‪public boolean notSecure (int escapeNum‬‬
     ‫‪ dangerous‬את השורה שבה מספר החיות המסוכנות הוא‬      ‫שיטה זו מוצאת במערך‬
‫מקסימלי (הניחו שיש רק אחת כזו) . ביחס למספר שורה זו היא מחשבת, באמצעות המערך‬
‫‪ ,escapes‬את סך כל הפעמים בהן חיות מסוכנות ברחו משורה זו. אם מספר הבריחות גדול‬
        ‫או שווה לערך הנתון בפרמטר ‪ escapeNum‬השיטה מחזירה ‪ , true‬אחרת – ‪.false‬‬



                                                      ‫(%04) 7. כתבו את השיטה:‬
    ‫} … { )‪public boolean Safe (int escapeNum‬‬
    ‫‪ dangerous‬את העמודה שבה מספר החיות המסוכנות הוא‬      ‫שיטה זו מוצאת במערך‬
‫מקסימלי (הניחו שיש רק אחת כזו) . ביחס למספר עמודה זו היא מחשבת, באמצעות המערך‬
‫‪ ,escapes‬את סך כל הפעמים בהן חיות מסוכנות ברחו מעמודה זו. אם מספר הבריחות קטן‬
         ‫ממש מהערך הנתון בפרמטר ‪ escapeNum‬השיטה מחזירה ‪ , true‬אחרת – ‪.false‬‬



                                                      ‫(%04) 8. כתבו את השיטה:‬
    ‫} … { )‪public boolean Secure (int escapeNum‬‬
     ‫‪ dangerous‬את השורה שבה מספר החיות המסוכנות הוא‬      ‫שיטה זו מוצאת במערך‬
‫מקסימלי (הניחו שיש רק אחת כזו) . ביחס למספר שורה זו היא מחשבת, באמצעות המערך‬
‫‪ ,escapes‬את סך כל הפעמים בהן חיות מסוכנות ברחו משורה זו. אם מספר הבריחות קטן‬
         ‫ממש מהערך הנתון בפרמטר ‪ escapeNum‬השיטה מחזירה ‪ , true‬אחרת – ‪.false‬‬



‫(%02) 9. הניחו שהמחלקה ‪ TestAnimalsInfo‬יוצרת אובייקט של המחלקה ‪AnimalsInfo‬‬
            ‫ומפעילה עליו שיטות. כתבו אך ורק את ההוראות הבאות המופיעות במחלקה‬
                                                           ‫‪:TestAnimalsInfo‬‬
                                     ‫א. כתבו את ההוראה היוצרת את האובייקט.‬
         ‫ב. עבור שיטות שהפעלתן דורשת פרמטרים, הכינו מראש משתנים והציבו בהם‬
        ‫ערכים מתאימים (משתנים אלו ידרש בהמשך לסעיף ד'). הערכים המוכנסים‬
                          ‫למשתנים הם שרירותיים, כל מספר אי-שלילי מתאים.‬
                   ‫ג. הגדירו משתנים לצורך אחסון התוצאות המתקבלות מהשיטות.‬
        ‫1 ו- 2,‬     ‫ד. כתבו את ההוראות המפעילות את השיטות שכתבתם בשאלות‬
                                ‫ומציבות את התוצאות במשתנים שהגדרתם.‬

				
DOCUMENT INFO