اذهب إلى المحتوى

السؤال

نشر

كتابة كود برمجي بلغة السي شارب يقوم بعمل التالي:
- الادخال Input: مجموعة A تحتوي عدد محدود من العناصر + علاقة R على A من خلال مجموعة الأزواج المرتبة الممثلة للعلاقة.
- الناتج Output:
1) أظهار مصفوفة M التي تمثل العلاقة R.
2) تحديد هل العلاقة تحقق الخواص الثلاث: الانعكاسية، التناظرية، المتعدية. 
3) ومن ثم استنتاج هل العلاقة تكافؤ أم لا .

 

ممكن مساعدة في كيف تنفيذه ؟!

أو قناة عبر يوتيوب تشرح كيف يتم تنفيذه؟!

 

Recommended Posts

  • 0
نشر

سأقوم بشرح الأفكار لك و يمكنك محاولة كتابة الكود و في حال حدوث أخطاء يمكنك سؤالنا عنها.

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

العلاقة تعرف عن طريق أزواج من العناصر، بحيث عندما يكون زوجان من العناصر في مجموعة هذه العلاقة فإن هذه العلاقة توجد بين هذين العنصرين، أي مثلاً لنفترض أنه لديك المجموعة {1, 2, 3, 4} و كان لدينا العلاقة بين x, y تمثل أن x > y، يكون لدينا مجموعة الأزواج الممثلة لهذه العلاقة في هذا المثال هي: {(1, 2), (2, 3), (1, 3), (3, 4), (2, 4), (1, 4)}.

المصفوفة التي تمثل العلاقة هي عبارة عن مجموعة من الأسطر بحيث كل سطر يمثل رقم و أيضاً كل عمود يمثل رقم من مجموعة الأرقام التي لدينا، أي في هذا المثال سيكون لدي العمود الأول يمثل الرقم 1 و العمود الثاني يمثل 2 و هكذا، و لدي السطر الأول يمثل الرقم 1 و السطر الثاني يمثل الرقم 2 و هكذا، و تكون قيمة العنصر في السطر x و العمود y هي 1 في حال كان يوجد علاقة بين x و y أي في مثالنا السابق في حال كان x أكبر من y، و تكون القيمة 0 في حال عدم وجود هذه العلاقة بين هذين الرقمين.

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

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

العلاقة تحقق الخاصية المتعدية كما يلي: في حال كان هناك علاقة بين x, y و بين y, z فإنه يجب أن يكون هناك علاقة بين x,z، يمكن التحقق من هذه الخاصية عن طريق تطبيق خوارزمية Floyd warshall على المصفوفة الخاصة بالعلاقة، في حال تغير هذه المصفوفة بعد تطبيق الخوارزمية فإن العلاقة لا تحقق العلاقة المتعدية، بينما في حال بقيت المصفوفة كما هي فإنها تحقق العلاقة المتعدية، أي يجب علينا الاحتفاظ بنسخة من المصفوفة و تطبيق الخوارزمية على نسخة أخرى و مقارنة المصفوفتين، يمكنك إيجاد خوارزمية floyd بشكل سهل باللغة التي تريدها.

تكون العلاقة تكافؤ في حال كانت العلاقة تحقق الخواص السابقة.

يمكنك الآن محاولة كتابة الكود الذي يقوم بما شرحته سابقاً، يجب أن تستطيع كتابته في حال كنت على إطلاع على ال c#، في حال لم تكن على معرفة كافية بها يمكنك الإطلاع على مقالات أكاديمية حسوب التي تقدم شروحات ممتازة عن هذه اللغة.

  • 0
نشر
بتاريخ 10 ساعة قال Kais Hasan:

سأقوم بشرح الأفكار لك و يمكنك محاولة كتابة الكود و في حال حدوث أخطاء يمكنك سؤالنا عنها.

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

العلاقة تعرف عن طريق أزواج من العناصر، بحيث عندما يكون زوجان من العناصر في مجموعة هذه العلاقة فإن هذه العلاقة توجد بين هذين العنصرين، أي مثلاً لنفترض أنه لديك المجموعة {1, 2, 3, 4} و كان لدينا العلاقة بين x, y تمثل أن x > y، يكون لدينا مجموعة الأزواج الممثلة لهذه العلاقة في هذا المثال هي: {(1, 2), (2, 3), (1, 3), (3, 4), (2, 4), (1, 4)}.

المصفوفة التي تمثل العلاقة هي عبارة عن مجموعة من الأسطر بحيث كل سطر يمثل رقم و أيضاً كل عمود يمثل رقم من مجموعة الأرقام التي لدينا، أي في هذا المثال سيكون لدي العمود الأول يمثل الرقم 1 و العمود الثاني يمثل 2 و هكذا، و لدي السطر الأول يمثل الرقم 1 و السطر الثاني يمثل الرقم 2 و هكذا، و تكون قيمة العنصر في السطر x و العمود y هي 1 في حال كان يوجد علاقة بين x و y أي في مثالنا السابق في حال كان x أكبر من y، و تكون القيمة 0 في حال عدم وجود هذه العلاقة بين هذين الرقمين.

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

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

العلاقة تحقق الخاصية المتعدية كما يلي: في حال كان هناك علاقة بين x, y و بين y, z فإنه يجب أن يكون هناك علاقة بين x,z، يمكن التحقق من هذه الخاصية عن طريق تطبيق خوارزمية Floyd warshall على المصفوفة الخاصة بالعلاقة، في حال تغير هذه المصفوفة بعد تطبيق الخوارزمية فإن العلاقة لا تحقق العلاقة المتعدية، بينما في حال بقيت المصفوفة كما هي فإنها تحقق العلاقة المتعدية، أي يجب علينا الاحتفاظ بنسخة من المصفوفة و تطبيق الخوارزمية على نسخة أخرى و مقارنة المصفوفتين، يمكنك إيجاد خوارزمية floyd بشكل سهل باللغة التي تريدها.

تكون العلاقة تكافؤ في حال كانت العلاقة تحقق الخواص السابقة.

يمكنك الآن محاولة كتابة الكود الذي يقوم بما شرحته سابقاً، يجب أن تستطيع كتابته في حال كنت على إطلاع على ال c#، في حال لم تكن على معرفة كافية بها يمكنك الإطلاع على مقالات أكاديمية حسوب التي تقدم شروحات ممتازة عن هذه اللغة.

شكرا على ردك اخي

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

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

اريد حل المسألة خلال اليوم ، مشاهدة دورة c# يحتاج الى ايام .. وأنا اريد تنفيذ الكود بأسرع وقت ممكن لسليمه لدكتور الجامعة 

ارجو المساعدة من حضرتك

  • 0
نشر
بتاريخ 11 ساعة قال Ibrahim Handouqa:

شكرا على ردك اخي

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

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

اريد حل المسألة خلال اليوم ، مشاهدة دورة c# يحتاج الى ايام .. وأنا اريد تنفيذ الكود بأسرع وقت ممكن لسليمه لدكتور الجامعة 

ارجو المساعدة من حضرتك

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...