السلام عليكم
أملك فسحة من الوقت هذه الأيام لذا أحببت أن أقوم ببعض التدريبات البسيطة على كتابة برامج GUI بالجافا.
أول هذه البرامج هو "ضارب المصفوفات", و هو برنامج صغير وجدته في الإنترنت بينما كنت أبحث عن برامج للتسلية و التدريب :)
يقوم ضارب المصفوفات بإيجاد ناتج جداء مصفوفتين يُدخلهما المستخدم بشرط أن تكون الأبعاد أقل أو تُساوي 3. (البرنامج مكتوب بالفيجوال)
مثال :
البرنامج جيد في ظاهره و لكنه في نفس الوقت يحتوي على كوارث مخيفة إذا ما دققنا النظر :D
في ما يلي استعراض مختصر لبعض الأخطاء التي وقع فيها صاحب البرنامج :
توجد عدة أخطاء في الخوارزمية المسؤولة عن ضرب المصفوفات, ناتج ضرب المصفوفتين السابقتين يجب أن يُعطي :
العنصر الموجود عند تقاطع السطر الأول مع العمود الأول يُساوي 31 و ليس 34 !
أيضا, ما دامت الأبعاد تُساوي 2x2 فيجب أن تظهر المصفوفة في الجزء العلوي بدلا من السفلي.
كذلك من الأفضل تعطيل زر التحقق عندما تكون الأبعاد متناسقة.
و الخطأ الأكبر الذي وقعه فيه صديقنا هو عدم تسيير الإستثناءات, فعندما تُدخل قيم غير صحيحة في إحدى الخانات أو تتركها فارغة, ستحدث كوارث :)
للفائدة, قمت بإصلاح جميع الأخطاء المُوضحة أعلاه في البرنامج المُرفق.
صور توضيحية :
برنامج الفيجوال :
برنامج الجافا : (الأبعاد اعتبرتُ أنها تُقرأ من اليسار إلى اليمين)
النسخة الثانية من البرنامج ستحتوي على العديد من التحسينات (على مستوى الكود و على مستوى الواجهة الرسومية أيضا) بالإضافة إلى إدراج بعض العمليات الأخرى مثل :
- إيجاد مقلوب المصفوفة. (Matrix Inverse)
- إيجاد منقول المصفوفة. (transposed matrix)
- حساب قيمة المحدد. (determinant)
- قسمة المصفوفات.
هل هناك من يرغب بمشاركتي في تطوير البرنامج ؟ :)
