prepd.אתר תרגול לבחינות
איך ללמודצור קשר
© 2026 prepd. כל הזכויות שמורות.·אודות·תנאי שימוש·מדיניות פרטיות·נגישות

מבוא למדעי המחשב האוניברסיטה הפתוחה

תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות

סטטיסטיקות מבחנים
כדי לגשת למבחני סימולציה ועוד המון שאלות נוספות, פתחו גישה מלאה
רמת קושי:
לפניך שתי שאלות. יש לענות על שאלה אחת מבין השתיים בהתאם לסמסטר הלימוד שלך.
  • אם למדת את הקורס בסמסטר 2024א או 2024ב – חובה עליך לענות על שאלה מס' 5
  • אם למדת את הקורס בסמסטר 2025א או לפני 2024א – חובה עליך לענות על שאלה מס' 6


שאלה 5 (18 נקודות) – רק למי שלמד/ה את הקורס בסמסטר 2024א/ב
במחלקה Q5 נתונה השיטה הסטטית secret הבאה, המקבלת כפרמטרים מערך חד-ממדי a המלא במספרים שלמים, ושני מספרים שלמים
x ו- y.



נתון המערך a:
0 1 2 3 4 5 6 7 8 9

1 3 5 4 8 2 4 3 6 5


ענו על הסעיפים הבאים:
סעיף א (2 נקודות):

מה תחזיר השיטה secret בעקבות הקריאה secret(a, 6, 2)?


סעיף ב (2 נקודות):
מה תחזיר השיטה secret בעקבות הקריאה secret(a, 2, 6)?


סעיף ג (2 נקודות):
האם יש זוג פרמטרים
x ו- y כך שאם נפעיל את השיטה secret עם הפרמטרים a (המערך לעיל), x ו- y, השיטה תחזיר את הערך 1?
אם כן, כתבו את כל הזוגות האלו. אם לא, הסבירו מדוע לא.


סעיף ד (2 נקודות):
האם יש זוג פרמטרים
x ו- y כך שאם נפעיל את השיטה secret עם הפרמטרים a (המערך לעיל), x ו- y, השיטה תחזיר את הערך 9?
אם כן, כתבו את כל הזוגות האלו. אם לא, הסבירו מדוע לא.


סעיף ה (3 נקודות):
האם יש זוג פרמטרים
x ו- y כך שאם נפעיל את השיטה secret עם הפרמטרים a (המערך לעיל), x ו- y, השיטה תחזיר את הערך 2?
אם כן, כתבו את כל הזוגות האלו. אם לא, הסבירו מדוע לא.


סעיף ו (3 נקודות)
השיטה secret שונתה קצת, והיא נקראת secret1. כל השינויים מודגשים בתוך הקוד להלן:




מה תחזיר השיטה secret1 בעקבות הקריאה secret1(a, 1, 6)?

סעיף ז (4 נקודות)
מה מבצעת השיטה secret באופן כללי, כאשר היא מקבלת כפרמטרים מערך חד-ממדי a מלא במספרים שלמים, ושני מספרים שלמים
x ו-y.
שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, כתבו בקצרה מה משמעות הערך שהשיטה מחזירה כשהיא מקבלת כפרמטרים מערך ושני מספרים כפי שהוגדרו לעיל. התייחסו למקרי קצה.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 66 · 2025 · סמסטר א
★★★★★
מעקב אחר קודמערכיםלולאותתנאיםשיטות סטטיות
כל מספר טבעי (שלם חיובי) num ניתן להציג כסכום של חזקות של מספר טבעי factor כלשהו, כאשר כל חזקה מופיעה פעם אחת לכל היותר.

דוגמאות:
  • את המספר 9=num אפשר להציג כך:
20+23=1+8=9factor=2

וגם כך

32=9factor=3
  • את המספר 19=num אפשר להציג כך:
20+21+24=1+2+16=19factor=2
  • את המספר 28=num אפשר להציג כך:
