رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
اقتباس:
المشاركة الأصلية كتبت بواسطة جرير
مجهود رائع ... تسلم ايدك
فهل يشترط ان تتعلم الشبكة لايف على الأسعار الحية .. ام من الممكن تعليمها بشكل اخر
مرحبا بك أخي الكريم
هناك طريقتين لتعليم الشبكة
التعليم المراقب (بواسطة معلم) Supervised Learning of ANN’s :
يعني نحن الذين نشرف على تعليمها
التعليم غير المراقب ( بدون معلم ) Unsupervised learning
وهو التعليم لايف على الأسعار الحية
والطرقتين مهمتين ،ستجد في هذه المشاركة أكثر تفاصيل .
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
اقتباس:
المشاركة الأصلية كتبت بواسطة Elshaikh
جزاك الله كل الخير على ما تقدمه و بالنسبة للأسئلة فيمكن أن الجميع ينتظر المراحل المتقدمه لكي يسأل ..
على كل متابعين معك أخوي مشاركة تلو الأخرى :)
مرحبا بك يا أخي الكريم
أنا أفضل أنه من لديه أسئلة على ما سبق
أن يسألها الأن ولا يؤجلها
لأن الدروس القادمة ستكون لها اسئلتها الخاصة
ولا تقلقوا بالنسبة لتنظيم الدروس فالإدارة قائمة بالواجب
في الصفحة الرئيسية للموضوع
تجدون فهرس متجدد لدورة
موصول نحو المشركات فقط بدون تعليقات
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
السلام عليكم
عندى يااخى مشكلة فى مسح الملفات القديمة( السكريبتات ) ويعطى ايرور
فماهو سبب هذه المشكلة
http://img337.imageshack.us/img337/753/94931727.png
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
اقتباس:
المشاركة الأصلية كتبت بواسطة جرير
إستعمل هذا السكريبت لتنظيف المخرجات :
كود PHP:
void main()
{
OUT_CLEANUP();
}
ولو ظهرلك خطأ،يا ريت تكتبلي السكريبت إلي استعملته وظهر به الخطأ
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmedfeki
إستعمل هذا السكريبت لتنظيف المخرجات :
كود PHP:
void main()
{
OUT_CLEANUP();
}
ولو ظهرلك خطأ،يا ريت تكتبلي السكريبت إلي استعملته وظهر به الخطأ
مع انى جربته قبل ذلك ولم يمسح ..الأ انه مسح هذه المرة
بارك الله فيك
واصل الدروس وبأذن الله متقدمين معاك
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
موضوع دسم جدا
وانا متابع معك خطوه خطوه
ربي يفتح عليك فتوح العارفين
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
*الرسوم البيانية Charts
سنتعرف إن شاء الله في هذا الدرس على طريقة رسم الشارت من خلال برنامج CORTEXPRO سنبدء بالمثال التطبيقي ثم نشرح أهم خصائصه:
المثال هو SAMPLE_07.TSC ويقوم برسم 6 شارتات بطريقة مختلفة في نافذة جديدة غير التي اعتدنا عليها
وهي خاصة بمخرجات الرسومات :
كود PHP:
void main()
{
OUT_CLEANUP();
PRINT("%s\r\n", "Performing initialization of useful variables");
double marker_non = 0;
double marker_rect = 1;
double marker_circle = 2;
double marker_triangle = 3;
double marker_s_5 = 4;
double marker_s_6 = 5;
double marker_cross = 6;
double marker_cross_x = 7;
double marker_diamond = 8;
double marker_triangle2 = 9;
double marker_bar2 = 10;
double marker_circle2 = 11;
double marker_arrow_up = 12;
double marker_arrow_dn = 13;
double marker_bar = 14;
double marker_bar3d = 15;
double marker_s_bar = 16;
double marker_s_bar3d = 17;
double con_none = 0;
double con_line = 1;
double con_bar = 2;
double con_stack = 3;
double horiz_axe_1 = 1;
double vert_axe_1 = 2;
double horiz_axe_2 = 4;
double vert_axe_2 = 8;
double horiz_axe = 0;
double vert_axe = 1;
double horiz_text = 0;
double vert_text = 1;
double graf_no_just = 0;
double graf_bar_just = 1;
double black = 0;
double blue = 1;
double green = 2;
double cyan = 3;
double red = 4;
double magenta = 5;
double brown = 6;
double lightgray = 7;
double darkgray = 8;
double lightblue = 9;
double lightgreen = 10;
double lightcyan = 11;
double lightred = 12;
double lightmagenta = 13;
double yellow = 14;
double white = 15;
double ps_solid = 0;
double ps_dash = 1;
double ps_dot = 2;
double ps_dashdot = 3;
double ps_dashdotdot = 4;
double true = 1;
double false = 0;
double nNumbersX = 0;
double nDateX = 1;
//------------------------------------------------------
PRINT("%s\r\n", "Performing initialization of arrays of demo data");
array arr_x = CREATE_ARRAY(0);
arr_x[0] = 0; arr_x[1] = 1; arr_x[2] = 2; arr_x[3] = 3; arr_x[4] = 4;
arr_x[5] = 5; arr_x[6] = 6; arr_x[7] = 7; arr_x[8] = 8; arr_x[9] = 9;
array arr_y = CREATE_ARRAY(0);
arr_y[0] = 0; arr_y[1] = 1; arr_y[2] = 2; arr_y[3] = 3; arr_y[4] = 4;
arr_y[5] = 5; arr_y[6] = 4; arr_y[7] = 3; arr_y[8] = 2; arr_y[9] = 3;
array arr_y1 = CREATE_ARRAY(0);
arr_y1[0] = 0; arr_y1[1] = 2; arr_y1[2] = 4; arr_y1[3] = 8; arr_y1[4] = 16;
arr_y1[5] = 16; arr_y1[6] = 8; arr_y1[7] = 4; arr_y1[8] = 2; arr_y1[9] = 0;
array arr_shifts = CREATE_ARRAY(0);
for(double i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
}
//------------------------------------------------------
PRINT("%s\r\n", "Performing initialization of arrays of demo colors and styles for markers and connectors");
ADD_SERIES_STYLE(marker_rect, con_line);
MARKER_SET_COLOR(red, red, 1);
CONNECTOR_SET_COLOR(red, red, 1);
ADD_SERIES_STYLE(marker_circle, con_line);
MARKER_SET_COLOR(green, green, 1);
CONNECTOR_SET_COLOR(green, red, 1);
ADD_SERIES_STYLE(marker_non, con_line);
MARKER_SET_COLOR(magenta, magenta, 1);
CONNECTOR_SET_COLOR(magenta, magenta, 1);
ADD_SERIES_STYLE(marker_bar, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(green, cyan, 1);
ADD_SERIES_STYLE(marker_bar, con_bar);
MARKER_SET_COLOR(green, cyan, 1);
CONNECTOR_SET_COLOR(green, cyan, 1);
ADD_SERIES_STYLE(marker_bar3d, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(red, yellow, 1);
ADD_SERIES_STYLE(marker_bar3d, con_bar);
MARKER_SET_COLOR(lightred, lightblue, 1);
CONNECTOR_SET_COLOR(lightred, lightblue, 1);
ADD_SERIES_STYLE(marker_s_bar, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(red, yellow, 1);
ADD_SERIES_STYLE(marker_s_bar, con_bar);
MARKER_SET_COLOR(lightred, lightblue, 1);
CONNECTOR_SET_COLOR(lightred, lightblue, 1);
ADD_SERIES_STYLE(marker_s_bar3d, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(red, yellow, 1);
ADD_SERIES_STYLE(marker_s_bar3d, con_bar);
MARKER_SET_COLOR(lightred, lightblue, 1);
CONNECTOR_SET_COLOR(lightred, lightblue, 1);
//------------------------------------------------------
PRINT("%s\r\n", "Line and Markers chart, automatic labels calculation");
SET_CHART_CLIP(40, 40, 240, 240);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_y, vert_axe, true, graf_no_just);
CALC_SCALE(arr_y1, vert_axe, false, graf_no_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4, horiz_axe_1 + vert_axe_1 + horiz_axe_2 + vert_axe_2);
DRAW_CROSS();
PLOT(0, arr_x, arr_y);
PLOT(1, arr_x, arr_y1);
//------------------------------------------------------
PRINT("%s\r\n", "Line and Markers chart, manual scaling, automatic labels calculation");
SET_CHART_CLIP(300, 40, 500, 240);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
SET_CHART_SCALE(-1, -2, 12, 17);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4, horiz_axe_1 + vert_axe_1 + horiz_axe_2 + vert_axe_2);
DRAW_CROSS();
PLOT(0, arr_x, arr_y);
PLOT(1, arr_x, arr_y1);
//------------------------------------------------------
PRINT("%s\r\n", "Combined Bar and Line chart, automatic labels calculation, 2 axes only");
SET_CHART_CLIP(580, 40, 780, 240);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_y, vert_axe, true, graf_bar_just);
CALC_SCALE(arr_y1, vert_axe, false, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4, horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(3, arr_x, arr_y, arr_shifts);
PLOT(4, arr_x, arr_y1, arr_shifts);
PLOT(2, arr_x, arr_y);
//------------------------------------------------------
PRINT("%s\r\n", "Combined Bar3d and Line chart, automatic labels calculation, 2 axes only");
SET_CHART_CLIP(40, 280, 300, 480);
for(i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
}
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_y, vert_axe, true, graf_bar_just);
CALC_SCALE(arr_y1, vert_axe, false, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4, horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(5, arr_x, arr_y, arr_shifts);
PLOT(6, arr_x, arr_y1, arr_shifts);
PLOT(2, arr_x, arr_y);
//------------------------------------------------------
PRINT("%s\r\n", "Combined Stacked Bar and Line chart, automatic labels calculation, 2 axes only");
SET_CHART_CLIP(340, 280, 560, 480);
array arr_delta = CREATE_ARRAY(0);
for(i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
arr_delta[i] = 0;
}
GET_STACKED(arr_y, 10, arr_delta);
GET_STACKED(arr_y1, 10, arr_delta);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_delta, vert_axe, true, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4, horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(7, arr_x, arr_y, arr_shifts);
PLOT(8, arr_x, arr_y1, arr_shifts);
PLOT(2, arr_x, arr_y);
//------------------------------------------------------
PRINT("%s\r\n", "Combined Stacked Bar3d and Line chart, automatic labels calculation, 2 axes only");
SET_CHART_CLIP(600, 280, 840, 480);
for(i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
arr_delta[i] = 0;
}
GET_STACKED(arr_y, 10, arr_delta);
GET_STACKED(arr_y1, 10, arr_delta);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_delta, vert_axe, true, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4, horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(9, arr_x, arr_y, arr_shifts);
PLOT(10, arr_x, arr_y1, arr_shifts);
PLOT(2, arr_x, arr_y);
//------------------------------------------------------
END_DRAWING();
}
*
وتكون النتيجة كالاتي :
http://img203.imageshack.us/img203/7873/chartsb.jpg
سنتعرف الآن على الوضائف الجديدة الخاصة برسم الشارتات :
SET_AXE
كود PHP:
SET_AXE(nWhichAxe, nSubTickNo, nTextDirection, nDateX);
إعداد خصائص المحور اللذي سنحتاجه لرسم الشارت :
الإعدادات :
*nWhichAxe =
1 -- المحور س في الجزء السفلي من الرسم البياني،
2 -- المحور ص في الجانب الأيسر من الرسم البياني،
4 -- المحور س في الجزء العلوي من الرسم البياني
8 -- المحور ص في الجانب الأيمن من الرسم البياني
على سبيل المثال : كود PHP:
SET_AXE (1 + 4 + 8 ،...
nSubTickNo
--وهي عدد جزيئات الوحدة المستعملة لرسم الشرات مثال الصنتيمتر له 10 جزيئات وهذه الخاصية تساعدنا في رسم شبكة الشارت
nTextDirection
اتجاه نص التسميات ، 0 -- الأفقي ، 1 --عمودي .
nDateX
0 إذا كان المحور مكون من أرقام
1 إذا كان المحور مكون من تواريخ
ADD_SERIES_STYLE
كود PHP:
ADD_SERIES_STYLE(nMarkerType, nConnectorType);
nMarkerType :وهو شكل رمز نقاط التخطيط على الشارت:
0 : بدون رمز
1: المستطيل
2 : الدائرة
3 : مثلث
4: نجمة خماسية
5: نجمة سداسية
6: علامة أكس
7:علامة إكس بشكل آخر
8:لؤلؤة
9:مثلث آخر
10 : مربع
11:دائرة أخرى
12:سهم صاعد
13: سهم نازل
14 : شريط
15 : شريط ثلاثي الأبعاد
16 : شريط مرصوف
17 : شريط مرصوف ثلاثي الأبعاد
nConnectorType:وهو شكل الرابط بين هذه النقاط :
0 : لا يوجد رابط
1 : خط الرسم البياني
2 : الرسم البياني الشريطي
3 : الرسم البياني المرصوف
SET_CHART_CLIP
كود PHP:
SET_CHART_CLIP(xmin, ymin, xmax, ymax);
إعداد أبعاد المستطيل بالبكسل لتناسب الرسم البياني في داخله
SET_CHART_SCALE
كود PHP:
SET_CHART_SCALE(double xmin, double ymin, double xmax, double ymax);
تعيين الحد الأدنى. والحد الأقصى. لعرض القيم على المحاور.
GET_STACKED
كود PHP:
GET_STACKED(double* pdData, int nNumOfPoints,
double* pdBase);
عندما نضع مجموعة البيانات الأولى على الرسم البياني شريط مرصوف ، انشأنا جدول (pdBase) ، الذي يحتوي على أصفار. وسوف تقوم هذ الوظيفة بتحويل عناصر الجدول إلى مرتفعات الأشرطة
DRAW_CROSS
وهو أمر لرسم رموز الشارت
CALC_SCALE
كود PHP:
CALC_SCALE(arrArray, nWhichAxe, bIsFirstTime,
nResizeMethod, arrDelta);
كبديل لوضع يدويا الحد الأدنى و- الحد الأقصى لقيم المحاور باستخدام SET_CHART_SCALE ، يمكن أن نستخدم CALC_SCALE للقيام بذلك تلقائيا.
الإعدادات :
arrArray : جدول بيانات هذا المحور الذي سيتم رسمه على الشارت ،لرسم أكثر بيانات ،نستدعي هذه الدالة
nWhichAxe :
0 -- محور س ، 1 -- المحور ص
bIsFirstTime :
1 إذا كانت هذه هي المرة الأولى التي نستدعي الدالة
(لهذا الشارت ، لهذا المحور ) ، 0 خلاف ذلك.
nResizeMethod:
0 -- إذا لم يكن شريط مرصوف أو الرسم البياني الشريطي ،
1 خلاف ذلك.
arrDelta
تستخدم من قبل الأشرطة والرسوم البيانية شريط مرصوف. تنشء جدول ،
تملأه باصفار ، و يمرر إلى الدالة. وسوف يتم ملأه بالأرقام تلقائيا.
DRAW_AXES
كود PHP:
DRAW_AXES(nAxesColor, nLegendsColor, nGridStyle,
nGridColor, nLineWidth, nTickWidth, nAxesSet);
رسم المحاور على الشاشة
الإعدادات :
nAxesColor : لون المحور
أسود = 0
الأزرق = 1
أخضر = 2
سماوي = 3
أحمر = 4
قرمزي = 5
البني = 6
رمادي = 7
أحمر = 12
أصفر = 14
أبيض = 15
nLegendsColor -- لون نص التسميات
nGridStyle -- شكل شبكة الرسم البياني ؛
صلبة = 0 ؛ اندفاعة = 1 ؛ نقطة = 2 ؛ اندفاعة نقطة = 3 ؛ اندفاعة نقطة نقطة = 4 ؛
nGridColor -- لون خطوط الشبكة
nLineWidth -- عرض خطوط الرسم البياني.
nTickWidth -- عرض المربعات الصغيرة
nAxesSet - المحور الذي سيتم رسمه
1 -- المحور س في الجزء السفلي من الرسم البياني،
2 -- المحور ص في الجانب الأيسر من الرسم البياني،
4 -- المحور س في الجزء العلوي من الرسم البياني
8 -- المحور ص في الجانب الأيمن من الرسم البياني
PLOT
كود PHP:
PLOT(nSeriesNumber, arrX, arrY, arrShifts);
arrShifts هو اختياري ، مطلوبة فقط للأشرطة المرصوفة و الرسوم البيانية العمودية.
الإعدادات :
nSeriesNumber : عدد البيانات ،مبتدأة من 0
arrX, arrY : بيانات س و ص التي سيتم ادراجها
arrShifts - إنشاء جدول , تعبئته باصفار و إرساله إلى الدالة
MARKER_SET_COLOR
كود PHP:
MARKER_SET_COLOR(nColor16, nBack16, bFill);
إعداد لون الخلفية و لون رموز البيانات
CONNECTOR_SET_COLOR
كود PHP:
CONNECTOR_SET_COLOR(nColor16, nBack16, bFill);
إعداد لون الخلفية و لون روابط رموز البيانات
SAVE_CHART
كود PHP:
strXML = SAVE_CHART(dWidth, dHeight, bDateX,
strFileName, arrX, arrY_1, ...optional arr 2, ...);
END_DRAWING
الانتهاء من الرسم وتظهر النتيجة في نافذة الشارتات
سنعود الأن إلى مثالنا لتجزئته ومناقشته :
الجزء الأول :
وهو للتعريف بالمتغيرات التي سنحتاجها في إعدادات دالات
رسم الشارتات :
كود PHP:
void main()
{
OUT_CLEANUP();
PRINT("%s\r\n",
"Performing initialization of useful variables");
double marker_non = 0;
double marker_rect = 1;
double marker_circle = 2;
double marker_triangle = 3;
double marker_s_5 = 4;
double marker_s_6 = 5;
double marker_cross = 6;
double marker_cross_x = 7;
double marker_diamond = 8;
double marker_triangle2 = 9;
double marker_bar2 = 10;
double marker_circle2 = 11;
double marker_arrow_up = 12;
double marker_arrow_dn = 13;
double marker_bar = 14;
double marker_bar3d = 15;
double marker_s_bar = 16;
double marker_s_bar3d = 17;
double con_none = 0;
double con_line = 1;
double con_bar = 2;
double con_stack = 3;
double horiz_axe_1 = 1;
double vert_axe_1 = 2;
double horiz_axe_2 = 4;
double vert_axe_2 = 8;
double horiz_axe = 0;
double vert_axe = 1;
double horiz_text = 0;
double vert_text = 1;
double graf_no_just = 0;
double graf_bar_just = 1;
double black = 0;
double blue = 1;
double green = 2;
double cyan = 3;
double red = 4;
double magenta = 5;
double brown = 6;
double lightgray = 7;
double darkgray = 8;
double lightblue = 9;
double lightgreen = 10;
double lightcyan = 11;
double lightred = 12;
double lightmagenta = 13;
double yellow = 14;
double white = 15;
double ps_solid = 0;
double ps_dash = 1;
double ps_dot = 2;
double ps_dashdot = 3;
double ps_dashdotdot = 4;
double true = 1;
double false = 0;
double nNumbersX = 0;
double nDateX = 1;
الجزء الثاني :
سنقوم بإنشاء بعض البيانات التي سندخلها على الشارت ،وسنحتاج إلى ما تعلمناه على الجداول
سننشئها و نقوم بإدراج بعض الأرقام داخلها :
كود PHP:
PRINT("%s\r\n", "Performing initialization of arrays of demo data");
array arr_x = CREATE_ARRAY(0);
arr_x[0] = 0; arr_x[1] = 1; arr_x[2] = 2;
arr_x[3] = 3; arr_x[4] = 4;
arr_x[5] = 5; arr_x[6] = 6; arr_x[7] = 7;
arr_x[8] = 8; arr_x[9] = 9;
array arr_y = CREATE_ARRAY(0);
arr_y[0] = 0; arr_y[1] = 1; arr_y[2] = 2;
arr_y[3] = 3; arr_y[4] = 4;
arr_y[5] = 5; arr_y[6] = 4; arr_y[7] = 3;
arr_y[8] = 2; arr_y[9] = 3;
array arr_y1 = CREATE_ARRAY(0);
arr_y1[0] = 0; arr_y1[1] = 2; arr_y1[2] = 4;
arr_y1[3] = 8; arr_y1[4] = 16;
arr_y1[5] = 16; arr_y1[6] = 8; arr_y1[7] = 4;
arr_y1[8] = 2; arr_y1[9] = 0;
array arr_shifts = CREATE_ARRAY(0);
for(double i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
}
.......
في هذا الجزء , arr_shifts جدول مهم جدا
عند إنشاء شريط (عمود فوق الأخر ،أو بجانب الأخر ) نحتاج إلى إستدعاء الوظيفة
أينما كان الشريط السابق
إذا نمرر الجدول إلى الوظيفة عندما ندخل بيانات جديدة إلى الشريط نفسه
(فقط إذا كان الرسم شريطي )
الجزء الثالث :
نحن بحاجة الأن لإختيار الألوان التي سنستخدمها . يمكننا استخدام الألوان الافتراضية ، ولكنها ليست بالضرورة أفضل خيار.
كود PHP:
PRINT("%s\r\n", "Performing initialization of
arrays of demo colors and styles for
markers and connectors");
ADD_SERIES_STYLE(marker_rect, con_line);
MARKER_SET_COLOR(red, red, 1);
CONNECTOR_SET_COLOR(red, red, 1);
ADD_SERIES_STYLE(marker_circle, con_line);
MARKER_SET_COLOR(green, green, 1);
CONNECTOR_SET_COLOR(green, red, 1);
ADD_SERIES_STYLE(marker_non, con_line);
MARKER_SET_COLOR(magenta, magenta, 1);
CONNECTOR_SET_COLOR(magenta, magenta, 1);
ADD_SERIES_STYLE(marker_bar, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(green, cyan, 1);
ADD_SERIES_STYLE(marker_bar, con_bar);
MARKER_SET_COLOR(green, cyan, 1);
CONNECTOR_SET_COLOR(green, cyan, 1);
ADD_SERIES_STYLE(marker_bar3d, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(red, yellow, 1);
ADD_SERIES_STYLE(marker_bar3d, con_bar);
MARKER_SET_COLOR(lightred, lightblue, 1);
CONNECTOR_SET_COLOR(lightred, lightblue, 1);
ADD_SERIES_STYLE(marker_s_bar, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(red, yellow, 1);
ADD_SERIES_STYLE(marker_s_bar, con_bar);
MARKER_SET_COLOR(lightred, lightblue, 1);
CONNECTOR_SET_COLOR(lightred, lightblue, 1);
ADD_SERIES_STYLE(marker_s_bar3d, con_bar);
MARKER_SET_COLOR(red, yellow, 1);
CONNECTOR_SET_COLOR(red, yellow, 1);
ADD_SERIES_STYLE(marker_s_bar3d, con_bar);
MARKER_SET_COLOR(lightred, lightblue, 1);
CONNECTOR_SET_COLOR(lightred, lightblue, 1);
الإعدادات اكتملت سنبدأ الان برسم أول شارت :
الجزء الرابع :
كود PHP:
PRINT("%s\r\n", "Line and Markers chart, automatic
labels calculation");
SET_CHART_CLIP(40, 40, 240, 240);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_y, vert_axe, true, graf_no_just);
CALC_SCALE(arr_y1, vert_axe, false, graf_no_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4,
horiz_axe_1 + vert_axe_1 + horiz_axe_2
+ vert_axe_2);
DRAW_CROSS();
PLOT(0, arr_x, arr_y, 10);
PLOT(1, arr_x, arr_y1, 10);
أولا ، نحدد حجم الشارت بإستدعاء الوظيفة SET_CHART_CLIP
.ثم ، نحسب المحور ، سنستخدم جدول واحد للمحور س وجدولين للمحور ص (سندخل مجموعتين من البيانات اللذان يشتركان في نفس المحور س )
ثم علينا تحديد تخطيط النص والأسلوب وعدد من علامات التجزئة للمحور.
ثم نقوم برسم خطوط ، والتقاطع (خطين متقاطعين في 0.0) ومجموعتي البيانات
لاحظ كيف أن سوء اختيار نوع وعدد مربعات شبكة التخطيط تجعل الشارت تبدو "سيئة".في وقت لاحق ، سنتحدث عن أفضل الأمثلة على ذلك.
http://cortex.snowcron.com/images/script_sample_01.gif
في الرسم البياني الثاني سنتعامل مع المحاور يدويا ، مما يمنحك المزيد من السيطرة على المحاور.
الجزء الخامس
كود PHP:
PRINT("%s\r\n", "Line and Markers chart, manual
scaling, automatic labels calculation");
SET_CHART_CLIP(300, 40, 500, 240);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
SET_CHART_SCALE(-1, -2, 12, 17);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4,
horiz_axe_1 + vert_axe_1 + horiz_axe_2 +
vert_axe_2);
DRAW_CROSS();
PLOT(0, arr_x, arr_y, 10);
PLOT(1, arr_x, arr_y1, 10);
http://cortex.snowcron.com/images/script_sample_02.gif
في المثال التالي سنقوم برسم خطوط واشرطة على نفس الشارت،وذلك بإستعمال الوظيفة SERIES_STYLE بطرق مختلفة .
الجزء السادس :
كود PHP:
PRINT("%s\r\n", "Combined Bar and Line chart,
automatic labels calculation, 2 axes only");
SET_CHART_CLIP(580, 40, 780, 240);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_y, vert_axe, true, graf_bar_just);
CALC_SCALE(arr_y1, vert_axe, false, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4,
horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(3, arr_x, arr_y, 10, arr_shifts);
PLOT(4, arr_x, arr_y1, 10, arr_shifts);
PLOT(2, arr_x, arr_y, 10);
http://cortex.snowcron.com/images/script_sample_03.gif
لنقوم الأن بإنشاء شارت شريطي ثلاثي الأبعاد ، كالمثال السابق ولكن مع اظافة ظلال الأعمدة
الجزء السابع
كود PHP:
PRINT("%s\r\n", "Combined Bar3d and Line chart,
automatic labels calculation, 2 axes only");
SET_CHART_CLIP(40, 280, 300, 480);
for(i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
}
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_y, vert_axe, true, graf_bar_just);
CALC_SCALE(arr_y1, vert_axe, false, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4,
horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(5, arr_x, arr_y, 10, arr_shifts);
PLOT(6, arr_x, arr_y1, 10, arr_shifts);
PLOT(2, arr_x, arr_y, 10);
التخطيطات الشريطية المرصوفة لها صعوبة أكثر قليلا (لاحظ طريقة تمرير الجدول arr_shifts) :
الجزء الثامن :
كود PHP:
PRINT("%s\r\n", "Combined Stacked Bar and Line chart,
automatic labels calculation, 2 axes only");
SET_CHART_CLIP(340, 280, 560, 480);
array arr_delta = CREATE_ARRAY(0);
for(i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
arr_delta[i] = 0;
}
GET_STACKED(arr_y, 10, arr_delta);
GET_STACKED(arr_y1, 10, arr_delta);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_delta, vert_axe, true, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4,
horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(7, arr_x, arr_y, 10, arr_shifts);
PLOT(8, arr_x, arr_y1, 10, arr_shifts);
PLOT(2, arr_x, arr_y, 10);
http://cortex.snowcron.com/images/script_sample_05.gif
مثل المثال السابق يمكننا أن نضيف إلى الأشرطة تأثير 3d :
المثال التاسع :
كود PHP:
PRINT("%s\r\n", "Combined Stacked Bar3d and Line chart,
automatic labels calculation, 2 axes only");
SET_CHART_CLIP(600, 280, 840, 480);
for(i = 0; i < 20; i = i + 1)
{
arr_shifts[i] = 0;
arr_delta[i] = 0;
}
GET_STACKED(arr_y, 10, arr_delta);
GET_STACKED(arr_y1, 10, arr_delta);
CALC_SCALE(arr_x, horiz_axe, true, graf_no_just);
CALC_SCALE(arr_delta, vert_axe, true, graf_bar_just);
SET_AXE(horiz_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_1, 5, horiz_text, nNumbersX);
SET_AXE(horiz_axe_2, 5, horiz_text, nNumbersX);
SET_AXE(vert_axe_2, 5, horiz_text, nNumbersX);
DRAW_AXES(blue, red, ps_dot, green, 1, 4,
horiz_axe_1 + vert_axe_1);
DRAW_CROSS();
PLOT(9, arr_x, arr_y, 10, arr_shifts);
PLOT(10, arr_x, arr_y1, 10, arr_shifts);
PLOT(2, arr_x, arr_y, 10);
http://cortex.snowcron.com/images/script_sample_06.gif
واخيرا نحن بحاجة إلى إغلاق سكربتات الرسم ،وتظهر لنا النتيجة في لوحة الرسم .
الجزء العاشر :
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
جزاك الله خيرا اخى الكريم
فى الجزء الثانى من الكود ..نعرف ان اىجدول مكون من محورين س و ص
فماهو دور المحور الثالث array arr_y1 اذا جازان نسميه محور ؟
ماهو دور الوظيفة PLOT ?
وفى اعتقادك ماهو الشارت او الشارتين الأكثر استخداما من الشارتات السابقة ؟
تقبل مودتى
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
اقتباس:
المشاركة الأصلية كتبت بواسطة جرير
جزاك الله خيرا اخى الكريم
فى الجزء الثانى من الكود ..نعرف ان اىجدول مكون من محورين س و ص
فماهو دور المحور الثالث array arr_y1 اذا جازان نسميه محور ؟
ماهو دور الوظيفة PLOT ?
وفى اعتقادك ماهو الشارت او الشارتين الأكثر استخداما من الشارتات السابقة ؟
تقبل مودتى
مرحبا بك أخي العزيز
بالنسبة لسؤال الأول :
استخدمنا جدول واحد للمحور س وجدولين للمحور ص (ادخلنا مجموعتين من البيانات اللذان يشتركان في نفس المحور س )
بالنسبة لسؤال الثاني :
PLOT ، هي وظيفة هامة ،و هي لإعداد أسس الشارت (عدد البينات ،المحاور ..إلخ )
بالنسبة لسؤال الثالث :
هذا درس تعليمي ، لنعرف كيف نرسم شارت و وإستخراج الرسم الأحسن والمناسب
إن شاء الله الشارت الذي سنستعمله في تعليم الشبكة واختبارها ،هو شارت يشبه شارت العملة
إن شاء الله أكون أجبت عن سؤالك
وان لديك أي اسئلة أخرى أنا تحت أمرك
وجزاك الله خيرا
ووفقك الله في طلب العلم ونشره
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
يا جماعة أنا مسافر وسأغيب مدة 10 أيام
إن شاء الله لما أرجع انواصل
أرجو أن تستغلوا هذه المدة في تدارك ما فاتكم
والبحث عن أكثر معلومات عن الشبكة العصبية
أراكم عن قريب إن شاء الله
أستودعكم الله الذي لا تضيع له ودائع
والسلام عليكم ورحمة الله وبركته
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
اقتباس:
المشاركة الأصلية كتبت بواسطة ahmedfeki
يا جماعة أنا مسافر وسأغيب مدة 10 أيام
إن شاء الله لما أرجع انواصل
أرجو أن تستغلوا هذه المدة في تدارك ما فاتكم
والبحث عن أكثر معلومات عن الشبكة العصبية
أراكم عن قريب إن شاء الله
أستودعكم الله الذي لا تضيع له ودائع
والسلام عليكم ورحمة الله وبركته
رافقتك السلامه اخي الكريم
ننتظرك بفارغ الصبر
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
طيب سؤال ..
هل هذا يعني انه لايوجد اكسبرت خاسر ؟؟
بمعنى انه لو كان هناك اكسبرت يحقق صفقة واحده رابحه من 100 صفقة خاسرة
ستجعل الشبكة الاكسبرت يدخل بالرابحه ويترك 99 صفقه لأن نسبة خسارتها 99%
والسؤال الثاني يعتمد على الاول ,,
هل يمكن تحويل اكسبرت بنفس الاداء الى اكسبرت بالشبكة العصبية .؟
وشكرا
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
منتظرينك بالسلامة أخى احمد
تقبل كامل احترامى وتقديرى
سلام عليكم
رد: على بركة الله دورة إنشاء اكسبيرت يعتمد على الشبكة العصبية
مضى 5 ايام وبقى 5 ايام عودا حميا بأمر الله تعالى أخى احمدتقبل ودى