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

الاستاذ صبري سند محمد

موقعى التعليمي
 
الرئيسية2اليوميةمكتبة الصورس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول
الاستاذ صبري سند محمد يحييكم لازم تسجلوا الاول المناهج من الابتدائية للثانوية

شاطر | 
 

 الحاسب الالى

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin
avatar

عدد المساهمات : 502
تاريخ التسجيل : 28/07/2012
العمر : 37
الموقع : http://saberysanad.egyptfree.net/u1

مُساهمةموضوع: الحاسب الالى    الأربعاء يناير 30, 2013 5:25 am

المذكرة




مقدمة
العمل مع أنواع محددة من البيانات

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

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

ملاحظة (1): كل نوع بيان له طريقة تخزين في ذاكرة الكمبيوتر (RAM ) وهذا يرجع في الأساس إلـــى استخدام ذاكرة الكمبيوتر الاستخدام الأمثل من حيث المساحة التخزينية والعمليات الحسابية والمنطقية التي سوف تجرى على هذه القيم.
• اى بيانات تخزن في ذاكرة الحاسب الداخلية.
• هذه ا لذاكرة تتكون من ملايين الخلايا المتساوية و تسمى كل خلية (Byte ).
• يمثل عدد الخلايا حجم الذاكرة.
• تسمح كل لغات البرمجة بإعطاء اسماء للخلايا التى سيتم تخزين البيانات بها حتى يسهل تتبعها
و التعامل معها.
• يعطى اسم واحد لكل خلية أو مجموعة من الخلايا ما دامت تحمل قيمة واحدة .