22+23+24=4+8+16=28factor=230+33=1+27=28factor=3
  • את המספר 42=num אפשר להציג כך:
21+23+25=2+8+32=42factor=2

וגם כך

61+62=6+36=42factor=6
  • את המספר 73=num אפשר להציג כך:
20+23+26=1+8+64=73factor=2

וגם כך

80+81+82=1+8+64=73factor=8
  • את המספר 273=num אפשר להציג כך:
20+24+28=1+16+256=273factor=2

וגם כך

40+42+44=1+16+256=273factor=4

וגם כך

160+161+162=1+16+256=273factor=16

שימו לב –
ברור שאפשר להציג כל מספר
a כחזקה 1 של המספר a (כלומר a1), וגם כך: (a−1)0+(a−1)1.
לדוגמא, את המספר 7 אפשר להציג כך:
1+6=60+61=7. אנחנו לא מתכוונים לסכום הזה! את המספר 7 אנחנו רוצים להציג כך: 1+2+4=20+21+22=7

כתבו שיטה סטטית רקורסיבית המקבלת כפרמטר מספר שלם חיובי num כלשהו ומחזירה מהו המספר factor הגדול ביותר מבין המספרים 2 ל- num−2 כך שאפשר לקבל את num כסכום חזקות של factor, כאשר כל חזקה מופיעה לכל היותר פעם אחת. אם אין מספר כזה יוחזר 0. כמו כן, השיטה תדפיס את פירוט החזקות של factor שסכומן הוא num. ראו דוגמא בהמשך.

חתימת השיטה היא:



בדוגמאות לעיל,
  • אם num=9 – המספר שיוחזר יהיה 3 (כי הוא הגדול מבין 2, 3), ויודפס: 9
  • אם num=73 – המספר שיוחזר יהיה 8 (כי הוא הגדול מבין 2, 8), ויודפס: 1 8 64
  • אם num=273 – המספר שיוחזר יהיה 16 (כי הוא הגדול מבין 2, 4, 16), ויודפס: 1 16 256
  • אם num=3 – המספר שיוחזר יהיה 0 (כי אין factor אפשרי) ולא יודפס כלום.
כאן לא יוחזר הפקטור 2 ולא יודפס 1 2 בגלל שאנחנו לא מתייחסים לסכום של (n−1)1+(n−1)0 (כפי שהסברנו לעיל).

הדרכה: (אין חובה להשתמש בה)
כדאי לכתוב שיטת עזר (רקורסיבית כמובן) שמקבלת את
num ומספר נוסף factor, ובודקת אם אפשר להציג את num כסכום חזקות של factor.

השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר שתכתבו (אם תכתבו) לא יכולות להכיל לולאות.
  • אם השיטה שתכתבו רק תחזיר את הגורם המקסימלי, אבל לא תדפיס את הצגת הצירופים, התשובה תקבל לכל היותר 17 נקודות.
  • מותר להשתמש (אבל זה לא חובה!) בשיטות Math.sqrt , Math.min , Math.max מהמחלקה Math וכן בקבועים Integer.MAX_VALUE, Integer.MIN_VALUE מהמחלקה Integer.
  • מותר להשתמש בהעמסת-יתר (Overloading)
  • אין צורך לדאוג ליעילות השיטה! אבל כמובן שצריך לשים לב לא לעשות קריאות רקורסיביות מיותרות!
  • אל תשכחו לתעד את מה שכתבתם!
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 72 · 2025 · סמסטר א
★★★★★
רקורסיהשיטות סטטיותOverloadingמעקב אחר קודייצוג מספרים
בהינתן מחרוזת תווים st, נגדיר תת-סדרה (sub-sequence) של המחרוזת כמחרוזת שנשארה לאחר שהורדו ממנה חלק מהתווים.

למשל, אם המחרוזת המקורית "abcde"=st אז כל אחת מהמחרוזות להלן היא תת-סדרה של st (לא כתבנו כאן את כל האפשרויות):

"ab", "ce", "acd", "d", "abcde", "" (the empty string)

שימו לב שתת-סדרה (sub-sequence) אינה תת-מחרוזת (sub-string), ולכן התווים אינם צריכים להיות במיקום עוקב דווקא, אבל הסדר ביניהם צריך להיות כמו הסדר במחרוזת המקורית, ולא יכולים להיות תווים שלא היו במחרוזת המקורית. בפרט, המחרוזת המקורית והמחרוזת הריקה, שתיהן תת-סדרה של המחרוזת המקורית.

לכן, המחרוזות להלן אינן תת-סדרה של st:

"ba", "cf", "edcba", "g"

בהינתן שלוש מחרוזות תווים st1,st2,st3, נגדיר את התת-סדרה המשותפת הארוכה ביותר לשלוש המחרוזות, כמחרוזת תווים הארוכה ביותר שאפשר ליצור כאשר מורידים חלק מהתווים מכל אחת מהמחרוזות.

לדוגמא,

  • אם המחרוזות הן: st1 = "ABCBDAB", st2 = "BDCABA", st3 = "BADACB"


אז יש הרבה תת-סדרות משותפות לשלוש המחרוזות, למשל "BDA","AB", אבל התת-סדרה הארוכה ביותר המשותפת לשלושתן היא "BDAB". התת-סדרה הזו מודגשת במחרוזות: st1 = "ABCBDAB", st2 = "BDCABA", st3 = "BADACB"

  • אם המחרוזות הן: st1 = "ABCBDAB", st2 = "XYZ", st3 = "DC"


אז אין תת-סדרה משותפת. למעשה, התת-סדרה היחידה המשותפת לשלוש המחרוזות היא המחרוזת הריקה.

כתבו שיטה סטטית רקורסיבית המקבלת כפרמטרים שלוש מחרוזות תווים, ומחזירה את האורך של המחרוזת שמהווה תת-סדרה משותפת ארוכה ביותר של שלוש המחרוזות.
(LCS = Longest Common Subsequence)

אם אין שום תת-סדרה משותפת לשלוש המחרוזות, השיטה צריכה להחזיר את הערך 0.


חתימת השיטה היא:



השיטה צריכה להיות רקורסיבית ללא שימוש בלולאות כלל. כך גם כל שיטות העזר שתכתבו (אם תכתבו) לא יכולות להכיל לולאות.

השיטות מהמחלקות String ו- Math בהן (ורק בהן) מותר להשתמש בפתרון שאלה זו:
  • public char charAt(int i) - המחזירה את התו במקום ה- i במחרוזת (עליה היא מופעלת)
  • public int length() - המחזירה את אורך המחרוזת עליה היא מופעלת.
  • public String substring(int i) - המחזירה את התת-מחרוזת המתחילה במקום ה- i במחרוזת עליה היא מופעלת עד לסוף המחרוזת.
  • public String substring(int i, int j) - המחזירה את התת-מחרוזת המתחילה במקום ה- i במחרוזת עליה היא מופעלת עד למקום ה- j (לא כולל).
  • public int max (int x, int y) – המחזירה את המספר הגדול מבין x ו- y.
  • public int min (int x, int y) – המחזירה את המספר הקטן מבין x ו- y.
  • הקבוע Integer.MAX_VALUE מייצג את המספר השלם הגדול ביותר האפשרי
  • הקבוע Integer.MIN_VALUE מייצג את המספר השלם הקטן ביותר האפשרי
  • אין חובה להשתמש בשיטות שהוזכרו לעיל.
  • מותר להשתמש בהעמסת-יתר (Overloading)
  • אין צורך לדאוג ליעילות השיטה! אבל כמובן שצריך לשים לב לא לעשות קריאות רקורסיביות מיותרות!
  • אל תשכחו לתעד את מה שכתבתם!
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 66 · 2025 · סמסטר א
★★★★★
רקורסיהמחרוזותתת-סדרה
נתונה המחלקה IntNode הבאה, המייצגת איבר ברשימה מקושרת חד-סטרית המכילה מספרים שלמים:



נתונה רשימה מקושרת חד-סטרית, הממומשת בעזרת המחלקה IntList שמכילה את השיטה what הכתובה להלן. אפשר להניח שיש שיטות נוספות במחלקה.
בשאלות להלן, נסמן את איברי הרשימה כמספרים מופרדים בפסיקים, בתוך סוגריים מסולסלים. כאשר המספר השמאלי מסמן את ראש הרשימה.

למשל הרשימה list:
1→2→3→null תסומן כך: {1,2,3}

סעיף א (2 נקודות)
נפעיל את השיטה what על הרשימה list הבאה:


{81,17,8,60,101,100,24,8,9,10,11,12}, כאשר הפרמטר k=4.
מה יודפס לאחר ביצוע הפקודה

System.out.println (list.what(4));


סעיף ב (3 נקודות)
נתונה הרשימה list1 הבאה:
{81,17,8,60,101,100,24,8,9,10,11,12}

נניח שנתונה לנו השיטה length() המחזירה את אורך הרשימה עליה היא מופעלת.
כמו כן, נתון קטע הקוד הבא:




מה יודפס לאחר ביצוע קטע הקוד לעיל?

סעיף ג (3 נקודות)
אם נשנה את קטע הקוד לעיל, כך שהלולאה תיראה כך (השינוי מודגש):




מה יודפס לאחר ביצוע קטע הקוד לעיל?

סעיף ד (3 נקודות)
כתבו דוגמא לרשימה list2 בת 7 איברים לפחות, כאשר לפחות 4 מתוכם שונים זה מזה.

הרשימה צריכה להיות כזו שאם נריץ את קטע הקוד להלן, כל ההדפסות יהיו זהות. אם אין רשימה כזו, נמקו מדוע.




סעיף ה (5 נקודות)
מה מבצעת השיטה what באופן כללי, כאשר היא פועלת על רשימה list1 כלשהי, ומקבלת כפרמטר מספר
k שלם כלשהו?
שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת.

התייחסו למקרי קצה.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 66 · 2025 · סמסטר א
★★★★★
רשימות מקושרותמעקב אחר קודלולאותתנאיםפלינדרום
שאלה 6 (18 נקודות) - רק למי שלמד/ה את הקורס בסמסטר 2025א או לפני 2024א
נתון פרויקט שהוגדרו בו המחלקות האלו: A, B, C, D, E.

בפרויקט מומשה גם שיטה f() בשתי מחלקות.

להלן ינתנו פרטים שונים שיעזרו לכם להבין מהם הקשרים בין המחלקות, ובאילו מחלקות מומשה השיטה f().

במחלקה נוספת באותו פרויקט, בשם Driver נכתב קטע הקוד הבא בשיטה main אשר יוצר את העצמים הבאים, והוא תקין.




כמו כן, באותה מחלקה Driver נכתב הקטע הבא, ולידו כתוב מה קרה בעקבות כל פקודה:



סעיף א (5 נקודות)
ציירו את עץ הירושה של כל המחלקות:

לדוגמא, אם המחלקה B יורשת ישירות מהמחלקה A, ציירו זאת כך:


סעיף ב (5 נקודות)
כתבו את חתימות הבנאים של המחלקות A, B, C, D ו- E. (חתימות בלבד!)

תוכלו לבחור שמות משתנים לפרמטרים כרצונכם. (5 נק')


סעיף ג (1 נקודות)
כתבו באילו מחלקות מופיעה השיטה f().


סעיף ד (2 נקודות)
כתבו את תוכן השיטה f() בכל המחלקות שציינתם בסעיף ג.


סעיף ה (5 נקודות)
לכל אחת מהפקודות הבאות, סמנו בצורה ברורה ומפורשת אם היא תקינה או גורמת לשגיאת קומפילציה או גורמת לשגיאת ריצה, ומהי הבעיה (אם ישנה).

הפקודות אינן תלויות זו בזו.


a) a4 = o1;
b) o2 = o1;

c) ((A)o1).toString();

d) a4.toString();

e) ((A)o2).toString();
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 66 · 2025 · סמסטר א
★★★★★
מחלקותירושהפולימורפיזםתכנות מונחה עצמיםמעקב אחר קוד
נניח שהמחלקה Node שלהלן מממשת צומת בעץ בינרי.



המחלקה BinaryTree מאגדת בתוכה שיטות סטטיות לטיפול בעץ בינרי.
בין השיטות במחלקה נתונות השיטות find1, find2 ו- find3 הבאות:

השיטות פועלות על עץ שכל צמתיו שונים זה מזה.




נתון העץ הבינרי הבא, ששורשו הוא root:

        8
       / \
     11    6
    / \     \
   4   2    13
  /   / \
 10  3   25
     |
    19


ענו על הסעיפים הבאים:
סעיף א (1 נקודות):

מה תחזיר השיטה find1 בעקבות הקריאה BinaryTree.find1(root, 10)?


סעיף ב (3 נקודות):
מה מבצעת השיטה (הציבורית) find1 באופן כללי כשהיא מקבלת כפרמטרים: שורש של עץ בינרי root, שכל הערכים בצמתיו שונים זה מזה, ומספר שלם num כלשהו? שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, לכתוב בקצרה מה משמעות הערך שהשיטה מחזירה. התייחסו למקרי קצה.


סעיף ג (2 נקודות):
מה תחזיר השיטה find2 בעקבות הקריאה BinaryTree.find2(root, 3, 2)?


סעיף ד (4 נקודות):
מה מבצעת השיטה find2 באופן כללי כשהיא מקבלת כפרמטרים: שורש של עץ בינרי root, שכל הערכים בצמתיו שונים זה מזה, ושני מספרים שלמים
x ו-y? שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, לכתוב בקצרה מה משמעות הערך שהשיטה מחזירה. התייחסו למקרי קצה.

סעיף ה (2 נקודות):
מה תחזיר השיטה find3 בעקבות הקריאה BinaryTree.find3(root, 3, 13)?


סעיף ו (4 נקודות):
מה מבצעת השיטה find3 באופן כללי כשהיא מקבלת כפרמטרים: שורש של עץ בינרי root, שכל הערכים בצמתיו שונים זה מזה, ושני מספרים שלמים
x ו-y? שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, לכתוב בקצרה מה משמעות הערך שהשיטה מחזירה. התייחסו למקרי קצה.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 66 · 2025 · סמסטר א
★★★★★
עצים בינארייםרקורסיהמעקב אחר קודשיטות סטטיותמחלקות
הגדרה: נאמר שהמספר השלם a מחלק את המספר השלם b, אם כשמחלקים את b ב- a אין שארית. כלומר, b%a==0. (לדוגמא, 3 מחלק את 12, 7 מחלק את 21 וכד').
כאשר אחד מהמספרים (או שניהם) שליליים, אנחנו אומרים ש-
a הוא מחלק של b אם הערך המוחלט של a הוא מחלק של הערך המוחלט של b. (לדוגמא, המספר -4 מחלק את 20, וגם את -20, וכן 5 מחלק את 15 וגם את -15).

כתבו שיטה סטטית יעילה שמקבלת כפרמטר מערך חד-ממדי arr המכיל מספרים שלמים חיוביים ושליליים (ללא אפסים). השיטה צריכה לבדוק אם אחד מהערכים במערך מחלק את כל שאר הערכים במערך. אם כן, השיטה צריכה להחזיר את הערך הזה, אם לא, השיטה תחזיר -1. אם יש יותר מערך אחד כזה במערך, השיטה תחזיר את הראשון מהם במערך.
שימו לב שלמרות ש- 1 ו- -1 מחלקים את כל המספרים, אנחנו לא מתייחסים אליהם כאל מחלקים.


דוגמאות:
  • אם המערך הוא {60,−100,10,5,−20,25}
השיטה צריכה להחזיר את הערך 5 כי הוא מחלק את כל שאר האיברים במערך.
  • אם המערך הוא {−100,−10,30,3,5,−20,25}
השיטה צריכה להחזיר את הערך -1 כי אין במערך אף איבר שמחלק את כל שאר האיברים שבמערך.

חתימת השיטה היא:



שימו לב:
השיטה שתכתבו צריכה להיות יעילה ככל הניתן, גם מבחינת סיבוכיות הזמן וגם מבחינת סיבוכיות המקום. תשובה שאינה יעילה מספיק, כלומר, שתהיה בסיבוכיות גדולה יותר מזו הנדרשת לפתרון הבעיה, תקבל מעט נקודות בלבד.

ציינו מהי סיבוכיות זמן הריצה ומהי סיבוכיות המקום של השיטה שכתבתם. הסבירו תשובתכם. אל תשכחו לתעד את מה שכתבתם!
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 66 · 2025 · סמסטר א
★★★★★
מערכיםלולאותסיבוכיות זמןסיבוכיות מקוםיעילותשיטות סטטיות
נתון פרויקט שהוגדרו בו המחלקות האלו: E, F, K, L, N, P
בפרויקט מומשה השיטה f() בשלוש מחלקות והשיטה g() במחלקה אחת בלבד.

השיטה equals לא מומשה באף אחת מהמחלקות.

להלן ינתנו פרטים שונים שיעזרו לכם להבין מהם הקשרים בין המחלקות, ובאילו מחלקות מומשו השיטות f() ו g(). (הערך המוחזר של שתי השיטות הוא מטיפוס String)

במחלקה נוספת באותו פרויקט, בשם Driver נכתב קטע הקוד הבא בשיטה main אשר יוצר את העצמים הבאים, והוא תקין.




כמו כן, באותה מחלקה Driver בהמשך השיטה main נכתבו פקודות נוספות (כל פקודה לא תלויה בפקודות האחרות), בהערה בסוף כל שורה, כתוב מה קרה בעקבות הוספת פקודה זו:



סעיף א (6 נקודות)
ציירו עץ ירושה אפשרי של כל המחלקות:

לדוגמא, אם המחלקה B יורשת ישירות מהמחלקה A, ציירו זאת כך: [A חץ מטה ל-B]


סעיף ב (6 נקודות)
כתבו באילו מחלקות מופיעה השיטה f().

בכל מחלקה כתבו את המימוש של השיטה f().


סעיף ג (6 נקודות)
בהמשך השיטה main במחלקה Driver נכתבו הפקודות הבאות, והן תקינות.




לכל אחת מהפקודות הבאות, סמנו בצורה ברורה ומפורשת אם היא תקינה או גורמת לשגיאת קומפילציה או גורמת לשגיאת ריצה
אם הפקודה תקינה – כתבו מה יודפס (אם יש מה שיודפס).

אם הפקודה גורמת לשגיאת קומפילציה או שגיאת זמן ריצה – כתבו מהי הבעיה.

הפקודות אינן תלויות זו בזו.


a) arr[3] = lf;
b) lf = arr[3];

c) System.out.println(o2 instanceof Object);

d) System.out.println(o2 instanceof E);

e) System.out.println(e2.equals(o2));

f) System.out.println(((E)o1).equals(e2));
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 72 · 2025 · סמסטר א
★★★★★
תכנות מונחה עצמיםירושהפולימורפיזםמעקב אחר קודמחלקות
נניח שהמחלקה Node שלהלן מממשת צומת בעץ בינרי.



המחלקה BinaryTree מאגדת בתוכה שיטות סטטיות לטיפול בעץ בינרי.
בין השיטות במחלקה נתונות השיטות something ו- what הכתובות בעמודים הבאים:




נתון העץ הבינרי הבא, ששורשו הוא root:

          100
         /    \
       50       6
      /  \       \
    120    2     13
   /   \    \
 10     3   25
         \
         19


ענו על הסעיפים הבאים:
סעיף א (2 נקודות):

