عرض مشاركة واحدة
قديم 01-07-2010, 03:16 AM   #2
nermine
مشرفة منتدى الأعمال
الصورة الرمزية nermine

المعلومات





آحدث المواضيع


الاتصال

nermine غير متصل

nermine is on a distinguished road
افتراضي رد: تعال وتعلم معنا لغة mql4 حتى الاحتراف

الشروط Conditions: تمكننا تعليمة الشروط من تنفيذ أمر برمجي أو كتلة من الأوامر البرمجية عند تحقق شرط أو شروط معينة.


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


لأن معظم حياتنا تنطلق من تنفيذ شيء معين عند تحقق شروطه. فنحن نصلي العصر مثلا إذا أذن العصر أي أن الشرط قد تحقق. ولا نأكل حتى نجوع أي تحقق شرط الأكل ( نظريا ).
فنحن دائما نتحقق من الشرط الخاص بالفعل لنقوم بهذا العمل في حال تحقق شرطه.


وهكذا هي لغات البرمجة تبحث دائما عن تحقق شروط معينة لتنفيذ الأوامر المرتبطة بهذه الشروط. وإن قوة أي برنامج هي إحاطته الشاملة بكل الشروط والاحتمالات الممكنة والتي يعرف البرنامج عندها ماذا يفعل عند تحقق كل شرط منها.


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


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


وتصورا عندها انهيار كامل لهذا النظام الامني لأن البرنامج لم يعالج كل الاحتمالات الممكنة والتي سهلت على اللص مهمته.
( أنا أتوقع أن اللص هو المبرمج نفسه )


== الحلقات Loops: تعتبر الحلقات من الأمور الضرورية في أي لغة برمجية ولا يمكن الاستغناء عنها أبدا. وهي عبارة عن طريقة نستطيع من خلالها تكرار عمل روتيني موحد عدد محدد من المرات.


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


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


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


لكل وظيفة بارامترات Parameters وهي عبارة عن قيم مدخلة إلى الوظيفة نفسها تستخدمها في كتلتها البرمجية ( سوف يتم شرح هذا الأمر بالتفصيل الممل )


كل الوظائف تستطيع أن تعود بقيمة معينة يتم حسابها وفق المعلومات الداخلة إليها.


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


== المترجم Compiler: قد يكون من المفاجيء لك أن البرنامج أو الكمبيوتر لن يفهم على كودك البرمجي مباشرة ولذلك فإن لكل لغة مترجم خاص بها يقوم بتحويل الكود البرمجي الذي أنت تكتبه إلى لغة أخرى عبارة عن أرقام يفهمها هو فقط.


وكما قلنا سابقا فإن الكمبيوتر لا يفهم النص البرمجي الذي تكتبه أنت لذلك يقوم بترجمته أولا إلى لغته الرقمية الخاصة لكي يستطيع التعامل مع برنامجك وينفذه.


== بيئة التطوير Devolopment Enviroment: لكل لغة برمجية برنامج تطوير خاص به تستطيع من خلاله كتابة برنامج جديد بامكانيات مختلفة كالنسخ واللصق والحذف والبحث والاستبدال وغيرها من الخدمات الأخرى.


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

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


في حالتنا فإن برنامج الميتا إيديتور هو بيئة التطوير للغلتنا MQL4.


== نظام العمل System: نظام العمل هو عبارة عن النظام المستهدف من برنامجنا فنحن نكتب برنامج بلغة السي أو الفيجول بيسك ليعمل تحت النظام ويندوز.


وفي حالتنا نحن فإننا نكتب برنامجنا الذي هو عبارة عن مؤشر أو اكسبيرت ليعمل على برنامج التداول ميتاتريدر.


ولن يعمل أي برنامج إلا تحت بيئته المصمم لها.


فبرنامج الفيجول بيسك أو السي لن يعمل تحت نظام الميتاتريدر وبرنامجنا المؤشر أو الاكسبيرت لن يعمل تحت نظام الويندوز.



لا تخف من الكلام السابق لأنه سيصبح من البديهيات بالنسبة إليك فيما بعد إن شاء الله.




وكل ما أريده منك أن تستعد للدروس القادمة ذات الوزن الثقيل.

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


ولا تسألني عن تفاصيل برمجية إضافية الآن لأن كل الكلام السابق سوف نشبع منه ومن تفاصيله في الدروس القادمة إن شاء الله.


والآن أترك لأسئلتكم واستفساراتكم إثراء الموضوع أكثر وأكثر.

وأعود وأكرر أن الكلام السابق مع أنك قد تجده في بعض الأحيان بديهيا إلا أنه هو الأساس الهام لبدء إنطلاقتنا مع تعلم لغة البرمجة الفوركسية MQL4.

يتبع






رد مع اقتباس