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

مشاهدة النسخة كاملة : سلسلة شروحات الأكشن سكريبت رقم 2 المصفوفات جزء أول


عبود عبود
11-09-2013, 03:07 AM
http://i.imgur.com/57UrtCm.gif

http://i.imgur.com/emf2NIh.gif

:abc_012: ملحوظة : أحببت التمهيــــد أكثر لفهــــم الأكش سكريبت أولا حتى يمكن فهــــــم أو إستيعاب تلميحاتى فى الشرح ومن ثم سوف نتابع بعـــــد توصيل بعض المعاريف أو التعاريف الأولية لقواعد التعامل مع الأكشن سكريبت وسوف نعود مرة أخرى للأوديو لتفصيل شيئ بسيط للمبتدئين فيما قد ذكرناة سابقا .


المصفوفات

هى مجرد حاوية لتخزين قيم قد تكون نصية أو رقمية وهى عبارة عن مجموعة أزواج من المفاتيح و القيم موضوعة داخل مجموعات صغيرة والتى تعرف بـــ associative arrays والتى تمثل بقوسين صغيرين كـمثال ([1])
وتكون رمز المصفوفات بعلامة القوسين الكبيرين {}
وتمكن من وضع المجموعات الصغيرة فيها حيث يسهل بعد ذلك الوصول إلى أى مجموعة منها من خلال وضع المفاتيح أو القيم لها

http://i.imgur.com/NfWIHC5.gif

كيفية كتابة مصفوفة أو كيفية الإعلان عن مصفوفة


يتم الإعلان عن المصفوفة عن طريق وضع متغير يعبر عنها لتسهيل التعامل معها فمثلا هنا سوف أكتب متغير إسمة F وذلك للتعبير عنها فتكون المصفوفة كالتالى :
f = {}
هنا أعلنت عن إسم المصفوفة بحرف F وقمت بفتح القوسين الكبيرين و المعبرين عن المحتويات للمصفوفة
ونلاحظ أن بداخل الأقواس فارغة و لم يوضع أى شيئ
وعندما ندرج عناصر داخل المجموعة يتم ذلك بثلاث طرق
الطريقة الأولى هى طريقة النصوص
الطريقة الثانية هى طريقة المفاتيح
الطريقة الثالثة هى طريقة الدمج نصوص و مفاتيح

:abc_012: سوف أقوم بشرح الطرق كالآتى بالتدريج و بدون تمييزها و ترك المجال للقارئ لإستيعاب الطرق من خلال قدرتة على التمييز لما أريد أن أشير إلية بالشرح :


على سبيل المثال نريد أن ندرج نص داخل المجموعة أو المصفوفة F
هنا لابد من كتابة النص داخل علامة تنصيص إما علامة تنصيص فردية ' أو علامة تنصيص زوجية "
فعلى سبيل المثال نريد إدخال نص وليكن abood داخل المجموعة F فتكون النتيجة للكتابة كالتالى :

f = {"abood"}


أو


f = {'abood'}


إلى هنا تم إدراج الإسم أو النص عبود داخل المصفوفة إف
طيب إذا قلنا سابقا أن المصفوفة تحتوى على مجموعة من مفاتيح وقيم إذا المصفوفة لها عدد مكون لها .
من المعروف أن المصفوفة تبدأ من اليسار إلى اليمين إذا كم عنصر تم إدراجة إلى الآن فى المصفوفة ؟
تم إدراج عنصر واحد فقط فى المجموعة و كان عبارة عن نص فما هو ترتيب هذا العنصر ؟
ترتيب العنصر السابق كان رقم 1 فى المجموعة F
كيف سيتم إستدعاء هذا العنصر من داخل المجموعة أو المصفوفة ؟
سوف يتم إستدعاء هذا العنصر من داخل المجموعة أو المصفوفة وذلك بمعرفة إسم المجموعة و ترتيب العنصر فى المجموعة
فيكون كالتالى :

f [1]




:abc_012: تطبيق عملى على المثال السابق إفتح مشروع وقم بوضع الكود التالى و المعبر عن المجموعة و رسالة لإظهار النتيجة و قم بالمعاينة :


--

f = {"abood"}

Dialog.Message("Notice", f[1], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);



أو


--

f = {'abood'}

Dialog.Message("Notice", f[1], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);





إذن فيما سبق قمنا بإدراج نص فى مجموعة فهل يمكن أن ندرج متغير فى مجموعة أو المصفوفة ؟
فعلى سبيل المثال لدينا متغير c وهذا المتغير يساوى نص فكيف يتم إدراجة فى المجموعة أو المصفوفة ؟
فمثلا كان لدينا :


