Admin Admin
عدد المساهمات : 37 تاريخ التسجيل : 10/10/2011
| موضوع: المصفوفات رياضيا وبرمجيا وشرحها الأربعاء أبريل 11, 2012 9:16 am | |
| ماهي المصفوفات برمجيا
المصفوفات
المصفوفة Array هي سلسلة من المتغيرات تحمل نفس الاسم ويتم التمييز بين المتغيرات داخل هذه المصفوفة
باستخدام رقم المتغير داخلها
يوفر استخدام المصفوفات وقتاً وجهداً كبيرين ، كما قد يؤدي إلى بساطة وصغر حجم البرنامج . لنفرض مثلاً أنك تريد أن
تقرأ أسماء 50 موظفاً من ملف ، وأنك تريد أن تحتفظ بها في الذاكرة لتعديلها أو عرضها أو ترتيبها . فيكف تعمل ذلك ؟ إذا
استخدمت متغيرات عادية ، ستضطر إلى الإعلان عن 50 متغيرا ثم تكرر أمر القراءة من الملف لكل واحد من هذه
المتغيرات الخمسين ، ثم تضع ماقرأته في المتغير المناسب . وهذه مسألة شاقة بالطبع . كما أن ذلك سيؤدي إلى كبر
حجم البرنامج دون داع . والحل المناسب لهذه المسألة هو أن تستخدم مصفوفة مكونة من 50 عنصراً وذلك بكتابة الأمر :
Dim EnpName(50) As String
هنا ، الاسم EmpName هو اسم المصفوفة ، والرقم (50) هو عدد العناصر داخلها ثم كلمة String تحدد نوع المتغيرات
التي ستضعها في المصفوفة . كلمة as string اختيارية وإن لم تحددها سيكون نوع المتغيرات هو variant وبالتالي يمكن
تخزين أي نوع فيه .
يمكنك قراءة أسماء الموظفين ووضعها في المصفوفة باستخدام تكرار For …Next
بالشكل التالي :
For counter = 0 to 49
Empname(counter) = inputbox$("أدخل اسم الموظف التالي")
Next counter
فهنا نستخدم تكرار for ..next (سوف نشرحها بالتفصيل في المحاضرات التالية)
لنطلب من المستخدم إدخال أسماء الموظفين . هذا التكرار يستمر خمسين مرة من صفر إلى 49 . لاحظ أن العد داخل
المصفوفة يبدأ من صفر وليس من 1 . لذلك تبدأ المصفوفة من الرقم صفر وتستمر حتى 49 .
ويمكنك الإشارة إلى أي عنصر داخل المصفوفة بأن تذكر اسم المصفوفة ثم رقم العنصر داخلها .فمثلاً ، لتغير قيمة العنصر
العاشر في المصفوفة ، فإنك تكتب :
"أحمد محمود"empname(9) =
وإذا أردت قراءة القيمة الموجودة في المتغير رقم 20 داخل المصفوفة ووضعها في متغير آخر فإنك تكتب :
curname =empname(19)
لاحظ مرة أخرى أن الوضع الافتراضي للمصفوفات هو أن يبدأ العد داخلها من صفر . فإذا رغبت أن تجعل العد يبدأ العد من 1
ضع الأمر التالي :
option base 1
الثوابت
الثوابت تعني لها قيمة لاتتغير بعكس المتغير
مثلا بدلا من أن تضع قيمة معينة على كل البرنامج ضع ثابت لها في أول البرنامج ثم اكتب البرنامج على اساس الثابت بدلا
من القيمة في كل البرنامج
مثال :
لنفرض أن لديك عشرين موظفاً تريد أن تطلب بياناتهم من المستخدم يمكنك أن تكتب عدد الموظفين وهو هنا 30 مباشرة
في كل مرة تحتاج إلى ذلك مثل :
for counter = 1 to 30
…………………..
………………….
Next counter
لنفرض أنك كتبت أمراً مثل هذا في ستة أو سبعة مواضع داخل البرنامج ، ثم أردت بعد ذلك أن تغير عدد الموظفين
من 30إلى 60 . فماذا تفعل ؟ في هذه الحالة سوف تضطر إلى أن تبحث عن كل المواضع التي ذكرت فيها الرقم 30
وتغيره إلى 60 وإذا نسيت موضعاً سوف يؤدي ذلك إلى خلل في عمل البرنامج.
وكحل لتلك المسألة ، استخدم ثابتاً constant وضعة في بداية البرنامج أو الإجراء مرة واحدة وتضع فيه العدد الذي ترغب
فيه ، مثل :
const NUM_OF_EMPLOYEES =30
وبعد ذلك تقوم في عملية التكرار بعمل التالي :
for counter = 1 to NUM_OF_EMPLOYEES
…………………..
………………….
Next counter
وبذلك يتحقق أمران : الأول أن الثابت NUM_OF_EMPLOYEES أسهل في تذكر معناه من الرقم 30 ، والثاني : انك لو أردت
تغيير عدد الموظفين من 30 إلى 60 كما افترضنا من قبل ، فكل ماعليك القيام بة هو تغيير الثابت من القيمة القديمة إلى
القيمة الجديدة .
وهناك فائدة أخرى أن "فيجول بيسيك"يستخدم نظاماً خاصا لتحديد درجات الألوان فإذا أردت أن تغير لون أداة إلى الأزرق
أثناء تشغيل البرنامج ، فإنك تكتب :
LABEL1.BACKCOLOR = &HFF0000
فإن "فيجوال بيسيك" يستخدم الرقم &HFF0000 للأزرق وغيرها من الألوان فكيف يمكنك أن تتذكر كل هذه الأرقام الغير مفهومة ؟
الحل : هو أن تضعها في ثوابت بالطريقة التالية :
const BLACK = &H0&
const RED = &HFF&
وبهذة الطريقة يمكنك أن تغير الألوان بطريقة مفهومة وسهلة الاستخدام
مثال :
LABEL1.BACKCOLOR = RED
مدى الثوابت :
مثل المتغيرات بالضبط فإذا كنت تريد أن تستعمل الثابت في كل النوافذ الموجودة في البرنامج فيجب أن تضع الثابت في
ملف برمجة وتسبقه بكلمة Global
مثال :
Global const User_NAME = "ABSOFT2000"
أما إذا كنت تريد أن تستعمله في نافذة واحدة فضعه في داخل نافذة البرمجة الخاصة بتلك النافذة
الاجراءات
متى تحتاج إلى الاجراءات ؟
مع تزايد حجم البرنامج الذي تكتبه ، ستجد أن هناك أجزاءاً من البرنامج تحتاج إلى تنفيذها أكثر من مرة في أكثر من
مكان. فمثلاً قد تحتاج أن تسأل المستخدم عن اسم ملف لحفظ البيانات فيه ثم تتأكد إن كان الاسم الذي ادخله
المستخدم سليماً أم لا . فإن لم يكن سليماً تعاود الكرة وتسأله عن اسم صحيح ، وهكذا حتى يدخل اسماً صحيحا
للملف أو يلغي الأمر . لنفرض أنك تحتاج إلى هذا الجزء في أكثر من مكان داخل برنامجك . فماذا تفعل ؟
يمكنك أن تكتب هذا الجزء مرة واحدة ثم تنسخه في كل مرة تحتاج إليه وتلصقه في المكان الجديد . لكن هذا يؤدي إلى
أن يكبر البرنامج بدون داع . كما إنك إذا رغبت في تعديل هذا الجزء وتحسينه ، ستضطر إلى البحث عنه في كل مكان
وضعته فيه وإجراء التحسينات عليه . وهذه مسألة شاقة . وقد تنسى تعديله في مكان مما يؤدي إلى وجود خلل في
البرنامج .
الحل الأمثل هو أن تضع مجموعة الأوامر المتكررة في ( إجراء عام ) ثم تستدعي هذا الإجراء كلما احتجت له . وهذه هي
فائدة الاجراءات
كيف تكتب الإجراء ؟
انقر نافذة البرنامج نقرا مزدوجا لكي تفتح لك نافذة البرمجة ثم إذهب إلى Object
واضغط السهم سوف ينسدل لك قائمة انقر منها (General)
وبعد ذلك سوف تجد نافذة البرمجة خالية اكتب فيها ما يلي :
اسم الاجراءsub
Sub Getfilename مثل :
ثم اضغط زر إدخال من لوحة المفاتيح يظهر لك مايلي :
Sub getfilename ( )
هنا تكتب الاوامر التي تريدها لهذا الاجراء
End sub
وعندما تريد أن تستدعي الاجراء ماعليك إلا أن تكتب اسمه فقط | |
|
Admin Admin
عدد المساهمات : 37 تاريخ التسجيل : 10/10/2011
| موضوع: المصفوفات رياضيا وبرمجيا وشرحها الأربعاء أبريل 11, 2012 9:20 am | |
| المصفوفات رياضيا التعريف تعرف المصفوفة هي تنظيم مستطيل الشكل لمجموعة من الاعداد على هيئة صفوف واعمدة محصورة بين قوسين على سبيل المثال: يمكن أن تضع المصفوفة بين قوسين مربعين أو بين قوسين هلاليين تدعى الخطوط الأفقية في المصفوفة بالأسطر بينما تدعى الخطوط العمودية باسم عمود. أما الأرقام فتدعى مدخلات المصفوفة أو عناصر المصفوفة. ترمز أي مصفوفة بحرف لاتيني كبير وتحته رقمين على شكل جداء هما m,n بحيث يرمز m لعدد الصفوف و n عدد الأعمدة وبالتالي تعرف المصفوفة بعدد الصفوف والأعمدة (m × n مصفوفة), وتعرف m و n بأبعاد المصفوفة. فأبعاد المصفوفة أعلاه هي 4*3 أي 4 أسطر و 3 أعمدة صورة لمصفوفة للمزيد http://ar.wikipedia.org/wiki/%D9%85%D8%B5%D9%81%D9%88%D9%81%D8%A9 | |
|