יסודות מערכים דו־ממדיים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C# של Coddy. שיעור 1 מתוך 66.
ב־C#, מערך משונן הוא מערך של מערכים, היוצר מבנה דמוי רשת או מטריצה. הוא כמו טבלה עם שורות ועמודות, שבה כל תא יכול להכיל ערך. מערכים משוננים שימושיים לייצוג נתונים שיש להם קשר דו־ממדי, כמו לוח שחמט, תרשים מקומות ישיבה או משחק המבוסס על רשת.
כך מצהירים על מערך מדורג ומאתחלים אותו ב-C#:
data_type[][] arrayName = new dataType[numberOfRows][];dataType: סוג האיברים שהמערך יכיל (למשל, int, string וכו׳).
arrayName: השם שנותנים למערך.
numberOfRows: מספר השורות במערך.
לאחר מכן יש לאתחל כל שורה בנפרד:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];
// וכן הלאה...לדוגמה, כדי ליצור מערך משונן של מספרים שלמים עם 3 שורות, כאשר בכל שורה יש 4 עמודות, תכתבו:
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];אפשר גם לאתחל מערך משונן ישירות עם ערכים:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};הערה: הפלטפורמה הזו משתמשת במהדר שקדם ל־C# 12. תחביר הביטוי המקוצר לאתחול אוספים, שהוצג ב־C# 12 (למשל, int[][] matrix = [[1, 2], [3, 4]];), אינו נתמך כאן. השתמש בתחביר האתחול המסורתי new int[][] { ... } שמוצג למעלה.
אתגר
קלאתחלו מערך משונן עם הערכים הבאים:
5, 7, 10, 24, 41
86, 13, 683, 64, 13
42, 46, 791, 111, 9
86, 88, 1845, 5, 15897
9, 1, 5, 5, 6עליכם לאתחל את המערך המשונן כראוי עם הערכים המדויקים האלה ולוודא שהתוכנית מדפיסה את המטריצה כראוי.
הערה: הפלטפורמה הזו משתמשת במהדר שקדם ל-C# 12. תחביר ביטויי האוסף של C# 12 (למשל, int[][] matrix = [[1, 2], [3, 4]];) אינו נתמך. השתמשו במקום זאת בתחביר האתחול המסורתי:int[][] matrix = new int[][] { new int[] {1, 2}, new int[] {3, 4} };
נסו בעצמכם
using System;
class Program
{
static void Main(string[] args)
{
int[][] matrix = {
// כתבו כאן את הקוד שלכם
};
// הדפיסו את המטריצה
int rows = matrix.Length;
for (int i = 0; i < rows; i++)
{
int cols = matrix[i].Length;
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i][j] + " ");
}
Console.WriteLine();
}
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מערכים רב־ממדיים
יסודות מערכים דו־ממדייםהכרזה ואתחול של מערכים דו־ממדייםגישה לאיברי מערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםמערכים משונניםפעולות מטריצה נפוצותחזרה – מערכים רב־ממדיים7אופרטורים לוגיים מתקדמים
הערכה בקיצור דרךאופרטורים לוגיים מותניםקדימות אופרטוריםסיכום – אופרטורים מתקדמים2קבלת החלטות מתקדמת
תנאים מרוביםלוגיקה בוליאנית מורכבתהשוואה בין If ל-Switchהצהרות Switch מקוננותסיכום — קבלת החלטות מתקדמת5טיפול בחריגות
יסודות try-catchסוגי חריגותבלוקי catch מרוביםעבודה עם קבציםבלוק finallyשימוש ב-using לעומת try-finallyחריגות מותאמות אישיתסיכום – טיפול בשגיאות3שיפורים בלולאות
ביצועי לולאותאיטרציה במבנים מורכביםכל אחד מסוגי הלולאותרפקטורינג של לולאותסיכום – לולאות שעברו אופטימיזציה6טיפול בערכי Null
יסודות הפניה ל-Nullטיפוסי ערכים שניתנים ל-Nullדפוסי בדיקת Nullתכנות הגנתיסיכום – בטיחות מול Nullתרגלו בעצמכם: קומפיילר C# אונליין