image001

صفحة البيت  |                מס טלפון 04 – 6046227 | מס' פקס 04 – 8303539

 

 

  

 

 

  

 

 

امتحان المفتش المركز (مفمار) – بايثون – صف سابع 2018

  

 

 

سؤال  1

 

أمامك 6 مقاطع برمجية (1 - 6)، الهدف من كل منها حساب معدل عددين، وطباعة النتيجة.

في كل مقطع تم استعمال المتغيران num1 و- num2، لتعويض عددين،

والمتغير average لحساب المعدل.

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

إذا كان صحيح أشر بـ V، إذا لم يكن صحيحاً اشرح باختصار السبب.

 

(2)

(1)

num1 = 20

average = (num1 + num2) / 2

num2 = 10

print (average)

num1 = 20

num2 = 10

average = (num1 + num2) / 2

print (average)

الحل: لا يوجد تعويض لــ num2 عند تنفيذ العمليات الحسابية، لذلك غير صحيح.

الحل: V            

  

 

 

(4)

(3)

num1 = 20

num2 = 10

temp = num1

num1 = num2

num2 = temp

average = (num1 + num2) / 2

print (average)

num1 = 20

num2 = 10

num1 = num2

num2 = num1

average = (num1 + num2) / 2

print (average)

الحل:                      V           

 

الحل: المخرج (النتيجة) 10، وهي ليست نتيجة المعدل المطلوبة. هذا حدث بسبب دهس قيمة المتغير num1 (التبديل لم ينفذ بشكل صحيح)  

 

(6)

(5)

num1 = 20

num2 = 10

sum = 1

while sum == 1:

  average = num1 + num2

average = average / 2

print average

num1 = 20

num2 = 10

num1 = num1 + num2

num2 = num1 – num2

num1 = num1 – num2

average = (num1 + num2) / 2

print average

الحل: غير صحيح، حلقة لا نهائية

 

الحل:                    V         

  

 

 

  

 

 

سؤال  2

 

عَرَفت مريم سلسلة نص msg، ولكن هذا النص تم حذفه (محيه) وكل ما تبقى هو مخرج (פלט) من تنفيذ أوامر (تعليمات) شغلتها على هذا النص.

العمليات لهذه التعليمات هي: count و- find

 

أ) استعن بالمخرج الذي أمامك كي تستعيد النص

   الأصلي:

   النص الأصلي msg هو: awesome    

 

some

2

0

print (msg[3:])

print (msg.count['e'])

print (msg.find["aw"])

 

ب) أمامك دالة التي كتبتها مريم:

 

 

ماذا سوف يطبع على الشاشة بعد تنفيذ البرنامج؟                     good!

def func(word):

  word = word.replace('h','o')

  word = word.replace('s','g')

  word = word.replace('e','d')

  print (word)

 

string = 'shhe!'

func(string)

 

 

  

 

 

سؤال  3

 

أمامك أربع مقاطع برمجية (1 - 4). كل مقطع برمجي يحتوي على مخرج (פלט).

بالنسبة لكل مقطع، افحص هل هو صحيح ام خطأ. إذا كان المقطع صحيح – أكمل المخرج الذي يجب أن يكون. إذا كان المقطع غير صحيح اشرح باختصار السبب.

 

إذا كان المقطع صحيح – أكمل المخرج الناتج

إذا كان المقطع غير صحيح – اشرح السبب

المقطع البرمجي

 

 

صحيح - Legal

 

 

 

text = "Lollipop"

if 'L' not in text:

   print ("illegal")

else:

   print ("legal")

1

 

غير قانوني - illegal

 

number = 8

if(number % 3 == 1) or

  (number % 3 == 2):

   print ("illegal")

else:

   print ("legal")

2

 

خطأ: المتغير length لم يأخذ قيمة بدائية

(לא אותחל)

 

text = "Lollipop"

for letter in text:

   length = length + 1

print (length)

3

 

صحيح – 2

 

  

text = "L@llip@p"

count = len(text)

for letter in text:

   if letter != '@':

      count = count – 1

print (count)

4

 

 

  

 

 

سؤال  4

 

(أ) أمامك مقطع لكود في لغة البايثون، الذي يقوم باستعمال بيئة السلحفاة turtle.

أرسم الشكل الذي نحصل عليه، على هيئة المحاور التي أمامك.

import turtle

window = turtle.Screen()

hero = turtle.Turtle()

hero.shape("turtle")

hero.penup()

hero.goto(0,0)

hero.pendown()

hero.goto(100,100)

hero.goto(200,0)

hero.goto(0,0)

 

window.exitonclick()

 

(ب) أمامك مقطع لكود في لغة البايثون (Python), الذي يقوم باستعمال بيئة السلحفاة (turtle).

 

أرسم الشكل الذي ينتج على هيئة المحاور التي أمامك.

 

import turtle

window = turtle.Screen()

hero = turtle.Turtle()

