- 0
سجل دخول لمتابعه هذا
متابعين
0

لم أستطع كتابة كودها بالسي! لا أدري إن كانت تتحقق برمجيا!
بواسطة
A.S Hack,
-
يستعرض القسم حالياً 0 members
لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .
بواسطة
A.S Hack,
لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .
تم النشر منذ (معدل)
السلام عليكم أيها الأخوة، وطيب الله أوقاتكم
لدي مشكلة في برمجة التالي بالسي::
افرض أن لدي خمسة أجهزة (من 0 -4) كل واحد منها يستطيع التواصل لاسلكيا في نطاق محدود يمثله الدائرة الكبيرة الحاوية للدوائر الصغيرة(اﻷجهزة)، ألاحظ من الشكل أن الجهاز رقم 0 يستطيع الوصول للجهاز رقم 2 بقفزة واحدة فقط، كذلك الجهاز رقم 2 يستطيع الوصول للجهاز رقم 3 بقفزة واحدة فقط، بينما الجهاز رقم 1 ورقم 4 لا يستطيعان الاتصال بأي جهاز، قمت بكتابة كود بلغة السي، يكون مصفوفة ثنائية البعد، فكانت على هذا الشكل:
اﻷرقام تمثل عدد القفزات المطلوبة للوصول للجهاز اﻵخر، والرقم -1 يشير لقفزة الجهاز إلى نفسه (غير عملي لذلك جعلته بقيمة سالبة).
المشكلة::
ألاحظ من الرسم (ويمكن استنتاج ذلك من المصفوفة اﻷولى) أن الجهاز (n0) يستطيع الوصول للجهاز (n3) ولكن بقفزتين، لهذا يجب أن تكون المصفوفة بهذا الشكل::
فكيف أستطيع كتابة كود يقرأ المصفوفة القديمة ويكتشف عدد القفزات اﻷكثر من قفزة واحدة (قد تكون قفزتين أو أكثر)، ويغير في المصفوفة.
بمعنى آخر الكود الذي كتبته يستطيع فقط مليء المصفوفة بعدد قفزة واحدة وإلا بعدم إمكانية القفز (الوصول) --> مع أن اﻷمكانية واردة بأكثر من قفزة، ويمكن استنتاج ذلك من المصفوفة اﻷولى! ولكن كيف!!
ملاحظة أرجو أن يكون الكود عاما، ﻷن مواقع الأجهزة تختلف دوريا أي أن المصفوفة ومواقع اﻷجهزة هنا كان للمثال فقط، فقد تتحرك اﻷجهزة. (اﻷجهزة تعبر عن شبكة AD Hoc).
تم تعديل بواسطه A.S Hackشارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه