مقدمه.

اغلب، هنگام کار با هر اطلاعاتی، باید با داده های جدولی سروکار داشته باشید. برنامه های مدرن اغلب با چنین داده هایی کار می کنند. ساده ترین مثال برنامه نویسی بازی های روی تخته شطرنجی است: تیک تاک، شطرنج، چکرز و غیره.

در ریاضیات به چنین ساختارهایی ماتریس می گویند.

 
ماتریس یک جدول مستطیل شکل است که از عناصری از همان نوع (اعداد، رشته ها و غیره) تشکیل شده است.< / span>

اینگونه داده ها در سی شارپ را می توان به صورت آرایه های دو بعدی ذخیره و پردازش کرد - "آرایه های آرایه ها"
برای پردازش داده های جدول، لازم است وضعیت هر سلول (سلول) را به خاطر بسپارید. هر سلول دو عدد دارد: یک شماره ردیف و یک شماره ستون.
در ماتریس، هر عنصر دارای دو شاخص است: ابتدا شماره ردیف و سپس شماره ستون مشخص می شود. شماره گذاری سطرها و ستون ها از صفر شروع می شود.
برای مثال، عنصر A[1, 2] عنصری است که در ردیف دوم و ستون سوم قرار دارد.

درست مانند آرایه های معمولی، برای کار با ماتریس ها، باید یاد بگیرید که آنها را ایجاد کنند، وارد کنید، پردازش کنید و نمایش دهید.

یک ماتریس ایجاد کنید. امکان ایجاد یک در حافظه ماتریس یک اندازه معین که با مقادیر اولیه پر شده است.

int[،] آرایه = int جدید[4، 2]; // 4 ردیف، 2 ستون

 

بعد از ایجاد یک ماتریس، می توانید آن را با مقادیر دلخواه پر کنید. از آنجایی که هر عنصر دارای دو شاخص است، لازم است از حلقه های تودرتو استفاده شود

<پیش> برای (int i=1; i <= N, i++) { / / N - تعداد خطوط برای (int j=1; j <= N, j++) { // M تعداد ستون‌ها است A[i، j] = ...   } } نمایش ماتریس.

دو حلقه تودرتو معمولاً برای پردازش و نمایش لیست استفاده می شود. حلقه اول روی شماره خط است، حلقه دوم روی عناصر داخل خط است.  برای  خروجی ماتریس روی صفحه خط به خط، جدا کردن اعداد با فاصله در یک خط، باید قطعه زیر را بنویسید:
  <پیش> برای (int i=1; i <= N, i++) { برای (int j=1; j <= N, j++) { کنسول. Write(A[i, j] + " ");   }   Console.WriteLine(); // به یک خط جدید بروید }

می توانید همین کار را انجام دهید، اما به جای فهرست از حلقه های لیست استفاده کنید ( foreach). سعی کنید زیربرنامه ای بنویسید که خودتان این کار را اجرا کند.

پر کردن یک ماتریس با مقادیر از صفحه کلید.

اجازه دهید برنامه یک آرایه دو بعدی را به عنوان ورودی دریافت کند، به شکل < em>n رشته‌هایی که هر کدام حاوی m اعدادی است که با فاصله از هم جدا شده‌اند. چگونه آنها را بشماریم؟ به عنوان مثال، مانند این:

<پیش> int[,] array = new int[n,m]; // یک آرایه برای پر کردن ایجاد کنید برای (int i = 0; i <  n; i++) {        رشته A = Console.ReadLine(); // خواندن خط        int[] curr = A.Split(' ').Select(int.Parse).ToArray(); // این رشته را به یک آرایه یک بعدی تبدیل کنید        برای ​​(int j = 0; j < m; j++)        {            آرایه[i، j] = curr[j]; // رشته آرایه مورد نیاز خود را با مقادیر آرایه curr پر کنید        } }

 

هر عنصر ماتریس دارای دو شاخص است، بنابراین باید از یک حلقه تودرتو برای تکرار استفاده کنید. همه عناصر.
معمولاً یک ماتریس سطر به ردیف تکرار می شود: حلقه بیرونی روی شاخص های ردیف تکرار می شود، در حالی که حلقه داخلی روی شاخص های ستون تکرار می شود.
اما در صورت لزوم، می‌توانید روی ماتریس و ستون‌ها تکرار کنید، سپس چرخه‌ها معکوس می‌شوند.