hero.shape("turtle")

hero.pendown()

hero.goto(0, 0)

 

for k in range(4):

   hero.forward(100)

   hero.left(90)

 

hero.forward(100)

 

for k in range(4):

   hero.forward(100)

   hero.left(90)

hero.penup()

window.exitonclick()

 

الحل: (أ)

 

(ب)

 

  

 

 

  

 

 

سؤال  5 (نظرا لرداءة السؤال الأصلي تم إعادة صياغته بشكل مختلف عن المصدر)

 

بمناسبة اليوم العالمي لجودة البيئة اتخذ أمجد قراراً ان يجمع يومياً قناني بلاستيكية من أجل إعادة تصنيعها. عدد إجمالي القناني التي يتم جمعها لا يقل عن 20 قنينة.

من أجل ذلك فكر بكتابة برنامج يقوم بِعَد عَدد القناني التي قام بجمعها، ويتوقف عندما يصل إلى عدد القناني المطلوب. البرنامج يقوم باستخدام المتغير bottles (زجاجات) و sum_all (الجمع)

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

افترض أن القيمة المُدخلة صحيحة وهي عدد صحيح وموجب.

 

א.   في البرنامج وقع خطأ منطقي والبرنامج لا يقوم بالمهمة.

ב.    

sum_all = 0

while sum_all != 20:

  bottles = int(input("أدخل كم قنينة تم جمعها اليوم"))

  sum_all = sum_all + bottles

print ("عظيم! لقد جمعت على الأقل 20 قنينة ")

1.

2.

  2.1

  2.2

3.

  

أ‌)      حدد رقم السطر الذي وقع به الخطأ:    ...........................  سطر رقم 2

  

ب‌)  اقترح تصحيح للسطر الذي وقع فيه الخطأ .....  while sum_all < 20:

  

 

 

  

 

 

سؤال  6 (تم تقصير أسماء الخلايا للتبسيط)

 

في النادي "سبلاش" يمكن شراء بطاقات دخول لمنطقة البركة.

سياسة النادي تمكننا من شراء نوعين من البطاقات:

1.    بطاقة شباب وثمنها 30 شاقل ومخصصة للشباب حتى جيل 15 (يشمل).

2.    بطاقة عادية وثمنها 60 شاقل ومخصصة للبالغين من جيل ما فوق الــ 15.

 

كتبت "ميخال" كود برمجي (خوارزم) الذي يستقبل عدد الأشخاص الذين يصطفون بالدور لشراء بطاقات للبركة. الـ خوارزم يسأل كل شخص ما يلي:

"ما هو جيلك"؟ و "ما هو عدد البطاقات التي ترغب بشرائها"؟

 

الخوיرزم يعرض (يطبع في المخرج):

·       عدد البطاقات الكلي التي بيعت (شباب وبالغين)،

·       عدد بطاقات الشباب التي بيعت،

·       وما هو المبلغ الكلي الذي جمعه النادي من بيع التذاكر في ذلك اليوم.

 

في الكود البرمجي تم استعمال المتغيرات التالية:

متغيرات للمدخلات:

people

لحفظ الإجابة عن السؤال: ما هو عدد الأشخاص الذين يرغبون بشراء بطاقات.

age

لحفظ الإجابة عن السؤال: ما هو عمرك؟

tickets

لحفظ الإجابة عن السؤال: كم عدد البطاقات التي ترغب بشرائها؟

 

متغيرات للمخرج:

regular

يمثل عدد البطاقات العادية التي بيعت.

all_tickets

يمثل عدد البطاقات الكلي التي بيعت.

sum _all

يمثل المبلغ الكلي الذي جمعه النادي من بيع التذاكر في ذلك اليوم

 

 

أكمل مقطع الكود التالي، في الأماكن المشار لها بخط.

 

regular =  0    

all_tickets =  0   

sum_all =  0     

people = int(input("إجمالي عدد الأشخاص الذين يرغبون في شراء تذاكر "))

for i in range(people):

  age = int(input("ما هو عمرك؟"))

  tickets = int(input("كم عدد بطاقات التذاكر التي ترغب في شرائها؟"))

  if age <=   15 : 

 

    sum_all = sum_all + tickets * 30

  else:

    sum_all = sum_all + tickets * 60

 

    regular = regular + tickets

 

  all_tickets = all_tickets + tickets

print ('عدد البطاقات الإجمالي التي بيعت (الشباب والعادية) هو', all_tickets)

 

print ('عدد بطاقات الشباب التي تم بيعها هو', all_tickets -  tickets )

 

print ('المبلغ الكلي للإيرادات من مبيعات التذاكر هو' , sum_all )

 

 

  

 

 

 

 

https://sites.google.com/site/koftanhatav/_/rsrc/1424517650012/home/math1.png?height=241&width=320    

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

w4

 

  

 

 

مدرسة قفطان حلبي الإعداديةدالية الكرمل - Copywrite – 2020