تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
المصفوفات درس شامل (2)
#1
كاتب الموضوع : المعرب


المصفوفـة متعددة الأبعـاد





عبارة عن مصفوفة تحتوى على عدد معين من الأبعاد ، وتلاحظ أنه فى الـ VB يمكنك عمل مصفوفة تصل إلى أكثر من 60 بعد ولكن المصفوفة ذات البعدين هى الأكثر استخداما فى برمجة المشاريع ولا تحتاج لعمل مصفوفة أكثر من ثلاث أبعاد . والمصفوفة ذات البعدين تتكون من عدد معين من الصفوف والأعمدة وكل صف وعمود يحتوى على مجموعة من المتغيرات ويتم تحديد مكان كل عنصر داخل المصفوفة عن طريق تحديد رقم الصف والعمود معا .الإعلان عن المصفوفة ذات البعدين للإعلان عن المصفوفة ذات البعدين يمكنك استخدام الصيغة التالية:- Dim|Public |Private ArrayName (SubscriptOfCols,SubscriptOfRows) As DataType · Dim , Public , and Private تستخدم هذه الكلمات داخل الـVB للإعلان عن المصفوفات ومدى استخدامها داخل البرنامج فعند استخدام Dim فتعبر المصفوفة متاحة بداخل الإجراء فقط الذى تم الإعلان عن المصفوفة بداخله ، أما استخدام Public فى الإعلان عن المصفوفة يجعل هذه المصفوفة متاحة لأى مكان فى البرنامج أن يتعامل مع هذه المصفوفة ، أم استخدام كلمة Private تشبه استخدام كلمة Dimفى تعريف المصفوفة فهى لا ترى إلا فى الجزء الذى تم الإعلان عنه للمصفوفة حتى وإن تم الإعلان عنها فى قسم الإعلان العام General Declaration .
· ArrayName عبارة عن اسم المصفوفة .
· SubsciptOfCols وهى عبارة عن أقصى قيمة لعدد الأعمدة التى تحتويها المصفوفة .
· SubscriptOfRowsوهى عبارة عن أقصى قيمة لعدد الصفوف التى تحتويها المصفوفة .
· As من ضمن الكلمات المستخدمة فى الـ VB فى أثناء الإعلان عن المتغير .
· DataType وتستخدم لتحديد نوع المتغير الذى سيتم التعامل معه مثل ( Integer ,Double ,String,……etc )
ملاحظة
للإعلان عن المصفوفة ذات بعدين يتم أولا تحديد عدد الصفوف وعدد الأعمدة، ولاحظ أن عناصر المصفوفة تبدأ من العنصر صفر سواء فى تحديد رقم الصف والعمود .
مثال :- للإعلان عن مصفوفة تتكون من صفين وثلاث أعمدة يتم كتابتها كالتالى
Dim MyArray(2,3) As Integer
وعند الإشارة إلى عنصر ما داخل المصفوفة يتم تحديد الصف أولا ثم العمود فمثلا عندما نشير إلى العنصر رقم 10 الذى يقع فى الصف الثانى والعمود الثالث فتكتب كما يلى :-
MyArray(1,2)=10
مثال آخر :- إذا أردت إدخال درجات مجموعة من الطلبة وليكن لستة طلاب فى 5 مواد يتم أولا الإعلان عن المصفوفة كما يلى
Dim GradeStudent (5,4) As Integer
لإدخال درجات الطالب الأول
GradeStudent (0,0) = 30
GradeStudent (0,1) = 36
GradeStudent (0,2) = 40
GradeStudent (0,3) = 34
GradeStudent (0,4) = 38
لإدخال درجات الطالب الثانى
GradeStudent (1,0) = 20
GradeStudent (1,1) = 25
GradeStudent (1,2) = 36
GradeStudent (1,3) = 38
GradeStudent (1,4) = 30
وهكذا عندما ترغب فى إدخال باقى درجات باقى الطلاب .
للإعلان عن مصفوفة ثلاثية الأبعاد
Dim 3d(1,2,1) As Integer
ويتم تحديد العناصر التى تحتويها هذه المصفوفة كما يلى :-
3d(0,0,0)=5
3d(0,0,1)=187
3d(0,1,0)=16
3d(0,1,1)=12
3d(0,2,0)=55
3d(0,2,1)=7
3d(1,0,0)=34
3d(1,0,1)=13
3d(1,1,0)=4500
3d(1,1,1)=612
3d(1,2,0)=9
3d(1,2,1)=784
كما يمكنك استخدام كلمة ReDim لإعادة تغيير عدد العناصر التى تحتويها المصفوفة كما سبق شرحها فى المصفوفة ذات البعد الواحد .
كما يمكنك استخدام الأمر Option Baseكما سبق شرحها لجعل ترتيب العناصر داخل المصفوفة يتم ترتيبها ترتيبا طبيعيا يبدأ بالعنصر واحد .
استخدام الدوارة للتعامل مع المصفوفات
فى الـ VB يتم استخدام الدوارة For...Next للتعامل مع المصفوفات حيث يمكنك من خلال هذه الدوارة التحرك خلال عناصر المصفوفة وتغيير وإدخال عناصرها بسهولة بدلا من التعامل مع كل عنصر على حده مثال :- لاستخدام الدوارة للتعامل مع المصفوفات بإدخال العناصر التى تحتويها المصفوفة من خلال النقر على زر أمر قم بإتباع الخطوات التالية :-· قم بإنشاء مشروع جديد باسم Array· قم بوضع زر أمر CommandButton على الـ Form· قم بالنقر المزدوج على زر الأمر ثم قم بكتابة الكود التالى :-Private Sub Command1_Click()
Dim i As Integer
Dim MyArray(19) As Integer
Dim Msg$
For i = 0 To 19
MyArray(i) = i * 2
Msg$ = "The element is:" & CStr(i) & ",The value is:" & MyArray(i)
Print Msg$
Next i
End Sub


