داليتي سكول -

Daliaty School

   صفحة البيت  |

 

 

 

 

 

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

 

 

 

 

 

المتغيرات في بايثون

مشغل باقي القسمة (%) - האופרטור שארית החלוקה

 

 

 

عملية باقي القسمة - %

 

أحياناً نحن معنيين بمعرفة القيمة الصحيحة المتبقية الناتجة من قسمة عددين صحيحين.

مشغل عملية باقي القسمة بين عددين هو العامل %

 

القيمة الصحيحة المتبقية من قسمة عددين:   

 

مثال:

جد القيمة الصحيحة المتبقية من قسمة العددين 19 و  5 ؟

الحل: نكتب،    والنتيجة 4

نسجل هكذا:  

لأن الــ 19 بها 3 مرات 5 ويبقى 4

وبالرموز الرياضية:  

 

 

 

 

مثال:

13 % 5 = 3

لأن: 13 // 5 = 2 (3)

 

 

 

·        فوائد هذه العملية:

·        بمساعدة العامل % يمكن عزل منزلة الآحاد لأي عدد معطى

هكذا:    (مثال 2947 % 10 = 7)

·        بمساعدة % يمكن أن نتحقق إذا كان عدد ما ينقسم (بدون باقي) على عدد آخر.

مثلا: هل العدد 120 ينقسم على 5 (من غير باقي) ؟

لمعرفة ذلك نفحص إذا كان الباقي من قسمة 120 على 5 مساويا لــ 0 ، هكذا: 

 

النتيجة التي سيعرضها الحاسب هي True

 

نوضح هذا:

لقد نفذ الحاسب اولاً نتيجة التمرين    (التي هي 0)،

وبعد ذلك فحص وقارن هذه النتيجة مساوية لــ 0، هكذا:

 

 

نتيجة المقارنة صحيحة، لذلك عرض على الشاشة True

 

ملاحظة: العامل % يمكن استخدامه أيضاً مع الأعداد العشرية.

مثال: 12.0 % 3.5 النتيجة 1.5

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

 

 

  

 

 

تمرين 1

ما هو خارج القسمة الناتج من العمليات التالية:

انتبه: المقسوم أكبر من المقسوم عليه.

 

توضيح

المخرج

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

5 // 2 = 2 (1)

8 // 3 = 2 (2)

12 // 4 = 3 (0)

12 // 5 = 2 (2)

12 // 7 = 1 (5)

12 // 8 = 1 (4)

12 // 9 = 1 (3)

12 // 10 = 1 (2)

12 // 11 = 1 (1)

1

2

0

2

5

4

3

2

1

print (5 % 2)

print (8 % 3)

print (12 % 4)

print (12 % 5)

print (12 % 7)

print (12 % 8)

print (12 % 9)

print (12 % 10)

print (12 % 11)

 

 

  

 

 

تمرين 2

ما هو خارج القسمة الناتج من العمليات التالية:

انتبه: المقسوم أصغر من المقسوم عليه.

 

توضيح

المخرج

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

2 / 3 = 0 (2)

2 / 5 = 0 (2)

3 / 6 = 0 (3)

3 / 12 = 0 (3)

10 / 20 = 0 (10)

2

2

3

3

10

print (2 % 3)

print (2 % 5)

print (3 % 6)

print (3 % 12)

print (10 % 20)

 

قاعدة: إذا كان العدد المقسوم أصغر من العدد المقسوم عليه، الباقي الناتج يكون العدد المقسوم.

وبالرموز: إذا x < y عندها x % y = x   

 

 

 

 

 

 

تمرين 3

ما هي القيمة الناتجة من قسمة أي عدد زوجي على 2؟

 

توضيح

المخرج

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

2 / 2 = 1 (0)

4 / 2 = 2 (0)

6 / 2 = 3 (0)

14 / 2 = 7 (0)

86 / 2 = 43 (0)

0

0

0

0

0

print (2 % 2)

print (4 % 2)

print (6 % 2)

print (14 % 2)

print (86 % 2)

 

قاعدة: عند قسمة أي عدد زوجي على 2 يكون باقي القسمة صفر.

كل عدد زوجي ينقسم على 2 بدون باقي (بمعنى الباقي يكون 0)

وبالرموز: إذا كان K عدداً زوجياً، عندها نتيجة k % 2 = 0

 

 

  

 

تمرين 4

ما هي القيمة الناتجة من قسمة أي عدد فردي على 2 ؟

 

توضيح

المخرج

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

1 / 2 = 0 (1)

3 / 2 = 1 (1)

5 / 2 = 2 (1)

7 / 2 = 3 (1)

11 / 2 = 5 (1)

31 / 2 = 15 (1)

1

1

1

1

1

1

print (1 % 2)

print (3 % 2)

print (5 % 2)

print (7 % 2)

print (11 % 2)

print (31 % 2)

 

قاعدة: عند قسمة أي فردي على 2 يكون باقي القسمة دائما 1

وبالرموز: إذا كان K عدداً فردياً، عندها نتيجة k % 2 = 1

 

 

  

 

 

سؤال  (השמה)

 

معطى :   a, b = 8, 3

ماذا سيعرض التعبير التالي a % b

أ. 2        ب. 1       ج. 0          د. 6

 

 

الحل:  ب. 2     

 

 

  

 

 

سؤال

ما هو المخرج من الكود التالي:

 

a, b = 2, 3

c = (a + b) % b

print (c)

 

أ) 1        ب) 2         ج) 3         د)  4

 

الحل:    أ) 1        

 

 

  

 

سؤال  (إسناد قيمة، الباقي)

 

ما هو المخرج من الكود التالي:

 

a = 9

b = 4 

result = a // b + a % b

print (result)

 

 

أ) 2         ب) 3         ج) 4         د)  5

 

الحل:  ب) 3 4

 

 

 

  

 

 

 

تمرين 5

تفكيك عدد ثنائي المنزلة

معطى num عدد ثنائي المنزلة (مكون من منزلتين)

كيف نجد منزلة الآحاد في عدد ثنائي المنزلة num :  num % 10

 

كيف نجد منزلة العشرات في عدد ثنائي المنزلة num :  num // 10

 

  

 

 

تمرين 6

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

البرنامج يطبع كل منزلة في سطر مستقل.

 

 

num = int(input("type a number with 2 digit:"))

