• Home
  • /
  • Blog
  • /
  • صفيفات 1-D و 2-D مبسطة للأطفال

صفيفات 1-D و 2-D مبسطة للأطفال

المصفوفات المبسطة للأطفال

This post is also available in: English (الإنجليزية) हिन्दी (الهندية)

ما هي المصفوفة؟

المصفوفات حولك كل يوم سواء أدركت ذلك أم لا. يمكن أن تكون المصفوفة عبارة عن مجموعة من البسكويت في علبة أو بيض أو زجاجات مشروبات غازية محفوظة في صندوق ، إلخ.

المصفوفات المبسطة للأطفال
صناديق الزجاجة

المصفوفة تعني مجموعة من العناصر أو الأرقام مرتبة في ترتيب ، المصفوفة تعني مجموعة من العناصر أو الأرقام مرتبة في ترتيب ، غالبًا في صفوف وأعمدة. غالبًا ما تجعل المصفوفات العد والحساب أسهل.

الصفوف هي الخطوط الأفقية التي تنتقل من اليسار إلى اليمين. الأعمدة هي الخطوط العمودية التي تنتقل من أعلى إلى أسفل. الأشياء التي يتم ترتيبها في مصفوفة تنشئ شكل مستطيل أو مربع.

المصفوفات المبسطة للأطفال
مصفوفة الأعداد

في هذا المقال “المصفوفات المبسطة للأطفال” ، سنناقش استخدام المصفوفات في علوم الكمبيوتر وأهميتها.

صفيف في علوم الكمبيوتر

في علوم الكمبيوتر ، المصفوفة عبارة عن بنية بيانات تتكون من مجموعة من العناصر (القيم أو المتغيرات) ، كل منها محدد بواسطة فهرس أو مفتاح صفيف واحد على الأقل. إنه أبسط نوع منبنية البيانات الخطية. يمكن أن تحتوي المصفوفة على عدة قيم من نفس النوع (عدد صحيح ، عدد عشري ، سلسلة ، إلخ). الوصول إلى العناصر داخل المصفوفة سريع جدًا.

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

أنواع المصفوفات على أساس الأبعاد

يمكن تصنيف المصفوفة على أنها مصفوفة ذات بعد واحد (1-D) أو مصفوفة متعددة الأبعاد (n-D). في المصفوفات متعددة الأبعاد ، الأكثر شيوعًا هي المصفوفة ثنائية الأبعاد (2-D).

مصفوفة ذات بعد واحد

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

المصفوفات المبسطة للأطفال
صفيف أحادي البعد

الوصول إلى عنصر في مصفوفة ذات بعد واحد

يمكن الوصول إلى عناصر المصفوفة عن طريق تحديد اسم مصفوفة متبوعًا بخط منخفض أو فهرس داخل أقواس مربعة (على سبيل المثال ، []). يبدأ سطر أو فهرس المصفوفة من 0 ، أي أن العنصر الأول من المصفوفة أحادية البعد المسمى “a” يُرمز إليه بـ [0]. إذا كان حجم المصفوفة 10 ، يكون العنصر الأخير في الفهرس 9 ويتم الوصول إليه على أنه [9]. بشكل عام ، في حالة مصفوفة ذات حجم “n” ، يكون العنصر الأخير هو [n – 1]. يُعرف الرمز المنخفض الأول الصالح (أي 0) بالحد الأدنى ، بينما يُعرف الرمز الأخير الصالح بالحد الأعلى. (أي عدد صحيح موجب بما في ذلك 0 هو قيمة منخفضة صالحة).

التصريح عن مصفوفة أحادية البعد في ++C: النموذج العام للإعلان عن مصفوفة أحادية البعد في C هي

data_type array_name[array_size];

للإعلان عن مصفوفة بالاسم “أ” تحتوي على عناصر من نوع عدد صحيح وحجم 10 هو

int a[10];

تهيئة مصفوفة أحادية الأبعاد في ++C: يمكنك تعيين القيم لمصفوفة في وقت الإعلان. تسمى هذه العملية تهيئة مصفوفة عند التصريح.

النموذج العام لتهيئة القيم إلى صفيف أحادي البعد في ++C هو

data_type array_name[array_size] = {comma_separated_element_list};

مثال على إعلان القيم وتهيئتها لاسم المصفوفة “أ” لبيانات نوع العدد الصحيح ، التي تحتوي على 10 عناصر هو

int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

الوصول إلى العناصر من مصفوفة أحادية البعد في ج

#include<iostream.h>
#include<conio.h>
void main()
{
	clrscr();
	int a[5] = {1, 2, 3, 4, 5};
	int i;
	for(i=0; i<5; i++)
	{
		cout<<"a["<<i<<"] = "<<a[i]<<"\n";
	}
}

