הגדרה ויצירה
// מערך דו-מימדי 3×4 (3 שורות, 4 עמודות) int[][] mat = new int[3][4]; // מערך ריבועי 3×3 עם ערכים int[][] sq = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
mat.length = מספר שורות, mat[0].length = מספר עמודות.
מעבר בלולאה כפולה
// מעבר שורה-שורה for (int i = 0; i < mat.length; i++) { for (int j = 0; j < mat[i].length; j++) { System.out.print(mat[i][j] + " "); } System.out.println(); }
מערך ריבועי – תכונות
במערך ריבועי n×n (כלומר mat.length == mat[0].length):
מערך ריבועי 4×4. התאים הכחולים הם האלכסון הראשי (i == j).
אלכסון ראשי
התנאי: i == j
for (int i = 0; i < mat.length; i++) { System.out.println(mat[i][i]); }
אלכסון משני
התנאי: i + j == n - 1
int n = mat.length; for (int i = 0; i < n; i++) { System.out.println(mat[i][n - 1 - i]); }
מעל / מתחת לאלכסון הראשי
| אזור | תנאי |
|---|---|
| אלכסון ראשי | i == j |
| מעל לאלכסון הראשי | i < j |
| מתחת לאלכסון הראשי | i > j |
| אלכסון משני | i + j == n - 1 |
| מעל לאלכסון המשני | i + j < n - 1 |
| מתחת לאלכסון המשני | i + j > n - 1 |
פעולות נפוצות
סכום שורה מסוימת
public static int sumRow(int[][] mat, int row) { int sum = 0; for (int j = 0; j < mat[row].length; j++) sum += mat[row][j]; return sum; }
סכום עמודה מסוימת
public static int sumCol(int[][] mat, int col) { int sum = 0; for (int i = 0; i < mat.length; i++) sum += mat[i][col]; return sum; }
סכום האלכסון הראשי
public static int sumMainDiag(int[][] mat) { int sum = 0; for (int i = 0; i < mat.length; i++) sum += mat[i][i]; return sum; }
טרנספוזה (Transpose)
שיקוף המטריצה סביב האלכסון הראשי – שורות הופכות לעמודות:
public static int[][] transpose(int[][] mat) { int n = mat.length; int[][] t = new int[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) t[j][i] = mat[i][j]; return t; }
שאלות נפוצות
מה ההבדל בין mat.length ל-mat[0].length?
mat.length – מספר השורות. mat[0].length – מספר העמודות בשורה הראשונה. במערך ריבועי הם שווים.
מהו "משולש עליון" במטריצה?
כל האיברים שנמצאים על האלכסון הראשי ומעליו (i ≤ j). "משולש תחתון" – על האלכסון ומתחתיו (i ≥ j).
איך בודקים אם מטריצה סימטרית?
מטריצה סימטרית אם mat[i][j] == mat[j][i] לכל i,j. מספיק לבדוק רק מעל לאלכסון.
צריכים עזרה במערכים דו-מימדיים?
מורים פרטיים ילמדו אתכם מטריצות, אלכסונים ותרגילי בגרות.
מצאו מורה פרטי