السلام عليكم ورحمة الله وبركاته
تكلمنا في الدروس السابقة عن المصفوفات التي لها بعد واحد وسنتحدث في هذ الدرس عن المصفوفات التي لها اكثر من بعد
Multidimensional Arrays
حيث هناك اكتر من بعد من المصفوفة والاكثر استخداما هي المصفوفات ذات البعدين حيث تتكون من عدد من الصفوف وعدد من الأعمدة .
تعريف الMultidimensional Arrays
int [,] myarray = new int[2,3];
حيث 2 تمثل رقم الصفوف و 3 تمثل رقم الأعمدة
هناك نوعين من المصفوفة اول نوع يسمي ب
حيث في هذا النوع نحدد ابعاد المصفوفة ونضع في كل عنصر قيمة واحدة فقط
النوع الثاني Jagged arrays
حيث كل عنصر يشير الي مصفوفة اخري وسنشرح باستفاضة هذا النوع في الدرس القادم باذن الله
النوع الأول Rectangular arrays
طريقة ادخال القيم للMultidimensional Arrays وطريقة طباعتها
اول طريقة وهي استخدام for loop
هو نفس طريقة ادخال المصفوفة ذات البعد الواحد ولكن علي حسب عدد الأبعاد نكون عددالloops
فعلي سبيل المثال ومعظم الأمثلة حيكون علي المصفوفة ذات البعدين
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
int[,] myarray = new int[3, 4];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
myarray[i, j] = i + j;
} }
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
Console.WriteLine("my array[{0},{1}]={2}",i,j,myarray[i,j]);
} }
Console.ReadKey();
} }}
لفهم المثال السابق يجب فهم الصور التالية أولا
لو حبينا نملا المربعات دي باي حاجة يبقي لازم نحدد مكان المربع ده في أي صف وأي عمود
يعني مثلا عايزين نملي المربعات في أول صف يبقي لازم نحدد ونقول الصف رقم 0 وبعدين نحدد العمود رقم 0 ثم رقم 1 ثم رقم 2 ....وهكذا
وهذا الذي بيحدث بالظبط في المثال السابق حيث نحدد رقم الصف أولا في أول loop ثم نحدد أرقام الأعمدة في ثاني loop وهكذا
وكذلك الطباعة ويكون ناتح المثال السابق كالآتي
ثاني طريقة لادخال قيم المصفوفة
int[,] myarray = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
حيث كما قولنا سابقا هذه الطريق لا تحتاج الي تحديد حجم المصفوفة حيث في سطر تعريف المصفوفة وضعنا قيم العناصر ومنها تم تحديد حجم المصفوفة...كما في المثال التالي
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
int[,] myarray = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
Console.WriteLine("my array[{0},{1}]={2}",i,j,myarray[i,j]);
} }
Console.ReadKey();
} }}
ويكون الناتج كالتالي
واخيرا نتمني ان نكون افادناكم وفي انتظار تعليقاتكم
السلام عليكم ورحمة الله وبركاته