אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות בפייתון — הנדסאי תוכנהמבחן 2024 · קיץ מועד א · שאלה 11כל שאלות המבחן ←
תכנות מונחה עצמיםמחלקות ואובייקטים

נתונה מחלקה בשם Number הבאה:

class Number:
    def __init__(self, num):
        self.num1 = 0
        self.num2 = 0
        if num < 0:
            num = num * (-1)
        while num > 0:
            self.num1 = self.num1 + 1
            self.num2 = self.num2 + num % 10
            num = num // 10
    def equals(self, other):
        return self.num1 == other.num1 and self.num2 == other.num2
    def is_same(self, other):
        return self.num1 * other.num2 == self.num2 * other.num1
סעיף א-1

נתונה הפעולה mystery הבאה:

def mystery(x, y):
    a = Number(x)
    b = Number(y)
    if x == y:
        return 1
    if a.equals(b):
        return 2
    if a.is_same(b):
        return 3
    return 4

תנו דוגמה לזוג פרמטרים שעבורו הפעולה mystery תחזיר 2.

סעיף א-2

תנו דוגמה לזוג פרמטרים שעבורו הפעולה mystery תחזיר 3.

סעיף א-3

תנו דוגמה לזוג פרמטרים שעבורו הפעולה mystery תחזיר 4.

סעיף א-4

האם קיים מספר שלם תלת-ספרתי חיובי x שעבורו הפעולה mystery אף פעם לא תחזיר 2 (לכל y אפשרי)? הסבירו את תשובתכם.

סעיף א-5

האם קיים מספר שלם תלת-ספרתי חיובי x שעבורו הפעולה mystery אף פעם לא תחזיר 3 (לכל y אפשרי)? הסבירו את תשובתכם.

סעיף ב

נתונה הפעולה secret הבאה:

def secret(arr):
    temp1 = Number(arr[0])
    temp2 = Number(arr[0])
    pos1 = 0
    pos2 = 0
    for i in range(1, len(arr)):
        cur = Number(arr[i])
        if cur.num1 > temp1.num1:
            pos1 = i
            temp1 = cur
        if cur.num2 > temp2.num2:
            pos2 = i
            temp2 = cur
    return pos1 == pos2

נתונה הרשימה arr הבאה:

arr = [43, 13571, 6, -875, 7681, -45, 3458]

עקבו אחרי ביצוע זימון הפעולה secret(arr) ורשמו את תוצאת הזימון.

סעיף ג

מה מבצעת הפעולה secret באופן כללי, עבור רשימה של מספרים שלמים?

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי