מה"ט אלגוריתמיקה ותכנות — אביב 2025 מועד ב'
תאריך הבחינה: לא ידוע
טופס המבחן המלא להורדה — ומפתח התשובות עם פתרון מפורט לכל שאלה, אונליין. פתחו שאלה למטה: בשאלה סגורה בוחרים תשובה, בשאלה פתוחה נפתח הפתרון המלא (כניסה מהירה וחינם).
למגמת הנדסת תוכנה — מי שלומד ב-Java או ב-C#. הלומדים בפייתון ניגשים לשאלון נפרד.
✓ פתרון מלא לכל שאלה · ✓ הסברים מלאים וחומרי לימוד · ✓ ליווי מורה AI · ✓ התחלה חינם
פתרון מפורט לכל שאלה — לא רק התשובה: הסבר שלב-אחר-שלב וניתוח הטעויות הנפוצות.
שאלות לדוגמה מהמבחן — פתרו עכשיו
בשאלה סגורה בוחרים תשובה; בשאלה פתוחה פותחים את הפתרון המלא (כניסה מהירה וחינם). אלו 3 מתוך 28 שאלות המבחן — את כולן תוכלו לפתור אונליין.
נתונות הפעולות What, Why ו-WhyHelp:
public static bool What(string s, char c, int k)
{
if(k == 0 && s.Length == 0) return true;
if(s.Length == 0) return false;
if(k < 0 ) return false;
if(s[0] == c) return What(s.Substring(1),c, k-1);
return What(s.Substring(1),c, k);
}
public static bool Why(char[] arr, string s)
{
return WhyHelp(arr, s, 0);
}
public static bool WhyHelp(char[] arr, string s, int k)
{
if(k == arr.Length) return true;
if(!What(s, arr[k], k+1)) return false;
return WhyHelp(arr, s, k+1);
}
עקבו אחרי זימון What("HELLO",'L',3) ורשמו את תוצאת הזימון.
יש להראות מעקב.
תנו דוגמה למחרוזת s באורך חמישה תווים לפחות שעבורה זימון What(s,'T',2) יחזיר ערך true.
מה מבצעת הפעולה What(string s, char c, int k) באופן כללי?
נתונים מערך תווים
char[] arr = {'H','E','L','P'};
ומחרוזת
string s = "APHEEKLPPLVLZTP";
עקבו אחרי הזימון Why(arr, s) ורשמו את תוצאות הזימון.
תנו דוגמה למחרוזת הקצרה ביותר str שעבורה זימון הפעולה Why(arr, str) יחזיר ערך true.
מה מבצעת הפעולה Why(arr, s) באופן כללי?
נתונות ההגדרות הבאות:
-
"רמת הזוגיות" של מספר שלם היא סכום הספרות הזוגיות במספר. לדוגמה:
- "רמת הזוגיות" של מספר 12347 היא 6.
- "רמת הזוגיות" של מספר 1860- היא 14.
- "רמת הזוגיות" של מספר 135 היא 0.
-
מערך של מספרים שלמים נקרא "מערך בלי חזרות רמה" אם "רמות הזוגיות" של כל איברי המערך שונות זו מזו.
-
שני מערכים של מספרים שלמים arr1 ו-arr2 נקראים "זרים לפי רמות" אם הם "מערכים בלי חזרות רמה" ולא קיים זוג איברים (אחד ממערך arr1 ושני ממערך arr2) שיש להם את אותה "רמת הזוגיות".
כתבו פעולה המקבלת מספר שלם ומחזירה את "רמת הזוגיות" שלו.
כתבו פעולה המקבלת מערך של מספרים שלמים ובודקת אם הוא "מערך בלי חזרות רמה". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
כתבו פעולה המקבלת שני מערכים של מספרים שלמים. הפעולה תבדוק אם המערכים "זרים לפי רמות". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
מהי סיבוכיות זמן הריצה של כל הפעולות שכתבתם? הסבירו את תשובתכם.
בחברת "הפלסטיק הקסום" מייצרים קופסאות לאחסון בצבעים שונים ובגדלים שונים. לחלק מהקופסאות יש מכסה הרמטי.
למחלקת קופסת האחסון StorageBox יש שש תכונות:
- צבע – color, מטיפוס מחרוזת – string
- אורך – length, מטיפוס מספר שלם – int
- רוחב – width, מטיפוס מספר שלם – int
- גובה – height, מטיפוס מספר שלם – int
- מחיר – cost, מטיפוס מספר ממשי – double
- יש מכסה – hasCover, מטיפוס בוליאני – bool (יש מכסה – true, אין מכסה – false)
במחלקה StorageBox הוגדרה פעולה בונה (בנאי, constructor) המקבלת פרמטר של כל תכונה וקובעת את הערכים של תכונות העצם. המחלקה כוללת פעולות Get/Set לכל אחת מהתכונות.
כתבו פעולה בונה המייצרת קופסה בצבע לבן (white), ללא מכסה, שכל הממדים שלה (אורך, רוחב וגובה) הם מספרים אקראיים בין 30 ל-100 (כולל). כותרת הפעולה:
public StorageBox(double cost)
כתבו פעולה חיצונית המקבלת מערך הפניות לעצמים מסוג StorageBox בשם arr וצבע color. הפעולה תחזיר מספר קופסאות בצבע color שאין להן מכסה. כותרת הפעולה:
public static int NoCover(StorageBox[] arr, string color)
הנחה: כל תא במערך מכיל הפניה לעצם מסוג StorageBox ואין תאים במערך שערכם שווה ל-null.
מערך של קופסאות נקרא "סט אחיד" אם כל הקופסאות בו הן באותו הצבע ולכולן יש מכסה או לכולן אין מכסה. כתבו פעולה חיצונית המקבלת מערך הפניות לעצמים מסוג StorageBox בשם arr. הפעולה תבדוק אם המערך מייצג "סט אחיד". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. כותרת הפעולה:
public static bool IsUnique(StorageBox[] arr)
הנחה: כל תא במערך מכיל הפניה לעצם מסוג StorageBox ואין תאים במערך שערכם שווה ל-null.
הנושאים הרשמיים בבחינה 97104
לפי תוכנית הלימודים הרשמית של מה"ט (אלגוריתמיקה ותכנות) — אלו הנושאים שהבחינה נשענת עליהם:
- אלגוריתם – אלגוריתמים מילוליים, שימוש באלגוריתם לפתרון בעיות במחשב · 11 ש'
- מבוא לתכנות ב-Java – מבנה תכנית, משתנים, טיפוסי נתונים בסיסיים, הוראות השמה ופלט · 11 ש'
- מתחילים לתכנת – אופרטורים, ממשק מחלקה, זימון פעולות, המחלקה Math · 16 ש'
- משפטי תנאי (if, switch) ופעולות (methods) – כתיבה וזימון, יבוא מודולים · 23 ש'
- לולאות (for, while, do-while) – יעילות אלגוריתם, תבניות אלגוריתמיות בסיסיות, המחלקה String · 28 ש'
- מבנה נתונים סדרתיים – מערכים חד-ממדיים ודו-ממדיים, תבניות סריקה, חיפוש ומיון (insertion sort, מיזוג) · 36 ש'
- מבוא לתכנות מונחה עצמים – מחלקות ועצמים, הכמסה (Encapsulation), בנאים, העמסה ודריסה (overloading/overriding) · 22 ש'
- רקורסיה · 7 ש'
- טיפול בחריגים (Exceptions) – היכרות עם מחלקת Exception ופרדיגמת exceptions · 7 ש'
- ערוצי קלט/פלט (System.in/out/err), קריאה וכתיבה לקובצי טקסט ובינארי · 7 ש'
- יסודות Threads ו-MultiThreads · 6 ש'
- כתיבה תקנית (coding conventions) בסביבת Java · 8 ש'
- ניהול זיכרון והמכונה הוירטואלית (JVM) בג'אווה · 5 ש'
- תרגיל סיכום מסכם · 2 ש'
המקור: תוכנית הלימודים הרשמית של מה"ט (משרד העבודה).
פתרו את המבחן המלא — עם משוב על כל תשובה
כל שאלות המבחן, פתרון מפורט, משוב אישי ומעקב התקדמות. בדיוק מה שצריך כדי לעבור.
התחילו לתרגל — חינם ←