شرح دورة الـ #C للمبتدئين - الدرس الثاني عشر | مايندز | علم ينتفع به
الأتصال بنا 61109-264-012

الجمعة، 24 يناير 2014

شرح دورة الـ #C للمبتدئين - الدرس الثاني عشر



السلام عليكم ورحمة الله وبركاته
تكلمنا في الدروس السابقة عن المصفوفات التي لها بعد واحد وسنتحدث في هذ الدرس عن المصفوفات التي لها اكثر من بعد

Multidimensional Arrays

حيث هناك اكتر من بعد من المصفوفة والاكثر استخداما هي المصفوفات ذات البعدين حيث تتكون من عدد من الصفوف وعدد من الأعمدة .

تعريف الMultidimensional Arrays 

int [,] myarray = new int[2,3];

حيث 2 تمثل رقم الصفوف و 3 تمثل رقم الأعمدة
هناك نوعين من المصفوفة اول نوع يسمي ب
النوع الأول Rectangular arrays
حيث في هذا النوع نحدد ابعاد المصفوفة ونضع في كل عنصر قيمة واحدة فقط
النوع الثاني 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();
        }   }}
ويكون الناتج كالتالي
واخيرا نتمني ان نكون افادناكم وفي انتظار تعليقاتكم
السلام عليكم ورحمة الله وبركاته