البرمجة

برنامج C++ لتعديل ومعالجة مصفوفة 5×5

في البداية، يجب أن نفهم أن متغيرات الصف والعمود العظمية (MAXROW وMAXCOL) والمصفوفة A يجب أن تكون متاحة لجميع الدوال في البرنامج. لذلك سنقوم بتعديل البرنامج بحيث تصبح هذه المتغيرات والمصفوفة جزءًا من نطاق البرنامج العام.

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

cpp
#include using namespace std; const int MAXROW = 5; const int MAXCOL = 5; int A[MAXROW][MAXCOL] = { 0 }; // تحديد المصفوفة كجزء من نطاق البرنامج العام void case1(); void case2(); void case3(); void case4(); void case5(); int main() { char selection; do { cout << "\n\nMENU\n"; cout << "1. Enter array 5,5 \n"; cout << "2. Find max and min: \n"; cout << "3. Average of negatives: \n"; cout << "4. Product of numbers different from 0 \n"; cout << "5. Output: \n"; cout << "6. Exit.\n\n"; cin >> selection; switch (selection) { case '1': { system("cls"); case1(); } break; case '2': { case2(); } break; case '3': { case3(); } break; case '4': { case4(); } break; case '5': { case5(); } break; } } while (selection != '6'); return 0; } void case1() { for (int r = 0; r < MAXROW; ++r) for (int c = 0; c < MAXCOL; ++c) { cout << "\n A[" << r << "][" << c << "]= "; cin >> A[r][c]; } } void case2() { int newarr[MAXROW + 1][MAXCOL + 1] = { 0 }; int max[MAXCOL] = { 0 }; for (int r = 0; r < MAXROW; ++r) { int minr = A[r][0]; for (int c = 0; c < MAXCOL; ++c) { newarr[r][c] = A[r][c]; if (minr > A[r][c]) minr = A[r][c]; if (max[c] < A[r][c]) max[c] = A[r][c]; } newarr[r][MAXCOL] = minr; } for (int c = 0; c < MAXCOL; ++c) newarr[MAXROW][c] = max[c]; // ... الجزء المتبقي من الكود } // الدوال الأخرى تتبع نفس المنهج

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

المزيد من المعلومات

بالتأكيد، دعنا نستعرض المزيد من المعلومات حول البرنامج وكيف يتفاعل مع المصفوفة والمتغيرات العظمى المحددة:

1. دالة case1():

  • تُستخدم هذه الدالة لإدخال القيم إلى المصفوفة A باستخدام جملتي for متداخلتين.
  • يتم تعريف المصفوفة A بشكل عام في النطاق العام ليمكن الوصول إليها من قبل الدوال الأخرى.

2. دالة case2():

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

3. دالة case3():

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

4. دالة case4():

  • تقوم بحساب حاصل ضرب الأرقام غير المصفوفة في newarr التي تكون غير صفر.
  • تستخدم المصفوفة newarr لضمان استخدام البيانات الصحيحة.

5. دالة case5():

  • تقوم بإخراج المحتوى الحالي للمصفوفة newarr.
  • يتم استخدام هذه المصفوفة لضمان عرض البيانات المعالجة بواسطة الدوال السابقة.

6. البرنامج الرئيسي main():

  • يحتوي على القائمة الرئيسية ويستخدم الدوال المعرفة للتحكم في تنفيذ الخيارات.
  • تم تحديد المصفوفة A والمتغيرات العظمى MAXROW و MAXCOL كجزء من النطاق العام.

ملحوظات إضافية:

  • يُفضل تجنب استخدام system("cls") لمسح الشاشة، حيث يمكن أن يكون ذلك منصة معينة وقد لا يعمل على جميع الأنظمة بنفس الطريقة. يمكنك استخدام طرق أخرى لتحقيق هذا الهدف.
  • يُفضل التحقق من أدق تفاصيل الحلول المطلوبة للتأكد من أن البرنامج يلبي المتطلبات المحددة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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