هل يجب علي كي أتعلم السي شارب أن أبدأ بتعلم الـ Console ؟
وماهي فائدتها ؟
ليس شرطاً المهم أن تتكون لديك دراية بالتفكير البرمجية وكيفية تحليل المشاكل والمسائل ومن ثم إيجاد حل له بحيث تستطيع نمذجة هذا الحل ليصبح قابلا لتنفيذه بالبرمجة
ومن ثم تحاول تجسيد هذه النمذجة من خلال لغة برمجة أيا كانت وبأي أداة أو نوع من التطبيقات بما يلائم الحل.
لا أجد أنفع من مثال حي:
قبل يومين تواصل معي زبون لتصميم مجموعة عبارات بالخط حيث أستخدم الموقع eMashq لذلك في إنتاج التركيبات ومن ثم أصدرها للإليستريتور وأمنتجها هناك.
هذه المرة وصل عدد الكلمات إلى 107 وكلمة حسب ما ظهر ببرنامج الوورد، فكرت قليلاً وتذكرت أن الإنتاجية ليس بالعمل لوقت أطول وإنما بإنجاز نفس المطلوب بوقت أقصر من الوقت الاعتيادي.
فقلت في نفسي أول أمر بإمكاني أن أصمم الكلمة ومن ثم أستخدمها نفسها في عبارات أخرى في حال التكرار
هذا يقودني لاستخلاص الكلمات بحيث ألغي المكررات
المسألة الثانية بدل أن أصمم بالموقع عبارة عبارة أو كلمة كلمة حيث لكون التطبيق سحابي وبالفلاش فهو يستنزف الوقت بشكل كبير في عملية التعديل والحفظ وعليه لحل هذه المشكلة وجب علي أن أفتح جلسة واحدة لتصميم أكبر كمية من الكلمات لكن واجهني قيدين، الأول أن الجلسة لا تسمح بإدراج أكثر من ثلاث عبارات والقيد الثاني كل عبارة لا تستقبل أكثر من 60 حرف
بعد هذه المعطيات توجب علي بعد أن أستخلص الكلمات المفردة أن أعيد جمعها في سلسلة نصية واحدة ومن ثم أعيد تقسيمها إلى عبارات مكونة كل واحدة من عدد من الكلمات بحيث لا يتجاوز طول كل منها 60 حرف
لكون هذه الطلبية أتتني عدة مرات وقابلة للتكرار في المرات القادمة قررت أن أبني تطبيق أدخل له النص كما وصلني من الزبون فيقوم بإعطائي مجموعة جمل تحقق الشرط السابق.
إذا تحدد لدي المشكلة وكيفية حلها وبالتالي حددت المدخلات وكيف يجب أن يكون الخرج
وبدأت بعمل خوارزمية لتحويل الدخل إلى الخرج المطلوب.
النص قد يأتي على هيئة جمل أو كلمات وقد تكون على أسطر متعددة وقد يكون السطر الجديد مجرد رمز \n و قد يكون مع إنتر \r\n وقد يكون هناك أسطر فارغة أو فراغات متكررة
الخطوة الأولى هي تحويل النص إلى مصفوفة كلمات فقط وبالتالي قمت بعمل استبدال لكافة الأشياء التي ليست كلمات استبدلتها برمز فاصل وليكن |
ثم قمت بعد ذلك بتقسيم النص حسب الرمز الفاصل مع تجاهل النتائج الفارغة فحصلت على مصفوفة الكلمات والتي مثلا عددها 107 كما في مثالي
قمت بعمل ترتيب مع حذف التكرار من خلال دوال جاهزة فحصلت على مصفوفة كلمات بعدد أقل
قمت بعمل عداد يمر على الكلمات مع وضع متحول يحتسب طول الجملة المتشكلة بحيث مع كل كلمة أجمع طولها إلى الطول السابق زائد واحد والذي يمثل الفراغ بين الكلمات
أفحص الطول فإن تجاوز الستين أقوم بتصفير متغير الطول و أنتقل لجملة جديدة
بهذا أحصل في النهاية على مجموعة جمل كل جملة تتكون من مجموعة كلمات ويكون طولها أقل من 60
أخذ كل ثلاثة منها لأنتجها في جلسة تصميم واحدة
أستغرقت مني العملية حوالي ساعتين ونصف لكن ستوفر علي ساعات كثيرة من أجل طلبات مماثلة.
التعليقات