مصفوفة الأدوات








مصفوفة الأدوات هى مجموعة من الأدوات لها نفس الاسم ، فمثلا لو لديك 4 مربعات نص تريد تنفيذ مها معينة عليها فبدلا من إنشاء زر أمر لكل مربع عل حدة يمكنك إنشاء زر أمر واحد فقط للتعامل معها جميعا . ويكون لكل أداة فى هذه المصفوفة رقم subscript فريد يميزها عن باقى عناصر المصفوفة .
ومن المزايا الأخرى لمصفوفة الأدوات أنه عند إنشاؤك أداة وتحديد خصائصها ثم قمت بإنشاء مصفوفة من هذه الأداة فإن العناصر الجديدة تكون لها نفس الخصائص وذلك دون الحاجة إلى إعادة ضبط خصائص كل عنصر على حدة .
بالطبع مصفوفة الأدوات تحتوى على مجموعة من الأدوات من نفس النوع وليست من أنواع مختلفة ، ويمكن استخدام الخاصية Index لتحديد العنصر الذى سيتم التعامل معه فى المصفوفة . ولكل عنصر رقم مميز ويبدأ الترقيم من (0) للعنصر الأول ، (1) للعنصر الثانى وهكذا .
لكى تقوم بإنشاء مصفوفة أدوات ، قم بوضع الأداة التى تريدها فى النموذج ، وقم بضبط خصائصها ، ثم حدد هذه الأداة واختر الأمر ( نسخ Copy ) ، ثم اختر الأمر (لصق Paste ) ، فتظهر رسالة تؤكد على إنشاء مصفوفة أدوت ، فقم بنقر زر ( نعم Yes ) ، إذا قمت بنقر زر ( لا No ) سيتم إنشاء الأداة وستأخذ اسم منفصل ولن تكون عنصر فى المصفوفة .
العناصر التى تكون فى مصفوفة واحدة يكون لها حدث واحد فقط ، وليس لكل أداة حدث مستقل ، ويكون للحدث الخاص بالمصفوفة معامل اسمه Index ، يوجد به رقم العنصر الذى تم التعامل معه .
الكود التالى يوضح شكل الإجراء الخاص بالأداة بشكل منفصل دون أن تكون عنصر فى مصفوفة .
Private Sub cmdTotal_click ()

End Sub
الكود التالى يوضح شكل الإجراء الخاص بالأدوات التى تشكل معا مصفوفة .
Private Sub cmdTotal_click (Index As Integer)

End Sub
أمـثـلـة :
ترغب فى وضع 4 أزرار أمر فى النموذج ، وكلما قمت بنقر زر ظهر عليه
( You Click Me ) .
بدلا من إنشاء 4 أزرار منفصلة وكتابة الكود لكل حدث فى كل زر ، يمكنك إنشاء مصفوفة مكونة من 4 أزرار ، وكتابة الكود التالى فى الحدث الخاص بالمصفوفة :
Private Sub Command1_Click(Index As Integer)
Command1(Index).Caption = "you click me"
End Sub




عـداد الوقـت Timer








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

ارجو المعذره من صاحب الموضوع الاصلي
لعدم ذكر اسمه , فأنا لا اعرفه
}}}
تم الشكر بواسطة:
#2
كاتب المشاركة : احمد نبيل احمد

جميل جدا اخى بس عندى ملحوظة

لكى تقوم بإنشاء مصفوفة أدوات ، قم بوضع الأداة التى تريدها فى النموذج ، وقم بضبط خصائصها ، ثم حدد هذه الأداة واختر الأمر ( نسخ Copy ) ، ثم اختر الأمر (لصق Paste ) ، فتظهر رسالة تؤكد على إنشاء مصفوفة أدوت ، فقم بنقر زر ( نعم Yes ) ، إذا قمت بنقر زر ( لا No ) سيتم إنشاء الأداة وستأخذ اسم منفصل ولن تكون عنصر فى المصفوفة .
هذا كان فى الفيجوال بيسك 6 ولا اعتقد ان هذه الطريقة تنفع مع الدوت نت
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم