• لوحة التحكم
  • مشاركات اليوم
  • تسجيل الخروج

ضــع اعــلانك هنا

انشاء حساب جديد


  مؤسسة الكندي للإستشارات المالية > المنتدى الخاص > الأقسام الأخرى .. > منتدى البرمجيات و المؤشرات والإكسبرتات ( Software )
مجموعة من الدروس الرائعه لكل من يريد ان يتعلم لغة mql4
اضافة رد
صفحة 5 من 8 < 1234 5 678 >

 
أدوات الموضوع انواع عرض الموضوع

  رقم المشاركة : [ 41  ]
قديم 23-02-2015, 02:36 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

تعبير الأختبار The Test expression:

تعبير الأختبار دائما يستخدم تعبيرات مقارنة باستخدام عمليات المقارنة ( رجاء راجع عمليات المقارنة في الدرس السابق )

هذا التعبير (في مثالنا هنا ( j>15 ) يقوم بعقد مقارنة بصفة مستمرة بين قيمة j ورقم 15 طوال فترة تشغيل الحلقة , ووظيفتها تحديد نتيجة المقارنة اما صحيحة true (اي ان قيمة j فعلا اصغر من 15) فيستمر جسد الحلقة ويقوم بتنفيذ الأمر ( print j) , او خاطئة false ( اي ان قيمة j ليست اصغر من 15 ) وهنا تتوقف الحلقة عن العمل وينتقل البرنامج الى الجملة البرمجية التالية . (سأشرح دورة حياة البرنامج في درس لاحق ان شاء الله بتفصيل افضل , هنا فقط ارجو الأنتباه لوظيفة كل جزء ومراجعته)

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 42  ]
قديم 23-02-2015, 02:37 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

تعبير الزيادة The Increment expression:

تعبير الزيادة يقوم بتغيير قيمة متغير الحلقة ( في مثالنا هنا j عن طريق ++j ) بزيادة قيمته 1 .

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

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

مثال:


كود PHP:
int i;


int j;

for(i=0 ,j=0;i<15,i<;i++,j++)

Print(i);


لكن لا نستطيع ان نستخدم اكثر من تعبير اختبار واحد فقط في الجملة .

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 43  ]
قديم 23-02-2015, 02:37 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

ملاحظة أخرى لتعبير الزيادة وهو اننا ممكن ان نستخدم تعبير نقصان ايضا كما في هذا المثال :


كود PHP:
int i;


for(i=15;i>0,i<;i--)

Print(i);


في هذا المثال سيبدأ المتغير i بأخذ القيمة 15 الأفتراضية ومن ثم يبدأ الحلقة , وفي مراحل التنفيذ كل مرة ينقص القيمة بمقدار 1 ومن ثم يعمل لها اختبار i>0 ... وهكذا دواليك

في النهاية سيخرج لنا البرنامج (الحلقة) هذه النتائج : 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 .

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 44  ]
قديم 23-02-2015, 02:38 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

جسد الحلقة Loop body:

يمكننا استخدام عدة جمل statments في جسد الحلقة لأخراج نتائج الحلقة .

في مثالنا السابق استخدمنا جملة واحدة فقط ( print j ) في جسد الحلقة , ويمكننا اضافة اكثر من جملة عليها .

عند اضافة اكثر من جملة في جسد الحلقة نحددهم بهذه الأقوس { } .

مثال:


كود PHP:
for(int i=1;i<=15;i++)


{

Print(i);

PlaySound("*****.wav");

}


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

ولا تنسى ان تضع الفاصلة المنقوطة ( ; ) في نهاية كل جملة .

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 45  ]
قديم 23-02-2015, 02:39 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

جملة الكسر The Break statment :

هي كلمة محجوزة من كلمات لغة MQL4 وظيفتها انهاء الحلقة عند قيمة محددة .

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

مثال توضيحي :


كود PHP:
for(int i=0;i<15;i++)


{

if((i==10)

break;

Print(i);

}


في هذا المثال سيتم تنفيذ الحلقة حتى يصل المتغير i الى القيمة 10 , وبعدها تقوم الكلمة المحجوزة ( break ) بانهاء الحلقة.

في النهاية سينتج البرنامج هذه النتائج : 0 1 2 3 4 5 6 7 8 9.

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 46  ]
قديم 23-02-2015, 02:39 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

جملة الأستمرار The Continue Statement:

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

مثال توضيحي:


كود PHP:
for(int i=0;i<15; i++)

{

if(i==10) continue;

Print(i)

}

في هذا المثال سيتم تنفيذ الحلقة حتى تصل قيمة المتغير i الى 10 وبعدها يجد الكلمة المحجوزة ( continue ) لتعيدنا ثانية الى الحلقة دون اخراج النتيجة ( 10 ) من الحلقة .

وتخرج النتائج هكذا من البرنامج : 0 1 2 3 4 5 6 7 9 11 12 13 14 ( لاحظ عدم وجود النتيجة 10 ).

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 47  ]
قديم 23-02-2015, 02:40 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

- الحلقة ( while ) :

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

لهذا السبب ظهرت الحلقة ( while ) .

الحلقة ( while ) تشبه الحلقة ( for ) في تعبير الإختبار فقط , ولكنها لا تملك تعبير ابتداء الحلقة وتعبير الزيادة .

دعونا نرى مثالا توضيحيا :


كود PHP:
int i=0;

while(i<15)

{

Print(i);

i++;

}

في هذا المثال ستلاحظ الأتي :

a- متغير الحلقة تم اعداده declaration وابتداؤه قبل الدخول في الحلقة , لا يمكنك ان تعد او تبدأ المتغير داخل الحلقة بين القواس مثل الحلقة ( for ).

b- ال ( ++i ) ليست تعبير زيادة كما تظن , وانما يجب على جسد الحلقة ان يحتوي على اي جملة يمكنها من تغيير قيمة المتغير والا لن تنتهي ابدا ( مثلا لو لم تكن ++i موجودة سيقوم البرنامج بأطلاق النتيجة صفر الى ما لا نهاية )

* كيف يعمل المثال السابق ؟

جملة while تحتوي فقط على تعبير الأختبار فقط , وستظل تختبر الشرط كل مرة بدخول الحلقة , لو كانت نتيجة الأختبار ( المقارنة ) صحيحة true ستستمر الحلقة , وان كانت خاطئة ستنتهي الحلقة ويتم انتقال الى جملة لخرى في البرنامج .. وهكذا .

في مثالنا ستسمر الحلقة بتنفيذ اوامرها حتى تصل الى 16 , ففي هذه الحالة i<15 تكون خاطئة false وتنتهي الحلقة .

وكما اخبرتكم بتشابه الحلقتين هناك ايضا اوجه شبه اخرى مثل :

1- نستطيع ان نستخدم جملة الكسر وجملة الأستمرار في كليهما .

2- يمكنك وضع جملة واحدة او اكثر في جسد الحلقتين , وفي حالة وضع اكثر من واحدة يجب وضعهم داخل الأقواس { } .

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 48  ]
قديم 23-02-2015, 02:40 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

الحلقات والقرارات (جزء 2)


تحدثنا في الدرس السابق عن الحلقات


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


حسنا , الطريقة الأخرى هي القرارات decisions .


القرارات decision هي جملة برمجية تقوم بعمل انتقال امر برمجي لمرة واحدة لجزء أخر من البرنامج معتمدا على قيمة المتغير.

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 49  ]
قديم 23-02-2015, 02:41 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

هناك عدة انواع من القرارات في لغة MQL4 :

1- الجملة الشرطية ( إذا ) .. ( if ) :

( إذا أخطأ علي فاضربوه ) .. حسنا ماذا لو لم يخطئ علي ؟ فلن يتم تنفيذ البرنامج (هذا مثال سريع قبل الدخول في التفاصيل )

الجملة ( if ) هي اسهل انواع الجمل الشرطية ( القرارات ).

دعونا نأخذ مثالا :


كود PHP:
if( x < 100 )



Print("hi");



هنا الكلمة المحجوزة ( if ) جاء بعدها القوسان ( ) وبداخلهم جاء تعبير الأختبار ( هل تتذكروه ) على هذه الصورة ( X<100 ) , متى جاءت النتيجة بين القوسين صحيحة true سيقوم جسد الجملة بتنفيذ الأمر (Print("hi") ,, وكمتى جاءت خاطئة false فسينتقل التسلسل التنفيذي للأوامر الى جزء أخر من البرنامج .

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
  رقم المشاركة : [ 50  ]
قديم 23-02-2015, 02:41 PM
mmk_1987
http://www.alkindyfx.org/vb/alqab/mar7la-1.png

رقم العضوية : 491
بلد الإقامة : egypt
تاريخ التسجيل : Oct 2011
عدد المشاركات : 690

mmk_1987 is on a distinguished road
غير متواجد
 
افتراضي
 

جسد الجملة ( if ) (الأوامر ) :

مثل ما رأينا في الحلقات , فالجملة ( if ) يمكن ان تتكون من اكثر من جملة تنفيذية ويحاطون بالقوسين { }.

( لاحظ انه لو وجدت جملة واحدة لن نحتاج الى هذه الأقواس { } )

مثال :


كود PHP:
if(current_price==stop_lose)


{

Print("you have to close the order");

PlaySound("warning.wav");

}


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

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
mmk_1987
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها mmk_1987
اضافة رد
صفحة 5 من 8 < 1234 5 678 >

مواقع النشر (المفضلة)
  • إرسال الموضوع إلى Digg Digg
  • إرسال الموضوع إلى Google Google
  • إرسال الموضوع إلى Facebook Facebook

الكلمات الدلالية (Tags)
مجموعة, الدروس, الرائعه, يتعلم, يريد, mql4

« الموضوع السابق | الموضوع التالي »

الذين يشاهدون محتوى الموضوع الآن : 2 ( الأعضاء 0 والزوار 2)
 

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

BB code is متاحة
الابتسامات متاحة
كود [IMG] متاحة
كود HTML معطلة

قوانين المنتدى
الانتقال السريع






الساعة الآن 05:47 PM.

الاتصال بنا - مؤسسة الكندي للإستشارات المالية - الأرشيف - الأعلى


Powered by vBulletin Version 3.8.12 by vBS
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd دعم فني

جميع الحقوق محفوظة لـ منتديات الكندي للتدريب والإستشارات المالية -



أقسام الموقع

  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي

نبذة عنــــا

منتديات الكندي

جميع الحقوق محفوظة لمؤسسة الكندي لإحتراف الفوركس

السلام عليكم ورحمة الله وبركاته

للتواصل مع المهندس عادل الكندي نأمل منكم الاتصال على مدير مكتبه على الرقم 00212661504832 الاستاذ جمال سعداوي