الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أساسيات البرمجة

مغلق
بدأه Ayoub JAMAL EL IDRISSI في 17 نوفمبر 2005 · 25 رد · 8,238 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

هذه دروس في اساسيات البرمجة مأخوذة من ال MSDN و مترجمة بتصرف مني

مقدمة

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

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

ما هي لغة البرمجة :

كما ان الإنسان يقوم بالتخاطب بلغة معينة فكذلك الكمبيوتر له لغة تحاور خاصة به و تقتصر فقط على ال 0 و ال 1 فال 0 تعني Off و ال 1 يعني On، و طبعا نحن لسنا مضطرين للتكلم مع الكمبيوتر بلغته مباشرة لكن ما علينا سوى استعمال لغة برمجة معينة للتحاور مع الجهاز و اعطاءه أوامر معينة لعملها.

و من هنا يمكن ان نقول أن لغة البرمجة تعتبر كمترجم ووسيط بيننا نحن البشر و بين جهاز الكمبيوتر، و توفر علينا وقت جد طويل في تعلم لغة الآلة (machine language) و بهذا يكون التواصل بين الانسان و الجهاز سلسا. لكن كيف تتم الترجمة عن طريق لغة البرمجة؟

هناك برنامج خاص او ما يسمى بال Compiler يقوم بأخذ التعابير التي قمت بكتابتها و يترجمها هو الى لغة الآلة و بهذا فأنت كمبرمج مثلا بلغة الفيجوال بيسك لن تهتم بما يفعل الكمبيوتر و لا كيف يعمل، كل ما عليك معرفته هو التعابير الخاصة باللغة .

داخل لغة الفيجوال بيسك:

ان لغة البرمجة الفيجوال بيسك تعتبر من اللغات (High Level) أي انها أقرب الى لغة البشر، و كما أن للغة البشر (كيفما كانت اللغة) قواعد و تراكيب معينة يجب اتباعها لتكون اللغة المتكلمة صحيحة، كذلك لغة الفيجوال بيسك لها قواعد معينة و كما أن اللغة البشرية تتكون من أسماء و أفعال و ما الى ذلك فالفيجوال بيسك أيضا تمتلك ما عناصر برمجية شبيه الى حد ما بما يميز لغة البشر.

العناصر البرمجية في لغة الفيجوال بيسك تتكون من (Statements, Declarations, Functions, Operators, and Keywords).

و من أجل كتابة نص برمجي صحيح يجب عليك اتباع القواعد الأساسية و ال Syntax الصحيح الذي قد يبدو في بادئ الأمر غير مألوف لكن مع المدة سيصبح شئ سهل بل و منطقي لدرجة لا تتصور، فمثلا لنأخذ التعبير التالي

If your degree is more then 10 then you will success else you will not

كما ترون هذا تعبير انساني (ان صح التعبير) و من أجل تحويل هذا التعبير الى تعبير تفهمه لغة البرمجة الفيجوال بيسك و من ثم تحوله الى لغة الآلة حتى يفهمه الجهاز سنكتب التالي:

If YourDegree>10 Then
YouSuccess
Else
YouNot
End If

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

و أخيرا و من أجل التنظيم فلغة الفيجوال بيسك لها أيضا بنية، فكما لأي كتاب بنية (فصول...) فاللغة أيضا تعطيك امكانية تنظيم نصك البرمجي عن طريق Modules & Procedures ..

الدرس المقبل : المتغيرات

تم تعديل هذه المشاركة بواسطة crazy-man في 17 نوفمبر 2005 في 18:58

#2

المتغيرات

مقدمة

المتغيرات مفهوم جد هام في برمجة اجهزة الكمبيوتر، المتغيرات هي عبارة عن حرف او كلمة يمكن ان تخزن فيها قيمة، و تقوم بتخزين ما تريد في هذا المتغير اما نص او رقم او أي نوع من المعلومات التي تريدها.

قد يخطر على بالك السوؤال التالي : " لماذا نستعمل المتغيرات في حين نستطيع ان نستعمل قيمها مباشرة؟"، و الجواب جد بسيط و هو كامن في الاسم بحد ذاته "متغيرات" فالمتغيرات يمكن ان تتغير قيمها في وقت عمل البرنامج الذي نعمل عليه، فمثلا في برنامجك قد تريد ان يدخل المستعمل رقم و انت طبعا لا تعرف الرقم الذي سيدخله المستعمل و بهذا تقوم بادخاله في متغير كون هذا الرقم غير تابث و بعد ذلك تتعامل مع المتغير بطريقة سهلة و بسيطة .