ملاحظة(2): حجم نوع البيانات على الذاكرة يقاس بالـــ Bits وهي حجم المساحة اللازمة لحفظ وحدة قياسية من الــ ASCII (حرف من حروف الكيبورد الانجليزية يساوي 8 Bits والتي تساوي (1 Byte ) .

1-1 أنواع البيانات(Data Types)
توفر لغة ( Visual Basic .NET ) العديد من أنواع البيانات ( Data Types ) التي تستخدم في تخزين قيم البيانات المدخلة من مستخدم البرنامج أو الناتجة من تنفيذ الأوامر والتعليمات الخاصة بالبرنامج ومن أنواع البيانات التي توفرها لغة( Visual Basic Net )

تتحدد الأنواع وفقاً لــ:
1- الحجم عدد Bytes
2- المدي Range حدود القيم المتاحة للمتغير
3- الدقة Precision عدد الخانات وهي خاصة بالرقمية فقط













































لاحظ ان :- الارقام بين الاقواس ( ) تعنى عدد الخلايا التى يشغلها الرقم في الذاكرة أى عدد البايت Bytes


أنواع البيانات (بطريقة أخرى)
نوع البيان الحجم الذى يشغله فى الذاكرة بالبايت طبيعة البيان المخزن داخله درجة الدقة
(عدد الخانات)
Byte 1 من 0 الى 255 لا توجد
Short 2 من – 32768 الى 32767 5 ارقام
Integer 4 من -2147483648 الى 2147483647 10 ارقام
Long 8 اكثر من 2147483647 19 رقم
single 4 من 3810 الى 3810 7 ارقام
double 8 اكبر 3810 15 أرقام
decimal 16 مبلغ من المال 29 رقم
char 2 تخزين حرف واحد لا يوجد
string العديد من الخلايا تخزين اعداد من 0 الى 2 بليون حرف لا يوجد
date 8 تاريخ من 1/1/0001 الى 31/12/9999 لا يوجد
boolean 2 True or False او yes or No لا يوجد

• معرفة نوع البيان : ( Data type)
في نافذة الكود (Code window) بعد إتمام كتابة جملة التخصيص للخاصية Property قف
بمؤشر الفأرة على الخاصية (Property) يظهر مستطيل أصفر فيه نوع البيان ( Data type )
الخاص بهذه الخاصية (Property) ويظهر بعد كلمة (As) كما هو موضح بجمل ضبط خصائص
(Text,AutoSize,Width) الخاصة بأداة تحكم العنوان (Label1) كما هو موضح بشكل : 1- 1

الخاصيةText- - نوعها - String
الخاصية - AutoSize نوعها Boolean
الخاصية - Width نوعها Integer
أنواع أخرى Types : غير Data Types-
ملاحظة هامة :
الخصائص (Properties) هي مكان تخزين البيانات ولها نوع ( Data Type)




1-2 المتغيرات ( Variables ) :
هي عبارة عن أماكن محجوزة بذاكرة الكمبيوتر ( RAM ) ولها نوع بيان ( Data Type ) ويتم ذلك
بالإعلان عنها ثم تخصيص قيمة لها حسب نوع البيان ( Data Type ) ، هذه القيمة يمكن أن تتغير
أثناء سير تنفيذ أوامر وتعليمات البرنامج.
الصيغة العامة للاعلان عن المتغيرات












 قواعد تكوين الاسماء في ال VB.net:-
أولا: قواعد يجب الالتزام بها :-
1. يجب ان يبدأ الاسم بحرف من حروف الانجليزية A……Z a……z أو علامة _ Underscore
2. يأتى بعد الحرف الاول أى عدد من الحروف او الارقام ويفضل أن لا يتجاوز عدد الأحرف عن 33
3. لايسمح ان يحتوى على رموز او علامات او مسافات ماعدا علامة ال Underscore _
4. غير مسموح بتكرار اسم المتغير داخل نفس النطاق (الإجراء ) .
5. ممنوع استخدام الكلمات المحجوزة فى VB.net مثل– Double Dim- أو أسماء الخصائص أوأسماء الكائنات، وإلا سيقابلك خطأ ما وقت تشغيل البرنامج.أما إن كنت مصراً فضع الكلمة المحجوزة بين ] [ Dim [dim] as integer
ثانيا : قواعد يستحسن الالتزم بها :-
1. اختر اسماء ذات معنى مناسب
2. فى الكلمات التى تتكون من مقطعين يمكن ان يبدأ كل مقطع بحرف Capital
3. يفضل ان يبدأ الاسم بـ 3 احرف تعطى انطباع عن نوع المتغير.
4. تستطيع تسمية متغيراتك باستخدام حروف اللغة العربية ولكن لعدم معرفة مضاعفات هذه العملية في المستقبل فتحمل أنت مسئولية ذلك .


FirstName, Ahmed2000, PopulationOfEgypt, Spent_mony :امثلة لأسماء صحيحة
2ndWorldWar, Spen.Mon, Birth Day , Double امثلة لأسماء غير صحيحة :
5. في حالة استخدام اسم خطأ يعطي synatax error.
ما الفرق بين هذين التعريفين
Dim a as integer
Dim b as integer=20
اولاً كلاهما تعريف لمتغير لانه بدأ بكلمة dim ولكن الاختلاف ان قيمة المتغير a الابتدائية هى صفر وقيمة المتغيرb الابتدائية هى 20.
لاحظ ان :-
1- أهم مايميز المتغير أنك في أي لحظة تستطيع تغيير قيمها في أي وقت أثناء تشغيل البرنامج .
2- لابد من استخدام كلمة Dim للإعلان عن المتغير وهي إختصار لـ Dimension ومعناها
برمجيا عرف أو اعتبر وهي تأمر الكمبيوتر بحجز مكان في الذاكرة للمتغير, ولابد من تعريف
المتغير قبل استخدامه ويكون التعريف هكذا :
نوع البيانات As اسم المتغيرDim
3- يمكن ان تكتب ( = ) و بعدها قيمة و هذه القيمة ستكون قيمة البداية أو يمكن ان تهملها
ويمكن عدم كتابة (=) و فى هذه الحالة المتغيرات الرقمية تبدأ بقيمة صفر و المتغيرات الحرفية ستكون فارغة والمتغيرات المنطقية False والمتغيرات من النوع Object تأخذ القيمة Nothing

الاعلان عن اكثر من متغير باستخدام امر Dim واحد

Dim X As Integer, Y As Integer = 20, Z As Long = 30 ممكن
Dim X, Y As Integer = 20, Z As Long = 30 مش ممكن

يتحدد تلقائيا ثلاث خصائص لنوع المتغير فى اى برنامج عند اختيارنا لهذا المتغير وهذه الخصائص هى :
1- نوع البيانات التى يمكن تخزينها فيه
2- العمليات التى يمكن اجراؤها عليه
3- حجم الذاكرة الذى يحتاجه هذا المتغير .
جدول توضيحي :
طبيعة البيانات المخزنة النوع المناسب السبب
True / False Boolean احسن استغلال للذاكرة
ارقام السيارات التليفونات الرقم القومي String اختيار وحيد
مبلغ من المال Decimal يخزن ارقام عشرية وبدقة وبدون اخطاء وسريع في العمليات
عدد صحيح بين ± 32768 Short استهلاك قليل للذاكرة واسرع في العمليات الحسابية
عدد صحيح بين ± 2147483647 Integer اقل في الذاكرة واسرع في الحساب من Long
عدد صحيح اكبر من ±2147483647 Long اختيار وحيد
كسر عشري سبع خانات دقة Single اسرع من Double
كسر عشري اكبر من 7 خانات دقة Double

تدريب : الإعلان عن المتغيرات (Variables)
قم بإعداد نافذة النموذج (form ) الآتية لاستقبال مدخلات مستخدم البرنامج :


القيم المتوقع إدخالها من مستخدم البرنامج ونوعها والتسمية المقترحة :
القيم Data Type التسمية المقترحة
اسم الطالب String (نص) Student_Name
رقم الجلوس Integer (عدد صحيح) Set_Number
مجموع درجات التيرم الأول ٍShort (عدد صحيح) F_T_Mark
تاريخ الميلاد Date (تاريخ) Birth_Date
النوع Boolean (منطقي) _Gender

قم بإضافة إجراء الحدث ( Event Procedure) والذي يطلق علية إيضا معالج الحدثث Event) Handeler) الخاص بزر تسجيل وقم بالإعلان عن المتغيرات ( ( Variablesكما يلي :








لاحظ أنه :
يمكن بهذه الطريقة حجز أماكن بذاكرة الكمبيوتر (RAM) حتى يتسنى لنا تخزين مدخلات مستخدم
البرنامج ويتم ذلك عن طريق ما يسمي بالتخصيص ( Assignment ) .
1-3 امر التخصيص ( الاحلال ) Assignment :-

ان اهم دور للمتغيرات هو تخزين البيانات بها ولكى نخزن قيمة فى متغير نستخدم امر التخصيص :



علامة = تسمى معامل التخصيص
( اى يتم تخصيص القيمة لذات المتغير أو إحلال القيمة الجديدة محل القيمة القديمة )
يجب مراعاة الاتى:-
(1)اسم المتغير أو الخاصية الذى نريد التخزين فيه يكون شمال (=)
(2)القيمة المراد تخزينها تكون يمين (=) وتكون من نوع ملائم لنوع المتغير
(3)القيمة يمكن ان تكون :-
قيمة مجردة X=5 حيث يتم تخزين قيمة 5 في المتغير X
متغير اخر X=Y حيث يتم تخزين قيمة Y في المتغير X
عملية حسابية X=2Y+Z (Expression) حيث يتم حساب القيمة 2Y+Z ثم تخزن في X
قيمة من خاصية ((Property Dim Name As String
Name = Label1.Text
1- المتغيرات التي على يمين = لا يحدث بها اي تغيير
2- مفهوم العلامة = في امر التخصيص يختلف نهائيا عن مفهومها في المعادلة الرياضية
حيث الصيغة X+3=10 صحيحة كمعادلة رياضية وليست صحيحة كامر تخصيص
لوجود عملية حسابية شمال علامة =
بينما الصيغة X=X+1 غير صحيحة كمعادلة رياضية وصحيحة كامر تخصيص وأظنك عرفت السبب .
3- وهكذا من الممكن أن يدخل المتغير على يسار علامة = في العملية الحسابية مثال :
Dim x as Integer = 5
X=X+10
MsgBox(X) ' 15
دعنا نلهو قليلاً مع أمر التخصيص :
Dim X As Integer = 10 ' قيمة الإسناد لحظة التصريح
Dim Y As Integer
Dim Z As Long
Y = 20
Z = 30
Dim X As Byte = 256 الحدود يابرنس أنت تجاوزت

الخلاصة :
- يمكن التخصيص للمتغيرات (Variables) أثناء الإعلان عنها أو في مرحلة لاحقة .
- يمكن إعادة التخصيص أي عدد من المرات ولذلك أطلق لفظ المتغيرات لأن قيمها يمكن أن تتغيرأثناء
سير عمليات البرنامج في أي وقت.

(♣)استعمال امر التخصيص مع المتغيرات الحرفية String

من العمليلت التي نقوم بها على المتغيرات الحرفية عملية ربط اكثر من قيمة حرفية او متغير حرفي
ببعضها لتكوين متغير حرفي واحد هذا الربط يتم باستعمال & الذي يسمى معامل الربط

FirstName ="Ahmed"
SecondName = "Ali"
Fullname = "Welcome"& FirstName &" "& SecondName

تكون النتيجة Welcome Ahmed Ali
- " " تعنى انه سيترك مسافة فارغة مقدارها مسافة واحدة او عدة مسافات و" " تعنى قيمة حرفية فارغة .
تدريب : 2 تخصيص قيم للمتغيرات ( Variables ):
سوف نقوم بتخصيص مدخلات مستخدم البرنامج للمتغيرات (Variables) للمتغيرات التي سبق إعلانها وهي:
_Gender F_T_Mark Birth_Date Set_Number Student_Name














لاتنزعج من جملة If السابقة فسيتم شرحها لك بالتفصيل فيما بعد ....




ولكن دعونا نلاحظ شيئاً آخر ... اختلاف نوع بيان (data type ) الخصائص ... عن نوع بيان المتغيرات كما سيوضح الجدول التالي :
الخاصية نوع بيان الخاصية المتغير نوع بيان المتغير
Textbox1.text string Student_Name String
Textbox2.text string Set_Number Integer
Textbox3.text string Birth_Date Date
Textbox4.text string F_T_Mark Short
وهذا لا يجوز عند عمل التخصيص ولكن لغة (Visual Basic .NET) توفر لنا إمكانية تحويل القيم
إلى نوع البيان (Data Type) المتوافق مع المتغير (Variable) أو الخاصية (Property)
المخصص لها القيمة ويسمى تحويلاً ضمنيا.

1-4 استخدام المتغيرات ( Variables )
- إذا وجد المتغير في الطرف الأيسر من جملة التخصيص فهذا يعني أنه المكان الذي سوف تخزن به القيمة أما إذا وجد في الطرف الأيمن من جملة التخصيص فهذا يعني أنه يعبر عن القيمة الموجودة لديه.

تدريب 3 : استخدام المتغيرات ( Variables) :
قم بإضافة أداة تحكم عنوان (Label) بعد ضبط خصائصها حسب الجدول :
القيمة الخاصية
False AutoSize
باستخدام مؤشر الفأرة Size,Location
Fixed3D BorderStyle













ثم قم بفتح إجراء الحدث ( Click ) الخاص بالزر "تسجيل" ثم أضف الكود (Code) الآتي:
Me.Label6.Text = Student_Name & vbCrLf & Set_Number &_

vbCrLf & _gender & vbCrLf & Birth_Date & vbCrLf & F_T_Mark

لاحظ أن :
الكود السابق عبارة عن جملة تخصيص (Assignment) لمجموعة المتغيرات (Variables)
للخاصية (Text) لأداة التحكم (Label6) حيث:
- يفصل بين كل متغير والآخر( & vbCrLf & ) .
- علامة & تستخدم للربط بين النصوص.
- الكلمة المحجوزة (vbCrLf) تستخدم في إنشاء سطر جديد.
- تستخدم علامة (_) حتي يمكن كتابة سطر الكود على أكثر من سطر في حالة إذا كان سطر الكود
(Code) طويل بعض الشيئ وذلك للتنظيم وتسهيل عملية قراءة الكود( Code ) .
- ( Me ) تعبر عن نافذة النموذج ( Form ) الحالية.

بحيث يكون إجراء الحدث (Click) كما يلي :















بعد الإنتهاء من كتابة الكود (Code) نقوم بالضغط على مفتاح - F5 - لعمل (Start Debugging)
ونملأ بيانات استمارة التسجيل ثم نقوم بالنقر على مفتاح تسجيل كما هو موضح :




واجهة المستخدم بعد إدخال كافة البيانات
ولي هنا سؤال مهم : هل فكرت أين سيتم تخزين هذه البيانات ؟؟؟ وهل لو أدخلنا بيانات طالب آخر سيتم
حفظها ؟؟ وهل يمكن استرجاع بيانات 50 طالب مثلاً تم تسجيلهم ؟ لن أجيبك الآن ....
1-5 كتابة الملاحظات :
داخل الاكواد يمكن كتابة بعض الاسطر التى تساعد المبرمج , و لكن المترجم او المفسر يهملها ولا يلتفت اليها
وتسمى تعليقات وهذه الاسطر تكتب امامها ( ' ) أو نستخدم REM ويتحول لونها إلى الأخضر مثل :

'Calculate the total price
في قواعد البيانات المكان الوحيد لحفظ البيانات هو الجدول REM












1-6 الثوابت ( -: (Constants
هي عبارة عن أماكن محجوزة بذاكرة الكمبيوتر ( RAM) ولها نوع بيان ( Data Type) ويتم ذلك بالإعلان عنها ثم تخصيص قيمة لها حسب نوع بيان ( Data Type) أثناء الإعلان عنها فقط ، هذه القيمة لا يمكن أن تتغير أثناء سير تنفيذ أوامر وتعليمات البرنامج.
الإعلان عن الثوابت ( Constants )


ملاحظات :
Ω يتشابه الثابت والمتغير في أمور كثيرة منها :
- كلاهما مخزن في الذاكرة توضع فيه قيمة معينة . – كلاهما يمكن قراءة قيمته واستخدامها في البرنامج .
- كلاهما له نوع بيانات خاص به ( Integer – String ) وغيرها .
- لكن الثابت يختلف عن المتغير في نقطة جوهرية : هي أنك لا تستطيع تغيير قيمته أثناء تشغيل البرنامج .
- تستخدم علامتي " " في حالة إذا ما أردنا كتابة نص .
- تستخدم علامتي # # في حالة إذا ما أردنا كتابة تاريخ أو وقت .
Ω مافائدة استخدام الثوابت ؟؟؟؟
1- استخدام الثوابت يجعل الكود أسهل فهماً عند قراءته .
2- استخدام الثوابت يسهل عليك تعديل الكثير من سطور البرنامج بمجرد تغيير جملة واحدة فقط .
3- إستخدام الثوابت يقلل من إحتمال الخطأ .
أمثلة :.
" بحبك يامصر Const Name As String = "
Const pi As Single = 22 / 7
Const BirthDate As Date = #1/25/2011#
تدريب (4) الإعلان عن الثوابت – Constants
قم باعداد نافذة نموذج وفقاً للتصميم التالي :












ثم نقوم بفتح نافذة الكود (Code window) بالضغط على مفتاح ( F7 ) ثم إضافة إجراء الحدث
Click) ) لكل من ز ري الأمر ( Button1,Button2 ) كما هو موضح بشكل :
علماً بأن :
مساحة الدائرة R2 π - محيط الدائرة 2πR
حيث R تمثل نصف القطر , 22/7= π



والكود المسئول عن فعل ذلك هو :

ويتضح أن المستخدم سيدخل نصف القطر ثم يضغط على زر المساحة فتظهر المساحة
على label 2 المسمى بالنتيجة .... وهنا أذكركم : أن أداة العنوان label كما أنها تستخدم
كعنوان أو لافتة لبعض لتشرح الغرض من بعض الأدوات على الـ Form فهي تستخدم لعرض
المخرجات ( نتائج العمليات الحسابية ) .



تدريب (5) تحديد نطاق إعلان المتغيرات (Variables) والثوابت ( Constants )

ولكن ماذا لو انتقلنا لمعالج حدث (Event Handler ) الخاص Button2 وحاولنا كتابة كود حساب
محيط الدائرة مباشرة :
دعونا نرى :

هل من مترجم للغة الإنجليزية ليترجم لنا الرسالة أعلاه ؟؟؟
المترجم (Compiler ) يخبرنا أنه يعجز عن قراءة المتغير Radius والثابت Pi وهما بالنسبة
له غير معرفين .... رغم أننا عرفناهم من قبل في معالج الحدث الخاص بزر المساحة Button1
ومن هنا يظهر لنا أن المتغيرات والثوابت لا نستطيع استخدامها إلا في نطاق إعلانها .
ولحل هذه المشكلة يمكن أن نعيد إعلان المتغير ( Radius ) والثابت (pi) في نطاق إجراء الحدث
(Button2_Click) :
دعونا نرى :

كما ترون إختفت المشاكل .

ولكن هناك حلاً آخر للمشكلة أعلاه ... أنظر لهذا الكود وسجل ملاحظاتك :
دعونا نرى :

هل أخبرنا أحد ماذا لاحظ ؟؟؟
- يمكننا أن نعلن عن المتغيرات (Variable) والثوابت (Constant) على مستوى التصنيف
Class)) وعندها لا نحتاج عملية الإعلان عند كل نطاق إجراء حدث . (Event Procedure)
- أنتم تذكرون اسم التصنيف ( form1 ) وإجراء الحدث ( Button1_click ) وإجراء الحدث
( Button2_click ) تم الاعلان عنهم داخل نطاق التصنيف (Form1 ) .
دعونا نرى البرنامج بعد التشغيل .... اضغط F5

والآن أتي دوركم طلبتي الأعزاء .... لترجمة بعض خرائط التدفق التي درسناها سوياً في التيرم الأول ( وبالتحديد خرائط النوع الأول – التتابع البسيط ) إلى برامج شيقة .... من يقبل التحدي ؟؟؟؟ من ؟؟؟
1-7 الأخطاء (Errors ) :
استكشاف وتصحيح الأخطاء

أنواع الأخطاء :
1- أخطاء في الأوامر البرمجية وتسمى Syntax Errors
2- أخطاء منطقية وتسمى Logic Errors
3- أخطاء وقت تشغيل البرنامج وتسمى Run-Time Errors


♣♣ الإملائية والنحوية: Syntax Errors

تحدث عند كتابة الكود (Code) بصورة غير سليمة كما هو موضح بالأمثلة الاتية:
Din n As Short
Const x As Single
أخبرنا أنت ماهي الأخطاء ؟؟؟

وللتغلب على هذا النوع من الأخطاء يساعدنا (IDE) حيث لا يسمح بوجود أي خطأ من هذا النوع.

♣♣ المنطقية (Logic Error) التي تؤدي إلى نتائج غير سليمة عند استخدام البرنامج.

تحدث إذا استخدمت تعبيرات (Expressions)بناؤها غير سليم في جمل التخصيص غالبا.
عند حساب مساحة الدائرة استخدمنا الكود الآتي:
Dim radius As Single
Const pi As Single = 22 / 7
radius = TextBox1.Text
Label2.Text = pi * radius ^ 2
افترض أننا كتبناه هكذا :
Dim radius As Single
Const pi As Single = 22 / 7
radius = TextBox1.Text
Label2.Text = pi + radius ^ 2
عند تنفيذ الكود (Code) سوف يعمل دون أن يعطي أي رسائل خطأ ولكن النتيجة
سوف تصبح مغايرة للواقع لانه سوف يتم الجمع بدلا من الضرب.
وللتغلب على هذا النوع من الأخطاء يجب مراجعة الكود المكتوب جيدا واختبار البرنامج على بيانات
سبق التأكد من صحتها حتى يتم التأكد من عدم وجود أى أخطاء من النوع (Logic Error).


♣♣ عند التشغيل (Runtime Error) وهى التي تظهر أثناء التشغيل :
ونجدها غالبا في الأكواد (Code) التي يتم فيها جملة تخصيص (Assignment) فمثلا عند
تخصيص قيمة أكبر من مدى نوع البيان المستخدم أو تخصيص قيمة نوعها يختلف عن نوع بيان
المتغير أو الثابت أو الخاصية ولا يستطيع مترجم (Compiler) اللغة تحويلها لهذا النوع. (Type)
تدريب (6) التعامل مع الأخطاء ( Errors )
قم باعداد نافذة نموذج وفقاً للتصميم التالي :


أكتب الكود (Code) الآتي لدى إجراء الحدث (Click) للزر "مجموع" كما يلي :


تم الإعلان عن متغيرين ( (class1_Numberو (class2_Number) لهما نوع البيان (byte) والقيم التي يمكن أن يستقبلها تبدأ من صفر وتنتهى عند 255 وهذا يعنى أنه يجب على مستخدم البرنامج أن يلتزم بحدود تلك القيم وفي حالة مخالفتها يحدث خطأ أثناء التشغيل ( Runtime ) عند إجراء التخصيص لهذه المتغيرات (Variables) . تأمل الحالات التالية بعناية :
♣♣♣ الحالة الأولى:
قم بعمل (Start Debugging) وذلك بالضغط على مفتاح (F5) ثم قم بالنقر على مفتاح "مجموع"
دون إدخال أى بيانات لصناديق النص(TextBox) .
تظهر لنا رسالة الخطأ الآتية أنه لايجوز تحويل القيمة النصية الفارغة "" إلى النوع (Byte) وحدث
ذلك بسبب أننا لم ندخل أي بيانات في صناديق النص .
ولن أخفيكم سراً فقد إنهار البرنامج - اقرأوا رسائل الخطأ جيداً حتى تفهموها .

♣♣♣ الحالة الثانية:
اكتب في صندوق النص الأول " خمسة وعشرون " ثم
قم بعمل (Start Debugging) وذلك بالضغط على مفتاح (F5) ثم قم بالنقر على مفتاح "مجموع"



ولن أخفيكم سراً فقد إنهار البرنامج مرة أخرى .

♣♣♣ الحالة الثالثة:
أدخل القيمة (733) ثم
قم بعمل (Start Debugging) وذلك بالضغط على مفتاح (F5) ثم قم بالنقر على مفتاح "مجموع"


إنت لسة بتسأل طبعاً البرنامج وقع . لا حظ إن القيمة (733) تخطت حدود نوع البيان (Byte)( صفر-255)


ويمكن التغلب على أخطاء التشغيل (Runtime Error) بعدة طرق منها:

жжж- توفر لغة (Visual Basic .NET) إمكانية معالجة الأخطاء المحتمل وقوعها من خلال جملة

(♥♥♥) Try … Catch Statement
إذا حدث أية خطأ صغير وقت البرمجة قد يؤثر بشكل كبير جدًا على مرحلة تنفيذ البرنامج فمثلاً
إذا لم يستطيع البرنامج فتح ملف معين قد حدد له سلفًا فإنه قد ينهار ويقوم الويندوز بإغلاقه.
ففشل البرنامج في فتح ملف أو في تحميل صورة أو في التعامل مع أرقام أو نصوص أو مدخلات
قد يخطئ المستخدم فيها مثل الطلب من البرنامج أن يقسم ويكون مقام القسمة صفر، هذه الأخطاء
وغيرها والتي تعتبر تافهة في نظرنا نحن البشر قد تكون معضلة وداهية في نظر الكمبيــــــــــوتر
المسكين وذلك لإن الكمبيوتر لا يفكر وإنما يقوم بما أًمر به فقط من قبل المبرمج وحدوث مثل تلك
الانهيارات للبرنامج يعود السبب فيها للمبرمج الذي لم يحدد للبرنامج ماذا يفعل إذا حدث له خطأ
وبدلاً من كتابة جميع أنواع الأخطاء المحتملة للبرنامج ليقوم بالتعامل معها يمكننا أن نكتب جملة
واحدة نحدد فيها للبرنامج فيما إذا حدث مشكلة ما في البرنامج ماذا يفعل. قد نضع هذه الجملة في
كل إجراء يتوقع حدوث خطأ فيه بحسب الحاجة.
٭ وباستخدام الجملة Try ….. Catch نستطيع تصيد الأخطاء حيث :
Try

الجملة البرمجية التي قد يحدث بسببها خطأ

Catch ex As Exception

الجملة التي نريد تنفيذها حال حدوث الخطأ

End Try

بقية اوامر البرنامج

- اذ قمنا بتنفيذ الاوامر بعد Try بدون اخطاء ينتقل البرنامج الي الاوامر بعد End Try مباشرة
- اذا تم تنفيذ الاوامر بعد Try بأخطاء ينتقل البرنامج الي الاوامر بعد Catch ليعرض الرسالة الموجودة بها و لايتابع تنفيذ الاوامر إلا بعد تصحيح الخطأ .
- بالرغم من ان VB . net يكتشف الاخطاء و يقوم بعرض رسائل لكن المبرمجين يفضلون استعمال
Try / Catch لان هذا يتيح لهم التعامل مع الاخطاء بانفسهم و عرض رسائل أوضح للمستخدم .
















жжж- التحكم في مدخلات المستخدم بحيث نوفر للمستخدم الأدوات(Controls) مع ضبط خصائصها
(Properties) التي من خلالها يقوم بإدخال البيانات الصحيحة دون غيرها .


هل يستطيع المستخدم إختيار بلد غير الموجود في القائمة ؟؟؟
هل يستطيع المستخدم إختيار نوع آخر للمسافر غير المحدد له ؟
هل يستطيع المستخدم إختيار تاريخ غير الموجود في النتيجة ؟
أو ليست كل هذه أدوات تقدمها لغة البرمجة للمبرمج ليفرض بها إختيارات محددة للمستخدم حتى يضمن
تقليص الأخطاء إلى الحد الأدنى ؟
(11) أولويات تنفيذ العمليات الحسابية :-
المعاملات الرياضية Operators
المعامل / المؤثر العملية
+ جمع
- طرح
* ضرب
/ قسمة عادية
\ قسمة اعداد صحيحة
mod باقى القسمة
^ اسس
& لضم الكلمات


***قسمة الاعداد الصحيحة وباقي القسمة
إذا قسمنا العدد الصحيح (Integer ) 48 على العدد الصحيح 5 فتكون النتيجه كالآتى :-
1. قسمة عادية 48 / 5 =9.6
2. قسمة اعداد صحيحة (اهمال باقي القسمة) 48 \ 5 = 9
3. اذا اردنا الباقى فيمكن الحصول عليه باستخدام 48 mod 5 = 3
***ترتيب تنفيذ العمليت الحسابية :-
ترتيب أولوية تنفيذ العمليات الحسابية داخل VB يتم كالآتى :

1. () العمليات التى بين الاقواس ( الداخلية اولا ثم الخارجية )
2. ^ عمليات الاسس
3. ـــ يقوم البرنامج بحساب الأرقام السالبة .
4. * / عمليات الضرب و القسمة ( الاولوية من اليسار ثم اليمين )
5. \ عمليات قسمة الاعداد الصحيحة
6. Mod عمليات حساب باقى القسمة
7. + - عمليات الجمع و الطرح ( الاولوية من اليسار الي ليمين )
مثال :-
ما هى نتيجة تنفيذ العمليات الاتية بافتراض القيم التالية للمتغيرات :-
X = 2 Y = 3 Z = 4
A- X * ( Y + 1 )
B - Y^ X * X + Z *3
مما سبق يتضح أنه من الضروري مراعاة أولويات تنفيذ العمليات الحسابية عند إنشاء تعبيــــــرات
(Expression) تستخدم في جملة التخصيص ِ (Assignment) حتى لا تقع أخطاء من النوع
Logic Errors) ) لأن النتيجة ستتغير في هذه الحالة دون ظهور أي رسائل خطأ.


درست في خرائط التدفق (Flowcharts) أننا كثيراً ما نحتاج الى التفرع واختيار تنفيذ مجموعة خطوات أو أخرى بناء على سؤال معين وسوف تجد أن كتابة الكود (Code) الخاص بالتفرع ماهي إلا خطوات الحل (Algorithm) ولكن مع الالتزام بأوامر اللغة المستخدمة وطريقة صياغتها وللتعبير عن التفرع برمجيا نستخدم جمل معينة في لغة البرمجة تتضح من خلال التدريبات التالية:
استخدام التعبيرات الشرطية conditional Expression
تعريف :
* هو عبارة عن صياغة للعلاقة بين كميتين أو أكثر , ويتكون التعبير الشرطي من عملية
مقارنة واحدة أو أكثر ولكل عملية مقارنة طرفان يمكن أن يكونا أحد الأنواع التالية :
1- قيمة مجردة
2- ثابت يحتوي على رقم أو نص
3- متغير , لمقارنة القيم المحفوظة فيه .
4- خاصية من خصائص أي كائن .
* للتعبير الشرطي قيمة تتوقف على صحة العلاقة أو عدم صحتها :
-.فإذا كانت العلاقة غير صحيحة فتكون قيمة التعبير الشرطي False .
- و إذا كانت العلاقة صحيحة فتكون قيمة التعبير الشرطي True .
* الجمل الشرطية هي جزء من البناء البرمجي للجملة البرمجية وتسأل هذه الجملة عن خاصية معينة أو متغير أو بيان آخر بالبرنامج لتخرج لنا أحد الخيارين (صح أو خطأ) .
1- التفرع باستخدام جملة If…Then
الصيغة العامة :
If conditional Expres​sion( التعبير الشرطي) Then
Code
End If

1. إذا كانت قيمة التعبير الشرطي (conditional Expression) True سيقوم البرنامج بتنفيذ مجموعة الأوامر التي تلي Then
2. إذا كانت قيمة التعبير الشرطي (conditional Expression) False سيقوم البرنامج بتنفيذ مجموعة الأوامر التي تلي End If .

If X >= 50 Then Yes
Msgbox (" ")
End if
No


- لصياغة التعبيرات الشرطية فإننا نقوم باستعمال بعض المعاملات تسمى معاملات المقارنة
Comparison Operators
مثال 1 :
A = 50 B = 60
النتيجة مثال العلاقة المعامل
................ A > B اكبر من >
................ A < B اصغر من <
................. A = B يساوي =
................. A < > B لا يساوي < >
.................. A>=B اكبر من او تساوي >=
................... A<=B اصغر من او تساوي <=
مثال برمجي :

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://saberysanad.egyptfree.net
 
الحاسب الالى
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الاستاذ صبري سند محمد :: الفئة الأولى :: الترم الثانى :: المرحلة الاعدادية :: الصف الثالث-
انتقل الى: