PDA

View Full Version : Mql5 المرجعي أساسيات اللغة أنواع البيانات تلبيس



Hana Ramzi
05-17-2015, 21:57
تلبيس
صب أنواع رقمية

وغالبا ما يحدث ضرورة لتحويل نوع رقمي واحد إلى آخر. لا يمكن تحويل جميع أنواع رقمية إلى آخر. هنا هو مخطط يسمح الصب:



خطوط متينة مع السهام تشير إلى التغييرات التي يتم تنفيذها تقريبا دون أي خسارة في المعلومات. بدلا من نوع شار، و منطقي نوع يمكن استخدام (على حد سواء اتخاذ 1 بايت من الذاكرة)، بدلا من نوع int، و اللون نوع يمكن استخدام (4 بايت)، بدلا من النوع الطويل، التاريخ والوقت ويمكن استخدام (خذ 8 بايت). أربعة خطوط رمادية متقطع، arrowed أيضا، للدلالة التحويلات، عندما يمكن أن يحدث فقدان الدقة. على سبيل المثال، عدد الأرقام في عدد صحيح يساوي 123456789 ( الباحث ) هو أعلى من عدد الأرقام التي يمكن أن يمثله تعويم .
الباحث ن = 123456789؛
تعويم و = ن؛ // مضمون و يساوي 1.234567892E8
الطباعة ("ن =" ن "، و ="، و).
// نتيجة ن = 123456789 = و 123456792،00000


عدد تحويلها إلى تعويم له نفس النظام، ولكن هو أقل دقة. التحويلات، على عكس السهام السوداء، لا يمكن أن يؤديها مع احتمال فقدان البيانات. التحويلات بين شار وuchar، قصيرة وUSHORT، الباحث وUINT، طويلة وULONG (التحويلات لكلا الجانبين)، قد يؤدي إلى فقدان البيانات.

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

على سبيل المثال:
// --- تسارع الجاذبية
ز مزدوج = 9.8؛
round_g ضعف = (الباحث) ز.
math_round_g ضعف = MathRound (ز)؛
الطباعة ("round_g =" round_g)؛
الطباعة ("math_round_g =" math_round_g)؛
/ *
النتيجة:
round_g = 9
math_round_g = 10
* /


إذا تم الجمع بين قيمتين من قبل مشغل ثنائي، قبل تنفيذ العملية يتم تحويل المعامل من نوع أقل لنوع العالي وفقا لإعطاء الأولوية في مخطط أدناه:



أنواع البيانات شار، uchar، قصيرة، وUSHORT يتم تحويلها دون قيد أو شرط إلى نوع int.

الأمثلة على ذلك:
شار C1 = 3؛
// --- المثال الأول
D2 مزدوج = C1 / 2 + 0 3؛
الطباعة ("C1 / 2 + 0.3 =" D2)؛
// النتيجة: C1 / 2 + 0.3 = 1.3

// --- المثال الثاني
D2 = C1 / 2 0 + 0 3.؛
الطباعة ("C1 / 2.0 + 0.3 =" D2)؛
// النتيجة: C1 / 2.0 + 0.3 = 1.8


يتكون التعبير المحسوبة لعمليتين. في المثال الأول، يتم تحويل C1 متغير من نوع char إلى متغير مؤقت من نوع int، لأن المعامل الثاني في عملية الانقسام، ودائم 2، هو من النوع العالي كثافة العمليات. ونتيجة لتقسيم عدد صحيح 3/2 نحصل على القيمة 1، وهي من نوع int.

في العملية الثانية من المثال الأول، المعامل الثاني هو ثابت 0.3، والذي هو من النوع المزدوج، بحيث يتم تحويل نتيجة العملية الأولى إلى متغير مؤقت من النوع المزدوج بقيمة 1.0.

في المثال الثاني هو تحويل متغير من نوع شار C1 إلى متغير مؤقت من النوع المزدوج، لأن المعامل الثاني في عملية التقسيم، ثابت 2.0، هو من النوع المزدوج. لم يتم إجراء مزيد من التحويلات.


تلبيس من أنواع رقمية

في التعبير عن اللغة MQL5 كلا تلبيس الصريحة والضمنية يمكن استخدامها. يتم كتابة تلبيس صريحة على النحو التالي:
var_1 = (النوع) var_2.


تعبير أو وظيفة نتيجة تنفيذ يمكن استخدامها كمتغير var_2. تسجيل الوظيفي للتلبيس صريح من الممكن أيضا:
var_1 = نوع (var_2)؛


دعونا النظر في تلبيس صريح على أساس المثال الأول.
// --- المثال الثالث
D2 مزدوج = (مزدوج) C1 / 2 + 0.3.
الطباعة ("(مزدوج) C1 / 2 + 0.3 =" D2)؛
// النتيجة: (مزدوج) C1 / 2 + 0.3 = 1.80000000


قبل تنفيذ عملية التقسيم، هو يلقي متغير C1 صراحة إلى نوع مزدوج. الآن يلقي عدد صحيح ثابت 2 إلى القيمة 2.0 من نوع مزدوج، لأن نتيجة تحويل المعامل الأول اتخذت نوع مزدوج. في الواقع، وتلبيس الصريح هو عملية الأحادية.