مراحل استعمال المتغيرات :

هناك مرحلتين اساسيتين في انشاء ثم استعمال المتغيرات :

1- اعلان المتغير: تحديد اسم المتغير و نوع المتغير (string,integer,double…).

2- ملأ المتغير: اعطاء المتغير قيمة معينة ليحفظها.

1- إعلان المتغير:

من أجل اعلان أي متغير يجب أولا ان تحدد اسم المتغير الذي تريده و من ثم نوع المتغير او نوع المعلومات التي سيستقبلها.

اعلان المتغير عموما يتم عن طريق ال KeyWords(Dim … As).

و هذا مثال بسيط

Dim aNumber As Integer

هنا كما تلاحظ فقد قمنا باعلان متغير أسميناه aNumber من نوع Integer ، حيث أن هذا المتغير لا يستقبل سوى الأرقام الصحيحة و التي تكون في فضاء 2,147,483,648-

حتى 2,147,483,647. و اذا حاولت اعطاء المتغير أي قيمة خارجة عن هذا الفضاء او نص فسيعطيك خطأ. و هناك عدة أنواع مثل Boolean التي تأخذ اما True أو False و هذا جدول يبين جميع أنواع المتغيرات :

var.jpg

2- ملأ المتغير :

و هي اعطاء قيمة محددة للمتغير حتى يحتفظ بها و تتم عن طريق "=" الذي يسمى The assignment operator.

و توجد طريقتين مختلفتين في اعطاء قيمة للمتغير، الأولى انك تقوم باعلان المتغير أولا ثم بعد ذلك تقوم باعطاءه قيمة :

Dim aNumber As Integer
aNumber=154

و الطريقة الأخرى هي اعطاءه قيمة افتراضية و تكون كالتالي :

Dim aNumber As Integer=154

و الطريقة الأخيرة جديدة في الفيجوال بيسك .نت و لم يكن من الممكن عملها في الفجوال بيسك 6.

#3

جزاك الله خيرا اخي الكريم و منتظرين بقية الدروس ان شاء الله

#4

استعمال ال String

مقدمة :

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

ماهي String ؟

ال String هي سلسلة من ال characters و قد تكون أحرف او أرقام او مساحات فارغة ... و قد تكون جمل مفيدة مقروءة او فقط عبارة عن نصوص لا معني لها مثل "#fTWRE^3 35Gert".

و يمكن انشاء متغيرات نصية تماما مثل انشاء أي متغير آخر و ذلك عن طريق تحديد اسمه و نوعه و من ثم اعطاءه قيمة :

Dim aString As String = "This is a string"

عند ادخال نص الى المتغير النصي يجب ان يكون هذا النص (و الذي يسمى أيضا string literal) بين علامتي التنصيص ""، و يمكنك ايضا ان تضع محتوي متغير نصي داخل متغير نصي آخر و ذلك باتباع الطريقة التالية :

Dim aString As String = "This is a string"
Dim bString As String = ""
bString = aString

و تستطيع استعمال الرمز "&" من أجل جمع نصين او أكثر داخل متغير نصي واحد و هذا مثال على ذلك :

Dim aString As String = "Across the Wide"
Dim bString As String = "Missouri"
Dim cString As String = ""
cString = aString & bString

كما نرى قمنا باعلان ثلاث متغيرات ثم قمنا بوضع محتوي المتغير الأول aString بالضافة الى محتوى المتغير الثاني bString في المتغير الثالث و ذلك بمساعدة "&" و بهذا يكون المتغير cString يساوي Across the Wide Missouri.

خلاصة :

في هذا الدرس تعلمنا سويا كيفية اعلان متغير نصي و اعطاءه قيمة، ثم كيفية الجمع بين متغيرين نصيين عن طريق المعامل "&". في الدرس التالي سنتعلم باذن الله كيفية التعامل مع ال Arrays او المصفوفات التي سنتمكن من وضع مجموعة قيم من نفس النوع.

#5

المصفوفات(Arrays)

مقدمة :

كما رأينا في الدروس السابقة فالمتغيرات تستعمل من أجل حفظ قيم معينة و استعمالها لاحقا من طرف برنامجك، اليوم سنتكلم عن نوع آخر من المتغيرات الا و هو المصفوفات (Arrays) الذي يعطينا امكانية وضع مجموعة بيانات من نفس النوع في متغير واحد.

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

Dim Students() As String

كما ترى يتم اعلان مصفوفة عن طريق وضع قوسين بعد اسم المتغير، اذا كنت تعرف عدد الطلبة يمكنك كتابة العدد بين القوسين :

Dim Student(40) As String

من الوهلة الأولى يظهر ان عدد الطلبة الذي حددنا هنا هو 40 طالب لكن هذا خطأ فالمصفوفة المذكورة تحتوي على 41 خانة لأن الترقيم في المصفوفات يبدأ من 0، يمكنك طبعا هنا تجاهل الخانة 0 و البدأ من الخانة 1 اذا أردت.

ملأ خانات المصفوفة بالمعلومات :

المصفوفة ليست سوى عدد محدد من الخانات و كل خانة لها رقم و كما في المصفوفة التي أعلناها سابقا فأول خانة رقمها 0 و آخر خانة رقمها 40 و من أجل ملأ أي خانة بأي شئ يجب تحديد رقمها و هذا مثال لذلك :

Students(1)="علي"
Students(5)="أحلام"

كما ترى فالأمر جد جد بسيط اذ اننا حددنا رقم الخانة 1 ثم أعطياناها قيمة تماما كما نتعامل مع المتغيرات البسيطة.

و بالنسبة للخانات التي لم نحدد لها قيمة فتكون لها قيمة افتراضية و هي "" أي أنها فارغة بكل بساطة.

هناك طريقة أخرى تمكننا من اعلان مصفوفة و ملأ خاناتها في سطر واحد و تكون كالتالي :

