تعلم البرمجة باسهل طريقة......الحلقة الثالثة

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • تعلم البرمجة باسهل طريقة......الحلقة الثالثة

    بسم الله الرحمن الرحيم
    والصلاة والسلام على سيدنا محمد النبي الأمي

    أهلا وسهلا بكم أيها الاخوة الاكارم مع الحلقة الثالثة
    من سلسلة تعلم البرمجة باسهل طريقة

    في الحلقة الأولى أصبح برنامجنا بهذا الشكل:





    وكانت نتيجة تنفيذه بهذا الشكل:



    كانت المعضلة التي يقوم برنامجنا بحلها هي كتابة جملة:
    Hellow World
    عشرين مرة

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

    إذا ما هو الحل؟؟؟؟

    لو كان لدينا عصا سحرية تقوم بتدوير هذا الأمر 1000 مرة وبالتالي يتم تجميع (تكديس) هذه الجملة 1000 مرة ثم نستطيع كتابتهم

    لحسن الحظ هذه العصا السحرية موجودة واسمها الحلقة او بالإنكليزية (Loop)
    (طبعا تسمية حلقة لاتنطبق فعليا هنا لإن الحلقة بدايتها تساوي نهايتها ولكن حاليا دعونا نقبل هذه التسمية)

    بالعودة الى حلقتنا يجب ان يكون لها بداية ويجب ان يكون لها نهاية
    دعونا نأخذ مثال من الواقع:
    الساعة الرقمية لو نظرت الى عداد الثواني مثلا ستلاحظ دائما انه يبدء من 00 وينتهي عند 59 وهذا المثال ينطبق تماما على موضوع الحلقة ولكن هناك شيء إضافي فانت تلاحظ دائما ان عملية الزيادة في الثواني ثانية كل مرة تتم اضافتها لما سبق (ايضا يتم تكديسها في الواقع) فلاتتم الزيادة مرة ثانية ونصف ومرة أخرى ثانيبتين بل ان معدل الزيادة هو دائما ثابت (ثانية واحدة)
    الآن دعونا نجمع ماتوصلنا له من خصائص للحلقة:
    1 – لها بداية
    2 – لها نهاية
    3 – لها معدل زيادة ثابت

    طيب كيف سنقوم ببناء هذه الحلقة

    الأمر ابسط مما تتصور فقط بكتابة كلمة
    for
    هل هذا معقول!!!!

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

    وبالتالي سيكون الشكل البرمجي لها هكذا:



    وهذا الكود معناه بلغة البشر:
    قم بإنشاء حلقة بدايتها 1 واستمر بهذه الحلقة طالما ان العداد (وهو المتغير i) أصغر من 1000 او حتى يصبح مساويا للرقم 1000 فتوقف فورا ومعدل هذه الزيادة واحد كل مرة
    طبعا نسيت ان اذكر ان كل خاصية من خصائص الحلقة نفصلها عن الأخرى بفاصلة منقوطة كما يتضح ذلك من الشكل السابق
    كما انك قد تلاحظ اننا لم نضع فاصلة منقوطة في نهاية سطر الحلقة
    وذلك لانها عبار عن جسم برمجي او (كتلة برمجية) يتم الإعلان عن بدايتها ونهايتها باقواس كبيرة وستلاحظ ذلك ايضا عندما نبدء ببناء (الإجراءات) أو
    Functions
    (إن شاء الله)


    الآن نرجع لمثالنا الذي نحتاج ان نكتب من خلاله 1000 مرة جملة:
    Hellow World

    نقوم بتعديل طفيف على البرنامج ليصبح بهذا الشكل:



    والآن بعد عملية التصريف هذه هي النتيجة على الشارت:



    والآن ماذا لو اردنا اللعب قليلا وقمنا بتعديل البرنامج ليصبح بهذا الشكل:



    فقط قمت بكتابة اربع جمل إضافية وفي النهاية وضعت الرمز الخاص
    \n
    للإنتقال لسطر جديد في كل مرة تقوم الحلقة بدورة كاملة ولنرى ماهي النتيجة:




    لنتابع اللعب قليلا
    ماذا لو اردنا ان نظهر رقم العداد بجانب كل سطر اي بمعنى آخر اننا نريد ان نكتب رقم كل دورة
    بسيطة نقوم بإضافة المتغير i الى نهاية الجملة مع الملاحظة اننا سنضيفه خارج علامتي التنصيص ليصبح شكل البرنامج:



    ثم نقوم بعملية التصريف لنحصل على تحذير واحد بهذا الشكل:



    وهذا التحذير يقول:
    implicit conversion from ‘number’ to ‘string’
    وهذا يعني ان هناك عدم تطابق في عملية التحويل من رقم الى نص انظر الى الشكل:


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



    وشكل التنفيذ على الشارت:



    وبعد التعديل يصبح بهذا الشكل
    التعديل الأخير تم بواسطة Turkm; 2014 - 10 - 22, 19:16.

  • #2
    رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

    وهذا هو شكل التنفيذ:




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

    تمااااااااااااااااااااااااااااااااااااااام



    وهذا هو بيت القصيد
    والآن بعد ان تعلمنا كيف نظهر نصا او رقما على الشارات سنقوم باظهار رقم لمتوسط حسابي

    في الواقع لو اردنا حساب المتوسط الحسابي لعدة شمعات بطريقة يدوية سيكون الامر مرهق جدا وسنقع في عدة اخطاء لذلك هناك امر بسيط نوعا ما من خلال استدعائه فورا سيعطينا المتوسط الحسابي لمجال الشموع الذي نريده
    وقبل ان نبدء
    من خلال تعاملنا مع المتوسطات الحسابية للاسعار على الشارات دائما تكون قيمة هذه المتوسطات ارقام ذات فاصلة (في الواقع جميع الحسابات التي تتم على الشارت تكون نتيجتها ارقام ذات فاصلة) وبالتالي سيكون نوع المتغير الذي سيحمل القيمة التي يردها لنا أمر المتوسط الحسابي سيكون من النوع
    doubl
    اذا نقوم باعادة كتابة البرنامج ليصبح:



    وهذا شكل التنفيذ:



    الآن نحن عرفنا هذا الأمر ولكن فعليا مالذي حدث!!!!!!!
    الآن ركز معي في الشرح وسأقوم بشرح كل شيء على الصور لانك ستفهم بهذه الطريقة بشكل أفضل.



    الآن فهمنا متغيرين من متغيرات أمر الـ
    iMA
    ولكن ماذا عن الباقي
    لاتقول اننا سنتركها للمستقبل

    لا لا لن نتركها بل سنشرحها الآن:
    اذهب الى منصة المتاجرة وقم باضافة مؤشر المتوسط الحسابي بالطريقة المعروفة او كما في الشكل:



    وسيظهر لنا مربع خيارات مؤشر المتوسط الحسابي كما في الشكل:
    (طبعا ساضع السطر البرمجي في الصورة واقوم بالشرح عليها انت لن يظهر لك هذا السطر)












    والآن نأتي لآخر متغير وهو الرقم 1 الموجود في آخر السطر البرمجي ولكن دعونا نكبر الشارت حتى يسهل الفهم:



    ولكن هل يعني هذا ان لكل شمعة رقم محدد

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

    هذا محير.... انظر للشكل:




    الآن مالذي استفدناه مماسبق من المتغيرات النصية وامر الكومنت والحلقات !!!!

    الآن سنضع كل شيء قيد التنفيذ:
    اولا سنقوم بعمل حلقة تقوم بعمل 10 دورات
    ثم في كل دورة سنأخذ هذا الرقم ونضعه داخل المكدس النصي
    وبعد انتهاء الحلقة من جميع دوراتها نقوم بكتابة كل ماداخل هذا المكدس على الشارت
    وسيكون شكل البرنامج على الشكل التالي:
    ملاحظة: بما اننا سنقوم بتحويل متغير من النوع
    doubl
    الى نص سنقوم باستخدام امر تحويل آخر خاص بالنوع
    double
    ولكنه شبيه بامر التحويل الذي استخدمناه سابقا لتحويل العدد الصحيح الى نص
    والفرق الوحيد اننا سنحدد كم عدد الارقام بعد الفاصلة نريد ان نظهرها على الشارت
    دعونا ننظر للبرنامج ولن اشرح الاشياء السابقة:



    وهذا هو التنفيذ على الشارات:




    وهذا بسبب أنه مع كل دورة من الدورات العشرة دائما يقوم بحساب المتوسط الحسابي للشمعة ذات الرقم واحد اي التي بعد الشمعة الحالية
    إذا ماهو الحل لنقوم مع كل دورة بحساب شمعة أخرى

    الحل ابسط مما تتصور

    فقط نقوم باستبدال الرقم واحد في السطر البرمجي المسؤول عن حساب المتوسط الحسابي
    بعداد الدورة (او الحلقة) وهو في حالتنا هذه المتغير
    i
    ليصبح شكل البرنامج:




    وهذا هو شكل التنفيذ:

    التعديل الأخير تم بواسطة Turkm; 2014 - 10 - 22, 19:22.

    تعليق


    • #3
      رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

      ولكننا لانريد ان تظهر هذه النتيجة بشكل ارقام على الشارت بل نريدها ان ترتسم بشكل خط

      إذا لننتقل للمرحلة التالية

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



      باضافة هذا السطر نحن نخبر المنصة باننا سنقوم برسم خط واحد
      ثم نقوم باضافة سطر آخر بعد السطر السابق تماما كما في الشكل:



      عن طريق هذا السطر نخبر المنصة بان شكل هذا المؤش سيكون بشكل خطي وليس بشكل اسهم او هيستوجرام...... طبعا هناك عدة انواع سنذكرها ان شاء الله عندما نبدء بعمل مؤشراتنا وبشكل اوتوماتيكي
      ثم نضيف سطرا جديد ايضا بعد السطر السابق ليصبح شكل البرنامج:



      من خلال السطر السابق نحدد بان لون هذا الخط سيكون بنفسجي
      (راجع جدول الألوان في الحلقة الثانية)

      ثم نضيف سطرا جديدا بعد السطر السابق ليصبح شكل البرنامج:



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



      ومن خلال السطر السابق نخبر المنصة بان عرض خط المؤشر سيكون 3
      والآن نضيف مصفوفة من النوع
      double

      لا تخاف الأمر بسيط جدا ولكن لما نستعمل مصفوفة

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

      في حالة المؤشر وحتى نستطيع رسمه لابد لنا من استخدام المصفوفات وايضا سوف نضيفها بعد الاسطر السابقة ليصبح شكل البرنامج:



      ملاحظة: حتى تحصل على الاقواس المكتوبة بعد اسم المصفوفة
      Buff
      تجدهم على نفس مفاتيح حرف الدال وحرف الجيم ولكن يجب ان تكون في طور اللغة الإنكليزية طبعا.

      الآن نضيف سطرا جديد ولكن انتبه لن يكون بعد الاسطر السابقة مباشرة بل لاحظ اين موقعه بالضبط
      لنحصل على الشكل التالي للبرنامج:




      بهذا السطر نحن نقوم باسناد المصفوفة
      Buff
      والتي سنضع بداخلها قيم المتوسط الحسابي
      طبعا نقوم باسنادها الى الخط الوحيد الموجود في هذا المؤشر.


      الآن ننتقل الى جسم البرنامج الاساسي ونقوم بالتغيير كما في الشكل:



      وقد ظهر لدينا تحذير بان متغير الـ
      MA
      لم يتم استخدامه ولكن لا مشكلة

      وهذه هي نتيجة التنفيذ:



      وللتخلص من الاصفار على الشارت نقوم بتعديل طفيف ليصبح لدينا شكل البرنامج:



      لاحظ باننا تقريبا تخلصنا من كل شيء
      ولكن عند التنفيذ على الشارت نلاحظ بان الاصفار ماتزال موجودة

      لماذا؟

      لانه لايوجد شيء لحذفها !!!

      فقط اغلق هذا الشارات وافتح شارت جديد واضف مؤشرنا عليه لتحصل على هذه النتيجة:




      والآن ماذا لو اردنا ان نجعل هذا المؤشر يقوم بحساب المتوسط الحسابي لمجال اكبر مثلا 100 شمعة
      بسيطة نقوم بتغيير نهاية الحلقة بدلا من
      10
      نجعلها
      100
      ليكون شكل البرنامج بهذا الشكل:



      وهذه نتيجة التنفيذ على الشارت:



      وهكذا انهي حلقة اليوم
      والحمدلله رب العالمين

      تعليق


      • #4
        رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

        وينك يا استاذ Turkm اشتقنا لحلقاتك الممتعة

        اتمنى تكون في تمام الصحة

        تعليق


        • #5
          رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

          أهلا اخي ابو فراس بس والله عندي مشكلة فب الاتصال مع الموقع

          حتى اني عملت موضوع جديد ومو قادر أخلصو على الرقم من اني كاتب كلي شي عندي في ملف وورد

          تعليق


          • #6
            رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

            الحمد لله ان المشكلة من الاتصال

            دامك بخير هذا اهم مكسب

            وفي انتظار الملف بارك الله فيك

            تعليق


            • #7
              رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

              لا يهمك ياغالي

              ممكن في الغد في حلقة جديدة ان شاء الله

              تعليق


              • #8
                رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

                ملخص الحلقة الثالثة تم رفعه على موقع 4shared لفشل التحميل على الموقع

                4shared is a perfect place to store your pictures, documents, videos and files, so you can share them with friends, family, and the world. Claim your free 15GB now!

                تعليق


                • #9
                  رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

                  ما شاء الله
                  مبدع اخي تركم
                  كما اود ان اشكر الاخ ابو فارس على مجهوده في كتابة الملخص
                  تحياتي لكم

                  تعليق


                  • #10
                    رد: تعلم البرمجة باسهل طريقة......الحلقة الثالثة

                    المشاركة الأصلية بواسطة mr.jpy مشاهدة المشاركة
                    ما شاء الله
                    مبدع اخي تركم
                    كما اود ان اشكر الاخ ابو فارس على مجهوده في كتابة الملخص
                    تحياتي لكم
                    بارك الله فيك أخي ابو رعد

                    وأخي ابو فراس ماقصر..... الله يجزيه الخير

                    تعليق

                    يعمل...
                    X