المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سؤال برمجي بسيط لو سمحتم و تكرمتم للأستاذ اسلام العوامي


عمر عمر
13-05-2016, 08:31 PM
السلام عليكم و رحمة الله تعلى و بركاته

عندي سؤال برمجي لو سمحت و تكرمت بالإجابة يا استاذ اسلام العوامي

قمت بإتسخدام طريقة الجداول ذات بعد واحد أو مصفوفات ذات بعد واحد
Array[n] i
لترتيب قيم متغيرات بطريقة تصاعدية أو تنازلية
كود ملأ الجدول و ترتيبه انتهيت منه بدون مشاكل

المشكلة بعد الإنتهاء من الترتيب أريد الأن أن اضهر ذالك الجدول المملوء أو اطبعه على الشارت مع تحديد احداثيات x و y
جربت طريقة
Comment
لكنها سيئة حيث أنني عندما أضعها مرتين مثلا تحت بعض, تحذف القيمة السابقة و تضهر الجديدة فقط

أما طريقة
ObjectCreate
فلم أعرف كيف استخدمها مع الجداول


أرجو كتابت الكود كاملا مع الشرح
و سأكون شاكرا لك و أجرك عند الله استاذ اسلام العوامي

اسلام العوامى
14-05-2016, 11:12 AM
السلام عليكم و رحمة الله تعلى و بركاته

عندي سؤال برمجي لو سمحت و تكرمت بالإجابة يا استاذ اسلام العوامي

قمت بإتسخدام طريقة الجداول ذات بعد واحد أو مصفوفات ذات بعد واحد
Array[n] i
لترتيب قيم متغيرات بطريقة تصاعدية أو تنازلية
كود ملأ الجدول و ترتيبه انتهيت منه بدون مشاكل

المشكلة بعد الإنتهاء من الترتيب أريد الأن أن اضهر ذالك الجدول المملوء أو اطبعه على الشارت مع تحديد احداثيات x و y
جربت طريقة
Comment
لكنها سيئة حيث أنني عندما أضعها مرتين مثلا تحت بعض, تحذف القيمة السابقة و تضهر الجديدة فقط

أما طريقة
ObjectCreate
فلم أعرف كيف استخدمها مع الجداول


أرجو كتابت الكود كاملا مع الشرح
و سأكون شاكرا لك و أجرك عند الله استاذ اسلام العوامي

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

،،،اهلا بك اخي الفاضل ، يمكن عمل حلقة تكرارية واستخدام امر ObjectCreate داخل الحلقة لعمل المطلوب ، وسأقوم بارفاق مثال بعد قليل،،،

،،،تقبل تحياتي،،،

اسلام العوامى
14-05-2016, 03:25 PM
،،،مثال علي المطلوب،،،




int start() {
int x,y;
int xdist = 250;
int ydist = 100;
color col;
string diff;
for(x=0;x<=2;x++)
for(y=0;y<=7;y++) {
if (MarketInfo(symb[y], MODE_POINT) == 0.00001) pointvalue = 0.0001;
else if (MarketInfo(symb[y], MODE_POINT) == 0.001) pointvalue = 0.01;
else pointvalue = MarketInfo(symb[y], MODE_POINT);
double diffsma7_20H1 = iMA(symb[y],PERIOD_H1,7,0,MODE_LWMA,PRICE_CLOSE,0)- iMA(symb[y],PERIOD_H1,20,0,MODE_LWMA,PRICE_CLOSE,0);
double diffsma7_20H4 = iMA(symb[y],PERIOD_H4,7,0,MODE_LWMA,PRICE_CLOSE,0)- iMA(symb[y],PERIOD_H4,20,0,MODE_LWMA,PRICE_CLOSE,0);
double diffsma7_20D1 = iMA(symb[y],PERIOD_D1,7,0,MODE_LWMA,PRICE_CLOSE,0)- iMA(symb[y],PERIOD_D1,20,0,MODE_LWMA,PRICE_CLOSE,0);
string diffH1 = DoubleToStr((diffsma7_20H1/pointvalue),1);
string diffH4 = DoubleToStr((diffsma7_20H4/pointvalue),1);
string diffD1 = DoubleToStr((diffsma7_20D1/pointvalue),1);
switch(x) {
case 0: diff = diffH1;
if(diffsma7_20H1 < 0)col = Red;
else col=Green; break;
case 1: diff = diffH4;
xdist+= 250;
if(diffsma7_20H4 < 0)col = Red;
else col=Green; break;
case 2: diff = diffD1;
xdist+= 250;
if(diffsma7_20D1 < 0)col = Red; else col=Green; break; }
ObjectCreate("diff"+x+y,OBJ_LABEL,0,0,0,0);
ObjectSet("diff"+x+y, OBJPROP_XDISTANCE,xdist);

ObjectSet("diff"+x+y, OBJPROP_YDISTANCE,ydist);

ObjectSetText("diff"+x+y,diff,10, "Times New Roman", col);
ydist+= 65; }
return(0); }

عمر عمر
14-05-2016, 06:33 PM
أهلا استاذي اسلام العوامي
أولا أشكرك جزيل الشكر على ردك الكريم و السريع و على عطائك الكبير و سعة صدرك
ربنا يكرمك و يجعل مساعدتك لي في ميزان حسناتك مشكور جدا
أنا من المعجبين بك و تعلمت منك الكثير

ثانيا للأسف لم افهم مثالك فهو كبير و معقد و خارج عن الموضوع

راح اعطيك مثالي و هو بسيط , و أرجو أن تضيف له كود الذي يضهر المحتوى في الشارت








int a=10;
int b=20;
int c=5;
int d=-65;


int Array[4];
int i;
int j;
int t;


Array[0] = a;
Array[1] = b;
Array[2] = c;
Array[3] = d;



for(i=0;i<=3;i++)
for(j=i;j<=3;j++)
if(Array[i]<Array[j])
{
t=Array[i];
Array[i]=Array[j];
Array[j]=t;
}









و هنا شرح للكود و المثال الذي كتبته بالتفصيل








// هنا عرفت المتغيرات و اعطيتها قيم
int a=10;
int b=20;
int c=5;
int d=-65;

// هنا قمت بتعريف بالجدول الذي فيه اربع خانات
int Array[4];
// هنا عرفت المؤشر أو العداد أو الدليل
int i;
// هنا عرفت الدليل الثاتي
int j;
// هنا عرفت الخانة المساعدة في تبديل الخانات
int t;


// هنا ملأت الجدول بالمتغيرات
Array[0] = a;
Array[1] = b;
Array[2] = c;
Array[3] = d;


// هنا أنشأت الحلقة الأولى
for(i=0;i<=3;i++)
// هنا أنشئت الحلقة الثانية
for(j=i;j<=3;j++)

// هنا وضعت شرط المقارنة و الترتيب و التبديل
if(Array[i]<Array[j])
{
t=Array[i];
Array[i]=Array[j];
Array[j]=t;
}








أريد أن يضهر في الشارت صورة مثل الصورة التالية

http://b.top4top.net/p_13473fe1.png

جربت أمر
Comment
بالطريقة التالية



Comment(Array_B[0]," ",Array[0],"\n",Array_B[1]," ",Array[1],"\n",Array_B[2]," ",Array[2],"\n",Array_B[3]," ",Array[3]);



و قام بترتيب القيم و اضهارها في الشارت بالشكل التالي

http://d.top4top.net/p_134o2j11.png

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

في لغة ال C و C++ بتم كتابت الأمر التالي فقط فتضهر القيم مرتبة و هو كاتالي







print ( Array[i] );







بدون كتابت كل الخانات !!

---

و كيف يمكنني تلوين القيمة الأولى الأكبر في الترتيب باللون الأخظر و القيمة الأخيرة الأصغر بالون الأحمر

أرجو أن تكون اضافة كود الطباعة على الشارت في مثالي الذي قدمته


أرجو أن لا أكون قد أطلت أو اثفلت عليك
في انتضار ردك الكريم