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

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

class DigitInfo {
    private int dig1;
    private int dig2;
    public DigitInfo(int num) {
        if (num < 0) num = num * (-1);
        int dig = num % 10;
        this.dig1 = dig;
        this.dig2 = dig;
        num = num / 10;
        while (num > 0) {
            dig = num % 10;
            if (dig < this.dig1)
                this.dig1 = dig;
            else if (dig > this.dig2)
                this.dig2 = dig;
            num = num / 10;
        }
    }
    public override string ToString() {
        return this.dig1 + "," + this.dig2;
    }
    public int Combine() {
        return this.dig1 + this.dig2;
    }
}
סעיף א

עקבו אחרי ביצוע קטע הקוד שלפניכם ורשמו מה יהיה הפלט:

DigitInfo info = new DigitInfo(48291);
Console.WriteLine(info);
Console.WriteLine(info.Combine());
סעיף ב

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

סעיף ג

נתונה הפעולה Mystery:

public static void Mystery(int[] arr) {
    DigitInfo temp1 = new DigitInfo(arr[0]);
    DigitInfo temp2 = new DigitInfo(arr[0]);
    int ind1 = 0;
    int ind2 = 0;
    DigitInfo cur;
    for (int i = 1; i < arr.Length; i++) {
        cur = new 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;
            }
        }
    }
    Console.WriteLine(arr[ind1]+" "+arr[ind2]);
}
int[] a = {3458,45, 7341, 6, 13579, 86 };
Mystery(a);
שאלות ותגובות על השאלה

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

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

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