סעיף א
נתונה הפעולה Secret:
public static bool Secret(Stack<int> s) {
if (s.IsEmpty()) return true;
bool res = true;
while (!s.IsEmpty()) {
int x = s.Pop();
if (!s.IsEmpty()) {
if (x * s.Top() >= 0) {
res = false;
}
}
return res;
}
- תנו דוגמה למחסנית s הכוללת לפחות שישה ערכים שלמים (גם חיוביים וגם שליליים), שעבורה זימון הפעולה Secret(s) יחזיר ערך true. אם אין מחסנית כזאת – הסבירו את הסיבה לכך.
- מה מבצעת הפעולה Secret באופן כללי עבור מחסנית של מספרים שלמים?
סעיף ב
נתונה הפעולה Mystery:
public static bool Mystery (Queue<int> q) {
if (q.IsEmpty()) return true;
bool res = true;
while (!q.IsEmpty()) {
int first = q.Remove();
if (!q.IsEmpty()) {
int second = q.Remove();
if (first * second <= 0) {
res = false;
}
}
}
return res;
}
- תנו דוגמה לתור q הכולל לפחות שישה ערכים שלמים (גם חיוביים וגם שליליים), שעבורו זימון הפעולה Mystery(q) יחזיר ערך true. אם אין תור כזה – הסבירו את הסיבה לכך.
- מה מבצעת הפעולה Mystery באופן כללי עבור תור של מספרים שלמים?
סעיף ג
כתבו פעולה בשם Check המקבלת מחסנית של מספרים שלמים חיוביים ומספר שלם חיובי k. הפעולה תבדוק אם כל איברי המחסנית הם כפולות של k (מתחלקים ב-k ללא שארית). אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. בסיום הפעולה, על המחסנית לחזור למצב המקורי.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.