|
بايثون – ôéúåï – python
(5) الشرط
المنطقي
المركب – or –
القسم 2
الشرط
المنطقي
المركب
العلاقة
المنطقية or
(أو)
· or هو
عامل منطقي،
يتم استخدامه
للربط بين
العبارات
الشرطية (المنطقية).
· التعبير
المنطقي مع or تكون
نتيجته True (صدق) إذا
كان على
الأقل قيمة
أحد التعابير
المنطقية فيه True
(بمعنى:
يكفي أن تكون
قيمة أحد التعابير True).
مثال:
a, b, c = 2, 3, 5 if a > b or c > a: print ("At least one is True") |
الشرط
يتحقق. نوضح
لماذا:
a > b or c > a 2 > 3
or 5 > 2 False or True ==> True |
في
المخرج يطبع: At least
one is True
تـــــمــــــاريــــن
تمارين
أساسية
سؤال (and,
or, not )
جد
المخرج من
الكود
التالي؟
(تذكر
أولا يتم
تنفيذ and وبعدها
or)
x = True y = False z = False if x or y and z: print ("yes") else: print ("no") |
a) yes b) no c) فشل
في التشغيل d) True
الحل: ( a ) yes
سؤال (مساواة
بين أعداد)
نريد
كتابة برنامج
يُدخل 3
أعداد من لوحة
المفاتيح.
البرنامج
يفحص إذا يوجد
عددان
متساويان أو أكثر،
من بين هذه
الأعداد.
إذا
نعم يطبع yes وإلا
يطبع no.
a = int(input('a=')) b = int(input('b=')) c = int(input('c=')) if a == b or a == c or b == c: print('yes') else: print('no') |
مثال: نفرض أن
المُدخلات: a=5, b=4, c=5 ، المخرج yes
نفرض أن
المُدخلات: a=4, b=5, c=5 ، المخرج yes
ملاحظة: السؤال
السابق يمكن
طرحه بالشكل
التالي،
ويبقى نفس الحل
أكتب
برنامج يُدخل 3
أعداد صحيحة
تمثل أطوال
أضلاع مثلث.
البرنامج
يفحص إذا هذه
الأضلاع تشكل
أضلاع مثلث متساوي
الساقين.
البرنامج
يطبع "yes" إذا
المثلث
متساوي
الساقين (يوجد
على الأقل ضلعان
متساويان)،
و "no" إذا لا.
-
نفترض أن
الأعداد
المُدخلة هي
بالفعل تشكل أضلاع
مثلث، ولا داع
لفحص صحة
المُدخلات.
تمارين
تتعلق بباقي
القسمة %
تمرين (مساواة
بين أعدادـ
تخليص منازل)
اقرأوا
عدد من
منزلتين،
وافحصوا
بطريقتين مختلفتين
أنه في هذا
العدد على
الأقل منزلة
واحدة هي 7.
n=int(input("number=")) d1 = n % 10 #
منزلة
الآحاد d10 = n // 10 # منزلة
العشرات if d1 == 7 or d10 == 7: print ("yes") else: print ("no") #
print (d1==7 or d10==7) |
تمرين (مساواة
بين أعداد،
تخليص منازل)
أكتبوا
برنامج يقرأ
عدداُ موجباً
مكّون من منزلتين
(افترض أن
العدد المدخل صحيح).
أطبعوا
win إذا
كان على الأقل
أحد المنازل
هو 7،
وإذا لا
أطبعوا lose
استخدام
الشرط المركب.
n = int(input("two digits=")) x = n
% 10 # منزلة
احاد y = n
// 10 # منزلة
عشرات if x == 7 or y == 7 : print ("win") else: print ("lose") |
تمرين (تحقق شرط،
مركب)
أكتب
برنامج الذي
يقرأ 2 أعداد.
البرنامج
يفحص هل
العددان
زوجيان وأحد
الأعداد هو
على الأقل
أكبر بمرتين
من العدد
الثاني
(لا يهم
أي عدد) إذا
تحق ذلك، يطبع
"yes" وإذا لا
يطبع "no".
num1=int(input("number1=")) num2=int(input("number2=")) if (num1 % 2 == 0) and (num2 % 2 == 0) and (num1 >= 2*num2) or (num2 >= 2*num1): print ("yes") else: print ("no") |
سؤال (الفحص
في مجال)
بفندق
"شرتون"
بمدينة
تورنتو بكندا
42 طابق.
في
الطوابق 5-1
توجد معدات
الفندق المختلفة (مطاعم، غرفة
رياضة، بركة
سباحة والخ)
وفي باقي
الطوابق توجد
غرف النوم.
للفندق
يوجد 4 مصاعد.
·
جميع
المصاعد
تتوقف في
الطوابق 1-5.
· المصعدان
1 و 2
يتوقفان في
الطوابق 6 – 26
·
والمصعدان
3 و 4
يتوقفان
ابتداءً من
الطابق الـ 27.
شخص ما
يختار الطابق
الذي يرغب أن
يصعد إليه وجهاز
المراقبة
للمصعد يشير
ويدله
على أي
مصعد عليه أن
يختار (من بين
الـ 4 مصاعد).
امامك
كود الذي يخبر
الشخص أي مصعد
عليه أن يختار.
( أ ) عليك
تكملة
الأماكن
الناقصة التي في الكود.
floor = int(input("to what
floor=")) if floor >= 1 and floor <= 5: print ("Every elevator") elif floor >= 6 and floor <= 26: print ("elevator 1 , 2") else: print ("elevator 3 ,
4") |
(ب) لقد
قرروا أن
يغيروا من
طريقة توقف
المصاعد، بحيث
المصاعد
الفردية تقف
في الأماكن
الفردية،
والمصاعد
الزوجية تقف
في الأماكن
الزوجية. السكربت
أيضا تم
تغييره
بالشكل
المناسب.
floor
= input("to
what floor=") if floor % 2 == 0 : print
("elevator 2, 4") else: print
("elevator 1, 3") |
ارشاد: استعمل
العملية % التي
تعطي الباقي
من قسمة عددين
صحيحين.
تمارين
تتعلق
بالمجال – على
محور الأعداد
سؤال
(الفحص
في مجال)
أكتب برنامج
يقرأ عدد صحيح
ويفحص إذا كان
هذا العدد ليس
أحادي
المنزلة
أي مكون من
أكثر من منزلة
(من منزلتين
أو أكثر).
العدد ليس أحادي
المنزلة يجب
أن يتواجد
خارج المجال
الذي بين (-10) و 10
(يشمل -10 و 10)
وبالرموز: x <= -10 or x
>= 10
الحل:
num = int(input("num=")) if num <= -10 or num >= 10: print ("not one digit") else: print ("one digit") |
ملاحظة:
الشرط يمكن
صياغته بشكل
آخر
if num < (-9) or num > 9: |
سؤال
(الفحص
في مجال)
لا يتم
تجنيد
الأشخاص
اللذين أعمارهم
أقل من 18 عاما
أو أكبر من 26
عاما.
أكتب
برنامج يقرأ
عمر شخص،
ويفحص إذا كان
لا يتم
تجنيده،
عندها اطبع
الرسالة "not going"
وإذا لا
أكتب رسالة "going"
الحل:
age = int(input("age=")) if age <18 or age >26: print ("not going") else: print ("going") |
سؤال (الفحص في
مجال) (îöâú éåí òéåï 2017, ôééúåï
ìëéúä è) (úé÷åï ùâéàåú)
علامة
طالب تعتبر
قانونية إذا كانت بين 40 و 100 (يشمل).
أي
علامة ليست في
هذا المجال
تعتبر علامة
غير صحيحة
(خطأ).
أمامك
عدة شروط. هدف
كل شرط طباعة Correct إذا
العلامة
قانونية، و
Mistake إذا لا.
لكل
شرط يجب إحاطة
بدائرة
"صحيح" إذا في
الشرط يتم
طباعة Correct
للعلامة
الصالحة
وفي أي
حالة أخرى
احاطة "خطأ".
الشرط الذي
اعتبرته خطأ
يجب الشرح
باختصار عن
السبب.
نفرض
أن الأعداد
المدخلة في num هي أعداد
صحيحة (من
نوع int)
(أ) |
صحيح / خطأ
السبب:
الشرط لا
يشمل
العلامات
التي في
الأطراف (40, 100) |
if num > 40 and num < 100: print ("Correct") else: print ("Mistake") |
(ب) |
صحيح / خطأ الاجابة:
صحيح |
if num > 39 and num <= 100: print ("Correct") else: print ("Mistake") |
(ج) |
صحيح / خطأ الاجابة:
خطأ بسبب or – يقبل
العدد
السالب
ويقبل
الاعداد
الأكبر من 100 |
if num >= 40 or num <= 100: print ("Correct") else: print ("Mistake") |
(د) |
صحيح / خطأ خطأ،
السبب: الشرط
يشمل
العلامة 39.
ويقبل السالب. |
if num >= 39 or num <= 100: print ("Correct") else: print ("Mistake") |
(هـ) |
صحيح / خطأ الاجابة:
صحيح |
if num <= 39 or num > 100: print ("Mistake") if num > 39 and num < 101: print ("Correct") |
سؤال (الفحص
في مجال، ،
تعبئة جدول)
أمامك
قطعة من كود
برمجي، أكمل
الجدول وسجل مقابل
كل واحد من
المدخلات ما
هو المخرج.
math = input("math grade:") comp = input("Computer
grade:") eng = input("English
grade:") if (math > 85 and comp > 85 and eng
> 85): print("group A") elif (math < 56 or comp < 56 or eng
< 56): print("group B") else: print("group C") |
|
المخرج |
English |
Computer |
math |
أ) |
group A |
95 |
95 |
95 |
ب) |
group C |
85 |
90 |
85 |
ت) |
group C |
56 |
56 |
56 |
ث) |
group B |
87 |
90 |
45 |
ج) |
group C |
72 |
64 |
78 |
ح) |
group B |
92 |
88 |
45 |
الحل:
أ ) group A ب)
group C
ت) group C
ث) group B ج) group C
ح) group B
تفسير:
أ ) math
Computer English 95 95 95
if (math>85 and comp>85 and eng>85): ( 95>85 and
95>85 and 95>85):
( True
and True and
True): ===> True print("group A") ===> group A :::: |
ب) math Computer English 85 90 85 if (math>85 and comp>85 and eng>85): (
False and
True and
False): ===> False :::: elif (math<56 or comp<56 or eng<56): (
False or
False or
False ): ===> False :::: else: ===> True print("group C") ===> group C |
ت) math
Computer English 56 56 56 if (math>85 and comp>85 and eng>85): ( False and False
and False ):
===> False :::: elif (math<56 or comp<56 or eng<56): (
False or
False or False ): ===> False :::: else: ===> True print("group C") ===> group C |
ث) math
Computer English 45 90 87 if (math>85 and comp>85 and eng>85): (
False and
True and True
) ===> False :::: elif (math<56 or comp<56 or eng<56): (
True or False or False) ===> True
print("group B")
===> group B :::: |
ج) math
Computer English 78 64 72 if (math>85 and comp>85 and eng>85): ( False and False
and False)
===> False :::: elif (math<56 or comp<56 or eng<56): ( False or False
or False)
===> False :::: else:
===> True print("group C") ===> group C |
ح) math
Computer English 45
88 92 if (math>85 and comp>85 and eng>85): ( False and True
and True ): ===> False :::: elif (math<56 or comp<56 or eng<56): (
True or
False or False): ===> True print("group B")
===> group B
:::: |
سؤال: (الفحص في
مجال، فراس)
أكتب
برنامج يقرأ 3
أعداد إلى
المتغيرات x, L, R
إذا x في
المجال [L,R]،
البرنامج يطبع inside.
إذا x ليس
في المجال [L,R]،
البرنامج
يطبع outside.
انتبه:
نفرض انه معطى
L < R
أ)
حل بواسطة
العملية
المنطقية and
فقط.
ب)
حل بواسطة
العملية
المنطقية or
فقط.
ج) حل
باستخدام
العملية in وبواسطة range.
حل:
(أ) |
x = int(input('x=')) L = int(input('L=')) R = int(input('R=')) if x>=L and x<=R: print ('inside') else: print ('outside') |
(ب) |
x = int(input('x=')) L = int(input('L=')) R = int(input('R=')) if x<L or x>R: print ('outside') else: print ('inside') |
(ج) |
x = int(input('x=')) L = int(input('L=')) R = int(input('R=')) if x in range (L, R): print ('inside') else: print ('outside') |
قسم ب (‘ثراء):
مثل
السؤال
السابق بحيث
نقرأ 3 أعداد x, y, z كما
ترغبون.
انتبه:
المجال له
امكانيتان:
أما [y ,
z]،
أو [z , y]
اختاروا
في حلكم كما
جاء في بند (أ)
أو كما جاء في
بند (ب)
الحل:
(ب) |
(أ) |
x=int(input('x=')) y=int(input('y=')) z=int(input('z=')) if z>y: if x<y or x>z
: print ('outside') else: print ('inside') else: if x<z and x>y
: print ('outside') else: print ('inside') |
x=int(input('x=')) y=int(input('y=')) z=int(input('z=')) if z>y: if x>=y and x<=z
: print ('inside') else: print ('outside') else: if x>=z and x<=y
: print ('inside') else: print ('outside') |
Daliaty School – Copywrite 2023
wahbem@gmail.com | https://daliaty.com
<meta name="viewport"
content="width=device-width, initial-scale=1">