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

שחלוף מטריצה

מאתגר C#

המשימה

שחלוף (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"]]}
```

קוד הפתיחה

using System;

class Program {

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

    static void Print(int[,] mat) {
        for (int i = 0; i < mat.GetLength(0); i++) {
            string line = "";
            for (int j = 0; j < mat.GetLength(1); j++) {
                line = line + mat[i, j] + " ";
            }
            Console.WriteLine(line.Trim());
        }
    }

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

        Transpose(mat);
        Print(mat);      // 1 4 7 / 2 5 8 / 3 6 9

        Console.WriteLine("---");
        int[,] one = { {5} };
        Transpose(one);
        Print(one);      // 5
    }
}

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

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