ياسر خليل أبو البراء قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أعتقد أن الوقت الذي انقضى على الحلقة الأولى من هذه الدورة الخاصة بالمصفوفات يكفي وزيادة ، وأعتذر عن التأخر في مواصلة الدورة ، فأنتم تعرفون مشاغل الحياة .. رابط الحلقة الأولى نبدأ على بركة الله الحلقة الثانية من حلقات "دورة كاملة في المصفوفات" ، ويا ريت اللي لسه أول مرة يشوف الموضوع ، إنه يقرا الحلقة الأولى عشان يقدر يتواصل معانا .. مش عايزين نكرر المعلومة إلا للضرورة ، وعشان يقدر يتابع الجديد (دا لو فيه متابعين من الأساس) هنبدأ نتكلم عن أنواع المصفوفات : فيه نوعين النوع الأول وهو المصفوفة الثابتة يعني لها أبعاد ثابتة مش بتتغير والنوع الثاني وهو المصفوفة الديناميكية يعني غير الثابتة ودي بيتم تحديد أبعادها أثناء عمل الكود ، وممكن تتحدد في أول الكود بأبعاد محددة ، وممكن تغيرها أثناء الكود إذا لزم الأمر ... الإعلان عن المصفوفة الثابتة -------------------------------- دا مثال لأكثر من طريقة للإعلان عن المصفوفة الثابتة المحددة الأبعاد ..نشوف الكود ونضع مؤشر الماوس داخل الكود ومن لوحة المفاتيح زي ما اتعلمنا نضغط F8 ونروح نبص على نافذة اللوكال Sub DecArrayStatic() Dim arrMarks1(0 To 3) As Long Dim arrMarks2(3) As Long Dim arrMarks3(1 To 5) As Long Dim arrMarks4(2 To 4) As Long End Sub نمسك سطر سطر عشان نفهم إزاي بيتم الإعلان .. السطر الأول بعد ما كتبنا اسم المتغير (اللي هو من النوع مصفوفة) بين قوسين كتبنا من 0 إلى 3 أي أن فهرس المصفوفة سيكون عبارة عن 0 ، 1 ، 2 ، 3 .. السطر الثاني زي الأول بالضبط بمعنى إن الفهرس عبارة عن 0 ، 1 ، 2 ، 3 .. طيب ليه؟ لأن الافتراضي للمصفوفات إن الفهرس بيبدأ من الرقم صفر .. بكدا نفهم إزاي نتعامل : يا إما أحدد بداية الفهرس ولو حددتها صفر أو سبتها من غير ما أحدد البداية يبقا النتيجة واحدة السطر الثالث بداية المصفوفة 1 ونهايتها 5 أي 5 عناصر داخل المصفوفة السطر الرابع بداية المصفوفة 2 ونهايتها 4 أي عدد العناصر 3 عناصر .. نفهم من الأسطر دي إن فيه مرونة كبيرة في التعامل مع المصفوفات يعني ممكن أبدأ من أي رقم وأنتهي بأي رقم (منتهى المرونة ... بس مش مرونة بشكل كبير) ..دا لأن عملياً صعب أحدد أبعاد المصفوفة ، لأن من خصائص البيانات إنها متغيرة ، فلو مثلاً عندنا مدرسة لها قاعدة بيانات ، فالقاعدة متغيرة .. عدد الطلاب مش ثابت (طالب حول من المدرسة - طالب حول إلى المدرسة) بالتالي العدد غير ثابت ، ومن هنا لازم نتعلم النوع التاني من المصفوفات اللي هو الديناميكي أي المرن أي الغير ثابت الإعلان عن المصفوفة الديناميكية ------------------------------------- هنا بيتم الإعلان عن مصفوفة غير محددة الأبعاد ، ويمكن بعد كدا من خلال الكود تحديد أبعادها باستخدام كلمة اسمها ReDim .. Sub DecArrayDynamic() Dim arrMarks() As Long ReDim arrMarks(0 To 5) End Sub السطر الأول فتحنا قوس وقفلناه بعد اسم المتغير وبس .. بكدا وببساطة أعلنا عن المصفوفة الديناميكية .. وفي السطر الثاني لو حبيت أحدد أبعادها بستخدم الكلمة ReDim ويمكنك تحديد أبعادها اعتماداً على نطاق ديناميكي .. مثال : لو عندك طلاب وقلنا إن عددهم غير ثابت ، يبقا بتعلن عن المصفوفة وتخليها من النوع الديناميكي واثناء الكود بتشوف عدد الطلاب من خلال أسطر أخرى ، وعلى أساس الأسطر الأخرى بتحدد أبعاد المصفوفة ..يعني التحديد مبيكونش مسبق زي النوع الأول ..التحديد للأبعاد بيكون أثناء عمل الكود ننتقل لجزئية جديدة ألا وهي تعيين قيم لعناصر المصفوفة بيتم تعيين قيم للمصفوفة سواء كانت ثابتة أو ديناميكية من خلال معرفة رقم العنصر في الفهرس بالمثال يتضح المقال ودا كلام مفيهوش جدال Sub AssignValue() Dim arrMarks(0 To 3) As Long arrMarks(0) = 5 arrMarks(3) = 46 arrMarks(4) = 99 End Sub دا مثال في السطر الأول أعلنا عن المصفوفة اللي أبعادها من 0 إلى 3 أي عدد عناصرها يساوي 4 ( 0 - 1 - 2 - 3) السطر التاني وضعنا القيمة 5 لمين ؟ للعنصر اللي رقم فهرسه 0 السطر الثالث وضعنا القيمة 49 لمين؟ قولوا إنتو يا حلوين !! للعنصر اللي رقم فهرسه 3 السطر الرابع بقا ونركز عشان دا مهم .. وضعنا القيمة 99 لمين؟ نفس الكلام يا حلوين !! للعنصر اللي رقم فهرسه 4 (بس عندك ستوب STOP) ارجع تاني لأول سطر .. إحنا عندنا أبعاد المصفوفة من 0 إلى 3 يعني أول رقم فهرس عندي صفر وآخر رقم فهرس عندي 3 ... يعني الـ 4 مش موجودة (طبعاً لدواعي أمنية ..ما إحنا عارفين 4 من الأرقام المحظورة دلوقتي) طيب تتوقع ايه بعد تنفيذ السطر ؟؟؟!!!..مننساش إننا وإحنا بنتعلم مش بنفذ الكود مرة واحدة ... راجع الحلقة الأولى .. إحنا بنستخدم نافذة اللوكال ونضغط على F8 وواحدة واحدة عشان نستوعب المهم يرجع مرجوعنا لموضوعنا : بعد تنفيذ السطر الأخير هيظهر لنا رسالة خطأ بالشكل دا لأن رقم الفهرس دا مش موجود ننتقل لجزئية جديدة فيه طرق تانية لتعيين قيم للمصفوفة وهي باستخدام الدالة Array ، ودي ممكن نستخدمها عشان نخزن من خلالها قيم المصفوفة بالشكل التالي Sub ArrayFunction() Dim Arr1 As Variant Arr1 = Array("Orange", "Peach", "Pear") Dim Arr2 As Variant Arr2 = Array(5, 6, 7, 8, 12) End Sub مع استخدام الدالة دي بنعلن عنها من النوع Variant .. في السطر الأول والثاني تم الإعلان عن المصفوفة من النوع Variant وقمنا بوضع القيم بين أقواس .. ونلاحظ أقواس التنصيص أننا بنتعامل مع نصوص في قيم المصفوفة دي في السطر الثالث والرابع نفس الإعلان وقمنا بوضع القيم بين أقواس بي هنا مفيش أقواس تنصيص لأننا بنتعامل مع قيم رقمية نفذ الكود باستخدام F8 ولاحظ نافذة اللوكال بنفسك لاحظت ؟؟!! اللي لاحظ يرفع ايده .. برافو برافو محدش لاحظ حاجة .. روح لعمود الـ Type في نافذة اللوكال بعد تعيين القيم للمصفوفة ولاحظ نوع المتغير بقا متغير ...يعني بعد ما كان Variant نلاحظ اتكتب مثلاً في حالة المصفوفة الأولى اللي بتتعامل مع النصوص اتكتب String ومع المصفوفة الثانية اتكتب Integer .. وحاجة تانية إن أول رقم فهرس في المصفوفتين بيبدأ من صفر لأن دي البداية الافتراضية (مننساش يا واش يا واش) ************************************** نيجي لآخر جزئية في حلقة اليوم ألا وهي استخدام المصفوفة ودالة الإنشطار (Split Function) انشطار .. ربنا يكفينا شر النار .. !! انشطار ايه ؟! هو إنت بتصنع قنابل نووية .. الانشطار يا شطار معناه تقسيم الشيء لأجزاء صغيرة .. قطعه حتت وارميه للقطط نتكلم جد وبلاش هزار .. نشوف المثال ده Sub SplitFunction() Dim str As String str = "Red,Yellow,Green,Blue" Dim arr() As String arr = Split(str, ",") End Sub في السطر الأول أعلنا عن متغير من النوع النصي وفي السطر الثاني وضعنا قيمة المتغير النصي بين أقواس تنصيص وبيفصل بين الكلمات الموجودة في النص علامة الفاصلة (Comma) .. في السطر التالت أعلنا عن المتغير باسم Arr ووضعنا أقواس بمعنى إنها مصفوفة ديناميكية (صحيح الكلام دا مش صحيح ، بس دا مجرد مثال عشان نفهم دالة الإنشطار Split) آخر وأهم سطر وهو دا اللي يهمنا في الكود اللي فات وهو استخدام الدالة وهي دالة بسيطة جداً ومفيدة جداً جداً جداً جداً ..كفاية عشان ايدي تعبت تكوينها ببساطة اسم الدالة وبنفتح قوس ... البارامتر الأول الحاجة اللي عايزين نعملها إنشطار وهي كما في المثال النص اللي بين أقواس تنصيص "Red,Yellow,Green,Blue" وبعدين فاصلة وبعدين البارامتر الثاني وهو نوع الفاصلة اللي هيتم على أساسها عملية الإنشطار ..ممكن تكون الفاصلة دي مسافة أو أي نوع من أنواع الفواصل بين الكلمات .. وهنا استخدمنا الفاصلة Comma ووضعناها بين أقواس تنصيص لاحظ أن المصفوفة المسماة Arr بعد تنفيذ السطر الأخير حملت في 4 عناصر (من 0 إلى 4) وهي العناصر اللي فصلنا بينها بالفاصلة ، لتصبح المصفوفة حاملة (في الشهر الرابع) حاملة لأربع قيم وهي Red و Yellow و Green و Blue .. وإلى هنا تعبت يداااااااااااااااااي ولم أعد أستطيع المواصلة ، فقد كان المشوار طويل ... لمزيد من الدعم لصاحب الموضوع (ودا اختياري مش إجباري) .. ولو عندك وقت فاضي لمدة دقيقتين اتنين تابع الرابط الإعلاني في الرابط التالي (سيكون عبارة عن سلسلة من الإعلانات ..قم بالضغط على Skip Ad بعد كل 5 ثواني ... وأكرر دا مش إجباري دا اختياري ، يعني لو وقتك ميسمحش أنا مسامح .. حمل الملف الذي يحتوي على أكواد الموضوع من هنا وأخيراً تقبلوا وافر تقديري واحترامي كان معكم أخوكم أبو البراء من منتدى الأحبة منتدى أوفيسنا 10
محي الدين ابو البشر قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 السلام عليكم وجمعة مباركة يإذن الله استاذ ياسر بارك لله بك وجزاك كل خير تستحقه شرح رائع 1
ياسر خليل أبو البراء قام بنشر أبريل 1, 2016 الكاتب قام بنشر أبريل 1, 2016 وعليكم السلام ورحمة الله بارك الله فيك أخي الحبيب محي الدين وجزيت خيراً على مرورك العطر بالموضوع
نايف - م قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 أستاذ ياسر أنت بتأمر أمر مو معقول - طلب بسيط لشخص أفضاله على كل المنتدى تكرم عيونك يا أخي و شكرا للوقت اللي عم تفقده من أجل تعليمنا 1
saad abed قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 (معدل) استاذ ياسر ابوالبراء السلام عليكم ورحمة الله مهما كتبنا شكرا لك فان ما تقدمه لنا اكثر بكثير حلول وشروحات مفيده للغاية اعزكم الله نصركم الله بارك الله لك في مالك وولدك جزاكم الله خيرا بنجمع الدروس ونريد في نهاية الدروس احنا طمعين شوية المصفوفات بالذات ليس لها شروحات واضحة في المنتديات العربيه وانت تعلم انها الخطوه المهمه للبرمجه حيث تتعامل مع البيانات الكبيره والمصفوفه ليست داله كما اعلم وانما هى متغيرات كثيره تحت متغير واحد فنرجو طرح امثله عملية ثم ثم تشرح لنا كيف فكر في المثال ابوالبراء للوصول للهدف اتمنى ان يكون وصل المطلوب تم تعديل أبريل 1, 2016 بواسطه سعد عابد 2
أبوبسمله قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 جزاك الله كل خير يا ابو البراء جعله الله فى ميزان حسناتك وبارك الله لك فى اهلك ومالك وكل ما تحب ورزقك من حيث لاتحتسب تقبل تحياتى ياغالى 1
قلم-الاكسل(عبدالعزيز) قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 شكرا لك استاذنا او البراء باركك الله ونفع بعلمك ولا حرمك من غناه وعافيته وعفوه واصل شرحك ولا تنقطع عنا 1
ياسر خليل أبو البراء قام بنشر أبريل 1, 2016 الكاتب قام بنشر أبريل 1, 2016 إخواني وأحبابي في الله بارك الله فيكم وجزاكم الله خير الجزاء على دعواتكم الطيبة وشعوركم الطيب تجاهي هذا أقل واجب تجاه إخواني أن أقوم بتقديم ما تعلمته لكم بخصوص الأمثلة التطبيقية لا أعلم لما العجلة أخي الحبيب سعد ..كل شيء بأوان !! عايزين نتعلم إزاي نتعلم صح ..انا ببحث في مواقع أجنبية وبعضها بيقدم الشرح بالشكل ده ..بتسلسل علمي ومنطقي .. عشان يكون الأساس صح ..مش مجرد موضوعات شرح نظري وفقط .. وبعدين طبق الأمثلة الموجودة وحاول تدرسها كويس وتفهم الأسطر اللي اتكتبت ومع الوقت والمتابعة هتلاقي نفسك فاهم كل شيء أو على الأقل معظم الأكواد المكتوبة .. وبعدها لما تشوف كود هتقدر تفهمه وتعدل عليه وتستفيد منه ، والتطبيق بيكون من خلال أسئلة الأعضاء والمشاكل اللي بتقابلهم أنا أطمح لبناء قاعدة صحيحة من التعلم التي يمكن السير على أساسها مش مجرد إضافة لموضوع جديد وخلاص ... فالرجاء الصبر .. بعد ما نخلص الأساسيات المفروض إننا نتعلمها الأول ..إن شاء الله هنواصل ونبدأ في طرح أمثلة وتدريبات عشان الموضوع يثبت ، وصدقوني باب المصفوفات هيفتح لك أبواب كثيرة مغلقة وهتحس بالفرق في التعامل خصوصاً إذا كانت البيانات كبيرة .. أرجو عدم الاستعجال ..خلينا نستوعب الموضوع واحدة واحدة ، وأنا بتعلم معاكم ، يعني مش أعلى من حد منكم ، كلنا المفروض بنفيد ونستفيد .. تقبلوا وافر تقديري واحترامي 2
saad abed قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 اخى الحبيب ياسر ابوالبراء عندك حق اكمل ونحن معك بارك الله فيك وجزاك الله خيرا 2
ياسر خليل أبو البراء قام بنشر أبريل 1, 2016 الكاتب قام بنشر أبريل 1, 2016 أنا قلت مجرد رأي شخصي يا أخي الغالي سعد .. وقد أكون مخطيء ولكن دعنا من الخطأ والصواب ولنركز على المعلومة التي تقدم لنا .. بالتأكيد طالما أنهم سبقونا إذاً أسلوب التعلم والمنهج الذي يسيرون عليه أفضل منا .. فلتكن البداية منهم والنهاية لنا تقبل تحياتي 2
أبوبسمله قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 توكل على الله يا ابو البراء وان شاء الله ستجدنا من الصابرين للتعلم وجزاك الله عنا كل خير تقبل تحياتى وتقديرى 2
ياسر خليل أبو البراء قام بنشر أبريل 1, 2016 الكاتب قام بنشر أبريل 1, 2016 وجزيت خيراً أيها المتعلم المجتهد والأخ الحبيب أحمد بارك الله فيك على مرورك العطر .. وإن شاء الله الصبر عواقبه طيبة وحسنة عايزين نشوف الشغل بعد الدورة دي .. مش مجرد معلومات بتتحفظ وخلاص ..عايزين تطبيقات عملية وحلول تقدم على أعلى مستوى إن شاء المولى تقبل تحياتي 1
أبوبسمله قام بنشر أبريل 1, 2016 قام بنشر أبريل 1, 2016 ان شاء الله تعالى يا ابوالبراء ربنا يعينا ونكون عند حسن ظنك واصل ياغالى
الصـقر قام بنشر أبريل 2, 2016 قام بنشر أبريل 2, 2016 (معدل) حبيبى يا ابوالبراء تسمح لى ان احجز مقعد ام الباب مغلق بصراحه شروحات ولا اروع من كدا بس انا منتظر الدخول فى منطقه الغريق يعنى توصل بالشروحات الى ابعد مدى انا بجد عايز استفيد جزاكم الله خيرا الجزاء وجعل اعمالك فى ميزان حسناتك تقبل منى وافر الاحترام والتقدير تم تعديل أبريل 2, 2016 بواسطه الصـقر 2
ياسر خليل أبو البراء قام بنشر أبريل 2, 2016 الكاتب قام بنشر أبريل 2, 2016 اخي وحبيبي في الله صاحب الأعمال المتميزة والمتألقة في المنتدى حسام عيسى إنه لشرف كبير مروركم العطر بالموضوع بارك الله فيك وجزاك الله كل خير على كلماتك الرقيقة إن شاء الله نتدرج إلى أن نصل لمنطقة الغريق (بس مش عايزين حد مننا يغرق هناك ..!! ربنا يجيب العواقب سليمة) خايف نوصل لمنطقة الغريق دلوقتي آلاقي نااااااااااس بتصرخ وتقول : إني أغرق إني أغرق .. جزيت خيراً على دعواتك الطيبة المباركة ولك بمثل إن شاء الله تقبل تحياتي 2
جلال الجمال_ابو أدهم قام بنشر أبريل 3, 2016 قام بنشر أبريل 3, 2016 جزاك الله خيرا دائما موضوعاتك متميزه 1
Yasser Fathi Albanna قام بنشر أبريل 3, 2016 قام بنشر أبريل 3, 2016 أخى وحبيبى وأستاذى ومعلمى الغالى / ياسر خليل ما شاء الله تبارك الله زادك الله من فضله وعلمه شرح أكثر من رائع وموضوع فى غاية الأهمية مع إنها متأخرة شوية بس حضرتك عارف الظروف تقبل خالص تحياتى وتقديرى 1
ياسر خليل أبو البراء قام بنشر أبريل 3, 2016 الكاتب قام بنشر أبريل 3, 2016 أخي الحبيب جلال الجمال أخي الغالي ياسر فتحي بارك الله فيكما وجزيتم خيراً على مروركما العطر بالموضوع .. وأرجو أن تكونوا قد استفدتم من الشرح المقدم تقبلوا وافر تقديري واحترامي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.