عرض مشاركة واحدة
قديم 20-05-2012, 02:49 PM   المشاركة رقم: 14
الكاتب
مازن المشهداني
عضو فعال
الصورة الرمزية مازن المشهداني

البيانات
تاريخ التسجيل: Apr 2011
رقم العضوية: 3568
المشاركات: 641
بمعدل : 0.13 يوميا

الإتصالات
الحالة:
مازن المشهداني غير متواجد حالياً
وسائل الإتصال:

كاتب الموضوع : مازن المشهداني المنتدى : منتدى تعليم الفوركس
افتراضي الدرس الثاني .. رموز البيانات في لغة MQL4

في لغة MQL4



بسم الله الرحمن الرحيم

مرحبا بكم في الدرس الثاني ... رموز البيانات في لغة MQL4.

ماذا نقصد برموز البيانات ؟
اي لغة برمجية في العالم تطلق اسماء محددة (تصنف ككلمات محجوزة)على شكل الذاكرة المناسب لرمز البيانات Data المستخدمة.

ما معنى هذا الكلام؟

لنعطي مثالا على ذلك:

لو ان الذاكرة تخزن الأرقام من -2147483648 الى 2147483648 , فمعظم لغات البرمجة العالمية ستطلق على رمز البيانات هذا اسم "Integer" اي عدد صحيح.

المتغيرات Variables ؟

هي اسماء تطلق على قطاع الذاكرة المخزن لنوع معين من البيانات.

لنفهم أكثر سنرسم صورة عامة للموضوع كمثال:

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

* لكي نستخدم صندوقا ما لنخزن به احد البيانات يجب ان نطلق عليه اسم ما , هذه العملية تسمى اعداد declaration.

* خلال عملية الأعداد declaration نستخدم كلمة نخبر بها الكومبيوتر بنوع وحجم الصندوق المطلوب استخدامه , هذه الكلمة نطلق عليها keyword اي كلمة محجوزة تشير الى فئة معينة من البيانات .

* بعد تحديد رمز البيان بكلمة محجوزة , عليك الأن بأختيار اسم معرف خاص للصندوق (والأفضل ان تختار اسما يدل على رمز البيان ايضا لتسهيل البرنامج) ,, مثلا حددت Integer (كلمة محجوزة معتاها عدد صحيح) لتصنيف رمز البيان , وتطلق اسما من مخيلتك وليكن مثلا files (معناها ملفات وهي كلمة اخترعتها انت) وتطلقها على الصندوق , هكذا يعرف الكومبيوتر ان يخزن ارقام صحيحة(نوع البيانات) في صندوق الذاكرة المدعو files .. وهكذا ... هذه المعرفات يطلق عليها اسم ثابت المتغيرات Variables constant.

* الأن حددنا رمز البيانات واسم الصندوق , علينا الأن ان نضع هذه البيانات داخل الصندوق وذلك عن طريق ان ننسب assigning هذه البيانات الى هذا الصندوق (بكتابته برمجيا)

* الأن حددنا رمز البيان في صندوقه المناسب واطلقنا معرفا ثابتا لهذا الصندوق له قيمة افتراضية هي الصفر (هنا نقول ان عملية الأعداد declaration قد تمت) .

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

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

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

على سبيل المثال , ماذا لو أخبرنا الكومبيوتر بهذا الكود :

كود PHP:
int MyVaraible=0;


معناه اننا نطلب من الكومبيوتر ان يوفر لنا حجم ذاكرة تبلغ 4 بايت(int تعني ذلك كما سيتضح في هذا الدرس) لمتغيرنا الذي اسميناه ب MyVaraibles.

في المثال السابق استخدمنا:

int ---------- Keyword

int ---------- Integer data type.

int ---------- Declaration

MyVaraible ---------- Variable’s constant.

=0 القيمة الأفتراضية

(راجع الكلمات السابقة بما سبق شرحه)

هناك انواع مختلفة من رموز البيانات :

*اعداد صحيحة int
*اعداد حقيقية(عشرية) double
*حروف char
*الوان color
*السلسلة النصية string
*قيم منطقية(صح وخطأ) bool
*التاريخ datetime

1- الأعداد الصحيحة (int) :

الأعداد الصحيحة هي اعداد يمكن ان تبدأ بأشارتي - او + وتأخذ صور الأرقام من صفر الى 9 , ويتم حجز 4 بايت للقيمة الواحدة , وتتراوح قيمها بين -2147483648 الى +2147483648

مثال:

كود PHP:
12, 3, 2134, 0, -230


ونستخدم int لننشئ متغير قيمه تكون اعداد صحيحة كما اسلفنا

مثال:

كود PHP:
int intInteger = 0;

int intAnotherIntger = -100;


2- الأعداد العشرية (double) :

