Ch6 ar2
-
Upload
omar-computer-teacher -
Category
Education
-
view
69 -
download
4
Transcript of Ch6 ar2
التفرعBranching
أن: يستطيع الطالبهذا الفصل تدريس ية بنها
.If…Thenجملة يستخدم
. If…Then…Elseيستخدم جملة . If…Then…ElseIfيستخدم جملة
.Select …Caseيستخدم جملة
(43)
التفرع الثانيالفصل
Branching
مقــدمةنفيذ مجموعة أننا كثيرا ما نحتاج الى التفرع واختيار ت (FlowChart) خرائط التدفق فيدرست
ماهي الخاص بالتفرع (Code) وسوف تجد أن كتابة الكودعلى سؤال معين بناءخطوات أو أخرى ولكن مع االلتزام بأوامر اللغة المستخدمة وطريقة صياغتها وللتعبير (Algorithm) إال خطوات الحل
عن التفرع برمجيا نستخدم جمل معينة في لغة البرمجة تتضح من خالل التدريبات التالية:
:If…Thenجملة التفرع باستخدام 2-1
وفى حالة (Conditional Expression) الشرطيو التعبير أهو الشرط ( If )بعد بما يكت
وفى (End If)لى إ الوصول حتي (Then)تلى التي األوامريتم تنفيذ (True)ما يكون ناتجه صواب .(1-2)كما هو موضح بشكل (End If)تلى التيحالة ناتجه خطأ يتم تنفيذ األوامر
If X >= 50 Then
Msgbox("ناجح")
End if
If..Then( مثال مبسط على جملة 1-2شكل )
:Conditional Expressionsالتعبيرات الشرطية 2-1-1خطأ أو (True)البرمجة يكون ناتجه إما صواب (Code) هو جزء من كود الشرطيالتعبير
(False) على قيمة خاصية بناءوذلك (Property) أو متغير (Variable) .أو بيان آخر بالبرنامج
لهذه الجملة: ةالعامالصيغة If conditional Expression (تعبير شرطي) Then
code
End if
X>=50
Msgbox " ناجح"
End
(43)
التفرع الثانيالفصل
Branching
اذا كانت قيمة المتغير (True)ناتجه صواب (Degree>=50) الشرطيمثال التعبير (Degree) ويصبح الناتج خطأ 05 أو تساوي أكبر من(False) قيمة المتغير إذا كانت(Degree)
.05أصغر من
يساوى = ال يساوى < > اكبر من < اصغر من >
يساوىأكبر من أو =< أصغر من أو يساوى =>
( معامالت المقارنة 1-2جدول )
100 < > 100 FALSE
حيث أن القيمتين متساويتين300 < > 100 TRUE
حيث أن القيمتين غير متساويتينDEGREE=Textbox1.Text TRUE
(Textbox1)لألداة (Text)اذا كان قيمة الخاصية والعكس يكون (DEGREE)تساوى محتوى المتغير (FALSE)الناتج
( أمثلة على معامالت المقارنة2-2جدول )
(43)
التفرع الثانيالفصل
Branching
: املطلوب عمل برنامج إلدخال الدرجة وىف حالة ما تكون (1-2تدريب ) يعطى صندوق رسالة به كلمة ناجح. 05تساوى أوالدرجة اكرب من
مشروع يحتوى على نموذج بإنشاءقم(Form) ( 2-2كما هو موضح بشكل):
المطلوب تصميمه Form( النموذج 2-2شكل ) ناجح به كلمة( MessageBox)يعطى صندوق رسالة "نتيجة" زر على والمطلوب عند النقر
.05و تساوى أالدرجة اكبر من إذا كانت :(3-2بجدول )هو مبين كما على خريطة التدفق باالعتماد (Code) سوف نكتب الكود
الكود خريطة التدفق
اجراء الحدث فيويكتب ( Code)الكود (Click) الخاص بزر األمر (Button):
(1-2)( خريطة التدفق والكود لتدريب 3-2جدول )
Start
Enter X
X>=50
Msgbox
"ناجح"
End
(43)
التفرع الثانيالفصل
Branching
:الحظ "05أكبر من أو تساوى ( X) هل قيمة"تعبر عن الشرط والتي (IF)تم استخدام جملة -1
( التالية:Algorithmعلى خطوات الحل ) باالعتمادالبرنامج ( Code)كتابة كود يمكن -2
قم بتشغيل البرنامج. كل مرة في "نتيجة" والنقر على زر 50و 05و 25قيم مثل أدخل.
:الحظحيث أنه عندما يكون 05أقل من ةقيم أيدخال إ دعن( MessageBox)عدم ظهور صندوق الرسالة
.(Procedure) نهاء اإلجراءإ أي (End Sub)وهو (End if)ينفذ ما بعد (False) ناتج الشرط كما يلي: (End If)وضع وال يتمفي سطر واحد السابقة (If)يمكن كتابة نفس جملة
(43)
التفرع الثانيالفصل
Branching
:If…Then..Elseالتفرع باستخدام 2-2
الشرطيالتعبير حالة أن يكون ناتج فيينفذ ( Code)وجود كود فيختلف هذه الجملة عن السابقة ت(False)
صندوق رسالة ليعطي السابق (Code) تعديل الكود(: 2-2تدريب )(MessageBox ) 05حالة الدرجة أقل من يفبه كلمة راسب
:(4-2) هو مبين بجدولكما
اجراء الحدث فيويكتب (Code) الكود(Click) الخاص بزر األمر (Button):
(2-2)( خريطة التدفق والكود لتدريب 4-2جدول )
start
Enter X
X>=50
Msgbox
"ناجح"
End
Msgbox
"راسب"
لهذه الجملة: العامة الصيغة If conditional Expression (تعبير شرطي) Then
Code
Else
Code
End if
Trueالكود في حالة
Falseالكود في حالة
(43)
التفرع الثانيالفصل
Branching
:الحظ (.False)حالة ناتج الشرط فيتعنى تنفيذ ما يليها والتي (Else) استخدمنا اأنن -1 كما يلي: ( End if)سطر واحد بدون في ( If)يمكن كتابة جملة -2
حيتوى ( Project)بنفس األسلوب السابق قم بتنفيذ مشروع ( 3-2) تدريب
من خالل صندوق نص (N)املتغري يفيستقبل قيمة ( Form)على منوذج (TextBox ) فردىالرقم "أو "زوجيالرقم " عبارةمث اظهار"
:(5-2) هو مبين بجدولكما
clickاجراء الحدث فيويكتب ( Code)الكود :(Button)الخاص بزر األمر
(3-2)( خريطة التدفق والكود لتدريب 5-2جدول ) الشرطيمن خالل التعبير باقيبدون 2تقبل القسمة على إذا كانت (N) قيمة اختبرنايالحظ أننا
(N Mod 2) , والمعامل(Mod) باقيالقسمة وفى حالة ان يكون باقييعطى هو معامل حسابي .زوجيالعدد يكون وبالتاليقسمة باقيفهذا يعنى عدم وجود صفريساوى 2على ة مالقس
Start
Get N
N
divisible by 2
الرقم زوجي
الرقم فردى
End
في سطر واحد Ifجملة
(34)
التفرع الثانيالفصل
Branching
:If…Then…ElseIfالتفرع باستخدام 2-3
حالة الصواب فيحدهما أتستخدم عند وجود اختيارين (If…Then…Else)جملة الحظنا أن (True) حالة الخطأ في واآلخر(False) اأم (If…Then…Elseif) فتستخدم عند وجود أكثر من
. تعبير شرطي
:(3-2بشكل)هو موضح كما (Form)منوذج قم بعمل مشروع حيتوى على 4-2تدريب
(4-2)المطلوب بتدريب Form( النموذج 3-2شكل )
النقر على الزر مث (Textbox1)دخال درجة الحرارة من خالل مربع النص إوالمطلوب عند عبارة "تحت الصفر"أو " تساوى صفرعبارة "أو "فوق الصفر" عبارة (Label2) فييعرض "اختبار"
:(4-2بشكل)وفقا لخريطة التدفق
:الصيغة العامة لهذه الجملة If condition Then
code
ElseIf condition Then
code
ElseIf condition Then
code . .
Else
code
End If
(34)
التفرع الثانيالفصل
Branching
(4-2)( خريطة التدفق الخاصة بتدريب 4-2شكل ) :ما يلىك "اختبار"الخاص بالزر clickإجراء الحدث فييكتب الكود
:الحظ تم اإلعالن عن المتغير(D) من النوع(single) عشريإدخال رقم الحتمال. أن جملة (If ) الشرطيبالتعبير بدأت (Degree=0)
وفى حالة ناتجه يساوى(False) آخر وهو شرطيتم اختبار تعبير ي(Degree<0)
وفى حالة ناتجه يساوى (False ) خير وهو أن أاحتمال يبقي(Degree>0) لذلك لم يكتب صراحة .الباقيالوحيد االحتمالهو ألنه (Else)نما تم التعبير عنه بـ إ
start
Get D
D =0
Output
"صفر"
end
D<0
=0
Output
"تحت الصفر"
Output
"فوق الصفر"
(34)
التفرع الثانيالفصل
Branching
قم بتشغيل البرنامج بالضغط على(F5) لعمل(Start debugging) مع النقر على الزر كل مرة 15-و 5و 05مثل أرقامادخل انقر الزر مع بقاء مربع النص(TextBox ) ؟ماذا تالحظا على نص أو محتوي خاليا
:(5-2بشكل)هو موضح كما (Runtime)ظهور خطأ من النوع و توقف البرنامج سوف نالحظ
(Runtime)( شكل الخطأ أثناء التشغيل 5-2شكل )
اآلتي: (5-2)من الشكل يتضح (Degree = Me.Textbox1.Text)أن الخطأ حدث عند السطر -1
ضمنياال يحتوى على رقم لكى يتم تحويله ( TextBox)صندوق النص أن سبب الخطأ هو أن -2نما حدثت مشكلة نتيجة (Degree)وهو نوع بيانات المتغير كما حدث من قبل (Single)الى النوع وا
الى خاليا بدون قيم( (TextBox) )حيث تم ترك مربع النص حرفيعدم امكانية التحويل من النوع .(Single)النوع
بأكثر من طريقة منها: منع حدوث هذا الخطأ يمكن
إضافية كما يلى: ( If)استخدام جملة عن طريق إعطاء رسالة للمستخدم الطريقة األولي:
singleخطأ تحويل من حرفي الى سطر حدوث الخطأ
( Codeالكود )
األصلي ينفذ في
حالة إدخال قيم
عددية.
(في Codeالكود )
حالة إدخال قيم
غير عددية.
اإلضافية Ifجملة
(34)
التفرع الثانيالفصل
Branching
:الحظ وجود جملة (If) قيمة الخاصية إلختباراإلضافية (Text ) لصندوق النص (TextBox) هيهل
في حالة الناتج أما ,المطلوب( Code)تم تنفيذ الكود ي (True)وفى حالة الناتج عددية قيمة(False ) تم تنفيذ الكود ي أي أن القيمة غير عددية(Code )الذى يلى البديل(Else).
الشرطيتم استخدام التعبير (Isnumeric(Textbox1.Text) = 0) جملة في(IF) اإلضافية
التي تستخدم لمعرفة( Predefined Functionsالمعرفة )هنا هي أحد الدوال (Isnumeric)و .حرفيأم عددي هل هو ( TextBox)او محتوى صندوق نص ( Variable)محتوى متغير
وناتجها: (Isnumeric)أمثلة على الدالة
False .حيث أن القيمة داخل القوسين غير عددية
MsgBox IsNumeric("youssif")
True .حيث أن القيمة داخل القوسين عددية
MsgBox(IsNumeric(10))
True .عددية (a)اذا كانت قيمة المتغير
MsgBox IsNumeric(a)
True يحتوى على (TextBox3)اذا كان صندوق النص
.قيمة عددية
MsgBox IsNumeric(textbox3.text)
(IsNumeric)أمثلة على الدالة ( 6-2جدول )
ناتج منطقي بين القوسين ولها (Argumentمدخل أو وسيطة )لها ( Isnumeric) الدالةنستنتج أن .(False)أو (True) يكون
وسيلى شرح الدوال بالتفصيل بالفصل الرابع.
(33)
التفرع الثانيالفصل
Branching
:كما يلى (Try..catch)الجملة يمكن استخدام الطريقة الثانية:
:الحظ
:حدوث الخطأعمل التالي عند المكتوب ( Code)الكود الهدف من حرفية أو بإدخال عدد بدال من قيمة المستخدميطالب (MessageBox) عرض صندوق رسالة -1
قيمة خاليةوتعنى نقل التركيز ( TextBox)النص بصندوقخاصة ( Method)هو وسيلة (Focus)األمر -2
.(TextBox) المؤشر بداخل صندوق النصووضع اليه تساوى سلسة حرفية خالية. (Text)يعنى جعل خاصية األمر األخير -0
:Ifالجملة الشرطية مع Logical Operatorsاستخدام المعامالت المنطقية 2-4
وفى هذه الحالة نربط بين التعبيرات Ifنفس جملة فيمعا شرطيلى اختبار أكثر من تعبير إقد نحتاج .(Or) المنطقيأو المعامل (And) المنطقيالشرطية بالمعامل
المعامل(And) نهائييعطى ناتج (True) إذا كان ناتج كافة الشروط((True. المعامل(or) نهائييعطى ناتج (True) إذا كان ناتج أحد الشروط(True).
متغيرات منطقية ( B)والمتغير (A)بفرض أن المتغير (And)لمعامل ا ستخدامالأمثلة
A= TRUE AND B= TRUE TRUE A=TRUE AND B=FALSE FALSE
A= FALSE AND B= TRUE FALSE A= FALSE AND B= FALSE FALSE
الكود األصلي
الكود عند
حدوث خطأ
(33)
التفرع الثانيالفصل
Branching
منطقية( Variables)متغيرات ( B)والمتغير (A)بفرض أن المتغير (OR)مثال توضيحي للمعامل
A= TRUE OR B= TRUE TRUE A=TRUE OR B=FALSE TRUE
A= FALSE OR B= TRUE TRUE A= FALSE OR B= FALSE FALSE
(Form) قم بإنشاء مشروع جديد حيتوى على منوذج: (0-2)تدريب :(6-2بشكل ) هو موضح كما
( أثناء التشغيلFormنافذة النموذج )( 6-2شكل ) على أساس:و راسب أناجح (Label4)يعرض فى "عرض النتيجة"والمطلوب عند النقر على الزر
05ن أقل من يذا كانت أيا من الدرجتإراسب و 05ناجح في حالة كل درجة أكبر من أو تساوى ن معا.ي( ستجد أن هذا التدريب مثله تماما فيما عدا أن التعبير الشرطي سوف يختبر الدرجت2-2تدريب ) انظر
يصبح الكود كما يلي
(33)
التفرع الثانيالفصل
Branching
الحظ استخدام(And) يعنى وجوب تحقق جميع الشروط حتى يكون الناتج الشرطي والذي في التعبير
True))الكلي للتعبير الشرطي أن ناتج ما بين(If ) و(Then ) البد أن يكون ناتج منطقي (True ) و أ(False).
ناجح يف حالة درجة ( : اذا تغري الشرط يف التدريب السابق ليصبح:6-2تدريب ) 05ذا كانت كال الدرجتان أقل من إراسب و 05كرب من أو تساوى أ نيمن الدرجت
يصبح الكود كما يلي:
(And)بدال من ( Or) الوحيد هو استخدام رقاالفأن الحظ
(33)
التفرع الثانيالفصل
Branching
:Select…Caseالتفرع باستخدام 2-5
غير أنها فعالة بشكل أكثر عندما يكون التفرع (If…Then…Elseif)تشبه جملة Select…Caseجملة .مفهوم بشكل اكثر( Code)واحد كما أنها تجعل الكود (Variable) معتمدا على قيمة متغير
باستخدام 4-2تدريب يف( Code)تعديل الكود :( 7-2) تدريب
Select…Case بداًل منIf…Then…Elseif. :(7-2)كما هو موضح بشكل سنجد (Select …Case)لو حاولنا رسم خريطة التدفق المتوافقة مع
7-2الخاصة بتدريب Select..Caae( خريطة التدفق باستخدام 7-2شكل )
الهيكل العام لهذه الجملة هو: ٍ Select Case Variable
Case value1
code
Case value2
code
Case value3
code
.
.
Case else
code
End Select
start
Get D
Case D
Output
"صفر"
End
Output
"تحت الصفر"Output
"فوق الصفر"
(33)
التفرع الثانيالفصل
Branching
حيث يحتوى رمز اتخاذ رمز اتخاذ القرار من التفرع الى أكثر من فرعينيتضح إمكانية (5-2)من شكل .مختلف (Code) لى كودإوحسب قيمته نتفرع (D)القرار على سؤال عن قيمة المتغير
:يكون الكود كما يلى
حيتوى على ( New Project)مشروع جديد قم بإنشاء: (8-2)تدريب
(Form)منوذج :(8-2)بشكل هو موضح كما
(8-2)بتدريب الخاص Form( النموذج 8-2شكل )
Label1
Label4
Label3
Label2
Listbox1
Label5
Label6
Label7
(33)
التفرع الثانيالفصل
Branching
عنصر من عناصر األداة أيعند النقر على والمطلوب(Listbox1) األحرفيعرض عدد (sides )
للمجسم المحدد.( vertices) الرؤوس وعدد (faces) عدد األوجهو يكتب الكود(Code )إجراء الحدث في(SelectedIndexChanged) تغير فهرس دالذى يعنى عن
(Indexأي ) لألداة االفتراضيالعنصر المحدد وهو الحدث ترتيب (Listbox1) ويتحقق هذا الحدث .(Listbox1) اختيار عنصر من عناصر األداة دعن
( يتم إضافة عناصرItems( لألداة )Listbox عن )( طريق الخاصيةItems في نمط التصميم مع )... 1العلم يتم ترتيب عناصر القائمة بحيث يكون العنصر األول ترتيبه صفر والثانى ترتيبه
وهكذا. لمحدد عن طريق الخاصية العنصر ا يتم معرفة لذلك(SelectedIndex ) لألداة(Listbox1) وهكذا. مثال فهذا يعنى تحديد العنصر الثانى (1)عندما تكون قيمة هذه الخاصية إجراء الحدث فييكتب الكود(SelectedIndexChanged) باألداةالخاص (Listbox1) كما يلي:
قم بتشغيل البرنامج. أي مجسم من صندوق القائمة اسم اختر(Listbox) نتائج. والحظ ما يظهر من
ما درسته فى الرياضيات عن المجسمات للتأكد من النتائج.راجع
تخصيص قيمة فهرس العنصر
Xالمحدد في المتغير
الكود في حالة اختيار العنصر
الذى ترتيبه صفر )المكعب(
اختيار العنصر الذى الكود في حالة
)متوازي المستطيالت( 1ترتيبه
الكود في حالة اختيار العنصر
)الهرم الثالثي( 2الذى ترتيبه
الكود في حالة اختيار العنصر
)األسطوانة( 3الذى ترتيبه
(34)
التفرع الثانيالفصل
Branching
تدريبات عملية
مشروع بإنشاءمن دراستك لمادة العلوم تعلمت أن لكل عنصر رمز وعدد ذري وعدد كتلي , قم ( 1)(Project ) يحتوى على نموذج(Form ) (:9-2بشكل ) هو موضح كما
( واجهة المستخدم9-2شكل )يظهر الرمز والعدد الذري والعدد "عرض"اختيار احد العناصر ثم النقر على الزر دوالمطلوب عن
.الكتلي لهذا العنصر :كما يلى "عرض" الخاص بالزر (Click)إجراء الحدث في( Code)نكتب الكود
Label4
Label5
Label6
Groupbox1
RadioButton1
RadioButton2
RadioButton4
RadioButton4
(34)
التفرع الثانيالفصل
Branching
جرة والكوكب والنجم ... الخ , قم بإنشاء ممن المفاهيم مثل ال الكثيرمن دراستك للجغرافيا تعلمت (2) (:11-2بشكل ) هو موضح كما( Form)يحتوى على نموذج ( Project)مشروع
( واجهة المستخدم11-2)شكل تعريفه. (TextBox)يعرض فى مربع النص (ComboBox)حد عناصر األداة أوالمطلوب هو عند اختيار
إرشادات (true)تساوى (TextBox)لمربع النص (Multiline)اجعل الخاصية -1
من خالل الخاصية (ComboBox)لألداة شهاب(-نيزك-نجم-قمر-كوكب-)مجرة ضف العناصرأ -2(items)
(ComboBox)الخاص باألداة (SelectedIndexChanged)إجراء الحدث فييكتب الكود -3 كما يلي:
ComboBox1
Textbox1
(34)
التفرع الثانيالفصل
Branching
حيث أن (ComboBox)ترتيب العناصر داخل األداة على (Code) كتابة الكود فيلقد اعتمدنا .وهكذا 2والثالث 1 والثاني( صفر indexترتيب ) األول له العنصر
(34)
التفرع الثانيالفصل
Branching
أسئلة
:امام العبارة الخطأ( )( أمام العبارة الصحيحة وعالمة ضع عالمة )السؤال األول : ) ( 2هو ( If..Then..else)عدد اختيارات التفرع الممكنة مع استخدام جملة (1), عندما يكون ناتج التعبير الشرطي (IF)في جملة ( Else)ينفذ الكود الذى يلي (2)
(True). ) (
) ( .حد معامالت المقارنة المنطقيةأهو &المعامل (3) ( False)يجب أن يكون كافة نواتج الشروط المستخدمة (Or)باستخدام معامل المقارنة (4)
(.False)النهائى الناتجلكي يكون ) (
فى حالة اختبار أكثر من تعبير شرطى بجملة شرطية (Select Case)تستخدم جملة (5) .واحدة
) (
فإن ناتج التعبير 350تساوى ( Y)والمتغير 15( تساوي x)إذا كانت قيمة المتغير (6) (.False)هو (x>10 And y<500)الشرطى
) (
) ( (. If)اختياري فى جملة (Else)استخدام (7)لكى يكون الناتج النهائى ( true) يتطلب ان يكون الشرطان ناتجهما ( and)المعامل (8)
(True). ) (
) ( (.SelectedIndex)هى ( ListBox)تشير الى العنصر المحدد باألداة التي الخاصية (9) ) ( .فى حالة وجود اكثر من احتمالين للتفرع ( Select..Case)تستخدم (11)
:الثانيالسؤال قم بإعادة كتابة الكود فى (R)لحساب مساحة دائرة نصف قطرها التالي( Code)الكود يستخدم
( Textbox1)بحيث يعطى رسالة "غير مسموح" عند ادخال عدد سالب فى مربع النص العمود األيسر .(R)الذى خصص قيمته للمتغير
(33)
التفرع الثانيالفصل
Branching
دراسة جيدة والذى يحدد التقدير المناسب لكل درجة التالي( Code)قم بدراسة الكود السؤال الثالث: (Textbox1)مربع النص فيمدخلة
مربع النص فيعند ادخال الدرجات التالية (Label2)أداة العنوان فيحدد ما يتم عرضه (Textbox1):
الناتج الدرجة المدخلة30 84
64.4 -33 صفر
114.3 ويعطى نتائج صحيحة عند (y=3x+2)لحل معادلة من الدرجة األولي التاليالكود يستخدم : الرابعالسؤال
عند (Runtime Error)ولكن حدث خطأ أثناء التشغيل ( TextBox)مربع النص فيادخال قيم عددية بعد حل هذه المشكلة ( Code)قم بإعادة كتابة الكود (TextBox) مربع النص فيادخال قيم حرفية
أداة العنوان وهى "يجب إدخال قيمة عددية" فيإضافية بحيث يعطى رسالة (If)باستخدام جملة
يكافىء التعبير
>=85 and <=100
تكون محصورة degفي هذة الحالة قيمة
111الى 55 من
(33)
التفرع الثانيالفصل
Branching
: اختر ناتج تنفيذ كل من األكواد التالية:الخامسالسؤال الناتج الكود م
1
One .أ
Two .ب three .ج
2
True .أ
False .ب 15 .ج
3
Youssif Ahmed .أ
Ahmed Youssif .ب Ahmed .ج
4
AXB=63 .أ
7X9=63 .ب 7X9=A*B .ج
5
First .أ
Second .ب Forth .ج
(33)
التفرع الثانيالفصل
Branching