Let's Learn it Together !

ِAn educational blog from FCIS'2011 students ..


ما هى ال Online Judges ؟؟


مواقع تحتوى على مشاكل أو مسائل "Problems" تتطلب حلّها برمجيا ومن ثم تقدم الكود للموقع "
Submit ", وبعد ذلك يحدد الموقع هل حلك صحيح أم خطأ.



ما هى أنواع المسائل التى تحتوى عليها ال Online Judges ؟؟

أشهر أنواع المسائل هى :
  • Ad hoc : مسائل لا تحتاج الى معرفة Algorithm معين أو ان تكون على دراية عميقة بأحد العلوم .. وتعتمد فى الأساس على الذكاء وهى أشهر أنواع المسائل, وأحيانا كثيرة تكون الأسهل.
  • simulation : خطوات ويجب عليك تنفيذها برمجيا .. تعتمد على قدرتك فى التعامل مع لغة البرمجة التى تستخدمها, وهى من أشهر أنواع المسائل أيضا.
وهناك أنواع أخرى عديدة مثل
  • Math : ستتعلم منها أشياء جديدة أكثر من استخدامك لقواعد ال Math التى تعرفها.
  • Number Theory : على رأى أحد ال ACMers "هتنظف دماغك".
  • Sorting : ترتيب الأشياء بأقل وقت ممكن وأقل "Memory" ممكنة يجعل الحياة أسهل.
  • Brute Force Method : أحيانا يكون استخدامها متاحا, عندما يكون لديك الوقت والمساحة (Memory) المناسبة.
  • Backtracking : المطلوب ايجاد كل الحلول الممكنة وأختيار الحل الأفضل ... وأحيانا ايجاد أول حل صحيح.
  • Dynamic Programing : تقسيم المشكلة الكبيرة الى مشاكل أصغر, ستتعلم منها ان المشاكل أحيانا تكون أبسط مما قد تبدو.
  • Greedy : ستعلمك الطمع والجشع :D.
  • Graph : صعوبتها فى ال implementation ودراسة ال Algorithms لحل مسائلها أسهل ... وحل مسألة منها يرفع الروح المعنوية جداا.


ما هى لغات البرمجة التى يمكن كتابة الكود بها ؟؟؟
  • ++C وهى من أكثر اللغات استخداما.
  • C
  • Java
بعض المواقع تتيح لغات أخرى بالاضافة الى ما سبق مثل
  • Pascal
  • Fortran
  • GCC
  • ANCII
وقليلا ما تتيح بعض المواقع لغات مثل #C.



أمثلة لل Online Judges

وان شاء الله فى تدوينات قادمة سيتم شرح كيفية التعامل مع كل موقع من المواقع السابقة و مميزات كل منهم وأيضا بعض النصايح لل ACMers الجدد (ACMers المستقبل).

ملحوظة : هنا نسخة PDF من المقال.

2 comments:

حلو الموضوع دهخ جزاك الله خيرا
يا حاج خوليو

جزاك الله خيرا انا أستفدت أوي والله .. بالتوفيق ان شاء الله :)

Post a Comment