داليتي سكول -

Daliaty School

   صفحة البيت  |

 

 

 

 

 

بايثون – ôéúåï – python

 

 

 

 

 

 

 (4) الشرط المنطقي المركب – and – القسم 1 

 

 

 

 

الشرط المنطقي المركب

 

·       الدمج بين شرطين (أو تعبيرينأو أكثر معاً يدعى تعبير منطقي مركب.

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

and (أيضاً، or (أو، not (لا)

 

 

 

 

العامل المنطقي and (وايضاً، åâí)

 

 

مثال:

 

a, b, c = 200, 33, 500

if a > b and c > a:

  print ("Both are True")

 

 

الشرط يتحقق ويأخذ القيمة True، نوضح:

 

    a > b    and     c > a

200 > 33  and 500 > 200

    True    and      True     è True

 

في المخرج يطبع:  Both are True

 

 

 

 

 

 

a = 200

b = 33

c = 5

if a > b and c > a:

  print ("Both are True")

 

 

الشرط لا يتحقق:

a > b    and c > a

200 > 33 and 5 > 200

True     and False è False

في المخرج لا يطبع شيء.

 

 

 

 

  تـــــمــــــاريــــن

 

 

 

 

 

 تمارين أساسية  

 

 

 

سؤال   (تساوي بين الأعداد)

نريد كتابة برنامج يُدخل 3 أعداد من لوحة المفاتيح.
البرنامج يفحص إذا كانت جميع هذه الأعداد متساوية.

إذا نعم يطبع yes وإلا يطبع no.

 

إرشاد:

تذكر، في المنطق الرياضي:  لكل 3 أعداد a, b, c 

إذا a = b وأيضا a = c   ينتج <===   b = c

 

من هنا لفحص إذا كانت 3 أعداد (a, b, c) متساوية، يكفي تحقق الشرط التالي:

إذا: a = b وأيضا a = c

ولا داع لإضافة التعبير الثالث: وأيضا b = c

 

 

 

الحل: 

 

a = int(input('a='))

b = int(input('b='))

c = int(input('c='))

if a == b and a == c:

  print('yes')

else:

  print('no')

 

مثال: نفرض أن المُدخلات: a=5, b=5, c=5 ، المخرج yes

         نفرض أن المُدخلات: a=5, b=6, c=5 ، المخرج no

 

 

  

 

 

ملاحظة:  السؤال السابق يمكن طرحه بالشكل التالي، ويبقى نفس الحل

أكتب برنامج يُدخل 3 أعداد صحيحة تمثل أطوال أضلاع مثلث 

نفترض أن هذه الأعداد المُدخلة هي بالفعل تشكل أضلاع مثلث (لا داع للفحص) 

نريد أن نفحص إذا هذه الأضلاع تشكل أضلاع مثلث متساوي الأضلاع.

إذا نعم يطبع yes وإلا يطبع no.

 

 

 

 

 

تمرين   (تحقق شرط، أعداد موجبة)

 

اكتب برنامج يقرأ 3 أعداد،

إذا ثلاثتهم موجبين (أكبر من 0) أطبعوا " All Positive "  

وإذا لا أطبعوا:  "At least one number is not positive"

 

x = int(input("num1="))

y = int(input("num2="))

z = int(input("num3="))

if x>0 and y>0 and z>0:

  print ("All Positive")

else:

  print ("At least one number is not positive")

 

 

 

 

 

تمرين   (تحقق شرط، أضلاع مثلث)

في علم الهندسة ليست كل 3 أعداد يمكان أن تشكل أضلاع مثلث.

لكي يتشكل المثلث يجب أن يتحقق شرط النظرية الهندسية التالية:

   مجموع كل ضلعين أكبر من الضلع الثالث.

 

أكتب برنامج يُدخل 3 أعداد ويفحص إذا يمكن أن تشكل أضلاع مثلث.

إذا نعم يُطبع True، وإلا يطبع False.

 

a = int(input("a="))

b = int(input("b="))

c = int(input("c="))

if a+b > c and a+c > b and b+c > a :

  print (True)

else:

  print (False)

 

مثال لاعداد مُدخلة: a=4, b=3, c=5 ، عندها سوف تطبع: yes

 

 

 

 

تمرين    (مقارنة بين أعداد، العدد الأكبر)

 

اكتب برنامج يقرأ 3 أعدا د. على البرنامج أن يجد ويطبع العدد الأكبر.

مثال: إذا أدخلنا الاعداد 7, 9, 5 

        المخرج على الشاشة: maximal value= 9

 

x = int(input("num1="))

y = int(input("num2="))

z = int(input("num3="))

if x > y and x > z:

  max = x

elif y > z:

  max =  y

else:

  max =  z

print ("maximal value=", max)

 

 

 

 

 

تمرين (تحقق شرط، مركب)

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

حتى نبدأ بالسفر، يجب أن يكون على الأقل 12 مسافر (أولاد وبالغين).

 

أكتب برنامج الذي يقرأ عدد الأولاد وعدد البالغين.

يجب طباعة رسالة ملائمة، هل يمكن البدئ بالسفر.

 

أكمل الكود الناقص:

 

boys   = int(input("no of boys="))

adults = int(input("no of adults="))

 

sum = boys + adults

if sum >= 12 and adults >= boys:

  print ("going")

else:

  print ("not going")

 

 

 

  

 

 

 

 تمارين تتعلق بباقي القسمة %

 

 

سؤال (تحقق شرط، انقسام على عدد)

 

اختر الأوامر التي تفحص إذا عدد صحيح num ينقسم على 6 بدون باقي:

(يمكن أكثر من إجابة صحيحة)

 

أ)

if (num // 6 == 0) …

ب)

if (num % 2 == 0 or num % 3 == 0) …

ج)

if (num % 2 == 0 and num % 3 == 0) …

د)

