fighters

    الجزء الثانى من المحاضرة الأولى لتعليم (فيجوا بيسك 6)

    شاطر
    avatar
    fighter
    الـمـديـرالـعـام
    الـمـديـرالـعـام

    عدد الرسائل : 226
    العمر : 29
    مزاجى :
    تاريخ التسجيل : 16/04/2008

    03 الجزء الثانى من المحاضرة الأولى لتعليم (فيجوا بيسك 6)

    مُساهمة من طرف fighter في الخميس مايو 01, 2008 7:21 pm



    الحمد لله ان الناس بدأت تتفاعل و يارب ان شاء الله الشرح يستمر سهل الي
    النهاية، البرمجة غاية في السهولة كل ما تحتاج اليه هو ترتيب أفكارك و
    أعتقد أن أي منكم يقدر علي ذلك، أنت أفضل من المبرمج الهندي و الاسرائيلي
    و اللذان استحوذا علي نصيب كبير من صناعة البرمجيات فلم تركت لهم هذه
    الفرصة؟ .. و لم تترك لهم هذه الفرصة الان ، لابد لنا من السبق و انا معكم
    للنهاية ان شاء الله
    للمرة
    الثانية أرجوا من الاخوة المشرفين الأعزاء عبد الله فتحي و الطيب و بروف
    مساعدتي في مشكلة الصور و تحميل الملفات، لأن الدروس هكذا سوف تتوقف، أو
    لو أن أي من الأعضاء لديه و لومساحة استضافة و لو 30 ميجا يجزيه الله كل
    الخير و الان نكمل الدرس.




    الان سوف أكلمك عن موضوع لذيذ و سهل جدا و هو البناء الهيكلي للبرنامج
    كلامي
    هنا ينطبق علي كل لغات البرمجة ، يعتقد البعض ان البرنامج مجرد عمليات
    تكويد فقط و لكن الحقيقة غير ذلك تماما فالبرمجة تحتوي عدة مراحل متكاملة
    و مرتبة يمكن أن نجملها في كلمة PRACTICE و التي يمثل كل حرف منها مرحلة
    معينة تعالوا بنا نأخذ جولة سريعة بهذه المراحل

    (1) تحديد الهدف الأساسي من اعداد البرنامج (Pose)
    __________________________________


    قبل أن نكتب أكواد و أوامر البرنامج يجب أولا أن نعرف ما المفروض أن يقوم
    به هذا البرنامج و هذا شيء طبيعي جدا الا اذا كنت تري شيء اخر.
    • يجب
    معرفة ما هي المشكلة أو المشاكل التي علي البرنامج حلها ( ما الذي يتوقع
    من البرنامج كمخرجات أو معالجات و ما هي احتياجات العميل لأن احتياجاته هي
    الأهم و ليس افتكاساتك أنت)


    (2) تحليل متطلبات البرنامج ( Resolve)
    __________________________
    بعد
    تحديد الهدف الأساسي من البرنامج يجب أن نحدد الوظائف التي يجب القيام بها
    من أجل حل المشكلة أي تعريف المتطلبات requirements definition حيث ينبغي
    وضع تصور كامل لهذه المتطلبات يعني طبعا مش ممكن ان انا أبدأ في التصميم
    من غير ما أعرف ما هو المطلوب مني بالضبط عمله و سوف نأخذ مثال جميل

    مثال
    ----
    لو
    جائني عميل و طلب مني عمل برنامج لشركته سأسأله و ماذا تريد من البرنامج
    أن يفعله لو قال لك مثلا أريده أن يقوم بعمل كشوف مرتبات الموظفين و
    مراقبة المخزون و حفظ بيانات العملاء فهذه هي وظائف برنامجك المطلوب منك
    برمجتها و في حالتنا هذه فان الوظائف الثلاثة السابقة هي الوظائف الرئيسية
    التي يمكن بعد ذلك تقسيم كل منها لوظائف فرعية و هو ما يقودنا الي النقطة
    الثالثة



    (3) تقسيم البرنامج الي أجزاء (Allocate)
    ___________________________

    بعد
    أن أعددنا المهام و الوظائف التي يجب علي البرنامج الوفاء بها يجب ان نقسم
    هذه الوظائف الي مقاطع برمجية يؤدي كل مقطع منها مهمة محددة هذه المهام في
    مجموعها تؤدي الوظيفة ... فهمت حاجة؟

    يعني لو عاوزين ندفع مرتبات الموظفين هذا الشهر نعمل ايه
    أولا نكتب مقطع برمجي يعد الموظفين و نشوف كل موظف حسابه كام
    ثانيا نكتب مقطع برمجي يضيف مرتب الشهر الي حساب الموظف
    ثالثا نكتب مقطع برمجي يخصم الضرائب و التأمينات و الخصومات

    أظن المفهوم الان أسهل



    (4)تحديد خطوات المعالجة (Consider)
    __________________________

    الان
    أصبح البرنامج مجموعة من البلوكات البرمجية مهم جدا جدا قبل أن تكتب الكود
    أن تشرح لنفسك أولا م الذي يجب علي البرنامج أن يفعله ثم تترجم هذا الكلام
    الي أكواد و هو ما سيكفل لك تنفيذ أفضل و أحسن طبعا لن أتطرق الي تفصيل
    الخوارزميات و قياس زمن الخوارزميات و السرعة مقابل الذاكرة لأنك لازلت
    مبتديء و أغلب الظن أنك شاب و لا أريدك أن تكره الدنيا من الان (أمزح فقط
    الموضوع سهل جدا والله)


    و كمثال للخوارزمية
    لو الطالب حصل علي أكثر من عشر درجات يزيد عدد الناجحين بمقدار واحد
    أو بالانجليزية


    الكود:
    If score ≥ 10 then
    Add one to the  succeded students' number
    End if

    اذا كان المقطع البرمجي كبير يستحسن تقسيمه الي مقاطع أصغر


    (5) اختبار الأكواد و البرنامج بوجه عام (Test)
    ______________________________


    اختبار البرنامج للتأكد من أنه يعمل بشكل صحيح البعض يقول أنه من الأفضل
    أن نقوم بعمل حسابات البرنامج يدويا و تشغيل نفس البيانات و نري ان كانت
    متطابقة أم لا، أو أن تتم هذه العملية علي برامج أخري تؤدي نفس الوظيف و
    مقارنة النتائج
    عموما من الأفضل اختبار كل بلوك علي حدة للتأكد من أن كل مهمة يتم تأديتها بشكل سليم


    (6) احداث تكامل بين عناصر البرنامج (Integrate)
    _________________________________

    العمل علي ربط الأجزاء و التأكد من ارتباط العمليات و الوظائف بالمهام بشكل صحيح و تشمل هذه المرحلة أيضا الفحص و التنقيح Debugging


    (7) التأكد من ان البرنامج يحقق الغرض من تصميمه (Correlate)
    ____________________________________________

    وفي هذه المرحلة نقوم بعمل اختبار الدقة أو ما يسمونه باختبار الثبات
    لنعرف اذا كان البرنامج يحقق الغرض الأساسي منه مع استخدام عدد من الأمثلة


    (Cool انهاء البرنامج و حفظه (End)
    ______________________

    حفظ
    البرنامج باخر تعديلاته وكتابة الملاحظات التي قابلتك أثناء اعداد
    البرنامج و تدوين كل الخطوات و بهذا يكون لديك مستند كامل تستطيع العودة
    اليه عند الرغبة في التعديل و التطوير.

    روح ارتاح شوية و انا كمان عاوز أريح شوية و نكمل بعدين






    _________________

      الوقت/التاريخ الآن هو الأحد أغسطس 19, 2018 3:50 pm