مدرسة جواكاديمي

هنا يمكنك تصفح مدرسة جو اكاديمي، المنهاج، اسئلة، شروحات، والكثير أيضاً

جملة الاختيار الشرطية المركبة if… else… statement

الحاسوب - الصف المواد المشتركة أول ثانوي

جملة الاختيار الشرطية المركبة if… else… statement

  في الدرس السابق تعلمنا تنفيذ مجموعة من الجمل أو جملة واحدة عند صواب الشرط ولكن لم نقم بعمل في حال كان الشرط خاطئًا فمثلًا عند علامة 50 فأكثر تُطبع عبارة Pass ولا يحدث شيء إن كانت العلامة أقل من 50. كذلك عند كتابة البرنامج الخاص بالعدد الموجب وطباعة عبارة Positive إن كان العدد صفرًا أو أكثر ولم يقم البرنامج بأي ردة فعل عندما كان العدد أقل من صفر. في هذا الدرس ستتعرف إلى جملة statement else ...if والتي تستخدم عندما يكون هناك جمل يجب أن تنفذ في حالة صواب قيمة الشرط، وجمل أخرى تنفذ عندما يكون قيمة الشرط خاطئة.

الصيغة العامة لجملة الاختيار الشرطية else...if:

if  (condition)

statement1;  

else

statement2;  

حيث إن:

 تعني إذا.C++كلمة محجوزة من كلمات لغة  if 
الشرط (تعبير علائقي أو منطقي) قيمته صواب أو خطأ. condition
تنفذ إذا كانت قيمة التعبير صائبة. C++:جملة من جمل statement1;
 تعني إذا لم يتحقق الشرط السابق.   C++كلمة محجوزة من كلمات لغة  else
تنفذ إذا كانت قيمة التعبير المنطقي خاطئة. C++:جملة من جمل statement2;

 

 

 

 

عند تنفيذ جملة if فإنه يتم إيجاد قيمة الشرط(condition)،فإذا كانت قيمته صائبة فسيتم تنفيذ جملة statement1، أما إذا كانت قيمته خاطئة فسيتجاوز البرنامج عن هذه الجزئية ويذهب إلى تنفيذ الجملة التي تلي else وهي جملة statement2،أي أن الحاسوب سينفذ إما statement1 أو statement2. والشكل الآتي يوضح مخطط سير العمليات لجملة الاختيار الشرطية else...if.

مخطط سير العمليات if   else

لاحظ تفرع مخطط سير العمليات إلى مسارين مختلفين بناءً على الشرط حيث تُنفذ واحدة فقط من هذه الجمل ثم يعود البرنامج إلى التتابع. 

البرنامج يقوم بإدخال عددينx, y ، فإذا كان x أكبر من y ، يطبع x  ثم يطبع عبارة  greater than  is ، ثم يطبع  y، وإذا كان y أكبر من x  يطبع y ثم يطبع عبارة  greater than is ، ثم يطبع x .

greater than

وناتج تنفيذ البرنامج هو: 

greater than output 1

عند تنفيذ البرنامج تم إدخال القيمة 76 وخُزنت في المتغير x  والقيمة 40 وخزنت في المتغير y. وعند مقارنة x>y كان جواب الشرط true وبالتالي فإن الجملة التي ستنفذ هي الجملة التي تلي if فقام البرنامج بطباعة قيمة x وهي 76 ومن ثم عبارة is greater than  وبعدها قيمة y. وتخطى else والعبارة التي تليها. 

تنفيذ البرنامج بإدخال قيم مختلفة عن المرة الأولى. 

greater than output 2

في هذه المرة تم إدخال العددين  50 و 100 فيخزن البرنامج  العدد 50 كقيمة للمتغير x  والعدد 100 كقيمة للمتغير y ثم يقوم بعملية المقارنة فيكون ناتج عملية المقارنة False فيقفز البرنامج إلى الجملة التي تلي الكلمة المحجوزة else  وينفذها ويطبع الناتج الظاهر على شاشة المخرجات. 

نشاط (2-22): جملة الاختيار الشرطية  المركبة

بالتعاون مع أفراد مجموعتك نفذ الآتي:

  • اكتب برنامجا بلغة C++ لإدخال علامة طالب وطباعة كلمة "Pass" إذا كانت العلامة أكبر أو تساوي 50 وغير ذلك يطبع كلمة "Fail".

pass program

  • قم ببناء البرنامج ونفذه.

pass ouput

  • ادخل قيماً مختلفة لعلامة الطالب، ماذا تلاحظ؟

​​​​​​​fail ouput

  • احفظ البرنامج في ملف المجموعة.

 

نشاط (2-23): حساب الضريبة السنوية

بالتعاون مع أفراد مجموعتك نفذ الآتي:

  •  اكتب برنامجا بلغة C++ لحساب وطباعة الضريبة السنوية لموظف يتقاضى راتباً شهرياً، إذا علم أن الشخص الذي يحصل على راتب سنوي أقل من ستة آلاف دينار سنوياً يدفع ضريبة بمقدار 10%، بينما يدفع الموظف الذي يحصل على راتب سنوي ستة آلاف دينار أو أكثر ضريبة بمقدار 15%. 

تحليل السؤال: 

​​​​​​​نرمز للراتب الشهري بالرمز Salary. ويجب إدخال قيمته. مدخلات

الضريبة Tax. تُحسب وتطبع - مخرجات

الضريبة تُحسب على الراتب السنوي Income وليس الشهري لذلك يجب حساب الراتب السنوي بضرب الراتب الشهر ب 12 حيث إنه لدينا 12 شهراً.

Income = 12 * Salary

الشرط على الراتب السنوي 

Income > 6000

إذا كان جواب الشرط صائبًا  تُحسب الضريبة بهذه المعادلة 

Tax = 10 / 100 * Income 

 وإذا كان جواب الشرط خاطئاً تُحسب بهذه المعادلة 

Tax = 15 / 100 * Income 

لاحظ أن النسبة المئوية تُحوّل إلى كسر. 

حللنا السؤال الآن أصبحت كتابة البرنامج أكثر سهولة.

Tax program

لاحظ أنّ جملة الطباعة ستُنفذ على جميع الأحوال لأنه لا علاقة لها بالشرط.

  • قم ببناء البرنامج ونفذه.
  • ادخل قيمة الراتب الشهري، ماذا تلاحظ؟

tax output 1​​​​​​​

  • كرر الخطوة السابقة،  وسجل ملاحظاتك.

​​​​​​​tax output 2

احفظ البرنامج في ملف المجموعة.