مقدمة.

في كثير من الأحيان ، عند التعامل مع أي معلومات ، يتعين عليك التعامل مع البيانات المجدولة. غالبًا ما تعمل البرامج الحديثة مع هذه البيانات. أبسط مثال على ذلك هو برمجة الألعاب على لوحة مربعات: tic-tac-toe ، الشطرنج ، لعبة الداما ، إلخ.

في الرياضيات ، تسمى هذه الهياكل المصفوفات.

نبسب ؛
المصفوفة هو جدول مستطيل يتكون من عناصر من نفس النوع (أرقام ، سلاسل ، إلخ.). < / span>

يمكن تخزين هذه البيانات في C # ومعالجتها كمصفوفات ثنائية الأبعاد - "صفائف من المصفوفات" .
لمعالجة البيانات الموجودة في الجدول ، من الضروري تذكر حالة كل خلية (خلية). تحتوي كل خلية على رقمين: رقم صف ورقم عمود.
في المصفوفة ، يحتوي كل عنصر على مؤشرين: أولاً يتم الإشارة إلى رقم الصف ، ثم رقم العمود. يبدأ ترقيم الصفوف والأعمدة من الصفر.
على سبيل المثال ، العنصر A [1، 2] هو العنصر الموجود في الصف الثاني والعمود الثالث.

تمامًا كما هو الحال مع المصفوفات العادية ، من أجل التعامل مع المصفوفات ، عليك تعلم إنشاءها ، الدخول والمعالجة والعرض.

إنشاء مصفوفة.

من الممكن إنشاء مصفوفة & nbsp؛ في الذاكرة حجم معين مليء ببعض القيم الأولية.

int [،] array = new int [4، 2]؛ // 4 صفوف ، عمودان

نبسب ؛

بعد إنشاء مصفوفة ، يمكنك ملؤها بقيم عشوائية. نظرًا لأن كل عنصر يحتوي على فهرسين ، فمن الضروري استخدام حلقات متداخلة

<قبل> لـ (int i = 1؛ i & lt؛ = N، i ++) {/ / N - عدد الخطوط لـ (int j = 1؛ j & lt؛ = N، j ++) {// M هو عدد الأعمدة أ [i، j] = ... نبسب ؛ } } عرض المصفوفة.

عادةً ما يتم استخدام حلقتين متداخلتين لمعالجة القائمة وعرضها. الحلقة الأولى موجودة على رقم السطر ، والحلقة الثانية على العناصر داخل السطر. & nbsp؛ من أجل & nbsp ؛ إخراج المصفوفة على الشاشة سطرًا بسطر ، وفصل الأرقام بمسافات في سطر واحد ، & nbsp ؛ تحتاج إلى كتابة الجزء التالي:
نبسب ؛ <قبل> لـ (int i = 1؛ i & lt؛ = N، i ++) { لـ (int j = 1؛ j & lt؛ = N، j ++) { وحدة التحكم اكتب (A [i، j] + & quot؛ & quot؛)؛ نبسب ؛ } نبسب ؛ Console.WriteLine () ، // الانتقال إلى سطر جديد }

يمكنك فعل الشيء نفسه ، لكن استخدم حلقات القائمة بدلاً من الفهرس ( foreach ). حاول كتابة روتين فرعي يقوم بتنفيذ ذلك بنفسك.

ملء مصفوفة بالقيم من لوحة المفاتيح.

دع البرنامج يتلقى مصفوفة ثنائية الأبعاد كمدخلات ، بالصيغة & nbsp؛ < em> n & nbsp؛ strings ، كل منها يحتوي على & nbsp؛ m & nbsp؛ أرقام مفصولة بمسافات. كيف نحسبهم؟ على سبيل المثال ، مثل هذا:

<قبل> int [،] array = new int [n، m]؛ // إنشاء مصفوفة للتعبئة لـ (int i = 0 ؛ i & lt ؛ & nbsp ؛ n ؛ i ++) { نبسب ؛ نبسب ؛ نبسب ؛ ونبسب ؛ السلسلة A = Console.ReadLine () ؛ // اقرأ الخط نبسب ؛ نبسب ؛ نبسب ؛ & nbsp ؛ int [] Curr = A.Split (& # 39 ؛ & # 39 ؛). حدد (int.Parse) .ToArray () ؛ // تحويل هذه السلسلة إلى تيار مصفوفة أحادية البعد نبسب ؛ نبسب ؛ نبسب ؛ على & nbsp ؛ لـ (int j = 0 ؛ j & lt ؛ m ؛ j ++) نبسب ؛ نبسب ؛ نبسب ؛ ونبسب ؛ { نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ نبسب ؛ & nbsp ؛ صفيف [i، j] = تيار [j] ؛ // املأ سلسلة المصفوفة التي نحتاجها بالقيم من المصفوفة الحالية نبسب ؛ نبسب ؛ نبسب ؛ ونبسب ؛} }

نبسب ؛

يحتوي كل عنصر من عناصر المصفوفة على فهرسين ، لذلك تحتاج إلى استخدام حلقة متداخلة للتكرار خلال كل العناصر.
عادةً ما يتم تكرار المصفوفة صفًا بصف: الحلقة الخارجية تتكرر فوق فهارس الصف ، بينما تتكرر الحلقة الداخلية فوق فهارس الأعمدة.
ولكن إذا لزم الأمر ، يمكنك التكرار عبر المصفوفة والأعمدة ، ثم يتم عكس الدورات.