مشاركة: هيا نصنع مؤشر بأيدينا
الحلقات و اتخاذالقرار
قبل أن نبدأ
عرفنا العمليات Operations هي العملياتالرياضية الأساسية مثل ( + , - , * , / )
ما هى التعبيرات Expressionsهي التعابير البرمجية المتكونة من العملياتوالمتغيرات معا . مثل int my_var = 78
ماهى الجملةstatementهى كلمة او اكثر يسطيع الحاسب تنفيذها دون ان تكون معرفة له من المبرمج . و تكون متبوعة بالقوسين () . مثل الجملة print() التى يفهمها – ان صح التعبير – الحاسب على انه يطبع ما بعدها على الشاشة .مثل
كود:
string v1="I Like ";
string v2="MQL4 ";
print ( v1+v2);
الجملة print ستطبع على الشاشة
I Like MQL4
مشاركة: هيا نصنع مؤشر بأيدينا
مازلنا نتحدث عن لغة MQL4
ادواتها :
الحلقات و اتخاذ القرار
اي برنامج تتم كتابته يقوم الحاسب بتنفيذه بطريقة تسلسلية ( من اول سطر الى آخر سطر ) .
و لكن نحتاج فى بعض الاحيان للتحكم فى هذا التنفيذ التسلسلى . كان نقوم بتكرار جملة معينة عدد محدود من المرات قد تزيد عن الف مرة . معقول نكرر الجملة الف مرة . هناك من الجمل البرمجية ما يجعلنا نستطيع التحكم فى مسار تنفيذ البرنامج . و تسمى بالجمل المسيطرة
control statments .
وتتركب من
جمل الحلقات وجمل اتخاذ القرار
مشاركة: هيا نصنع مؤشر بأيدينا
مازلنا نتحدث عن لغة MQL4
ادواتها :
الحلقات و اتخاذ القرار
هناك نوعين من الحلقات
1- الجملة () :for
مثال
لنفرض اننا نريد كتابة الارقام من 0الى 14 ( مثال افتراضى) فاننا نكتب الحلقة
كود:
for(int j=0; j<15; j++)
Print(j);
كيف تعمل هذهالحلقة في هذا المثال ؟
السطر الأول يحتوي على جملة ( for ) والتي تتكون من الكلمة المحجوزة ( for ) و قوسين ( ) يحتويان بداخلهما على ثلاثةتعبيراتمفصولين عن بعضهما البعض بالفاصلة المنقوطة( ; )
التعبير الاول عرفنا المتغير و اسندنا اليه القيمة صفر .......... تعبير ابتداء الحلقة
التعبير الثانى حددنا فيه اقصى قيمة مسموحة للمتغير ........ تعبير اختبار قيمة المتغير
التعبيرالثالث طالبنا بزيادة المتغير بمقدار 1 كل مرة ........ تعبير زيادة قيمة المتغير
و تعبير الزيادة هذا ينفذ كأخر خطوة منخطوات الحلقة الثلاثة ( ابتداء الحلقة واختبارها وتنفيذ جسد الحلقة .(
اى ان لن يزيد المتغير بمقدار 1 من اول جولة للحاقة بل من الجولة الثانية و هكذا
ملحوظة اكثر من مهمة :
الجملة ( for ) لا تنتهيبفاصلة منقوطة وذلك لأنها تكون مع جسد الحلقة Print(j); جملةكاملة .
و الى المزيد من الامثلة ليتضح الامر
مشاركة: هيا نصنع مؤشر بأيدينا
اكمل الامثلة و الا انتظر شوية
مشاركة: هيا نصنع مؤشر بأيدينا
مازلنا نتحدث عن لغة MQL4
ادواتها :
الحلقات و اتخاذ القرار
مزيدا من الامثلة :
ماذا لو أردنا حلقة تبدأ من العشرة وتنتهي بالمئة ومقدار الزيادة هوخمسة في كل مرة تكرار. جديدة دى . سوف يكون المثال على الشكل التالي:
كود:
for (i=10;i<=100;i=i+5)
print (i);
ماذا حدث
لم نستخدم العملية i++
لان الزيادة فيها واحد فقط فى كل مرة تكرار " زى ما قال الاخ بيجنر"
اخذنا تعبير جديد
I=i+5
حيث خمسة مقدار الزيادة
و ماذا لو كنا نريد الزياد 17
I=i+17
أما لو أردنا أن تكون الحلقة عكسية بحيث تبدأ من القيمةالأكبر وتنتهي بالأصغر فسوف يكون على الشكل التالي:
كود:
for (i=100;i>=10;i=i-5)
مشاركة: هيا نصنع مؤشر بأيدينا
نحن نتحدث عن لغة MQL4
ادواتها :
الحلقات و اتخاذ القرار
مثال غير عادى
كود:
for(int i=1;i<=15;i++)
{
Print(i);
PlaySound("alert.wav");
}
حلقة عادي شفناها قبل كدة
الجملة print() عادى شفناها قبل كدة
ايه الجديد يعنى
جملة الصوت ()playsound
تجعل الكمبيوتر يعطى تنبيه صوتى 15 مرة
و القوسان { } لكى يكرر البرنامج الجملتان معا
مشاركة: هيا نصنع مؤشر بأيدينا
نحن في المتابعة والاستعاب
وا واعتك ان لا اتركك حتي تنهي الموضوع
ونجني ثماره
تحياتي لك
بالتوفيق (هذه ليست لك بل لي )
هههههههههههههههههه
شكرا
اخوك مهدي
مشاركة: هيا نصنع مؤشر بأيدينا
شكرا اخى مهدى
و بالتوفيق
لى و لك و للجميع
مشاركة: هيا نصنع مؤشر بأيدينا
انتظرونا فى الحلقة القادمة
ان شاء الله
مشاركة: هيا نصنع مؤشر بأيدينا
لا مش مسلسل تلفزيونى
الحلقة القادمة هى
الحلقة
while
مشاركة: هيا نصنع مؤشر بأيدينا
نحن نتحدث عن لغة MQL4
ادواتها :
الحلقات و اتخاذ القرار
الحلقة
while
الحلقة ( for ) نستخدمها عادة في حالات التكرار لمرات انت تعرف عددها وتبرمج على اساسها , حسنا ماذا سيحدث لو لم تعرف عدد مرات التكرار التي تود استخدامها ( قد يستمر التكرار الى الأبد .(
لهذا السبب ظهرت الحلقة ( while ) .
الحلقة ( while ) تشبه الحلقة ( for ) في تعبير الإختبار فقط , ولكنها لا تملك تعبير ابتداء الحلقة وتعبير الزيادة .
كود:
int i=0;
while(i<15)
{
Print(i);
i++;
}
التنفيذ
سيطبع على الشاشة الاعداد من صفر الى 15
ملاحظات :
1- متغير الحلقة iتم تعريفه واسناد القيمة صفر قبل الدخولفي الحلقة , لا يمكنك ان تعد او تبدأ المتغير داخل الحلقة بين القواس مثل الحلقة ( for ).
2- العملية ( ++i ) جاءت بعد جملة الطباعة و لا ضرر فى هذا فهى فى الحالتين لن تتم الزيادة الا بعد الحلقة الاولى .
3- جملة while تحتوي فقط على تعبير الأختبار فقط , وستظل تختبر الشرط كل مرة بدخول الحلقة , لو كانت نتيجة الأختبار ( المقارنة ) صحيحة true ستستمر الحلقة , وان كانت خاطئة ستنتهي الحلقة ويتم انتقال الى جملة لخرى في البرنامج .. وهكذا .
في مثالنا ستسمر الحلقة بتنفيذ اوامرها حتى تصل الى 16 , ففي هذه الحالة i<15 تكون خاطئة false وتنتهي الحلقة .
مشاركة: هيا نصنع مؤشر بأيدينا
ماشاء الله
دائما تتحفنا بالجديد ... وبما هو مفيد
أرجو منك الاستمرار كي لاتنقطع سلسلة أفكارنا
وحتى لانصل الى حلقة مفرغة :)
بارك الله فيك
ومتابع معك ان شاء الله هذا الشرح الممتع والسهل
تحيتي ومودتي لك
مشاركة: هيا نصنع مؤشر بأيدينا
مشاركة: هيا نصنع مؤشر بأيدينا
اتخاذ القرار
بهدوووووووووووووووووووووووووء
ما هو القرار
القرار هو الاختيار بين بديلين او اكثر
يا سلام ببساطة كدة ؟
نعم و بمنتهى البساطة
افرض اننى استيقظت من النوم افكر
اذهب للعمل اليوم و لا لا اذهب ؟
ماذا يدور بذهنك بعد هذا السؤال ؟
اذا ذهبت سأكسب اجر اليوم ( و هذا بديل)
و اذ لم اذهب سأخذ قسط من الراحة ( و هذا بديل)
و بناء على اختيار بديل منهم . سوف تتصرف .
اليس كذلك ؟
مشاركة: هيا نصنع مؤشر بأيدينا
نحن نتحدث عن لغة MQL4
ادواتها :
الحلقات و اتخاذ القرار
جمل اتخاذ القرار و الكمبيوتر يستطيع ايضا ان يتخذ قرار اى يختار بين البدائل.
"اذا السعر وصل لقيمة الاستوب لوز اذا نبهنى بصوت" و ذلك عن طريق 1- الجملة الشرطية if
الجملة ( if ) هي اسهل انواع الجمل الشرطية ( القرارات(
كود:
if( x < 100 )
Print("hi");
وهذا جزء من برنامج و لكن ما معناه ؟
معناه اذا كان المتغيرx اقل من 100 اكتب كلمة hi