الى جانب ذلك، عندما يحاول أن يلقي أنواع، والنتيجة قد تتجاوز النطاق المسموح به. في هذه الحالة، يحدث الاقتطاع. على سبيل المثال:
شار ج.
uchar ش.
ج = 400؛
ش = 400؛
الطباعة ("ج =" ج)؛ // النتيجة ج = -112
الطباعة ("ش ="، ش)؛ // النتيجة ش = 144


قبل أن يتم تنفيذ العمليات (ما عدا تلك المهمة)، يتم تحويل البيانات إلى أقصى نوع الأولوية. قبل أن يتم تنفيذ العمليات المهمة، ويلقي البيانات إلى نوع الهدف.

الأمثلة على ذلك:
كثافة العمليات ط = 1/2؛ // لا أنواع الصب، والنتيجة هي 0
الطباعة ("ط = 1/2"، ط)؛

الباحث ك = 1/2 0؛ // يلقي التعبير إلى نوع مزدوج،
الطباعة ("K = 1/2"، ك)؛ // بعد ذلك إلى نوع الهدف من الباحث، والنتيجة هي 0

د مزدوج = 1 0/2 0؛ // لا أنواع الصب، والنتيجة هي 0.5
الطباعة ("د = 1 / 2.0"؛، د)؛

ه مزدوج = 1/2 0؛ // يلقي التعبير إلى نوع مزدوج،
الطباعة ("ه = 1 / 2.0؛" ه)؛ // هذا هو نفس نوع الهدف، والنتيجة هي 0.5

ضعف س = 1/2؛ ويلقي // التعبير عن نوع int إلى typr هدف مزدوج،
الطباعة ("س = 1/2"؛، خ)؛ // والنتيجة هي 0.0


عند تحويل طويلة / نوع ULONG إلى مزدوجة، والدقة قد تفقد في حالة قيمة عدد صحيح أكبر من 9223372036854774784 أو أقل من -9223372036854774784.

yhassen
06-21-2015, 06:37
السلام عليكم ورحمة الله تعالى وبركاته و رمضانكم مبروك
و تحية طيبة لكل الإخوة الأفاضل..
أشكرك آخى على الموضوع المميز :
Mql5 المرجعي أساسيات اللغة أنواع البيانات تلبيس ///
أسأل الله الربح الوفير و تحقيق الأحلام والتوفيق و النجاح للجميع

arkantos
06-24-2015, 00:14
السلام عليكم ورحمة الله ورحمة الله وبركاته مشكور اخى الكريم على مجهود رائع ومميز أخي الفاضل أنتضر منك المزيد من إبدعاتك بخصوص Mql5 المرجعي أساسيات اللغة أنواع البيانات تلبيس
مع تحياتي تقبل مروري

alimed
10-26-2015, 12:23
اللهم صل على سيدنا وعلى آل سيدنا محمد كما صليت على سيدنا إبراهيم وعلى آل سيدنا إبراهيم
و بارك اللهم على سيدنا محمد و على آل سيدنا محمد كما باركت على سيدنا إبراهيم و على آل سيدنا إبراهيم
في العالمين إنك حميد مجيد

torkhan mohamed
02-29-2016, 19:50
السلام عليكم ورحمه الله وبركاته
شكرا اخى على الموضوع الجميل
واتمنى منك دائما الافاده لنا والله يجازيك كل خير واتمنى لك التوفيق
وبارك الله فيك وجزاك خيراً والسلام عليكم ورحمه الله

AboMoZo
03-06-2016, 19:38
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
شكراً جزيلاً لك علي هذا الطرح المميز
بإنتظار جديدك بفارغ الصبر فلا تحرمنا من الفائدة و جزاك الله كل خير
خالص التحية وتمنياتي بالتوفيق والسداد

habouryaiman s
03-07-2016, 20:40
بسم الله والصلاه والسلام علي نبينا محمد صلي الله عليه وسلم
السلام عليكم ورحمه الله وبركاته وعلي كل اعضاء المنتدي الكرام
شكرا الي حضرتك لانك تطرقت الي هذا المقال المتميز

TMT
03-12-2016, 17:02
السلام عليكم ورحمة الله وبركاته موضوع رائع يا اخى شرح موفق منك
مشكور علي هذه المعلومات الاكثر من رائعة
موضوع مميز وجيد وربنا يوفقك وبارك الله فيك وجزاك خيراً والسلام عليكم ورحمه الله

bibich
05-22-2016, 18:32
السلام عليكم و رحمة الله و بركاته
حقيقة أخي الفاضل نحن مقصرون في حق الله
بارك اللله فيك على الموضوع
و جعله الله في ميزان حسناتك
بالتوفيق.

lascars
07-01-2016, 20:26
السلام عليكم ورحمة الله وبركاته
مشكور اخى الكريم على هذا الموضوع والشرح الأكثر من رائع
جزاك الله كل خير فى انتظار كل مواضيعك الجديدة
لا تبخل علينا بالمزيد يا أخي واصل على هذا المنوال .