Dim Students() As String = {"أمين","كريم","أمل","أيوب"{

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

قراءة القيم من المصفوفة :

و تكون ايضا بتحديد رقم الخانة التي نريد قراءتها :

Dim BestStudent As String
 Dim Student(40) As String
Students(1)="علي"
Students(5)="أحلام"
BestStudent = Students(1)

هنا طبعا المتغير BestStudent سيقوم بحفظ قيمة الخانة رقم 1 من المصفوفة و بهذا يكون محتوى المتغير BestStudent هو علي.

خلاصة :

رأينا في الدرس كيفية التعامل مع المصفوفات.

بعد هذه المقدمة الطويلة نوعا ما دعونا الآن نكتب بعض الأكواد لنجعل الكمبيوتر يعمل شيئا ما من أجلنا و هذا ما سنفعل في الدرس المقبل ان شاء الله.

#6

اجعل جهازك يعمل شيئا من أجلك.

مقدمة :

في هذا الدرس سنتعلم بإذن الله خطوة خطو كيفية انشاء Method ، و التي هي عبارة عن قطعة كود يتم تشغيلها انطلاقا من مقاطع أخرى، و سنرى بعد ذلك كيف يمكننا إنشاء Parameters لل Methods.

ما هي ال Method ؟

Method هي عبارة عن قطعة كود تقوم باعطاء الأمر لبرنامجك لعمل شئ معين. في الفيجوال بيسك و في أي لغة برمجة هناك بعض ال Methods التي تكون جاهزة و ماعليك سوى مناداتها لعمل أمر ما فمثلا MsgBox يقوم بأخذ بعض البرامترز و يقوم باظهار رسالة على شاشة المستعمل. طبعا ليست كل الأشياء التي تؤيدها جاهزة مسبقا في بيئة التطوير لذا ستجد نفسك مظطرا لكتابة Methods لإكمال العمل الذي تريده.

ال Method تحتوي اذا على كود يقوم بعمل معين فمثلا قد تنشأ Method وتسميها PlaySound و يكون الكود فيها يقوم بتشغيل ملف صوتي و بمجرد مناداتها باسمها تقوم بتنفيذ الكود و تشغيل الملف الصوتي، و هذا طبعا يقيك من التكرار فبدل كتابة الكود كل مرة تحتاجه تكتبه مرة واحد و بعدها تناديه وقتما شئت.

و الMethod تشتغل فقط بكتابة اسمها، فيتم القفز الى ال Method و تنفيذ الكود و بعد ذلك الخروج منها و العودة الى ال Method التي نادتها و تنفيذ السطر التالي و هكذا ... و طبعا يمكنك مناداة مجموعة من ال Methods واحدة تلو الأخرى :

PlaySound
ShowLyrics

أنواع ال Methods (Subs,Functions)

هناك نواعان من ال Methods : Functions و Subroutines(subs). ال Functions تختلف عن ال Subs كونها تعيد قيمة بعد تنفيذ الكود أما ال Subs فدورها يكون فقط بتنفيذ الكود الذي داخلها، و طبعا هذا فارق كبير فمثلا لو كنت تريد أن تنشأ Method اسمها مثلا ToDay ترجع لنا String يحتوي على اسم اليوم، في هذه الحالة لن يمكننا التعامل مع ال subs لكن يجب انشاء Function من أجل عمل ذلك و يكون الناتج كالتالي :

Dim Tday as String
Tday=ToDay

و بهذا يتم حفظ اليوم الراجع من الفنكشن ToDay في المتغير Tday لاستعمال لاحق.

إعلان ال Methods:

من أجل إلان Sub مثلا يجب استعمال الكلمة المفتاحية Sub و يكون الإعلان كالتالي :

Sub MySub()
End Sub

الكلمة المفتاحية Sub تقوم بتحديد نوع ال Method يعني أنه Sub و لن يقوم بارجاع أية قيمة، بعد ذلك يأتي اسم ال Sub و القوسين الفارغين يعنيان أن هذه ال Sub لا تملك بارامترز، و أخيرا End Sub تعني ان هنا نهاية ال Subroutine . و كل الكود التي سيتم تنفيذه عند مناداة هذه ال sub سيكون بين هذين السطرين.

تعريف ال Function مشابه للتعريف السابق الا أنه يزيد عليه بتحديد نوع القيمة التي سيتم ارجاها من طرف ال Function و التعريف يكون كالتالي :

Function MyFirstFunction() As Integer
End Function

طبعا كما تلاحظ فالجزء الزائد هو " As Integer" و هو يحدد نوع ال data المرجعة من طرف ال Function . و يتم ارجاع القيمة عن طريق الكلمة المفتاحية Return كما في المثال أسفله :

Function ReturnNumberOne() As Integer
Return 1
End Function

هذه ال Function ترجع الرقم 1 .

البرامترز في ال Functions & Subroutines

في بعض الأحيان قد تحتاج الى اعطاء ال Method معلومات اضافية حتى تتمكن من تنفيذ الكود بشكل مناسب، فلنفرض مثلا أنك تريد انشاء Function اسمها Add و تقوم باستقبال رقيمين من المستعمل و ترجع له ناتجهما، في هذه الحالة لا غنى لك عن استعمال البرامترز و يمكنك انشاء ال Function بالشكل التالي :

Function Add(ByVal X As Integer,ByVal Y As Integer) As Integer
Return X+Y
End Function

كما تلاحظ في المثال فال Function قامت بأخذ متغيرين اثنين X & Y و بعد ذلك قامت بارجاع ناتجهما و يمكن استعمال هذه الفنكشن كالتالي :

Dim Result As Integer
Result = Add(15,15)

و هكذا تكون قيمة المتغير result تساوي 30.

الخلاصة :

رأينا في هذا الموضوع بشكل مبسط كيفية انشاء Functions و Subroutines، في الدرس المقبل باذن الله سنرى كيفية عمل ال Loop(For ... Next).

و السلام عليكم

تم تعديل هذه المشاركة بواسطة crazy-man في 18 نوفمبر 2005 في 03:13

#7

عمل متكامل

مشكور على هذا الجهد الكبير مشرفنا العزيز أيوب وأتمنى بجد أن تبقى معنا في هذا المنتدى

وبانتظار بقية السلسة ........

#8

بارك الله فيك أخي العزيز

و انا ان شاء الله مازلت معكم

و ان شاء حتى أنتهي من هذه السلسلة من الدروس التأسيسية :)

#9

راااااااااااااااااااااااااااااااااااااااااااااااااااااائع

#10

اجعل برنامجك يعيد كود معين عدد من المرات : For … Next

مقدمة :

في هذا الدرس سوف تتعلم التعامل مع العبارة For…Next لكي تعيد تنفيذ كود معين عدد من المرات و كذا من أجل حساب عدد المرات التي تم تنفيذ الكود فيها.

عند كتابتك لأي برنامج قد تحتاج لأن تعيد أمر معين عدد من المرات، و طبعا ليس من السهل أن تعيد كتابة الأمر يدويا فهذا أمر جد متعب، لنفرض مثلا أنك تريد ان تكتب كود يقوم باظهار سلسلة أرقام في الشاشة، أول خطوة ستقوم بكتابة Method تقوم باستقبال بارامتر و هو الرقم الذي سيتم اظهاره على الشاشة و ستكون ال Method بالشكل التالي :

Sub DisplayNumber(ByVal Number As Integer)
Console.Write(Number)
End Sub

السطر Console.Write(Number) يقوم بكتابة الرقم الممرر الى ال Method في شاشة ال Console.

بعد هذه المرحلة يأتي دور الجملة التكرارية For…Next فلنفرض أننا نريد كتابة سلسلة الأرقام من 0 الى 1000 ما علينا الا كتابة الكود التالي :

For i As Integer = 0 to 1000
DisplayNumber(i)
Next

كما نلاحظ فأولا قمنا بتعريف متغير i داخل الجملة التكرارية و هذا شئ جديد في الدوت نت و لم يكن بالامكان عمله في الفيجوال 6 بعد ذلك أعطينا نقطة البداية و هي 0 ثم النهاية و هي 1000، ثم قمنا باستدعاء ال Method التي أنشأناها مسبقا و مررنا لها المتغير i الذي ستظهره على الشاشة و عند الوصول الى الكلمة Next يتم اضافة 1 الى المتغير i و عندما يصبح المتغير i يساوي 1000 يقوم البرنامج بالخروج من الحلقة التكرارية و ستكون النتيجة الظاهرة على الشاشة كالتالي:

012345678910111213…1000
#11

سلسلة مباركة بإذن الله, وفقك اللهُ أخي العزيز أيوب.

في المثال يتضح المقال

#12

اجعل برنامجك يختار بين احتمالين أو عدة احتمالات : If…End IF & Select Case

مقدمة :

في هذا الدرس سنتعلم كيفية جعل برنامجنا يتكيف مع العالم الخارجي، و كيف يمكنه ان يعمل على حسب اختيارات المستعمل و ذلك عن طريق التعبير If …End If أو عن طريق Select Case.

1-استعمالات If…End If:

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

If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Monday Then
   MsgBox("Today is Monday!")
End If

المثال بالفيجوال بيسك .نت 2005

كما ترون فقد تم أولا التأكد من اليوم عن طريق الدالة DayOfWeek و التي نتمكن من الوصول اليها عن طريق الكلاس الشهير و الجديد في نفس الوقت في الفيجوال بيسك .نت 2005 My الذي يعطي امكانيات كبيرة لا يمكنني ذكرها في هذا الموضوع. بعد التأكد من أن اليوم هو Monday قمنا بتنفيذ الكود المحدد و هو اظهار رسالة " Today is Monday" للمستعمل و طبعا اذا ماكان اليوم يخالف الإثنين فلن يعطي أية نتيجة، لكن ماذا لو أردنا ان نجعل البرنامج يطهر في كل يوم رسالة تخبرنا باليوم الحالي؟ في هذه الحالة سنلجأ الى ElseIf و التي ستمكننا من اختبار عدة احتمالات.

Else و ElseIf :

التعبير Else يمكننا من ان نقوم بتنفيذ كود في حالة ما اذا كان الاحتمال الذي نتأكد منه خطأ و مثال على ذلك نرى الكود سفله :

If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Friday Then
   MsgBox("Today is Friday!")
Else
   MsgBox("It isn't Friday yet!")
End If

كما ترون ففي كل يوم يخالف الجمعة يعطيك رسالة تفيد بأن اليوم لم يصل الجمعة بعد .

أما ElseIf فتمكنك من الإختيار بين عدد من الاحتمالات و مثال على ذلك الكود التالي :

If My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Monday Then
   MsgBox("Today is Monday!")
ElseIf My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek.Tuesday Then
   MsgBox("Today is Tuesday!")
ElseIf My.Computer.Clock.LocalTime.DayOfWeek = DayOfWeek. Wednesday Then
   MsgBox("Today is Wednesday!")
..
..
End If

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

2- Select Case

:

ان التعبير Select Case مشابه الى حد ما للتعبير If…End If الا أنه لا يستعمل الا في فحص مثلا متغير واحد و هذا المثال كفيل بجعلك تفهم هذا الأمر بسهولة:

Select Case Degree
Case 0 to 9
Msgbox "سئ للغاية"
Case 10 to 12
Msgbox "مقبول"
Case 13 to 16
MsgBox "جيد"
Case 17 to 20
MsgBox "ممتاز"
Case Else
MsgBox "ما هذا !!! لا توجد نقطة كهذه"
End Select

قمنا أولا بتحديد المتغير الذي نريد فحص قيمته و هو Degree بعد قمنا بوضع الاحتمالات فالاحتمال الاول أن تكون قيمة المتغير بين 0 و 9 و الكود الذي سينفذ اذا كان هذا الاحتمال هو اظهار الرسالة التي عليها كلمة "سئ" و هكذا الى أن نصل الى Case Else التي تنفذ في حالة ما اذا كانت قيمة المتغير خارج الاحتمالات المذكورة .

خلاصة :

تعلمنا في هذا الدرس كيفية جعل برنامجنا يختار بين احتمالين او أكثر عن طريق التعبير If…End If و علمنا أن الأمر جد بسيط باذن الله. في الدرس المقبل سنرى سوية ماذا يمكننا ان نعمل اذا ما حدث خطأ ما في ساعة تشغيل برنامجنا و كيفية تجنب الاغلاق المفاجئ لبرنامجنا عن طريق التحكم المسبق للأخطاء.

تم تعديل هذه المشاركة بواسطة crazy-man في 19 نوفمبر 2005 في 17:23

#13

وفقك الله اخي crazy-man وأعانك .........ننتظر المزيد

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

******************************************************

#14

ماذا تفعل اذا ماحدث خطأ غير متوقع ساعة تشغيل البرنامج : Handling Errors

مقدمة :

ان كل برنامج كيفما كانت قوته معرض في أي وقت للإنهيار بسبب خطأ ما عند استعماله، و طبعا يمكن تجنب هذا الإنهيار عن طريق "الحرب الإستباقية" – على رأي بوش :D- على الأخطاء، حيث أنه يمكن عمل أكواد تنفذ ساعة وقوع خطأ معين و بذلك يتم اخبار المستعمل بالخطأ الذي وقع سواءا من طرفه هو او من طرف البرنامج.

أخطاء وقت التشغيل : Run-Time Errors :

كل خطأ يتم حصوله في وقت تشغيل البرنامج يسمى بال Run-Time Error، و هذا النوع يحدث عندما يحاول البرنامج عمل شئ غير مسموح بعمله، مثلا اذا أردت حفظ نص في متغير من نوع رقمي Integer سيقوم البرنامج باعطاء Exception بالخطأ الواقع و وصف للخطأ بل وحتى رقم السطر الذي حدث فيه الخطأ، طبعا هو يعطيك هذه الأشياء تلقائيا في الدوت نت حتى لو لم تقم بالتحكم فيها لكن لا يجب أن تتركها كذلك لأنها قد تؤدي الى سلبيات كثير في عمل برنامج لذا وجب التحكم بالأخطاء التي تقع في وقت التشغيل عن طريق انشاء error-handling لاستباق الخطأ.

The Try...Catch...Finally. :

هذا البلوك هو الخاص بالتحكم بأي خطأ يحدث في برنامجك.يمكنك أن تحاول""Try كود معين و اذا كان فيه أي خطأ يتم مباشرة امساك الخطأ "Catch" و القفز الى تلك المنطقة و تنفيذ الكود الموجودمباشرة تحت الكلمة "Catch" و بعد الإنتهاء منه يتم تنفيذ الكود الموجود تحت الكلمة "Finally" و هذا الكود الأخير ينفذ دائما عند حدوث أي خطأ.

و هذه البنية الخاصة بال Try...Catch...Finally :

Try
   ' هنا الكود الذي نريد تنفيذه و مراقبة الأخطاء فيه
Catch 
   ' اذا حدث أي خطأ في الكود أعلاه يتم تنفيذ هذا الكود 
Finally
   'هذا الكود يتم تنفيذه دائما.
End Try

و هذا مثال تطبيقي لهذه العملية :

Dim aNumber As Integer = 10
        Dim aString As String = "Crazy-Man"

        Try

            aNumber = aString

        Catch ex As Exception
            MsgBox("المتغير من نوع رقمي لا يمكنك ان تعطيك قيمة نصية")
        Finally
            MsgBox(aNumber)
        End Try

كما ترى في المثال أعلاه فقد حاولنا ان نعطي للمتغير الرقمي aNumber قيمة نصية الشئ الذي سيحدث خطأ ليتم تنفيذ الكود الموجود في البلوك Catch و بعد ذلك ينفذ الكود Finally الذي سيظهر لنا جليا ان قيمة المتغير aNumber لم تتغير و بقيت كما هي تساوي 10.

و نلاحظ أيضا أننا بعد الكلمة Catch هناك جملة جديدة و هي ex As Exception و ذلك لأن هناك عدة أنواع من الأخطاء و الفيجوال بيسك . نت يتعامل مع كل نوع على حدا فهناك الأخطاء التي تحدث في التعامل مع الملفات IOexception فمثلا لو كتبنا ex As IOexception بدل ex As Exception فالبرنامج لن يعالج الخطأ لكنه سينتظر خطأ في التعامل مع الملفات حتى يعالجه، اما الكلاس Exception فيتعامل مع جميع أنواع الأخطاء.

و ال ex عبارة طبعا عن متغير "سيرث" خصائص الكلاس Exception و التي تمكنك مثلا من اظهار مصدر الخطأ ووصفه ...

Ex.Message ' رسالة تصف الخطأ
#15

اقترح تثبيت الموضوع .........

#16

اضافة جديدة متميزة تحسب لك crazy man

شكرا لك

تقبل تحياتي................

18_11_05_07_08_25_1132326505mysign.jpg
#17

ماشاء الله .. جاري القراءة .. جزاك الله خير

فلسطين الزاهية بألوان الحب والسلام

ذلك الطعم الزيتوني الذي يتدفق عسلاً من أفواه بساتينها وحدائقها

تشتاق إليها نفوس المتقين وترنوا للسجود فيها جباه المسلمين

#18

ما شاء الله بارك االه فيك يا اخ crazy-man علي هذا المجهود وجعلة في ميزان حسناتك

Linux System Admin

#19

ما شاء الله بارك االه فيك يا اخ crazy-man علي هذا المجهود وجعلة في ميزان حسناتك

#20

ماشاء الله استمر اخى فنحن خلفك

انا نفسى والله اتفاعل معكم واعطى شىء يفيد الناس وإن شاء الله بعد الامتحانات سوف اقوم بذالك

جزاكم الله خيراااااااااااااااااا

لن تبلغ المجد حتى تلعق الصبرااااااااا

#22

أكثر م نرائع كما عودتنا أخي crazy-man بارك الله فيك وزادك من علمه ..

ani.gif
#23

جزاك الله خيراً يا باشا على الشرح الرائع ده

#24

بسم الله الرحمن الرحيم

بدايةً هذه أول مشاركة لي بالمنتدى الكبير هذا

وأسـعدني جداً موضوعك يا أخ أيـوب جمـال/ ومنذ اللحظة الأولى :) :)

ماشاء الله ..... ترتيب , دقة , ومدعم بالصور أيضا َ!

أنا حفظت الموضوع في مفضلتي لكي لا أضيعه

ونتمنى المزيد من دروس VB.Net2005 فـ أنا طالبة حاسب آلي سنة أولى وادرس البرمجة بعمق

ونحن اللآن في الأساسيات للبرمجة و المنهج على هذا الإصدار2005

فاتمنى أن تكونو عوناً لي

ولكم تحياتي:

* M!ss Cute *

#25

كثر خير اخونا استمر اكثر واكثر

شخصيا استفدت كثييير من موضوعك

وببادر النقاش فور إنتهاء الامتحانات

رُب ( وامعتصماه ) إنطلقت *** ملْء أفـواه الصبايا اليُتـم

لامـسـت أسْـماعـهـم لاكـنهـا *** لمْ تلامس نخْوة المعتصم

هذا الموضوع مغلق.

مواضيع مشابهة