وهي اعداد تحتوي على كسور عشرية مثل 1.0002 عكس الأعداد الصحيحة التي لا تحتوي على فواصل.

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

ونستخدم double لننشئ متغيرا عشريا

3- الحروف (char) :

هذه الكلمة تحتوي على 256حرف ابجدي معروف والأشارات المختلفة ولوحة الأرقام (اي انه كل ما يمثل لوحة المفاتيح لجهازك)

القيم لهذا الرمز يجب ان توضع بين قوسين مفردين ' ' .

مثال :

كود PHP:
'a' , '$' , 'Z'


هذا الرمز لا يأتي منفردا وانما نستخدم الرمز int السابق ذكره لننشئه .

مثال:

كود PHP:
int chrA = 'A';

int chrB = '$';


(لاحظ انها حروف اي انها لن تدخل في عمليات حسابية وانما فقط تخرج اسماء او ما شابه)

لاحظ ان الكلمات المحجوزة في لغة MQL4 لا يمكن وضعها كقيمة لهذا الرمز فسيقرئها الكومبيوتر ككلمات محجوزة وليس كقيمة يتم التعامل معها , ولهذا يوجد هناك ما يسمى بالحروف الخاصة Special Characters وظيفتها اننا لو اردنا ان نطبع كلمة ما وصادف انها تشبه احدى الكلمات المحجوزة فيمكن استخدام هذه الحروف الخاصة للتمييز بينهم واخبار الكومبيوتر انها قيم وليست كلمات محجوزة.

مثال :

كود PHP:
int chrB = '\n'; //new line


هنا طبعنا سطر جديد في نتائج البرنامج

وهذه قائمة بالحروف الخاصة:

كود PHP:
carriage return r

new line n

horizontal tab t

reverse slash

single quote

double quote "

hexadecimal ASCII-code \xhh




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

4- الألوان (color) :

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

يمكننا وضع الألوان كقيم في المتغيرات الخاصة بها بثلاثة طرق يمكنك اختيار ايا منها:

a- وضعها كأسماء الوان عادية مثل ازرق blue , احمر red ... الخ. ( وهي الطريقة الأسهل)

b- وضعها كأرقام صحيحة ( ويمكنك ان تاتي بأرقام الأوان من اي برنامج رسم على جهازك وخاصة الفوتوشوب)

c- بشفرتها الخاصة بلغة الميتا ( كل لون له شفرة خاصة به ويمكن ان تستمدها ايضا من الفوتوشوب)

أمثلة لشفرات الألوان:

كود PHP:
C'128,128,128' // gray

C'0x00,0x00,0xFF' // blue

// named color

Red

Yellow

Black

// integer-valued representation

0xFFFFFF // white

16777215 // white

0x008000 // green

32768 // green






ونستخدم الرمز color لننشئ متغيرا لونيا

مثال:

كود PHP:
color clr1= Red;

color clr1= C'128,128,128' ;

color clr1=32768;


5- التاريخ (datetime) :

هذا الرمز خاص ايضا بلغة MQL4 ويتميز بها , وهو يخزن بيانات التاريخ والوقت .

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

مثال:

كود PHP:
D'2004.01.01 00:00' // New Year

D'1980.07.19 12:30:27'

D'19.07.1980 12:30:27'

D'19.07.1980 12' //equal to D'1980.07.19 12:00:00'

D'01.01.2004' //equal to D'01.01.2004 00:00:00'


نستخدم الرمز datetime لننشئ متغيرات التاريخ والوقت.

مثال:

كود PHP:
datetime dtMyBirthDay= D'1972.10.19 12:00:00';

datetime dt1= D'2005.10.22 04:30:00';


6- القيم المنطقية (bool) :

رمز المنطقية يأخذ قيمتين فقط هما صح (true) او خطأ (fulse). او نظرائهم الرقميين الصفر والواحد.

نستخدم bool لننشئ المتغيرات المنطقية ( مثلا لو اني اعطيت لخاصية في الكسبيرت مثل ادارة راس المال القيمة true سيقوم بتشغيلها والعكس)

مثال:

كود PHP:
bool I = true;

bool bFlag = 1;

bool bBool=FALSE;


7- السلسلة النصية (str) :

هذا الرمز عبارة عن سلسلة من الحروف او النصوص تكتب بين الأقواس الثنائية " " .

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

*ما هي NULL ؟
** هي قيمة خاصة يتم وضعها لتحدد نهاية هذه السلسلة النصية .

في الصورة تمثيل بسيط لسلسلة نصية " hello "

نقره لعرض الصورة في صفحة مستقلة

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

نستخدم الرمز string لننشئ متغير سلسلة نصية .

مثال:

كود PHP:
string str1 = "Hello world1, with you coders guru”;

string str2 = "Copyright © 2005, "Forex-tsd forum\"."; //Notice the use of (") character.

string str3 = "1234567890";





في الدرس القادم بأذن الله سنتكلم عن العمليات والتعابير في لغة الميتا



التوقيع

عرض البوم صور مازن المشهداني  
رد مع اقتباس
  #14  
قديم 20-05-2012, 02:49 PM
مازن المشهداني مازن المشهداني غير متواجد حالياً
عضو فعال
افتراضي الدرس الثاني .. رموز البيانات في لغة MQL4

في لغة MQL4



بسم الله الرحمن الرحيم

مرحبا بكم في الدرس الثاني ... رموز البيانات في لغة MQL4.

ماذا نقصد برموز البيانات ؟
اي لغة برمجية في العالم تطلق اسماء محددة (تصنف ككلمات محجوزة)على شكل الذاكرة المناسب لرمز البيانات Data المستخدمة.

ما معنى هذا الكلام؟

لنعطي مثالا على ذلك:

لو ان الذاكرة تخزن الأرقام من -2147483648 الى 2147483648 , فمعظم لغات البرمجة العالمية ستطلق على رمز البيانات هذا اسم "Integer" اي عدد صحيح.

المتغيرات Variables ؟

هي اسماء تطلق على قطاع الذاكرة المخزن لنوع معين من البيانات.

لنفهم أكثر سنرسم صورة عامة للموضوع كمثال:

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

* لكي نستخدم صندوقا ما لنخزن به احد البيانات يجب ان نطلق عليه اسم ما , هذه العملية تسمى اعداد declaration.

* خلال عملية الأعداد declaration نستخدم كلمة نخبر بها الكومبيوتر بنوع وحجم الصندوق المطلوب استخدامه , هذه الكلمة نطلق عليها keyword اي كلمة محجوزة تشير الى فئة معينة من البيانات .

* بعد تحديد رمز البيان بكلمة محجوزة , عليك الأن بأختيار اسم معرف خاص للصندوق (والأفضل ان تختار اسما يدل على رمز البيان ايضا لتسهيل البرنامج) ,, مثلا حددت Integer (كلمة محجوزة معتاها عدد صحيح) لتصنيف رمز البيان , وتطلق اسما من مخيلتك وليكن مثلا files (معناها ملفات وهي كلمة اخترعتها انت) وتطلقها على الصندوق , هكذا يعرف الكومبيوتر ان يخزن ارقام صحيحة(نوع البيانات) في صندوق الذاكرة المدعو files .. وهكذا ... هذه المعرفات يطلق عليها اسم ثابت المتغيرات Variables constant.

* الأن حددنا رمز البيانات واسم الصندوق , علينا الأن ان نضع هذه البيانات داخل الصندوق وذلك عن طريق ان ننسب assigning هذه البيانات الى هذا الصندوق (بكتابته برمجيا)

* الأن حددنا رمز البيان في صندوقه المناسب واطلقنا معرفا ثابتا لهذا الصندوق له قيمة افتراضية هي الصفر (هنا نقول ان عملية الأعداد declaration قد تمت) .

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

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

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

على سبيل المثال , ماذا لو أخبرنا الكومبيوتر بهذا الكود :

كود PHP:
int MyVaraible=0;


معناه اننا نطلب من الكومبيوتر ان يوفر لنا حجم ذاكرة تبلغ 4 بايت(int تعني ذلك كما سيتضح في هذا الدرس) لمتغيرنا الذي اسميناه ب MyVaraibles.

في المثال السابق استخدمنا:

int ---------- Keyword

int ---------- Integer data type.

int ---------- Declaration

MyVaraible ---------- Variable’s constant.

=0 القيمة الأفتراضية

(راجع الكلمات السابقة بما سبق شرحه)

هناك انواع مختلفة من رموز البيانات :

*اعداد صحيحة int
*اعداد حقيقية(عشرية) double
*حروف char
*الوان color
*السلسلة النصية string
*قيم منطقية(صح وخطأ) bool
*التاريخ datetime

1- الأعداد الصحيحة (int) :

الأعداد الصحيحة هي اعداد يمكن ان تبدأ بأشارتي - او + وتأخذ صور الأرقام من صفر الى 9 , ويتم حجز 4 بايت للقيمة الواحدة , وتتراوح قيمها بين -2147483648 الى +2147483648

مثال:

كود PHP:
12, 3, 2134, 0, -230


ونستخدم int لننشئ متغير قيمه تكون اعداد صحيحة كما اسلفنا

مثال:

كود PHP:
int intInteger = 0;

int intAnotherIntger = -100;


2- الأعداد العشرية (double) :

وهي اعداد تحتوي على كسور عشرية مثل 1.0002 عكس الأعداد الصحيحة التي لا تحتوي على فواصل.

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

ونستخدم double لننشئ متغيرا عشريا

