ملحوظة: الأشياء المكتوبة بالأحمر في الموضوع مهمة جدا أو للفت الإنتباه وفيها ملخص بسيط كذلك
كيف حالكم جميعا؟
اتمنى ان تكونوا بخير وصحة وعافية
اعتذر بالطبع عن تأخر الموضوع بسبب بعض المشاغل في الفترة الماضية، وقد بدأت في كتابة هذا الموضوع من فترة طويلة خاصة عندما وجدت أن انشغالاتي تزيد مع الوقت وخشيت ألا أتمكن من وضع الموضوع فيما بعد لذا آثرت أن أبدأ فيه منذ مدة وأن على أن أكمله على عدة مراحل ><
لذا ارجو منكم عدم المؤاخذة وألا تكونوا قد آيستم من نزول الموضوع بالفعل، فالأمر حقا لم يكن بيدي
بدون المزيد من المقدمات خاصة وأنني قد عطلتكم بما فيه الكفاية سأبدأ إن شاء الله تعالى بتفصيل مراحل المسابقة مرحلة مرحلة
لكن قبل أن ابدأ أحب ان اذكر تعليقا بسيطا يخص التصحيح وهو أنني كنت أحاسب على بعض الأخطاء التي تعتبر حالة خاصة ولا يجوز أن تكون موجودة في اي برنامج يتم برمجته، لكن بعض هذه الأخطاء يتم معالجتها اوتوماتيكيا في بعض لغات البرمجة دون تدخل المستخدم والبعض الاخر لا يتم معالجته اوتوماتيكيا
لذا فقد قررت المحاسبة على هذه الأخطاء حتى وان كان يتم معالجتها اوتوماتيكيا، فهدفنا هو الإرتقاء بالبرمجة، لذا ان كان احد المبرمجين يستخدم لغة ما فيجب عليه ان يلم بمميزات وعيوب هذه اللغة كليا حتى يقوم بتقديم برنامج ناجح، هذا أحد اسباب محاسبتي على تلك الأخطاء، وأيضا السبب الاخر هو أنني لم اجبر أبدا احد المبرمجين على استخدام لغة معينة ليقوم ببرمجة برنامجه بها رغم ان هذه الطريقة كانت ستسهل عليّ الكثير جدا جدا في التصحيح وكنت وقتها أستطيع ان اتفق معكم بها على طريقة تسلمون لي بها أكواد برامجكم وأقوم انا ببرمجة برنامج يستخدم هذه الأكواد كـ function مثلا ويقوم بوضع الدرجة اوتوماتيكيا دون تدخل مني بحيث لا يشتكي احد من انني ظلمته او ما شابه وفي النفس الوقت استطيع ان ارتاح انا من عناء التصحيح وتسليم النتائج بأسرع ما يمكن دون مراجعة درجة كل متسابق مرتين على الأقل في كل مرحلة كما افعل الان
لذا فأرجو ألا يتضايق أحد من اتخاذي هذا القرار فهو يصب في مصلحتكم كمبرمجين اولا وأخيرا
وشيئ آخر ايضا: هو أنني قمت بعمل هذه التوزيعة والتقسيمة الحالية للدرجات والتي أراها التقسيمة الأنسب لتوزيع الدرجات لذا ارجو المعذرة إن كان هناك اي اختلاف بسيط فيها عما كنت قد اخبرت به قبلا (الإختلاف بسيط جدا للغاية وفي جزئية بسيطة جدا حتى أنني اظن ألا أحد سينتبه له )
وأبدأ معكم الان ومع التفصيل لمراحل المسابقة
هذه المرحلة وضعت خصيصا لتوفير حظ أوفر للمبتدئين في البرمجة لذا كان السؤال فيها سهلا وقد تمكن الجميع تقريبا من حلها بفضل الله تعالى
لكن وبما أن هدفنا كان التطور للأفضل فقد تم المحاسبة عليها بدقة من ناحية عدم وجود أخطاء ظاهرة للمستخدم ومع ذلك تم وضع درجة بسيطة على تلك الأخطاء
تقسيم درجات تلك المرحلة تم كالتالي:
الدرجة الأساسية:
وهي 20 درجة وتم تقسيمها كالتالي:
- 7 درجات كاملة تضاف في رصيد المتسابق في حالة قام بتسليم برنامج يعمل (بغض النظر عما إذا كان يعمل بشكل صحيح أم لا )
- 7 درجات أخرى تضاف في رصيد المتسابق في حالة كان البرنامج يحقق المطلوب الأساسي في المسألة (يقوم بحساب المضروب بما في ذلك مضروب 1 و صفر)
- 4 درجات على الإختبارات الخاصة للبرنامج وتفصيلها كالاتي:
~ درجة تضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لقيمة سالبة
~ درجة أخرى تضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لقيمة كبيرة جدا تفوق الذاكرة المعتادة لحفظ الرقم
~ درجةأخرى تضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لرقم عشري يحتوي على فاصلة (مثلا: 6.5)
~ درجة أخرى تضاف للمتسابق ان وضع في الإعتبار ادخال المستخدم لحرف أو رمز آخر غير الأرقام
- درجتان على الألتزام بشروط المسابقة في كيفية التسليم (اعطيت للكل في هذه المرحلة كهدية ولأنه تم التنبيه عليها متأخرا ^_^)
درجة الواجهة (درجة تحسين المجموع):
وهي عبارة عن درجتان ليستا من أصل المجموع، بل تضافان على المجموع النهائي لجبر الدرجة الناقصة فقط، وتم وضعهما على واجهة البرنامج لتحسينها بأي شكل كان
(هاتين الدرجتين تقوما بجبر المجموع حتى يصل الى عشرين درجة فقط لمن نقصت درجته، فإن زاد المجموع عن ذلك لا يتم احتساب تلك الزيادة)
بالنسبة لهاتين الدرجتين فقد تم وضعهما للأغلبية، فانا لم أشترط أبدا واجهة خرافية لكن ما اشترطه هو واجهة واضحة ومنظمة ومرتبة فقط، بمعنى اخر لو شعرت من طريقة تصميم الواجهة أن المتسابق قد بذل ولو جهد 5 دقائق زائدة لتحسين واجهة برنامجه كنت أعطيه الدرجتان
أيضا بعض الواجهات كانت عبارة عن زر ومربع ظهور نتيجة ومربع اخر لوضع الرقم المراد ايجاد مضروبه به وفقط دون وجود أشياء أخرى
لكن قام أصحاب بعض هذه الواجهات بعرض رسالة خطأ خاصة بكل خطأ ولهذ قمت بإعطائهم الدرجة الكاملة
بالنسبة لمن قاموا باستخدام واجهة سوداء خاصة بالدوس، فهؤلاء خصصت لهم درجة يأخذونها بمجرد ان يضع أحدهم سؤالا للمستخدم ما اذا كان يريد تنفيذ هذه العملية مرة أخرى أم لا لأن هذا الأمر متعب بصراحة اذا قمت بفتح برنامج بعض من صمم بهذه الطريقة مباشرة ولم يضع هذا الإختيار فإنني اضطر لفتح برنامجه كل مرة اريد ان اجرب فيها رقما اخر
إضافة الى ذلك أن الوضع الإفتراضي للنافذة السوداء يجعلها تغلق بمجرد ظهور النتيجة دون حتى أن اتمكن من رؤية النتيجة
اما بالنسبة للدرجة الأخرى فكنت أضعها لمن أشعر بأنه مهتم قلييلا بطريقته الخاصة بواجهة البرنامج وذلك بإضافة جمل تزين البرنامج ونجوما مثلا وما شابه ذلك
(وضع الأسماء تم عشوائيا وليس بالترتيب)
المفضلات