c = "hazem"



ووضعا هذا فى المصفوف فكان كالتالى :


f = {c = "hazem"}



كيف نقوم بإستدعاء قيمة المتغير c من داخل المجموعة F ?
هنا سوف نستخدم علامة النقطة . لتنفيذ هذة المهمة فتكون نتيجة الإستدعاء لقيمة المتغير c كالتالى :


إسم المصفوفة F و علامة نقطة . و إسم المتغير c


فتكون النتيجة النهائية عند الإستدعاء كالتالى :


f.c




:abc_012: تطبيق عملى على المثال السابق إفتح مشروع وقم بوضع الكود التالى و المعبر عن المجموعة و رسالة لإظهار النتيجة و قم بالمعاينة :


--

f = {c = "hazem"}

Dialog.Message("Notice", f.c, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);




:abc_012: إذا قلنا أن إستدعاء قيمة المتغير c تكتب هكذا [f[1 هل هذا سوف يكون صحيح ؟ إقتداءا بالمثال الأول حيث المتغير c هو يعتبر رقم 1 فى المجموعة أو المصفوفة f ؟

:abc_012: طبعا خطـــــأ ولا يمكن ذلك . :abc_086:

:abc_012: إذا قلنا أن إستدعاء قيمة المتغير c تكتب هكذا [f[c هل هذا سوف يكون صحيح ؟ إقتداءا بالمثال الأول حيث المتغير c هو يعتبر رقم 1 فى المجموعة أو المصفوفة f ؟

:abc_012: طبعا خطـــــأ ولا يمكن ذلك . :abc_086:



:abc_113: برجاء القراءة بعناية فكل ما أكتبة أقصدة بالفعل فهناك إختلاف كبير بين [f[1 و [f[c .


:abc_083: فــــ [f[1 يصلح للإستدعاء فى حالة عدم وجود متغيرات للعنصر كما سبق فى الشرح .
:abc_083: أما [f[c فكيف سيميز مترجم البرنامج حرف الـــ c ? لن يستطيع .


طيــــب هل هناك طريقة أخرى لإستخراج قيمة المتغير c من المصفوفة f ؟
نعم سوف ندرج المتغير c بين علامتى تنصيص مع العلم تماما أنة متغير هههههه كما أشرنا
وبعد إدراج علامتى التنصيص للمتغير c سوف يكون أو تكون القراءة صحيحة فيكون نتيجة الإستدعاء كالتالى :



f["c"]


:abc_012: تطبيق عملى على المثال السابق إفتح مشروع وقم بوضع الكود التالى و المعبر عن المجموعة و رسالة لإظهار النتيجة و قم بالمعاينة :


--

f = {c = "hazem"}

Dialog.Message("Notice", f["c"], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);




:abc_012: طبعا بالنسبة لإدخال الأرقام فى المصفوفة لا مشكلة و لا يلزم إدراج علامة التنصيص

لنا عودة مرة أخرى لتعقيد المصفوفة تدريجيا:abc_065: حتى نفهمها جيدا ولا ننساها ولا تسبب لنا أى مشكلة فى إستيعابها


http://i.imgur.com/NfWIHC5.gif


أكتفى بهذا القدر البسيط اليوم

:abc_138: يمكن تحميــل الشرح من المرفقات فقد تم تحويلة إلى كتـاب بى دى إف :abc_138:

http://i.imgur.com/2GnNEXz.gif
http://i.imgur.com/Nz3B0Vj.gif

القنـاص المصرى
11-09-2013, 04:45 AM
راااااااااااااااااااااااا اااااائع يا استاذ عبود ولك جزيل الشكر

azizsoft
11-09-2013, 05:41 AM
بسم الله الرحمن الرحيم

بارك الله فيكم استاذ عبود
شرح مميز ومنسق

وفقكم الله في مسعاكم

النصل القاطع
11-09-2013, 06:14 AM
ممتاز أخى عبود

f = {c = "hazem"}

Dialog.Message("Notice", f["c"], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

هذه جديدة
أقصد new
:abc_152:

امل الماضي
11-09-2013, 08:00 AM
جزاك الله الخير كله
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
موفق بإذن الله ... لك مني أجمل تحية . موفق بإذن الله ... لك مني أجمل تحية .
في انتظار ماتبقى
الف شكر

عبود عبود
11-09-2013, 11:49 AM
ممتاز أخى عبود

f = {c = "hazem"}

Dialog.Message("Notice", f["c"], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

هذه جديدة
أقصد new
:abc_152:


:abc_065: أكيــــــــد مش قلنا الشرح بالتفصيل الممل يبقى لازم هناك خفايا بمثابة أسرار وغير مرئية عبر المرور السريع و عدم التركيز :abc_138:

عبود عبود
11-09-2013, 11:50 AM
بسم الله الرحمن الرحيم

بارك الله فيكم استاذ عبود
شرح مميز ومنسق

وفقكم الله في مسعاكم

بارك الله لك أخى عزيز :abc_138:

Haitham.2012
11-09-2013, 12:21 PM
ما شاء الله عليك اخي الامير ... وكما قال استاذي العزيز " النصل القاطع " فعلا نقطه جديده

:abc_152: شكرا لك :abc_152:

عبود عبود
11-09-2013, 12:29 PM
شكرا لمرورك الجميــــــــــل أخى هيثم ............. جزاك الله خيـــــــــرا

أتمنى أن أستطيع أن أقـــــــدم جزء بسيــــــــط مما قد يفيــــــد ويسهـــــــل الأمور على الآخرين

:abc_138: بالتوفيق لنـــــــــا جميعــــــــــــا :abc_138:

أبو يوسف
11-09-2013, 03:02 PM
جزيل الشكر لك اخانا عبود ، وما شاء الله الكل يتفاعل

.

النصل القاطع
11-09-2013, 04:14 PM
كبناء على الكود السابق

f = {c = {b="hazem" , f="ali" , r="khaled"}, d={k="hazem2" , h="ali2" , q="khaled2"}, e={z="hazem3" , x="ali3" , v="khaled3"}}

Dialog.Message("Notice", f["d"]["q"], MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
f هى حاملة مصفوفات و بها 3 مصفوفات
c و d و e
و بكل مصفوفة من الثلاثة مصفوفات يوجد 3 عناصر

هنا سنستدعى العنصر q من المصفوفة d التابعة للمصفوفة f

واحدة بواحدة
خالصين ؟؟ :abc_113:

النصل القاطع
11-09-2013, 05:04 PM
غالبا لا نحتاج للإعلان عن المصفوفة بالقوسين الفارغين إلا فى حالة ملئها عن طريق حلقة
فيجب الإعلان عنها قبل الحلقة

يستخدم الإعلان لغرضين
إما الإعلان عن المصفوفة أو تفريغ المصفوفة من محتوياتها

ففى مثالى السابق
f = {c = {b="hazem" , f="ali" , r="khaled"}, d={k="hazem2" , h="ali2" , q="khaled2"}, e={z="hazem3" , x="ali3" , v="khaled3"}}

فإن وضع الكود
f={}
فى أى مكان لاحق لكود الإنشاء
يؤدى فورا لتحويل f لمصفوفة فارغة

أنا هنا أعتمد أسلوب المناقشة
لو تريد إكمال الموضوع بدون تدخل فقط خبرنى
:abc_152:

عبود عبود
11-09-2013, 06:42 PM
غالبا لا نحتاج للإعلان عن المصفوفة بالقوسين الفارغين إلا فى حالة ملئها عن طريق حلقة
فيجب الإعلان عنها قبل الحلقة

يستخدم الإعلان لغرضين
إما الإعلان عن المصفوفة أو تفريغ المصفوفة من محتوياتها
:abc_152:


يبدو أنك فهمتنى خطأ :abc_065:

لقد وضحت للقارئ فقط معنى المصفوفة كشكلا و كإسما :abc_065: ثم قلت كيف يكون شكلها عندما تكون فارغة و عندما يدرج فيها عناصر :abc_113:

وتدرجت فيها كعنصر واحد فقط عندما يكون نصى و عندما يكون متغير ولمحت لطريقتها مع العناصر الرقمية


أما عن المصفوفة التى وضعتها أنت فكان من المقرر لها فى الجزء الثانى حيث قلت أننا سوف نعقد الأمور تدريجيا
و إنت كدة حرقت اللى أنا كنت هقوم بية هههههههه :abc_086:

مرحبا بالنقاش و بخاصة مع أستاذى و لكن أخاف أن أسأل ثم لا أجدك :abc_070: مثل الرسائل الخاصة و التى كانت ستكون بناءة
حيث كنت سأتعلم منك أو كنت سوف ألفت إنتباهك إلى أى شيئ قد لا تراة من وجهتة نظرى كمبتدئ لكنى فوجئت بالتجاهل .

فلا يهمنى من فينا سوف يصل للمعلومة أولا ولكن يهمنى من سيوصل المعلومة للآخرين بمستوياتهم المبتدئة

أتمنى أن لا نقطع النقاش و بخاصة فى العلم مهما كانت الأسباب .

الأسئلة كثيرة جدا جدا ولكن هل من مجيــــــب و بخاصة عند مراحل معينة يهمنا أن نعرف الكثير

:abc_138: إستمـــــــــر أستاذى خالد فى العطـــــــــــاء و بخاصة فى مثل تلك المواضيع المهمة لكافة المستويات فربما يغفل الكثير عن أشياء ولو قليلة .:abc_138:

تحياتى و تقديرى

النصل القاطع
12-09-2013, 10:20 AM
يبدو أنك فهمتنى خطأ :abc_065:

كلا أخى بل فهمتك جيدا و شرحك ممتاز
فقط قصدت التنبيه على خطورة الإعلان عن مصفوفة غير فارغة فهذا يؤدى لتفريغها ( و هذا أيضا له ضرورة برمجية فى بعض الحالات)


أما عن المصفوفة التى وضعتها أنت فكان من المقرر لها فى الجزء الثانى حيث قلت أننا سوف نعقد الأمور تدريجيا
و إنت كدة حرقت اللى أنا كنت هقوم بية هههههههه :abc_086:


أنت تتولى تسلسل الموضوع
القراء على مستوياتهم يعلقون على الموضوع
و أنت كمدير لموضوعك لك الحق فى الإستفادة من أى رد من أى شخص و دمجه بداخل ردودك بعد صياغته بأسلوبك ووفقا لتسلسل شرحك
و يكون لك شكرين
شكر عن شرحك الخاص و شكر على تنظيم و تنسيق الردود التى تستحق الدمج





وقت ما يحلو لك
أكمل حلقاتك يا بطل
و سيتم دمج الحلقات بالمشاركة الأولى فيما بعد

و لا تقلق
أنا دائما موجود للعطاء و لمساعدة من يرغب فى العطاء على العطاء

فقط إعلم أن المصفوفات من أخطر الكائنات البرمجية و لها العديد من الحيل و الأسرار

تقبل تحياتى

عاصم المرابطي
12-09-2013, 09:27 PM
Thaaaaanks

الهمام
15-09-2013, 04:34 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

abohmam
15-09-2013, 10:48 PM
بارك الله فيك أخانا عبود

ماشاء الله سلسلة دروس رائعة واحترافية

:teslam_2:

والشكر موصول لمشرفنا النصل القاطع على المتابعة والإضافة

الكبيراوى
28-09-2013, 07:27 PM
https://lh6.ggpht.com/ljsBlBRMogh_nP_CuBBoS3ux8F6J5KB8Uo4A-75cCGGKj9RyVTEMUyE_nP9-Nhwk99bw=w300

ياسرهتهت
29-09-2013, 04:27 PM
السلام عليكم ورحمة الله وبركاته شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

فرح صالحي
28-11-2013, 01:06 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

خيبر خيبر
03-12-2013, 02:30 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . :abc_113:

ابو المجاهدين
03-05-2014, 12:58 PM
السلام عليكم ورحمة الله وبركاته
موفق بإذن الله ... لك مني أجمل تحية .

أبو فارس
03-05-2014, 02:36 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

سمسم يو
01-10-2014, 02:03 PM
http://im57.gulfup.com/0yI0fI.jpg (http://www.gulfup.com/?ZRjgmC)

محمد رشاد الهادي
17-03-2015, 11:50 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

أبو الريم
26-06-2015, 04:06 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

نجوم ليبيا
14-08-2015, 06:41 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

الحارث بن فيصل
20-08-2015, 11:07 PM
:teslam:

شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

منوبة
22-08-2015, 07:44 PM
ماشاء الله اخي عبود شرح روووووووووووووعة
بارك الله فيك
:abc_152::abc_152:

عظيمه
29-12-2015, 11:42 PM
السلام عليكم ورحمة الله وبركاته
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

مصطفى ربيع
30-12-2015, 04:58 AM
موفق بإذن الله ... لك مني أجمل تحية .

عظيمه
10-01-2016, 10:35 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
موفق بإذن الله ... لك مني أجمل تحية .

محمد سامر
12-08-2016, 03:40 AM
موفق بإذن الله ... لك مني أجمل تحية . :abc_088:

بلقيس
12-08-2016, 05:38 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

ح د فتحي
22-12-2017, 03:52 AM
السلام عليكم ورحمة الله وبركاته شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . ألف مبروك .. لقد سعدت بهذا الخبر

جمال سات
12-05-2020, 11:47 PM
بارك الله فيك

فهد الشيخ
27-01-2021, 08:08 AM
شرح مبسط .. بارك الله فيك