داليتي سكول -

Daliaty School

   صفحة البيت  |

 

 

 

 

 

بايثون – פיתון – python

 

 

 

 

 

(3)  الشرط – elif

 

 

 

 

التصريح elif

الصيغة العامة لتنفيذ شرط if

 

 

if شرط1:

  بلوك 1

elif 2شرط:

  بلوك 2

elif 3شرط:

  بلوك 3

.

.

else:

  n بلوك

 

·       الأمر elif هو اختصار لــ  اختصار لــ else if

·       إذا كان لدينا أكثر من شرط واحد بحاجة لفحصه، يمكن كتابة عدة أوامر من نوع elif

·       الأمر elif يمكننا فحص عدة أمكانيات في حالة ولم تتحقق الشروط السابقة.

-----------------------------------------------------------------------------------------

·       معنى الكلمة elif:

-         أذا لم يتحقق الشرط وكان ....

-         "إذا كانت الشروط السابقة غير صحيحة، عندها جرّب هذا الشرط".

-         أما – إذا كان

-----------------------------------------------------------------------------------------

 

التصريح else

·       else يستخدم إذا لم يتحقق أي شرط من الشروط السابقة (אחרת)

·       "ذا ولا واحدة من الشروط السابقة تحققت ....

else تأخذ وتلتقط أي شيء لم يتم اكتشافه من قِبل الشروط السابقة.

 

 

 

 

 

 تمارين

 

 

 

 

سؤال

 

معطى القول التالي:

 

أن الصيغة if-elif-else

تقوم بتنفيذ كتلة (بلوك) واحده فقط من الكود من بين عدة كتل ("بلوكات")

 

 

جد العبارة الصحيحة؟

(a)   False

(b)   True

(c) هذا يتعلق بالتعبير الذي نستخدمه

(d)   elif غير موجود في لغة البايثون

 

الإجابة: ( b )

 

 

  

 

 

سؤال  (من الكلمات إلى الكود)

 

نفذ التعليمات التالية:

إذا a يساوي لـ b اطبع "1"

وإذا لا وكان a أكبر من b اطبع "2"،

وإذا لا أطبع "3".

 

a = 50

b = 10

if a  == b:

  print ("1")

elif a > b :

  print ("2")

else:

  print ("3")

 

 

 

  

 

 

 

سؤال  (جد المخرج حسب قيمة مدخلة)

 

 

جد المخرج بالنسبة للمدخلات المسجلة:

 

num = int(input("أدخل عدد صحيح"))

if num % 3 == 0:

  print ("ابو كادو")

elif num % 2 == 0 :

  print ("موز")

print ("يوم موفق")

 

 

العدد المُدخل 14

العدد المُدخل 11

العدد المُدخل 33

موز         

يوم موفق

               

يوم موفق

ابو كادو   

يوم موفق

 

 

  

 

 

سؤال

 

ما هو المخرج الناتج من الكود التالي إذا كان العدد المُدخل 20؟

 

i = int(input('type a number='))

if (i == 10):

    print ("i is 10")

elif (i == 15):

    print ("i is 15")

elif (i == 20):

    print ("i is 20")

else:

    print ("i is not present")

 

 

أحط الإجابة الصحيحة:

a) i is 15     b) i is 20

c) i is 10     d) i is not present

 

 

  الحل:      i is 20

 

 

  

 

 

توضيح:  عندما: i = 20 ، يتحقق السطر السادس: 

 

elif (i == 20) :

     (20 == 20):

        True   :

 

يُنفذ السطر: print("i is 20") ، ويُطبع:  i is 20

 

 

  

 

 

 

سؤال  (مقارنة بين مقطعين)

 

هل البرنامجان التاليان متطابقان: هل يعطيان نفس المخرج لكل قيمة مدخلة؟

إذا لا جدوا مثال مضاد: جدوا قيمة num مقابلها يخرجان (يطبعان) قيم مختلفة.

 

برنامج (أ)

num = int(input("أدخل عدد صحيح"))

if num % 2 == 0 :

  print ("عدد زوجي")

elif num % 3 == 0 :

  print ("العدد ينقسم على 3")

 

 

برنامج (ب)

num = int(input("أدخل عدد صحيح"))

if num % 2 == 0 :

  print ("عدد زوجي")