print (num // 10)

 

print (num % 10)

المخرج:

Type number with 2 digits 45

4

5

 

 

  

 

تمرين 7

اكتب برنامج يقرأ عدداً صحيحاً.

على البرنامج أن يفحص إذا كان هذا العدد هو عدد زوجي أم لا.

إذا كان زوجي يطبع True، وإلا يطبع False؟

 

الحل:

 

 

number=76

True

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

x = num % 2

print (x == 0)

 

·       قرأنا العدد وخزناه في num.

·       x أخذ باقي القسمة (بين num و 2).

·       إذا x حصل على 0 يكون العدد الذي أدخلناه زوجيا.

·       إذا x لم يحصل على 0 (يكون قد حصل على 1) عندها يكون العدد الذي أدخلناه فرديا.

 

التعبير (x==0) هو تعبير منطقي (من نوع bool)، قيمته تكون أما True أو False.

قيمة   (x==0) تكون True إذا كانت القيمة التي في x هي صفر.

قيمة   (x==0) تكون False إذا كانت القيمة التي في x ليست صفر.

 

 

  

 

تمرين 8

أكمل الجدل التالي:

a % b

a // b

b

a

 0

 6

5

30

 2

 3

4

14

 3

 0

6

3

 3

 5

5

28

 

 

  

 

 

 

تمرين 9

سجل ما هو مخرج الناتج من الكود التالي:

 

المخرج:

num1 now is:  9

 

num1 % 2 is:  1

 

num2 now is:  8

 

num2 % 3 is:  2

num1 = 9

print ("num1 now is: ", num1)

num1 = num1 % 2

print ("num1 % 2 is: ", num1)

 

num2 = 8

print ("num2 now is: ", num2)

num2 = num2 % 3

print ("num2 % 3 is: ", num2)

 

 

  

 

تمرين 10

اكتب برنامج يقرأ عدداً صحيحاً. 

على البرنامج أن يفحص إذا كان هذا العدد هو من مضاعفات الــ 5 (بمعنى، ينقسم على 5 بدون باقي)

إذا كان نعم يطبع True، وإلا يطبع False؟

 

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

x = num % 5

print (x ==  0)

 

 

  

 

 

تمرين 11

أكتب برنامج يقرأ عدد صحيح يمثل طول المدة الزمنية لفلم سينمائي بالدقائق،

أعرض طول المدة الزمنية للفلم بالساعات وبالدقائق. 

مثال: القيمة المُدخلة: 88

المَخرج: 1 hour and 28 minutes

 

الحل:

 

time = int(input("time in minutes="))

hours = time // 60

 

minutes = time % 60

print (hours, "hours and", minutes, "minutes")

 

 

 

ممكن بناء سؤال بالثواني:

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

דוגמא: 204 שניות  =  3 דקות  ו- 24 שניות.

 

  

 

 

تمرين 12:

 

اقرأ عدد صحيح الذي يمثل عدد الأيام التي مرت منذ بداية السنة.

أحسب واطبع عدد الأشهر وعدد الأيام. افترض أن عدد أيام الشهر 30 يوم.

 

baste = int(input("days baste="))

months = baste // 30

 

days = baste % 30

print ("months=", months)

print ("days=", days)

 

 

  

 

تمرين 13:

 

أكتب برنامج يقرأ عدد حبات البرتقال التي قطفها عامل.

لو اعتبرنا أنه يمكن وضع 150 حبة برتقال في الصندوق الواحد، جد عدد الصناديق المطلوبة.

 

oranges = int(input("oranges="))

boxes = oranges // 150

print ("boxes=", boxes)

 

 

  

 

تمرين 14 

اكتب برنامج يقرأ عدداً صحيحاً، ثم يحسب ويطبع عدد قواسم هذا العدد من بين القواسم 2, 3, 5؟

مثال: بالنسبة للعدد 20 النتيجة هي 2

(عدد قواسمة 2، فهو ينقسم على 2 و 5 ولا ينقسم على 3)

 

الحل:

 

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

sum = (num % 2 == 0) + (num % 3 == 0) + (num % 5 == 0)

print ("sum=", sum)

 

 

  

 

تمرين 15

 

اكتب برنامج يقرأ عدداً صحيحاً مكون من منزلتين.

(أ‌)    البرنامج يحسب ويطبع منزلة الآحاد ومنزلة العشرات، كل منزلة لوحدها.

(إرشاد: على البرنامج أن يعزل (يُخلص) من العدد منزلة الآحاد، ومنزلة العشرات).

(ب‌)        البرنامج يطبع جمع منازله.

(ت‌)        البرنامج يكوّن عدداً جديداً من نفس المنازل ولكن بشكل معكوس.

 

مثال: العدد المُدخل: 57،  المخرج:  (أ) 7   5   (ب) 12   (ج) 75

 

 

الحل:

 

num = int(input("num-2 digits"))

d1 = num % 10        # تخليص منزلة الآحاد

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

print ("d1=", d1)    # طباعة منزلة الآحاد

print ("d10=", d10)  # طباعة منزلة العشرات

 

sum = d1 + d10       # أيجاد جمع المنزلتين

print ("sum=", sum)  # طباعة جمع المنزلتين

 

new = 10*d1 + d10    # بناء عدد من منزلتين بشكل معكوس

print ("new=", new)  # طباعة العدد المعكوس

 

 

 

  

 

تمرين 16

 

اكتب برنامج يقرأ عدداً صحيحاً مكون من 3 منازل.

(أ) على البرنامج أن يعزل منازله، ويطبع كل منزلة لوحدها.

(ب) يحسب جمع منازلة.

(ج) البرنامج يكون عدداً جديداً من نفس المنازل ولكن بشكل معكوس.

 

الحل:

 

num = int(input("num-3 digits"))

d1   = num % 10   # تخليص منزلة الآحاد

 

 

d10  = (num // 10) % 10  # تخليص منزلة العشرات

 

d100 = num // 100   # تخليص منزلة المئات

 

print (d1, d10, d100)

 

print (d1 + d10 + d100)                          

 

new = 100*d1 + 10 * d10 + d100

print ("new=", new)

 

 

  

 

تمرين 17

تخليص منازل عدد

نريد كتابة يرنامج يقوم بطباعة منازل أي عدد صحيح

 

الحل:

 

المخرج:

5

4

3

2

1

توضيح:    

#(12345) % 10 = 5

#(1234) % 10 = 4

#(123) % 10 = 3

#(12) % 10 = 2

#(1) % 10 = 1

x = 12345

a1 = (x // 1) % 10     

a2 = (x // 10) % 10

a3 = (x // 100) % 10

a4 = (x // 1000) % 10

a5 = (x // 10000) % 10

print (x)

print (a1,a2,a3,a4,a5)

 

 

 

  

 

تمرين 18

اقرأ ثمن بدلة بالشواكل والأغورات وهو مكون من منزلتين بعد الفاصلة.

المخرج يكون محتوى الشواكل، ومحتوى الأغورات.

 

مثال: المُدخل - 30.95

المخرج – 30

              95   

num = float(input("real number"))

aa = int(num * 100)  

print (aa // 100)

print (aa % 100)

 

  

 

تمرين 19:

في إطار رحلة مدرسية، المدرسة معنية باستدعاء باصات وسيارات من نوع ميني - بوس (מיניבוסים).

في كل باص عادي ممكن استيعاب حتى 50 تلميذ. وفي الميني-بوس يوجد 12 مقعد.

أكتب برنامج الذي يطبع أصغر عدد ممكن من السيارات المطلوبة.

افترض أنه لا يوجد باقي (سنتعلم فيما بعد كيف نتعامل مع وجود باقي).

 

 

pupils = 140

bas = 2

mini_bus = 3

pupils = int(input("pupils="))

bus = pupils // 50

mini_bus= (pupils % 50) // 12

print ('bus=', bus)

print ('mini_bus=', mini_bus)

 

 

  

 

 

تمرين 16:

כתוב קטע תוכנית המדמה בנקט. קטע התוכנית קולט סכום כסף (חייב להתחלק ב- 50). לבסוף הקטע תוכנית תדפיס: כמה שטרות 200 ₪ דרושים, כמה שטרות 100 ₪ דרושים ולבסוף כמה שטרות של 50 ₪ דרושים. על קטע התוכנית לחשב את הכמות המינימלי של שטרות!

 

 

  

 

تمرين 17 

(מיכאל צ'רנובילסקי, חוברת תרגילים, שאלה 7)

 

أكتب برنامج يستقبل رقم هوية (عدد من 9 منازل)، ويطبع كمخرج التالي:

·       العدد (الذي قرأناه).

·       أرقامه، كل رقم على حدة (مستقل).

·       جمع منازله.

·       الباقي من قسمة جمع منازلة على 10 (أستعن بـــ %)

 

 

الحل:

 

هذا المقطع يعيد نفسه 9 مرات.

                                   

tz = 123456789

s = 0

 

d = tz % 10

s = s + d

print (d1)

tz= tz // 10

  ...

 

 

 

  

 

 

 

 

 

   

 

 

 

   

 

 

 

Daliaty School – Copywrite  2023

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

 

 

 

 

 

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