if (num % 6 == 0) …

 

   الحل: ( C, D )

 

 

 

 

تمرين (تحقق شرط، مركب)

 

أكتب برنامج يقرأ عدد مكون من منزلتين، وبعد ذلك يقرأ رقم (0 - 9).

إذا كان في هذا العدد المنزلتين متساويتين للرقم، اطبع "the Same"،

وإذا لا اطبع "not the same"

 

num = int(input("two digits="))

x = int(input("num="))

d1 = num  % 10      # منزلة الأحاد

 

d10 = num // 10     # منزلة العشرات

if x==d1 and x==d10 :

  print ("the same")

else:

  print ("not the same")

 

 

 

  

 

 

 تمارين تتعلق بالمجال – على محور الأعداد 

 

 

 

سؤال    (مفمار ، الفحص في مجال)

 

التعبير if (a>30 and a<10): 

       i.            هو تعبير الذي قيمته تكون دائما True لكل قيمة يأخذها a.

     ii.            هو تعبير الذي تكون قيمته False لكل قيمة يأخذها a.

  iii.            هو تعبير الذي قيمته غير معروفة، لأن هذا يتعلق بقيمة a.

  iv.            التعبير خطأ، العملية and لا معنى لها.

 

 

 

 

سؤال (تبسيط شرط، مجال)

 

أ) أكتب تعبير أبسط من التعبير المسجل أمامك:

 

if x > 7 and x < 10:

  print ("yes")

if x > 7 :

  if x < 10 :

    print ("yes")

 

ب) عبر من خلال تعبير رياضي عن مجال الأعداد:

       10 <  x  <  7 ، نتعامل هنا مع الأعداد التي بين 7 و 10 (لا يشمل)

 

 

 

 

 

سؤال    (الفحص في مجال)

 

أكتب برنامج يقرأ عدد صحيح ويفحص إذا كان هذا العدد أحادي المنزلة (مكون من منزلة واحدة).

 

نقاش:

الأعداد أحادية المنزلة هي: -9,-8,-7, ..., 0, 1, 2, ,... 9

 

العدد أحادي المنزلة يجب أن يكون في المجال بين ((-10 و 10 (لا يشمل -10 و 10)

وعلى محور الأعداد: 

                                      

هي الأعداد التي تكون أكبر من -10 وأيضا أصغر من 10

 

وبالرموز:

X > -10 and x < 10 

 

وبالرياضيات نكتبه:   -10 < x < 10

 

 

  

 

  الحل:

  

num = int(input("num="))

if num >-10 and num < 10:

  print ("one digit")

else:

  print ("not one digit")

 

ملاحظة: يمكن كتابة الشرط بطريقة أخرى، تماما كما في الرياضيات

(وهذا ما تميزت به لغة بايثون عن باقي اللغات)

 

if -10 < num < 10:

 

 

 

 

 

سؤال    (الفحص في مجال)

 

  أ) اكتب شرط يفحص إذا كان العمر age بين 12 و 24 سنة (يشمل، مع 12 و 24)

 

     أكمل الكود الناقص:         if age >= 12 and age <= 24  : 

 

 

ب) أكتب شرط يفحص إذا العدد m يقع في المجال بين 3 و 9 (لا يشمل، بدون 3 و 9)

 

     أكمل الكود الناقص:         if m > 3 and m < 9 : 

 

 

  

 

 

سؤال    (الفحص في مجال)

 

أكتب برنامج يقرأ عمر شخص بالسنوات.

إذا كان العمر بين 6 و 18 (لا يشمل) يعرض الرسالة "pupil" (تلميذ)

وإذا لا يطبع  "other" (آخر)

 

أكمل الكود الناقص:

 

age = int(input("type your age"))

if age > 6 and age < 18 :

  print("pupil")

else:

  print("other")

 

 

 

 

 

تمرين   (الفحص في مجال)

أكتب برنامج يقرأ إشارة ويفحص إذا كانت هذه الإشارة هي حرف من بين 'a' و 'z'

يجب طباعة رسالة ملائمة.

انتبه: عند قراءة الإشارة يجب وضعها بين "  "

 

ch = input("char=")

if ch >= 'a' and ch <= 'z':

  print ("a letter")

else:

  print ("not a letter")

 

 

 

 

 

 

   

 

 

 

   

 

 

 

 

Daliaty School – Copywrite  2023

wahbem@gmail.com | https://daliaty.com

 

 

 

 

 

<meta name="viewport" content="width=device-width, initial-scale=1">