if num % 3 == 0 :

  print ("العدد ينقسم على 3")

 

  البرنامجان:

      (أ) متطابقان (في جميع المُدخلات)

    (ب) مختلفان. لأنه عندما نُدخل القيمة   num =  6

            برنامج (أ) يطبع عدد زوجي وبرنامج (ب) عدد زوجي ويطبع العدد ينقسم على 3

 

 

  

 

 

 

سؤال  (مقارنة بين عددين)

 

كتب برنامج يقرأ من المستخدم عددين،

ثم يطبع التباين بين العدد الأول إلى العدد الثاني: أكبر، أصغر أو تساوي.

مثال:

المدخلات

المخرج

6 و 8

6 < 8

4 و 4 

4 = 4

9 و 3

9 > 3

 

 

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

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

if a > b:

  print (a,">", b)

elif a < b:

  print (a,"<", b)

else:

  print (a,"=", b)

 

 

 

  

 

 

سؤال   (تحقق شرط، فحص إذا عدد هو موجب أو سالب)

 

نريد أن نعرف إذا كان العدد المُدخل هو عدداً موجبًا أم عدداً سالبًا أم صفر

(الصفر يعتبر عدد ليس موجبا وليس سالباً).

اكتب برنامج يستقبل عدد ويحدد نوعه:

-         إذا كان موجباً يطبع positive

-         إذا كان سالباً يطبع negative

-         إذا كان صفر يطبع zero

 

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

if num > 0:

  print ("positive")

elif num < 0:

  print ("negative")

else:

  print ("zero")

 

ملاحظة: السطر الأخير في الكود يمكن ابداله بدل من else بـــ elif:

                        elif num == 0:

  print ("zero")  

 

 

  

 

 

سؤال  (تحقق شرط، مساواة)

 

أكتب برنامج يقرأ عدداً صحيحاً بين 1 و  7،

على البرنامج أن يطبع اليوم الملائم له بالكلمات.

مثال:   العدد المُدخل 4 ç يطبع Wednesday

 

استعن بالجدول:

 

الرقم المدخل

اليوم

1

Sunday

2

Monday

3

Tuesday

4

Wednesday

5

Thursday

6

Friday

7

Saturday

عدد آخر

wrong day

 

d=int(input ("day="))

if d==1:

  print ("Sunday")

elif d==2:

  print ("Monday")

elif d==3:

  print ("Tuesday")

elif d==4:

  print ("Wednesday")

elif d==5:

  print ("Thursday")

elif d==6:

  print ("Friday")

elif d==7:

  print ("Saturday")

else:

  print ("wrong day")

 

 

 

  

 

 

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

 

معطى البرنامج التالي، الذي يقرأ علامة طالب (بين 0 و 100).

ويوزع الطالب إلى مستويات وفِرَق بحسب علامته.

جد وحدد مجال العلامات لكلٍ من المستويات:  A, B, C, D

 

g = int(input("grade="))

if g >= 90:

  print ("A")

elif g >= 80:

  print ("B")

elif g >= 60:

  print ("C")

else:

  print ("D")

 

الفرقة

المجال

A

90 .. 100

B

80  ..  89

C

60  ..  79

D

  0 ..   59

 

 

  

 

 

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

 

اكتب برنامج يقرأ علامة طالب (نفرض انها صحيحة بين 0 و 100).

البرنامج يصنف الطالب إلى فرق حسب التالي:

 

90 – 100

فرقة    A

70 – 89

فرقة     B

أقل من 70

فرقة    C

 

grade = int(input("grade="))

if grade >= 90 :

  group = 'A'

elif grade >= 70 :

  group = 'B'

else:

  group = 'C'

print (group)

 

 

 

  

 

 

 

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

تريد إدارة المدرسة أن تصنف الطلاب في موضوع الرياضيات إلى 3 فرق:

فرقة A – الطلاب اللذين علاماتهم فوق 84 (أي بين 85 و 100)

فرقة B – الطلاب اللذين علاماتهم بين 84 و 55 (يشمل)

فرقة C – الطلاب اللذين علاماتهم أقل من 55 (أي بين 54 و 0)

 

اكتب برنامج يستقبل علامة طالب (عدد صحيح) في الرياضيات، ثم يطبع رسالة توضح الفرقة الملائمة له.

 

g = int(input("grade="))

 

if g  > 84 :

  print("A")

elif g < 55 :

  print("C")

else:

  print ("B")

 

 

  

 

 

الحل    (Select from List)

 

g =  1 ( 2 ("grade="))

 

if g   3  :

  print("A")

 4  g   5   :

  print("C")

 6     

  print ("B")

 

 

إمكانيات:

int, input, float

1

input, int, float

2

g > 84, g < 84, g >= 84, g <= 84, g != 84

3

elif, else, if, else if

4

g < 55, g > 55, g > 84, g < 54

5

else, elif, if, else if

6

 

 

 

 

  

 

 

 

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

في مسابقة الجري، يمكن الحصول على واحدة من 3 ميداليات أو عدم الحصول

على ميدالية على الإطلاق، وذلك حسب وقت الانتهاء:

·       أقل من 10 ثوان - ميدالية ذهبية

·       أقل من 20 ثانية - ميدالية فضية

·       أقل من 30 ثانية - ميدالية برونزية

·       30 ثانية أو أكثر: تطبع الرسالة: "لم تحصل على ميدالية"

 

seconds = float(input("seconds="))

if seconds   < 10:

 

  print ("gold")

 

elif seconds   < 20 :

 

  print ("silver")

 

elif seconds   < 30 :

 

  print ("bronze")

else:

  print ("no Medallia")

 

 

 

  

 

 

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

 

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

نأخذ قيمة x ونعتبرها الكبرى – لذلك نضعها في max.

بعدها نقارن القيمتين y و- z مع max

 

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

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

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

max = x

if y > max:

    max =  y

if z > max:

    max = z

print (maximal value=", max)

 

 

 

  

 

 

سؤال   (فحص، مركب)

 

اكتب برنامج يقرأ عددين صحيحين. البرنامج يفحص إذا كانا مختلفين في الإشارات.

إذا كانا مختلفين يطبع diff وإذا لا يطبع equal

أنتبه: يمكن أن يكون أحد الاعداد قيمته صفر.

 

مساعدة:

(+)∙(+) ==> (+)  ,   (─)·(─) ==> (+)

(─)·(+) ==> (─)   ,    (+)·(─) ==> (─)

من هنا نستنتج أن العددين مختلفين في الإشارات عندما يكون ضربهما هو عدد سالب

 

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

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

if a*b < 0 :

  print ("diff")

elif a*b > 0 :

  print ("equal")

else:

  print ("there is a zero")

 

 

 

  

 

 

 

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

 

في دكان "كل-شيء" خرجوا في حملة كالتالي:

·       إذا اشتروا بمبلغ ابتداء من 5000 شيكل وما فوق يحصلون على هدية أيفون 8

·       إذا اشتروا بمبلغ بين 4000 – 4999.99 (يشمل) شيكل يحصلون على هدية أيفون 7

·       إذا اشتروا بمبلغ بين 3000 – 3999.99 (يشمل) شيكل يحصلون على هدية أيفون 6

·       إذا اشتروا بمبلغ بين 2000 – 2999.99 (يشمل) شيكل يحصلون على هدية أيفون 5

إذا اشتروا بمبلغ اقل من 2000 شيكل يحصلون على الرسالة: ' تستحق تخفيض 2% '

 

أكتبوا برنامج يقرأ المبلغ الإجمالي للمشتريات من الدكان، ويطبع رسالة مناسبة.

وفي جميع الحالات تطبع الرسالة 'شكرا لشرائكم من عندنا'

 

مثال: إذا مبلغ الشراء بين 3170 البرنامج يطبع

'حصلتم على هدية أيفون 6'.   

'شكرا لشرائكم من عندنا'

 

أستعن بالمخطط:

  

 

الحل:

 Enter purchase amount- أدخل مبلغ الشراء

 

total = float(input(' Enter purchase amount'))

if total >= 5000 :

    print ('you win iPhone8')

elif total >= 4000 :

    print ('you win iPhone7')

elif total >= 3000 :

    print ('you win iPhone6')

elif total >= 2000 :

    print ('you win iPhone5')

else:

    print ('تستحق تخفيض %2')

print ('شكرا لشرائكم من عندنا')

 

 

 

  

 

 

سؤال    (شرط، وجدول متابعة) (מיכאל צ'רנובילסקי, חוברת תרגילים, שאלה 3)

 

ما هي قيمة num في نهاية مقطع الكود التالي ?

 

المخرج

temp

num

الكود البرمجي

 

 

20

0+20=20

0

 

 

 0*10=0

20+30=50

num = 0

temp = 20

temp = temp + num

num = num * 10

num = temp + 30

 

 

20+50=70

20<=50

 

if temp <= num:

  temp = temp + num

 

 

 

 

 

 

70<=50

 

 

 

100

if temp <= num:

  num = temp - num

  temp = temp + 30

else:

  num = 100

 

 

70*2=140

 

 

 

100==100

 

 

if num == 100:

  temp = temp * 2

elif temp == 100:

  num = num * 2

else:

  temp = temp / 2

  num = num / 2

 

حاولوا تشغيل الكود (استعينوا بجدول متابعة) وتحققوا انها بالفعل هي النتيجة.

الحل: 100

 

 

  

 

 

 

(לקט בין תחומי הרצליה_ לידי דיויס)

שאלות שיש להשתמש ב- else

 

1.    קלוט מספר. הדפס "חד ספרתי" אם למספר יש ספרה אחת אחרת הדפס

  "לא חד ספרתי" - הנח שהמספר הוא חיובי.

2.    קלוט סכום קניה. אם סכום הקניה הוא קטן מ-  200 ₪, יש להדפיס אין הנחה אחרת יש להדפיס את המחיר לאחר הנחה של 10%.

3.    קלוט 3 מספרים. הדפס הפרשים שווים אם ההפרש בין המספר הראשון לשני שווה בערך מוחלט להפרש של המספר השני והשלישי.

4.    קלוט מספר נוסעים. נתון שיש עד 8 נוסעים בכל מונית. במידה ויש נוסע/ים שאין להם מקום, יש להזמין להם מונית נוספת. יש להדפיס כמה מוניות יש להזמין.

5.           

6.            

7.           

تمرين

 

תרגול עבודה עם משפט תנאי

התרגילים לקוחים מחומרי עבודתה של המורה אתי שגל

 

·       קלוט שני מספרים שונים, הדפס את הערך הגדול יותר בליווי הדפסות מתאימות.

·       קלוט מספר והצג: " Positive " ," Negative " או " Zero " בהתאם לערכו.

·       קלוט מספר טבעי והצג "Even" אם הוא זוגי ו - "Odd" אם הוא אי-זוגי.

·       קלוט שני מספרים טבעיים שונים זה מזה. בדוק והדפס האם המספר הגדול מבינהם מתחלק ללא שארית במספר הקטן. תן הודעה מתאימה.

·       בעל מפעל החליט להעלות את המשכורת של פועליו ב - 10% בתנאי שלאחר ההעלאה, השכר לא יהיה גבוה מ - 6000 . אם השכר החדש גבוה מ - 6000 , יקבל העובד העלאה של 5% בלבד. כתוב תוכנית הקולטת את משכורת העובד ומדפיסה את משכורתו לאחר ההעלאה.

·       קלוט שלושה מספרים והצג את המספר הגדול מבינהם.

·       כתוב תוכנית שתקלוט שלושה מספרים ותדפיס אותם בסדר עולה.

·       תלמיד יתקבל לאוניברסיטה אם ממוצע ציוניו בתעודת הבגרות לפחות 90, הציון הפסיכומטרי שלו לפחות 650, וגילו בין 20 ל- 40.

·       כתוב תוכנית הקולטת את ציוניו וגילו ומדפיסה הודעה מתאימה אם התלמיד התקבל או לא.

·       קלוט מספר דו ספרתי. אם במספר שקלטנו מופיעה הספרה 5, הדפס: "contains the digit 5". אם המספר מתחלק ב- 5 ללא שארית הדפס:

·       " divides to 5 without remainder ". אם המספר מקיים את שני התנאים הדפס: " contains and divides to 5 ".

·       כתוב תכנית המקבלת כקלט 4 מספרים וקובעת האם ניתן לחלקם לשני זוגות כך שסכום המספרים בזוג האחד יהיה שווה לזה של המספרים בזוג השני.

·       כתוב תוכנית שקולטת אורך של 3 צלעות של משולש. התוכנית בודקת אם אמנם שלושת המספרים מגדירים משולש על פי הכלל "סכום כל שתי צלעות גדול מהצלע השלישית". התוכנית תדפיס הודעה מתאימה:

·       " Triangle " או " Not Triangle ".

כתוב תוכנית שקולטת אורך של 3 צלעות בהנחה שזהו משולש. התוכנית תבדוק מהו סוג המשולש ותדפיס הודעה מתאימה: "isosceles" עבור משולש שווה שוקיים, "equilateral" עבור משולש שווה צלעות, ""regular עבור משולש רגיל.    

 

 

 

 

 

 

 

 

 

   

 

 

 

   

 

 

 

Daliaty School – Copywrite  2023

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

 

 

 

 

 

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