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

נתונה המחלקה DigitInfo:

class DigitInfo:
    def __init__(self, num):
        if num < 0:
            num = num * -1
        dig = num % 10
        self.dig1 = dig
        self.dig2 = dig
        num = num // 10
        while num > 0:
            dig = num % 10
            if dig < self.dig1:
                self.dig1 = dig
            elif dig > self.dig2:
                self.dig2 = dig
            num = num // 10

    def __str__(self):
        return str(self.dig1) + "," + str(self.dig2)

    def combine(self):
        return self.dig1 + self.dig2
סעיף א

עקבו אחרי ביצוע קטע הקוד שלפניכם ורשמו מה יהיה הפלט: info = DigitInfo(48291) print(info) print(info.combine())

סעיף ב

מהו הערך הגדול ביותר ומהו הערך הקטן ביותר שיכולה להחזיר הפונקציה combine()?

סעיף ג

נתונה הפונקציה Mystery:

def mystery(arr):
    temp1 = DigitInfo(arr[0])
    temp2 = DigitInfo(arr[0])
    ind1 = 0
    ind2 = 0

    for i in range(1, len(arr)):
        cur = DigitInfo(arr[i])
        if cur.combine() > temp1.combine():
            temp2 = temp1
            temp1 = cur
            ind2 = ind1
            ind1 = i
        else:
            if cur.combine() > temp2.combine():
                temp2 = cur
                ind2 = i

    print(str(arr[ind1]) + " " + str(arr[ind2]))

עקבו אחרי ביצוע קטע הקוד שלפניכם ורשמו מה יהיה הפלט: a = [3458,45, 7341, 6, 13579, 86] mystery(a)

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

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

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

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