دورة البرمجة في الفوركس للمبتدئين – الدرس الثالث

أهلا وسهلا بكم أيها الاخوة الاكارم مع الحلقة الثالثة من دورة البرمجة في الفوركس للمبتدئين, نسعى جاهدين الى تعليمك البرمجة بأسهل الطرق.
في الحلقة الأولى أصبح برنامجنا بهذا الشكل:
وكانت نتيجة تنفيذه بهذا الشكل:
كانت المعضلة التي يقوم برنامجنا بحلها هي كتابة جملة:
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 الى متغير (المكدس) وهو نصي في الاساس (يمكنك مراجعة تعريف المتغيرات في الاسطر السابقة)
في الواقع يمكننا تجاهل هذا التحذير وسوف يتم التنفيذ ولكن في حالات معينة لاينصح ابدا في ذلك لان ذلك سؤثر على القيم التي يتم إخراجها وبالتالي إحتمال نشوء أخطاء من الصعب جدا ملاحقتها
لذلك سنقوم باضافة أمر يقوم بتحويل العدد الصحيح الى نص
ويصبح شكل البرنامج:
وشكل التنفيذ على الشارت:
مواضيع ذات صلة:
دورة البرمجة في الفوركس للمبتدئين – الدرس الثاني
دورة البرمجة في الفوركس للمبتدئين – الدرس الرابع