Professional Documents
Culture Documents
מותר להגדיר פונקציות עזר בכל השאלות ,אלא אם נאמר אחרת.
בהצלחה!
1
שאלה 20( 1נקודות)
סעיף א' 3( .נקודות)
עליכם לממש את המחלקה "מחסנית מינימום" MinStackכולל השדות שלה והכרזות על השיטות
הנצרכות.
המחלקה MinStackמכילה אובייקטים כלשהם מאותו סוג (רמז :השתמשו בתבניות).
ניתן להשתמש במחלקה Stackהמצורפת (אין צורך לממש מחלקה זו) ,אולם אין להגדיר או
להשתמש במחלקות נוספות מלבד שתי המחלקות האלה.
רמז חשוב MinStack :יכולה להכיל מחסנית פנימית שתשמור את הערכים המינימליים הנוכחיים
2
שאלה 20( 2נקודות)
מה פלט של קטעי קוד הבאים .במידה וישנה שגיאה עליכם לפרט בקצרה מה סוג השגיאה.
3
סעיף ה' 4( .נקודות)
4
שאלה 18( 3נקודות)
נתון קטע הקוד הבא .בכל סעיף עליך לרשום בדפי התשובות את מס' הסעיף ואת הפלט של הקוד תוך
החלפת שורת\שורות הקוד בשורה\שורות הנתונות בסעיף לפי מספרי השורות (כלומר ללא
התחשבות בסעיפים הקודמים(.
שימו לב :ייתכן שהתשובה היא שגיאת קומפילציה \ שגיאת ריצה ,במקרה כזה עליכם לפרט את סיבת
השגיאה.
.3
.4
.5
.6
.7
.8
.9
5
) נקודות20( C שפת4 שאלה
:נתונה ההגדרה הבאה של מבנה ברשימה משורשרת
typedef struct item item;
struct item{
int value;
item *next;
};
מקבלת כארגומנטים אתvoid rebuild(item* list1, item* list2, int num) הפונקציה
. מספר שלםnum - ו,ראשים של שתי רשימות משורשרותrה
num את הערךvalue הפונקציה מחליפה כל מבנה שמכיל בשדהlist1 עבור הרשימה של
.list2-ברשימה הלא ריקה המתחילה ב
: עבור,לדוגמה
list1 1 4 5 4 2 NULL
list2 7 8 6 NULL
num = 4
:נקבל את הרשימה
list1 1 7 8 6 5 7 8 6 2 NULL
: ?? ) בפונקציה הבאהN ??- השלמו את הקטעים החסרים (המסומנים ב
while( list1 ){
if( ?? 1 ?? ){
list1->value = ?? 2 ?? ;
temp2 = ?? 3 ?? ;
for( ?? 4 ?? ; ?? 5 ?? ; temp = temp ->next){
list1 ->next = ?? 6 ?? ;
list1 = ?? 7 ?? ;
?? 8 ?? ;
}
list1 -> next = ?? 9 ?? ;
}
?? 10 ?? ;
}
}
6
שאלה 5שפת 25 ( Cנקודות)
האוניברסיטה ביקשה ממכם לפתח מערכת שתעזור לסטודנט בכל סמסטר לבחור בקלות קורסי
בחירה.
מוגדר קובץ כל הקורסים הניתנים באוניברסיטה ,כל שורה בקובץ מכילה את הפרטים הבאים:
– 20תווים שם הקורס
– 8ספרות מס .הקורס
– ספרה אחת ( 1יום א' 2 ,יום ב').... יום בשבוע
– 2ספרות שעת התחלה
– 2ספרות שעת סיום
תאריך עדכון הפרטים – 8ספרות
הקובץ ממוין לפי מס' קורס בסדר עולה( .מניחים שכל קורס ניתן פעם בשבוע בלבד)
עבור כל מסלול בכל מחלקה מוגדר קובץ המכיל פרטי קורסי בחירה שסטודנט במסלול
רשאי לקחת ,כל שורה בקובץ מכילה את הפרטים הבאים:
– 8ספרות מס .הקורס
– 2ספרות נקודות זיכוי
תאריך עדכון הפרטים – 8ספרות
הקובץ ממוין לפי מס' קורס בסדר עולה.
עבור כל סטודנט מוגדר מערך דו מימדי arrשל מערכת השעות שלו באותו סמסטר,
מס' השורה ( )0-6מגדיר את היום ( 0שבת 1 ,יום א' 2 ,יום ב' )...ומספר העמודה שעה אחת
במערכת .לדוגמה האיבר ] arr[3][9מיצג את השעה ( 9:00עד )10:00שביום ג'.
שעה תפוסה במערכת מסומנת ע"י 1ושעה פנויה ע"י .0
הפונקציה תחזיר את מספר קורסי הבחירה שהסטודנט יכול לקחת ללא התנגשות עם המערכת
הקיימת שלו ובכל מקרה של תקלה בעבודה עם קובץ כלשהו הפונקציה תחזיר את הערך .-1
שימו לב!
כל הקבצים ממוינים לפי מס' קורס בסדר עולה.
בכל הקבצים אין תווי הפרדה בין השדות.
אין לעבור על קובץ יותר מפעם אחת.
אין להעתיק קובץ למבנה נתונים אחר (מערך ,רשימה משורשרת ,עץ ,קובץ אחר)...
7
INPUT/OUTPUT FUNCTIONS PROTOTYPES :פלט/רשימת פונקציות קלט
Open/Close a file
Get/put a character
Get/put a string
Formatted Input/Output
Remove a file
Rename a file
! בהצלחה