בגרות מדעי המחשב 899271, קיץ 2021 מועד א'
תאריך הבחינה: לא ידוע
טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).
לתלמידי ותלמידות היחידות המתקדמות במדעי המחשב — כולל שלושת מסלולי הבחירה: אלגוריתמים, מודלים חישוביים ותכנות מונחה עצמים.
✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם
פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.
שאלות לדוגמה מהמבחן — פתרו עכשיו
בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 10 שאלות המבחן — את כולן תוכלו לפתור אונליין.
נתונה פעולה חיצונית נתונה delete (זמינה לשימוש, אין לממש) המוחקת חוליה עם ערך נתון משרשרת. נתונה גם המחלקה BiList - דו-שרשרת, ולה שתי תכונות: lst1 ו-lst2, שתיהן הפניות לתחילת שרשרת חוליות מטיפוס שלם. לפניך ממשק חלקי של המחלקה (בונה + addNum) - זמין לשימוש; אסור להוסיף לו get/set או פעולות נוספות.
// פעולה נתונה (זמינה לשימוש, אין לממש):
// public static Node<Integer> delete (int num, Node<Integer> lst)
// מוחקת את החוליה שבה הערך num משרשרת lst, ומחזירה מצביע לתחילת השרשרת.
// נתונה המחלקה BiList - דו-שרשרת, ולה שתי תכונות:
// lst1 - הפניה לתחילת שרשרת חוליות מטיפוס שלם
// lst2 - הפניה לתחילת שרשרת חוליות מטיפוס שלם
// לפניך ממשק חלקי (זמין לשימוש, אין להוסיף לו get/set או פעולות נוספות):
public BiList () // בונה עצם עם שתי שרשראות ריקות
public void addNum (int num, int codeList) // מוסיפה חוליה עם הערך num לסוף lst1 (אם codeList=1) או לסוף lst2 (אם codeList=2)
שרשרת lst ופיצולה ל-lst1 (המחצית הגדולה) ו-lst2 (המחצית הקטנה), כפי שמודגם בשאלון
lst: 88 -> -9 -> 0 -> 10 -> 6 -> 13 -> null
BiList result:
lst1: 88 -> 10 -> 13 -> null
lst2: -9 -> 0 -> 6 -> null
כתוב פעולה חיצונית ששמה generateBilist בשפת Java או GenerateBilist בשפת C#, המקבלת שרשרת חוליות lst - זוגית מספר החוליות, מטיפוס שלם - ומחזירה עצם מטיפוס BiList שבו: כל אחד מהמספרים שב-lst שייך לאחת מהשרשראות lst1 או lst2; כל המספרים ב-lst1 גדולים מכל המספרים ב-lst2; מספר החוליות בשתי השרשראות זהה. שים לב: אין להוסיף פעולות, גם לא get/set, למחלקה BiList.
public static BiList generateBilist (Node<Integer> lst)
בשרשרת חוליות, "העברה מעגלית של n חוליות" היא העברת n החוליות האחרונות לתחילת השרשרת (בלי לשנות את סדר ההופעה של אותן n חוליות ביניהן). הנח: n≥0 ומספר החוליות בשרשרת גדול מ-n.
שרשרת lst לפני ואחרי העברה מעגלית של n=2 חוליות (דוגמת השאלון)
before: 5 -> 1 -> 2 -> 8 -> 4 -> null
after (n=2): 8 -> 4 -> 5 -> 1 -> 2 -> null
כתוב פעולה חיצונית ששמה move בשפת Java או Move בשפת C# המקבלת שרשרת חוליות lst מטיפוס שלם ומספר שלם n, ומחזירה את השרשרת lst לאחר "העברה מעגלית של n חוליות".
public static Node<Integer> move (Node<Integer> lst, int n)
מהי סיבוכיות זמן הריצה של הפעולה שכתבת בסעיף א'? נמק.
לפניך שתי פעולות רקורסיביות הפועלות על מערך arr מטיפוס שלם. סעיף א עוסק ב-sod1, וסעיף ב עוסק ב-sod2 (המשתמשת ב-sod1 מסעיף א).
public static boolean sod1 (int[] arr, int x, int i)
{
if ( i == -1) return false;
if (arr[i] == x) return true;
return sod1(arr, x, i - 1);
}
public static boolean sod2 (int[] arr, int x, int i)
{
if ( i == 0) return false;
if (sod1(arr, x - arr[i], i - 1)) return true;
return sod2(arr, x, i - 1);
}
המערך הנתון בשני הסעיפים
a: index 0..4 = [5, 4, 15, 12, 2]
כתוב את הערך המוחזר בעבור זימון הפעולה sod1(a, 8, a.length-1) והמערך a שלפניך. עליך להראות מעקב.
בעבור מערך כלשהו a ומספר x, מהי מטרת הפעולה sod1(a, x, a.length-1)?
מהי סיבוכיות זמן הריצה של הפעולה sod1? נמק.
כתוב את הערך המוחזר בעבור זימון הפעולה sod2(a, 16, a.length-1) והמערך a שלפניך. עליך להראות מעקב (בסעיף זה, אין צורך לבצע מעקב אחר הפעולה sod1).
מהי מטרת הפעולה sod2?
מהי סיבוכיות זמן הריצה של הפעולה sod2? נמק.
כל שאלות המבחן — 10 שאלות, כל אחת עם פתרון מלא
לפי סדר המבחן. לוחצים על שאלה ועוברים לעמוד שלה: השאלה המלאה, השרטוט, ופתרון מלא ומוסבר צעד אחרי צעד.
- שאלה 4
שאלה — חלוקת שרשרת חוליות לשתי שרשראות לפי גודל (BiList)
- שאלה 5
שאלה — העברה מעגלית של n חוליות מסוף שרשרת להתחלתה
- שאלה 6
שאלה — מעקב רקורסיבי אחר sod1 (חיפוש) ו-sod2 (זוג סכום)
- שאלה 7
שאלה — השוואת תורים - זהות מדויקת ודמיון מעגלי
- שאלה 10
שאלה — גרף "מתחלק" (דו-צדדי) - זיהוי ומינימום קשתות להסרה
- שאלה 11
שאלה — גרף מכוון: רכיבי קשירות חזקים, מינימום קשתות, ודייקסטרה
- שאלה 12
שאלה — שפה L מעל {a,b,c} - דוגמאות והוכחת רגולריות
- שאלה 13
שאלה — שתי שפות מעל {a,b,c}: L1 (יחס m=2k) ו-L2 (זוגיות משותפת)
- שאלה 14
שאלה — יומן אירועים (Diary/Event/Meeting/PhoneCall/Task) - הכללה, allCalls ו-match פולימורפי
- שאלה 15
שאלה — עומס יתר מול דריסה - מעקב תקינות ופלט ב-15 קטעי קוד
פתרו את המבחן המלא — עם משוב על כל תשובה
כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.
התחילו לתרגל — חינם ←