استاذي العزيز الصور تظهر ولكن هناك احيانا تظهر كلمة الملف المرفق فحينما نضغط على الملف المرفق لا ينفتح وتظهر الرسالة انه هناك خطاء في فتح الملف المرفق، استمر ياملك سلمان .
استاذي العزيز الصور تظهر ولكن هناك احيانا تظهر كلمة الملف المرفق فحينما نضغط على الملف المرفق لا ينفتح وتظهر الرسالة انه هناك خطاء في فتح الملف المرفق، استمر ياملك سلمان .
اسامة رجاء--الامل بالله ثم بك كبير--اريد فقط ضمان ان كل الصور تظهر وتبقى سنين, تظهر من المرة الأولى,
=-----------
نواصل مع أسهل وأتفه المتغيرات الأربع الرئيسية
نحن الان نلعب في منطقة input
من البرنامج او برمجيا كيف نصمم الأشياء كما نريد؟
ج: نفهم أولا اساسيات تصميم أي مؤشر,
OptInputParameterInfo هو أسهل المتغيرات الأربعة,
وله كونستركتورين
1) كونستركتور ب 3 معطيات خارجية
2) والآخر كوسنتركتور فارغ وبالتالي نحتاج أنظمة setter-getter وانا دائما افضل هذا النوع, لأنه لامجال للخطأ او صداع الرأس فيه حتى وإن استهلك اسطر إضافية.
الملف المرفق 521204
سمير علي: اريد متوسط 26 كمعطى خارجي لو غيرت قيمته ماتتجاوز 28 ولو خفضتها ماتنزل عن 23 ؟؟؟ اريد البرنامج يمنع أي قيمة أخرى خارج هذه الحدود؟
ومتوسط 12 اريده في منطقة ضيقة بين 11 و13
وسقنال 9 اريده بين 4 و 11 لو قررت اغير قيمته!
ما ابي الشغلة مبهولة "مفتوحة"
rain_man --- دوكاسكوبي صنعوا دالة جميلة اسمها IntegerRangeDescription طالما تذكر لي ارقام صحيحة وتأخذ اربعة معطيات,
1- المعطى الأولى تضع فيه قيمة المتغير الاختياري
2-المعطى الثاني نضع فيه الحد الادنى الذي نريد من البرنامج يرفض اي محاولة للنزول تحته حتى لو انطبقت السما على الارض
3-المعطى الثالث فيه الحد الاعلى الذي سيمنع البرنامج تجاوزه
4-المعطى الاخير معدل التغيير مع كل نقرة ماوس.
سمير علي: ممكن تشرح ايش يعني المعطى الاخير معدل تغير القيمة مع كل نقرة؟؟
rain_man : يعني مثلا لمتوسط 26 --- لو اخترت الحد الادنى 3 والحد الاعلى 100, واخترت معدل التغير مثلا 5 وهو الان قدامك في شاشة المعطيات الخارجية 26
فإنك لو نقرت بالماوس على السهم العلوي امام 26 نقرة واحدة فإنه سينتقل الى 31 وليس 27--القيمة ترتفع بمقدار 5 ؟؟
وارح يمشي يقبل معك حتى يصل حاجز 100 ثم يرفض محاولاتك.
انظر للصورة
ولأن قيم مدخلاتي الشخصية الخارجية من نوع int كلها
اخترت IntegerRangeDescription وتفهم انت بالتالي ان هناك أشياء من قبيل DoubleRangeDescription
الملف المرفق 521205
https://www.dukascopy.com/client/jav...scription.html
حيث هناك 9 كلاسات مخصصة للرينجات ranges -- وهي مساحة تمدد القيم بين حد ادنى واعلى
الرابط هنا هو لـ الانترفيس OptInputDescription وفيه هذه الكلاسات التسعة التي تنفذه (يعني تنفذ دواله التي ذكرنا انها abstract)
وهذا الانترفيس هو تعريف النوع للمعطى الثالث في الكلاس الرئيسي الذي نتحدث عنه OptInputParameterInfo
BooleanOptInputDescription
ColorListDescription
DoubleListDescription
DoubleRangeDescription
InstrumentListDescription
IntegerListDescription
IntegerRangeDescription
PeriodListDescription
StringOptInputDescription
أريدك ان تتصور انك تبرمج مؤشر مثل مؤشر ستوكاستيك او مؤشر الغلاف او البولنقر--يعني فيها قيم منوعة--صحيحة وعشرية, int و double
بالتأكيد سنستخدم االاثنتين وحسب مكان المتغير في المصفوفة من نوع OptInputParameterInfo (أحد الأربعة الرئيسية)
مثلا للبولنقر تقول 14 يوم وهو عدد صحيح int وتقول النسبة 0.2 وهو عدد عشري double
تعمدنا ان نذهب للمعطى الثالث داخل OptInputParameterInfo لنتخلص منه واعتقد كسرنا صعوبته من خلال حوار بين اثنين,
المعطى الأول نضع فيه الاسم التعبيري -- من نوع string الذي سيظهر في صفحة المتغيرات الخارجية--صفحة input - اختر أي اسم تريد
والمتغير الثاني نوع القيمة هل هي عملة ام نسبة او نوع اخر, نختار اخر OTHER لانه ليس لاهملة ولانسبة بل رقم صحيح
الملف المرفق 521206
الملف المرفق 521207
واعتقد الصورة تغني عن 1000 كلمة
من يريد التعلم يجرب--جرب تغيير الأرقام خصوصا الانكرمنت--اخر معطى حتى IntegaerRangeDesciption
جرب يكون المنمم للمتوسط السريع 12 اكبر من 12 ؟؟
جرب ان يكون المكسمم ل 26 عند 20 مثلا--يعني قيمة اقل واخارج العقل؟؟
جرب تضع رقم بالناقص
ومع كل تغيير كمبلة
تعمد اكبر قدر من الأخطاء لتصبح فيلسوف برمجة اكثر من مجرد مبرمج. تصبح فيما بعد trouble shooter
بإمكانك أيضا استخدام الكوسنتركتور الفارغ ثم من خلال دوال set تدخل القيم التسع --- 3+3+3 = 9
لأن لديك 3 كائنات وكل كائن له 3 خصائص ---- 3*3=9
تمرين: عد لمراجعة ال arrays في لغة الجافا خصوصا arrays لـ الـ objects وليس الـ primitive data types
نظام set-get
الملف المرفق 521209
انهينا 2 من المتغيرات الرئيسية
والان مع النوع الثالث InputParameterInfo
قلنا ان عددهم أربعة:
كود:private IndicatorInfo indicatorInfo;
private InputParameterInfo[] inputParameterInfos;
private OutputParameterInfo[] outputParameterInfos;
private OptInputParameterInfo[] optInputParameterInfos;
هذا هو المتغير الذي خارج ارادتنا--هو الأسعار التي يزودنا بها التشارت,
نمنحه اسم معبر price---بالتأكيد بإمكانك تغييره ونحدد النوع double لان الأسعار هكذا طبيعتها
وأيضا مصفوفة لأنك احتمال تختار أكثر من سعر معا--مثلا الهاي واللو في نفس الوقت,
كود:inputParameterInfos = new InputParameterInfo[] { new InputParameterInfo("Price", InputParameterInfo.Type.DOUBLE)};
الكونستركتور التفصيلي له متغيرين -- انظر للسطر المكود في الرد الأخير اعلاه
وهناك الكوسنتركتور الفارغ
اذا استخدمت الأخير انت مضطر لدوال set ذات العلاقة تحت هذا النوع.
وبالعودة لخبيرنا الخطير--كشاف الدوال والفيلدز والكونستركتورز:
2 كونستركتورز
و9 فيلدز وبالتالي نتوقع حوالي 18 دالة او مثودز, 9*2 = 18 -- واحد ل set وواحد get لكل فيلد.
في الصورة 19؟؟ ليش؟؟؟
اكتشف الزائد؟ :)
الملف المرفق 521210
الملف المرفق 521211
او بإمكانك الرجعوع كما اعتدنا الى دوكاسكوبي API