فيما يلي مثال آخر لقبول 10 قيم في مصفوفة أحادية البعد وعرض متوسطها.

#include<iostream.h>
#include<conio.h>
void main()
{
	clrscr();
	int a[10];
	int i;
	int sum=0, avg=0;
	cout<<"Enter 10 array elements: ";
	for(i=0; i<10; i++)
	{
		cin>>a[i];
		sum = sum + a[i];
	}
	cout<<"\nThe array elements are: \n";
	for(i=0; i<10; i++)
	{
		cout<<a[i]<<"  ";
	}
	cout<<"\n\nSum of all elements is: "<<sum;
	avg = sum/10;
	cout<<"\nAnd average is: "<<avg;
}

صفيف ثنائي الأبعاد

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

المصفوفات المبسطة للأطفال
صفيف ثنائي الأبعاد

الوصول إلى عنصر في مصفوفة ثنائية الأبعاد: يمكن الوصول إلى عناصر المصفوفة عن طريق تحديد اسم مصفوفة متبوعًا برقمين أو فهارس داخل أقواس مربعة (على سبيل المثال ، []). يبدأ سطر أو فهرس الصفيف من 0 (المعروف أيضًا باسم الحد الأدنى) ويتحرك لأعلى حتى (n – 1) (المعروف أيضًا باسم الحد الأعلى)

إذا كان “x” هو اسم المصفوفة ، فإن x [i] [j] ، يجلب العنصر الموجود في الصف الأول والعمود j. على سبيل المثال ، تعني x [2] [1] العنصر الموجود في الصف الثاني والعمود الأول. (تذكر أن فهارس الصفوف والأعمدة تبدأ من 0. ومن ثم ، فإن x [2] [1] تعني في الواقع الصف الثالث والعمود الثاني).

إعلان مصفوفة ثنائية الأبعاد في ++C: النموذج العام للإعلان عن صفيف ثنائي الأبعاد في C هو

data_type array_name[array_row_size][array_col_size];

للإعلان عن مصفوفة تحمل الاسم “أ” تحتوي على عناصر من نوع عدد صحيح وحجم الصف 2 وحجم العمود 5 هو

int a[2][5];

تهيئة مصفوفة ثنائية الأبعاد في ++C: يمكنك تعيين القيم لمصفوفة في وقت الإعلان. تسمى هذه العملية تهيئة مصفوفة عند التصريح.

النموذج العام لتهيئة القيم إلى صفيف ثنائي الأبعاد في ++C هو

data_type array_name[array_row_size][array_col_size] = {{comma_separated_element_list}};

مثال على إعلان القيم وتهيئتها لاسم المصفوفة “أ” لبيانات نوع العدد الصحيح ، التي تحتوي على 10 عناصر في صفين و 5 أعمدة

int a[2][5] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}};

الوصول إلى العناصر من مصفوفة ثنائية الأبعاد في ++C

#include<iostream.h>
#include<conio.h>
void main()
{
	clrscr();
	int a[2][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10} };
	int i, j;
	for(i=0; i<2; i++)
	{
		for(j=0; j<5; j++)
		{
			cout<<"a["<<i<<"]["<<j<<"] = "<<a[i][j]<<"\n";
		}
	}
}

فيما يلي مثال آخر لقبول 10 قيم في مصفوفة ثنائية الأبعاد وعرض متوسطهامن حيث الصفوف والعمود.

#include<iostream.h>
#include<conio.h>
void main()
{
	clrscr();
	int arr[2][5];
	int i, j;
	int sum=0, avg_r=0, avg_c=0, avg=0;
	
	cout<<"Enter 2*5 array elements: ";
	for(i=0; i<2; i++)
	{
		for(j=0; j<5; j++)
		{
			cin>>arr[i][j];
		}
	}
	cout<<"\nThe array elements are: \n";
	for(i=0; i<2; i++)
	{
		for(j=0; j<5; j++)
		{
			cout<<arr[i][j]<<"   ";
		}
		cout<<"\n";
	}
	for(i=0;i<2;i++)
	{
		sum=0;
		for(j=0;j<5;j++)
		{
			sum=sum+a[i][j];
		}
		avg_r=sum/5;
		cout<<”\n Row-wise total for “ << i+1 << “ row is “ <<avg_r;
}
	for(j=0;i<5;j++)
	{
		sum=0;
		for(i=0;i<2;i++)
		{
			sum=sum+a[i][j];
		}
		avg_c=sum/5;
		cout<<”\n Column-wise total for “ << i+1 << “ row is “ <<avg_r;
}
sum=0;
for(i=0;i<2;i++)
	{
		for(j=0;j<5;j++)
		{
			sum=sum+a[i][j];
		}
	}
	avg=sum/10;
	cout<<”\n Average = “ <<avg;
}
{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
>