תרגול מדעי המחשב

שחלוף מטריצה

מאתגר Java

המשימה

שחלוף (Transpose) של מטריצה ריבועית = החלפת כל תא [i][j] עם התא [j][i].

כתוב פעולה שמקבלת מטריצה ריבועית ומשחלפת אותה **בתוך אותה מטריצה**,
בלי לבנות מטריצה חדשה. אחר כך הדפס אותה שורה-שורה, המספרים מופרדים
ברווח.

דוגמה:
  לפני:        אחרי:
  1  2  3      1  4  7
  4  5  6      2  5  8
  7  8  9      3  6  9

הנחיות:
• הלולאה הפנימית מתחילה ב-j = i + 1, לא ב-0. חשוב על מה קורה אם היא
  מתחילה ב-0 — כל זוג מוחלף פעמיים, והמטריצה חוזרת למצבה המקורי.
• האלכסון הראשי אינו זז.
• ההחלפה מצריכה משתנה עזר, בדיוק כמו החלפת שני משתנים רגילים.

```ds:table
{"title":"לפני","rows":[["1","2","3"],["4","5","6"],["7","8","9"]]}
```

```ds:table
{"title":"אחרי","rows":[["1","4","7"],["2","5","8"],["3","6","9"]]}
```

קוד הפתיחה

public class Main {

    public static void transpose(int[][] mat) {
        // כתוב את הפתרון כאן — במקום, בלי מטריצה חדשה
    }

    public static void print(int[][] mat) {
        for (int i = 0; i < mat.length; i++) {
            String line = "";
            for (int j = 0; j < mat[i].length; j++) {
                line = line + mat[i][j] + " ";
            }
            System.out.println(line.trim());
        }
    }

    public static void main(String[] args) {
        int[][] mat = { {1, 2, 3},
                        {4, 5, 6},
                        {7, 8, 9} };

        transpose(mat);
        print(mat);      // 1 4 7 / 2 5 8 / 3 6 9

        System.out.println("---");
        int[][] one = { {5} };
        transpose(one);
        print(one);      // 5
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

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