מה תחזיר השיטה something בעקבות הקריאה BinaryTree.something(root)?


סעיף ב (4 נקודות):
מה מבצעת השיטה something באופן כללי כשהיא מקבלת כפרמטר שורש של עץ בינרי root? שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, לכתוב בקצרה מה משמעות הערך שהשיטה מחזירה. התייחסו למקרי קצה.


סעיף ג (4 נקודות):
מה תדפיס השיטה what בעקבות הפעלת שתי הפקודות להלן:




סעיף ד (6 נקודות):
מה מבצעת השיטה what באופן כללי כשהיא מקבלת כפרמטר שורש של עץ בינרי root ומספר שלם num כלשהו? שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, לכתוב בקצרה השיטה מדפיסה. התייחסו למקרי קצה.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 72 · 2025 · סמסטר א
★★★★★
עצים בינארייםרקורסיהמעקב אחר קוד
במחלקה Q5 נתונה השיטה הסטטית secret הבאה, המקבלת כפרמטרים מערך חד-ממדי a המלא במספרים שלמים 1 ו- 0 בלבד, ומספר שלם אי-שלילי k.



נתון המערך a הבא:
[1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0] במקומות 0 עד 11.


ענו על הסעיפים הבאים:
סעיף א (3 נקודות):

מה תחזיר השיטה secret בעקבות הקריאה secret(a, 0)? נמקו את תשובתכם.


סעיף ב (3 נקודות):
עבור איזה תחום ערכים של
k, הקריאה secret(a, k) תחזיר את הערך הכי גדול (מתוך כל הערכים שיוחזרו מקריאה לשיטה עם כל ערכי ה- k האפשריים)? נמקו את תשובתכם.

סעיף ג (3 נקודות):
מלאו את המערך להלן בערכים כך שלכל
k בין 0 ל- 9, הערך שיוחזר מהקריאה לשיטה secret(a, k) יהיה שווה ל- k.
אם זה לא יתכן, נמקו מדוע.

[מערך באורך 10 מקומות ריקים]


סעיף ד (3 נקודות):
מלאו את המערך להלן בערכים כך שלכל
k בין 0 ל- 9, הערך שיוחזר מהקריאה לשיטה secret(a, k) יהיה זהה.
אם זה לא יתכן, נמקו מדוע.

[מערך באורך 10 מקומות ריקים]


סעיף ה (6 נקודות)
מה מבצעת השיטה secret באופן כללי, כאשר היא מקבלת כפרמטרים מערך חד-ממדי a מלא באחדים (1) ובאפסים (0), ומספר שלם
k.
שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, כתבו בקצרה מה משמעות הערך שהשיטה מחזירה כשהיא מקבלת כפרמטרים מערך ומספר שלם כפי שהוגדרו לעיל. התייחסו למקרי קצה.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד 72 · 2025 · סמסטר א
★★★★★
מעקב אחר קודמערכיםלולאותתנאיםשיטות סטטיותסיבוכיות זמן

שאלות מבוא למדעי המחשב באוניברסיטה הפתוחה עם פתרונות

מאגר מבחנים במבוא למדעי המחשב מהאוניברסיטה הפתוחה (אופ) - 969 שאלות ממוינות לפי נושא ורמת קושי, עם פתרונות מלאים לבדיקה עצמית. השאלות מכסות מועדים לאורך השנים, כולל מבחנים מ-2023, 2024, 2025 ו-2026. נושאים מרכזיים: רקורסיה, מערכים, מחרוזות, יעילות, עצים בינאריים. ניתן לסנן שאלות חוזרות, להתאמן על נושא ספציפי או להריץ סימולציית מבחן לפני הבחינה. הכנה למבוא למדעי המחשב מתמקדת בתרגול רקורסיה, מערכים ועצים בינאריים - הנושאים הנפוצים ביותר במבחנים. לימוד עצמי עם שאלות ממבחנים, בדגש על מעקב אחר קוד, מכין ביעילות לבחינה.

prepd›מבוא למדעי המחשב›אופ