3- الحروف (char) :

هذه الكلمة تحتوي على 256حرف ابجدي معروف والأشارات المختلفة ولوحة الأرقام (اي انه كل ما يمثل لوحة المفاتيح لجهازك)

القيم لهذا الرمز يجب ان توضع بين قوسين مفردين ' ' .

مثال :

كود PHP:
'a' , '$' , 'Z'


هذا الرمز لا يأتي منفردا وانما نستخدم الرمز int السابق ذكره لننشئه .

مثال:

كود PHP:
int chrA = 'A';

int chrB = '$';


(لاحظ انها حروف اي انها لن تدخل في عمليات حسابية وانما فقط تخرج اسماء او ما شابه)

لاحظ ان الكلمات المحجوزة في لغة MQL4 لا يمكن وضعها كقيمة لهذا الرمز فسيقرئها الكومبيوتر ككلمات محجوزة وليس كقيمة يتم التعامل معها , ولهذا يوجد هناك ما يسمى بالحروف الخاصة Special Characters وظيفتها اننا لو اردنا ان نطبع كلمة ما وصادف انها تشبه احدى الكلمات المحجوزة فيمكن استخدام هذه الحروف الخاصة للتمييز بينهم واخبار الكومبيوتر انها قيم وليست كلمات محجوزة.

مثال :

كود PHP:
int chrB = '\n'; //new line


هنا طبعنا سطر جديد في نتائج البرنامج

وهذه قائمة بالحروف الخاصة:

كود PHP:
carriage return r

new line n

horizontal tab t

reverse slash

single quote

double quote "

hexadecimal ASCII-code \xhh




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

4- الألوان (color) :

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

يمكننا وضع الألوان كقيم في المتغيرات الخاصة بها بثلاثة طرق يمكنك اختيار ايا منها:

a- وضعها كأسماء الوان عادية مثل ازرق blue , احمر red ... الخ. ( وهي الطريقة الأسهل)

b- وضعها كأرقام صحيحة ( ويمكنك ان تاتي بأرقام الأوان من اي برنامج رسم على جهازك وخاصة الفوتوشوب)

c- بشفرتها الخاصة بلغة الميتا ( كل لون له شفرة خاصة به ويمكن ان تستمدها ايضا من الفوتوشوب)

أمثلة لشفرات الألوان:

كود PHP:
C'128,128,128' // gray

C'0x00,0x00,0xFF' // blue

// named color

Red

Yellow

Black

// integer-valued representation

0xFFFFFF // white

16777215 // white

0x008000 // green

32768 // green






ونستخدم الرمز color لننشئ متغيرا لونيا

مثال:

كود PHP:
color clr1= Red;

color clr1= C'128,128,128' ;

color clr1=32768;


5- التاريخ (datetime) :

هذا الرمز خاص ايضا بلغة MQL4 ويتميز بها , وهو يخزن بيانات التاريخ والوقت .

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

مثال:

كود PHP:
D'2004.01.01 00:00' // New Year

D'1980.07.19 12:30:27'

D'19.07.1980 12:30:27'

D'19.07.1980 12' //equal to D'1980.07.19 12:00:00'

D'01.01.2004' //equal to D'01.01.2004 00:00:00'


نستخدم الرمز datetime لننشئ متغيرات التاريخ والوقت.

مثال:

كود PHP:
datetime dtMyBirthDay= D'1972.10.19 12:00:00';

datetime dt1= D'2005.10.22 04:30:00';


6- القيم المنطقية (bool) :

رمز المنطقية يأخذ قيمتين فقط هما صح (true) او خطأ (fulse). او نظرائهم الرقميين الصفر والواحد.

نستخدم bool لننشئ المتغيرات المنطقية ( مثلا لو اني اعطيت لخاصية في الكسبيرت مثل ادارة راس المال القيمة true سيقوم بتشغيلها والعكس)

مثال:

كود PHP:
bool I = true;

bool bFlag = 1;

bool bBool=FALSE;


7- السلسلة النصية (str) :

هذا الرمز عبارة عن سلسلة من الحروف او النصوص تكتب بين الأقواس الثنائية " " .

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

*ما هي NULL ؟
** هي قيمة خاصة يتم وضعها لتحدد نهاية هذه السلسلة النصية .

في الصورة تمثيل بسيط لسلسلة نصية " hello "

نقره لعرض الصورة في صفحة مستقلة

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

نستخدم الرمز string لننشئ متغير سلسلة نصية .

مثال:

كود PHP:
string str1 = "Hello world1, with you coders guru”;

string str2 = "Copyright © 2005, "Forex-tsd forum\"."; //Notice the use of (") character.

string str3 = "1234567890";





في الدرس القادم بأذن الله سنتكلم عن العمليات والتعابير في لغة الميتا




رد مع اقتباس