الانتقال إلى المحتوى الرئيسي

كيفية مقارنة (مساواة) المصفوفات في ج / دليل مفصل

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

إحدى الطرق الرئيسية لمقارنة المصفوفات هي مقارنة العناصر دوريا. تتضمن هذه الطريقة مقارنة كل عنصر من صفيفتين بدورهما ، بدءا من العنصر الأول وحتى الأخير. إذا كانت جميع العناصر متساوية ، فإن المصفوفات تعتبر متساوية. ومع ذلك ، فمن الضروري أن تأخذ في الاعتبار خصوصيات مقارنة صفائف الأحرف والسلاسل ، حيث يتم استخدام وظيفة ستركمب ().

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

وبالإضافة إلى ذلك ، تجدر الإشارة إلى أن المصفوفات يمكن مساواتها عن طريق نسخ عناصر من صفيف واحد إلى آخر باستخدام حلقة أو وظائف خاصة مثل ميمكبي(). في الوقت نفسه ، من المهم مراعاة أحجام وأنواع بيانات المصفوفات من أجل نسخ جميع العناصر بشكل صحيح وتجنب الأخطاء المحتملة ومشاكل الذاكرة.

  1. وصف المصفوفات في ج
  2. كيفية إنشاء وتهيئة المصفوفات في ج
  3. كيفية مقارنة اثنين من المصفوفات في ج
  4. الطريقة 1: استخدام الحلقة
  5. الطريقة 2: باستخدام المدمج في ميمكمب () وظيفة
  6. الطريقة 3: استخدام حلقة بينما
  7. طرق مختلفة لمقارنة المصفوفات في ج
  8. دليل مفصل لمقارنة (معادلة) المصفوفات في ج
  9. 1. مقارنة عناصر المصفوفة
  10. 2. مقارنة حجم ومحتويات المصفوفات
  11. 3. مقارنة المؤشرات بالصفائف
  12. خاتمة
  13. سؤال وجواب
  14. كيف يمكنني مقارنة اثنين من المصفوفات في ج?
  15. كيف يمكنني مقارنة صفائف اثنين من طول التعسفي في ج?
  16. هل هناك وظيفة مدمجة لمقارنة المصفوفات في ج?

وصف المصفوفات في ج

المصفوفات في ج هي هياكل بيانات تسمح لك بتخزين نفس النوع من العناصر في الذاكرة. إنها مجموعة من العناصر المتسلسلة التي يتم الوصول إليها من خلال الفهارس.

الملامح الرئيسية للمصفوفات في اللغة ج هي:

  • التوحيد: فقط عناصر من نفس نوع البيانات ، مثل الأعداد الصحيحة ، الكسور العشرية ، الرموز ، إلخ.، يمكن تخزينها في صفيف;
  • حجم ثابت: يتم تحديد حجم المصفوفة عند الإعلان عنها ولا يمكن تغييرها في المستقبل;
  • الفهرسة: يتم ترقيم عناصر المصفوفة من الصفر ، أي أن العنصر الأول يحتوي على فهرس 0 ، والثاني يحتوي على فهرس 1 ، وهكذا;
  • التسلسل: يتم ترتيب عناصر المصفوفة في الذاكرة بالتتابع ، دون فواصل;
  • الوصول إلى العناصر: يتم الوصول إلى عناصر المصفوفة عن طريق تحديد الفهرس بين قوسين مربعين بعد اسم المصفوفة.

يبدو إعلان صفيف في ج كما يلي:

اسم صفيف نوع البيانات [الحجم];

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

مثال على إعلان مجموعة من الأعداد الصحيحة:

أرقام كثافة العمليات [5];

يتم الوصول إلى عناصر الصفيف عن طريق تحديد الفهرس بين قوسين مربعين بعد اسم الصفيف:

أرقام [0]; // الوصول إلى العنصر الأول من المصفوفة

أرقام [1] ؛ / / الوصول إلى العنصر الثاني من المصفوفة

أرقام [2] ؛ / / الوصول إلى العنصر الثالث من المصفوفة

// وهلم جرا

.

مثال على الحصول على عنوان عنصر صفيف:

برينتف ("عنوان العنصر الأول: ٪ ص

"،وأرقام [0]);

غالبا ما تستخدم المصفوفات في ج لتنظيم تخزين كميات كبيرة من البيانات ومعالجتها في دورات.

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

مثال على الإعلان عن عناصر مصفوفة متعددة الأبعاد والوصول إليها:

مصفوفة كثافة العمليات [3] [4] ؛ / / إعلان مصفوفة ثنائية الأبعاد

مصفوفة[0][0] = 1; // تعيين قيمة للعنصر الأول من المصفوفة

مصفوفة[1][2] = 5; // تعيين قيمة لعنصر من الصف الثاني والعمود الثالث

برينتف ("٪د

"،مصفوفة[0][0]); // إخراج قيمة العنصر الأول من المصفوفة

في هذا المثال ، يتم الإعلان عن مصفوفة ثنائية الأبعاد مكونة من 3 في 4 عناصر. يتم الوصول إلى عناصر المصفوفة عن طريق تحديد فهارس كل بعد – يحدد الفهرس الأول صفا ، ويحدد الثاني عمودا.

كيفية إنشاء وتهيئة المصفوفات في ج

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

يبدأ إنشاء صفيف بالإعلان عن نوعه ، على سبيل المثال:

أرقام كثافة العمليات [5];

في هذا المثال ، نعلن مصفوفة تسمى" أرقام " ، والتي ستحتوي على 5 عناصر صحيحة.

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

أمثلة على تهيئة المصفوفة:

أرقام كثافة العمليات[5] = {1, 2, 3, 4, 5};

اسم شار [10] = {'ي' ، 'س' ، 'ح' ، 'ن'};

في المثال الأول ، تتم تهيئة مصفوفة "الأرقام" بقيم صحيحة من 1 إلى 5. في المثال الثاني ، تتم تهيئة مصفوفة "الاسم" بالأحرف " ي " ، " س " ، " ح " ، " ن " ، وتبقى العناصر المتبقية غير مهيأة.

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

أمثلة على التهيئة التلقائية:

أرقام كثافة العمليات[5] = {1, 2, 3}; // الأركان: 1, 2, 3, 0, 0

اسم شار [10] = {'ي' ، 'س' ، 'ح' ، 'ن'} ؛ / / عناصر: 'ي' ، 'س' ، 'ح' ، 'ن', '\0', '\0', '\0', '\0', '\0', '\0'

يمكنك أيضا تهيئة مصفوفة باستخدام قيمة العنصر الأول ومشغل خاص"..."(ثلاث نقاط).

أرقام كثافة العمليات[] = {1, 2, 3, 4, 5}; // سيتم تحديد حجم المصفوفة تلقائيا

يمكن أيضا استخدام تهيئة المصفوفة لملء المصفوفة جزئيا بعناصر تبدأ من فهرس معين.

أرقام كثافة العمليات[10] = {[5] = 42, [8] = 99}; // الأركان: 0, 0, 0, 0, 0, 42, 0, 0, 99, 0

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

كثافة العمليات الحجم = 5;

أرقام كثافة العمليات [الحجم];

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

أرقام [0] = 10 ؛ / / تعيين قيمة لعنصر به فهرس 0

عدد الباحث = أرقام [2] ؛ / / تعيين قيمة عنصر مع مؤشر 2 إلى المتغير "رقم"

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

كيفية مقارنة اثنين من المصفوفات في ج

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

الطريقة 1: استخدام الحلقة

واحدة من أسهل الطرق لمقارنة اثنين من المصفوفات هو استخدام لحلقة. هنا هو رمز المثال:

عدد المصفوفات (عدد المصفوفات 1 [] ، عدد المصفوفات 2 [] ، حجم المصفوفات) {

ل (إنت أنا = 0 ؛ أنا < الحجم ؛ أنا i) {

إذا (أر1 [أنا]!= أر2 [أنا]) {

العودة 0;

}

}

عودة 1;

}

يقارن هذا الرمز العناصر أر1 و أر2 واحدا تلو الآخر ويخرج من الحلقة إذا تم العثور على قيمة غير متساوية. إذا تطابق جميع العناصر ، ترجع الدالة 1 ، وإلا فإنها ترجع 0.

الطريقة 2: استخدام المدمج في ميمكمب () وظيفة

، توفر مكتبة ج القياسية وظيفة مممب () التي تسمح لك لمقارنة صفائف بايت اثنين. تقبل هذه الوظيفة المؤشرات لكل من المصفوفات وعدد البايتات للمقارنة. هنا مثال على التعليمات البرمجية:

# تشمل

عدد المصفوفات (عدد المصفوفات 1 [] ، عدد المصفوفات 2 [] ، حجم المصفوفات) {

إنت النتيجة = ميمكمب(أر 1 ، أر 2 ، حجم * سيزوف(إنت));

إذا (النتيجة = = 0) {

عودة 1;

} آخر {

العودة 0;

}

}

هذا الرمز يدعو وظيفة مممب () مع مؤشرات إلى كل من المصفوفات وحجم كل مجموعة في بايت. إذا كانت القيمة التي تم إرجاعها هي 0 ، فإن كلا المصفوفين متطابقان ، وتعود الدالة 1. خلاف ذلك ، يتم إرجاع 0.

الطريقة 3: باستخدام حلقة بينما

وهناك طريقة أخرى لمقارنة اثنين من المصفوفات هو استخدام حلقة في حين بدلا من حلقة. هنا هو رمز المثال:

عدد المصفوفات (عدد المصفوفات 1 [] ، عدد المصفوفات 2 [] ، حجم المصفوفات) {

الباحث الأول = 0;

بينما (أنا < الحجم) {

إذا (أر1 [أنا]!= أر2 [أنا]) {

العودة 0;

}

أنا++;

}

عودة 1;

}

في هذا المثال ، نستخدم حلقة بينما بدلا من حلقة لمقارنة العناصر واحدا تلو الآخر. ترجع الدالة 1 إذا تطابق جميع العناصر ، و 0 خلاف ذلك.

اختيار كيفية مقارنة اثنين من المصفوفات في ج يعتمد على تفضيلاتك ومتطلبات مهمة معينة. أيا كانت الطريقة التي تختارها ، كل هذه الأساليب تسمح لك لمقارنة فعالة اثنين من المصفوفات في اللغة ج.

طرق مختلفة لمقارنة المصفوفات في ج

عند مقارنة المصفوفات في ج ، هناك طرق مختلفة ، اعتمادا على متطلبات وخصائص المهمة. وفيما يلي بعض منها:

  • مقارنة سطر بسطر: يتكون هذا النهج من مقارنة عناصر المصفوفة سطرا بسطر. وهذا هو ، أولا تتم مقارنة العناصر مع نفس الفهارس ، ثم عناصر الصفوف التالية ، وهلم جرا. هذا النهج هو أبسط ، ولكن يمكن أن يكون غير فعال عند العمل مع صفائف كبيرة.
  • مقارنة حلقة: نهج آخر هو استخدام حلقة لمقارنة العناصر. تعمل الحلقة عبر كل عنصر من عناصر المصفوفات وتقارن قيمها. إذا تم العثور على عدم تطابق ، تتوقف المقارنة ويتم إرجاع النتيجة المقابلة. هذا النهج أكثر تنوعا ، لأنه يسمح لك بمعالجة المصفوفات من أي حجم.
  • . تقارن هذه الوظيفة منطقتين للذاكرة بطول معين وتعيد 0 إذا كانت متساوية ، أو قيمة غير صفرية إذا كانت مختلفة. هذا النهج يجعل التعليمات البرمجية أسهل وأكثر قابلية للقراءة ، ولكن قد تكون أقل كفاءة عند معالجة المصفوفات الكبيرة.

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

دليل مفصل لمقارنة (معادلة) المصفوفات في ج

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

1. مقارنة عناصر المصفوفة

الطريقة الأولى لمقارنة المصفوفات هي مقارنة عناصرها مجزأة. للقيام بذلك ، يمكنك استخدام حلقة تقارن بالتتابع كل عنصر من عناصر المصفوفة. Если все элементы равны, массивы считаются равными, иначе — неравными. Вот пример кода:

#include 

int compareArrays(int arr1[], int arr2[], int size) {

for (int i = 0; i < size; i++) {

if (arr1[i] != arr2[i]) {

return 0; // массивы не равны

}

}

return 1; // массивы равны

}

int main() {

int arr1[] = {1, 2, 3, 4, 5};

int arr2[] = {1, 2, 3, 4, 5};

int arr3[] = {1, 2, 3, 4, 6};

int size = sizeof(arr1) / sizeof(arr1[0]);

if (compareArrays(arr1, arr2, size)) {

برينتف ("المصفوفات أر1 و أر2 متساوية

");

} آخر {

برينتف ("المصفوفات أر 1 و أر 2 غير متكافئة

");

}

إذا (مقارنة المصفوفات (أر 1 ، أر 3 ، الحجم)) {

برينتف ("المصفوفات أر1 و أر3 متساوية

");

} آخر {

برينتف ("المصفوفات أر 1 و أر 3 غير متكافئة

");

}

العودة 0;

}

ستكون نتيجة تنفيذ هذا الرمز كما يلي:

صفائف أر1 و أر2 متساوية

صفائف أر1 و أر3 غير متكافئة

2. مقارنة حجم ومحتويات المصفوفات

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

# تشمل 

# تشمل

كثافة العمليات الرئيسية () {

إنت أر 1[] = {1, 2, 3, 4, 5};

إنت أر 2[] = {1, 2, 3, 4, 5};

إنت أر 3[] = {1, 2, 3, 4, 6};

الحجم الدولي = الحجم (أر 1);

إذا (ميمكمب (أر 1 ، أر 2 ، الحجم) = = 0) {

برينتف ("المصفوفات أر1 و أر2 متساوية

");

} آخر {

برينتف ("المصفوفات أر 1 و أر 2 غير متكافئة

");

}

إذا (ميمكمب (أر 1 ، أر 3 ، الحجم) = = 0) {

برينتف ("المصفوفات أر1 و أر3 متساوية

");

} آخر {

برينتف ("المصفوفات أر 1 و أر 3 غير متكافئة

");

}

العودة 0;

}

ستكون نتيجة تنفيذ هذا الرمز هي نفسها كما في المثال السابق.

3. مقارنة المؤشرات بالصفائف

الطريقة الثالثة لمقارنة المصفوفات هي مقارنة المؤشرات بالصفائف. إذا كانت المؤشرات تشير إلى نفس منطقة الذاكرة ، فإن المصفوفات تعتبر متساوية. هنا مثال على التعليمات البرمجية:

# تشمل

كثافة العمليات الرئيسية () {

إنت أر 1[] = {1, 2, 3, 4, 5};

إنت أر 2[] = {1, 2, 3, 4, 5};

إنت أر 3[] = {1, 2, 3, 4, 6};

إذا (أر1 = = أر2) {

برينتف ("المصفوفات أر1 و أر2 متساوية

");

} آخر {

برينتف ("المصفوفات أر 1 و أر 2 غير متكافئة

");

}

إذا (أر1 = = أر3) {

برينتف ("المصفوفات أر1 و أر3 متساوية

");

} آخر {

برينتف ("المصفوفات أر 1 و أر 3 غير متكافئة

");

}

العودة 0;

}

ستكون نتيجة تنفيذ هذا الرمز هي نفسها كما في الأمثلة السابقة.

خاتمة

في هذا الدليل ، تم النظر في ثلاث طرق مختلفة لمقارنة (معادلة) المصفوفات في لغة سي. يمكنك اختيار الطريقة الأنسب لمهمتك المحددة. انتبه إلى اختيار طريقة المقارنة المناسبة ، حيث يمكن أن تؤدي المقارنة غير الصحيحة للمصفوفات إلى نتائج غير متوقعة. حظا سعيدا مع ج البرمجة!

سؤال وجواب

كيف يمكنني مقارنة اثنين من المصفوفات في ج?

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

كيف يمكنني مقارنة صفائف اثنين من طول التعسفي في ج?

لمقارنة صفائف اثنين من طول التعسفي في ج ، يمكنك استخدام وظيفة مممب. تقارن هذه الوظيفة منطقتي الذاكرة المحددتين في الوسيطات. إذا كانت مناطق الذاكرة متساوية ، تقوم الدالة بإرجاع 0 ، وإذا كانت مساحة الذاكرة الأولى أصغر من الثانية ، تقوم الدالة بإرجاع رقم سالب ، وإذا كانت مساحة الذاكرة الأولى أكبر من الثانية ، تقوم الدالة بإرجاع رقم موجب.

هل هناك وظيفة مدمجة لمقارنة المصفوفات في ج?

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