בחינה ב-"מבנה נתונים – C++"  מועד ב'

המרצה: ד"ר דן אופיר
קהל היעד: סטודנטים הנדסת חשמל ואלקטרוניקה

מועד הבחינה: 27.08.03   שעה: 9:00

משך הבחינה 3- שעות.

בחר שתי שאלות מקבוצת שאלות הראשונה
ושאלה אחת מקבוצת השאלות השניה
(ערכה של כל שאלה  בקבוצה א'  30%, ובקבוצה ב'(40%   

השתמש באתר  :http://www.geocities.com/comp_ophir/
מותר השמוש במחברות ובספרים. 

קבוצה 1:
1. מצא את bug  בפונקציה שעושה מיון: straight Selection והממומשת ב-directory:
c_final_examination_Aug_03/c_Question1_bug_sort. 
       בדוק אותה על סדרת הנתונים המתקבלת כאשר ind_case=4, וקלט הוא הסדרה:
7 3 5 12 6 9 8 4      לאחר המיון של straight Selection בתוכנית המיושמת בספריה לעיל 
   מתקבלת  הסדרה:

999  -107374e+008  3 4 5 6 7 8 12.

   ה-9 נעלם, ויש לנו זבל.

         תקן ונמק.

2. נתונה סדרת מספרים:
         	
          שאותה ממינים.
          הסדרה עוברת שנויים בשלבים השונים של המיון.  נתונות סדרות הביניים בכל שלבי המיון:

הסדרה	שלב	
	0  - הנתונים	
	1	
	2	
	3	
	4	
	5	
	6	
	7	

ציין מהי שיטת המיון שבעזרתה נעשה המיון.  אם ידוע שהמיון היה באחת השיטות הבאות:
Insertion, Selection ,Exchange  - נמק.
השלם את השורה הריקה  (שלב 6) .

3. תוריד מהאתר את התוכנית    Stack1 מתוך c_final_examination_Aug_03 ובדוק בעזרת
    ה-debugger מה היה מצב המחסנית לפני ואחרי בצוע השיטה (method) בשם remove. 
   קבע מה עושה שיטת ה-remove?  הצג את תוכנה של המחסנית st1 לפני ואחרי 
   פעולת ה-remove.

4. קח Project line  מתוך c_lecture2,  תוסיף לו method (שיטה)  המחזיר  את נקודת האמצע - 
    נקודה בדיוק באמצע  בין שתי נקודות.  ה-Prototype של השיטה נראה כך:

CPoint CPoint:: middlePoint(CPoint p1, CPoint p2)                  	

קבוצה 2:
5 .כתוב תוכנית: "חד- מחלקתית" המייצגת מספרים ממשיים בעזרת שני שלמים:
    מנטיסה  - mantissa
    מעריך –  exponent   של בסיס 10.
    למשל:

726.64589  מיוצג על ידי: 
מנטיסה -72664589 
מעריך -5 -  ,
היות ו- 

זאת אומרת במקרה זה     

ומבצעת פעולות חשבון בסיסיות: 
חיבור (+), חיסור (-), כפל (*), חילוק (/) .  

הערה: הכפל והחילוק קלים יותר לממוש:

6. בית חולים קבל משימה למחשב את מערך המיטות שלו.
    כתוב תוכנית "רב- מחלקתית"  המתארת המערך הנ"ל:
    חלוקת הבית חולים לאגפים: אישפוז (פנים), אמבולטורי (חוץ).
    כל אגף מחולק  למחלקות: פנימית, כירורגית, אורטופדית, ילדים.
    כתוב תוכנית בעלת ה-classes המתארים את  ה-class Beyt_Holim ושאר ה-classes 
    המתאימים לבעיה.  בכל class צריכה להיות שיטה המחזירה את מספר המיטות השיכות ל-class
    הזה.
.