image001

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

 

 

  

 

 

  

 

 

دروس في برمجة لغة البايثون - python

 

 

 

قراءة بيانات من لوحة المفاتيح

   

 

 

 

 

تمرين

أكتب برنامج يقرأ 7 أعداد. على البرنامج أن يحسب ويطبع:

أ‌.        حاصل جمعهم    ب. معدلهم

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

 

الحل:

<script>

    sum = 0  ;

 

    for (i=1 ; i<=7 ; i++) {

 

        num = parseInt(prompt("enter a number"));

 

        sum = sum + num;

    }

    document.write("the sum is " + sum +"<br>");

    document.write("the average is " + parseInt(sum/7));

</script>

 

 

 

 

 

 

 

تمرين

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

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

 

الحل:  

فكرة الحل: نستعمل المتغير max لتخزين العد الأكبر.

كل عدد نقرأه نقارنه مع القيمة المخزنة في max ، إذا كانت القيمة أكبر من القيمة التي في max نضعها في max.

<script>

    max =  0  ;

 

    for (i=1 ; i<=10 ; i++) {

 

        num = parseInt(prompt("enter a number"));

 

        if (num > max) {

 

            max =   num  ;         

        }    

     }

    document.write("the maximom is " + max);

</script>

 

 

 

 

 

 

 

 

سؤال  (سؤال 4، مفمار 2016)

 

أمامكم مجموعة علامات: 85 , 95 , 87 , 90 , 72

الكود التالي يستقبل العلامات الواحدة تلو الأخرى إلى المُتَغَيِّر grade.

 

<script>

  var k, grade, secret = 0 ;

  for (k = 1; k <= 5; k++) {

      grade = parseInt(prompt("أدخل علامة"));

      if (grade > secret) {

        secret = grade;

      }

      document.write ("secret="+ secret + "<br>");

  }

</script>

 

اكتبوا، في المستطيل الفارغ، المُخْرَج الذي تحصلون عليه من مقطع هذا الكود، بحسب مجموعة العلامات من اليسار إلى اليمين (المُدْخَل الأوّل هو 72).

 

 

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

 

k

grade

If

Secret

المخرج

 

 

 

0

 

1

72

72>0 , True

72

secret = 72

2

90

90>72 , True

90

secret = 90

3

87

87>90 , False

90

secret = 90

4

95

95>90 , True

95

secret = 95

5

85

85>90 , False

95

secret = 95

 

 

 

 

 

 

 

 

 

تصحيح أخطاء

   

 

 

 

 

 

 (سؤال 2، مفمار 2017) - تصحيح أخطاء

 

أمامكم خمسة مقاطع كود (أ – ه). هدف كلّ مقطع كود هو أن يَستقبِل أربع علامات، أن يَحسب مُعدَّلها وأن يَطبَعه.

في كلّ مقطع كود وَقَع خطأ واحد، بسببه لا يُحَقِّق المقطع هدفه.

في كلّ واحد من المقاطع، اِشرحوا ما هو الخطأ، وصَحِّحوه على مقطع الكود.

 

ملاحظة: الخطأ ليس نابع من خطأ ترجمة برنامج (קומפילציה).

 

 

الشرح

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

(ا)

الخطأ:

لقد وضعنا  sum=0 في داخل الحلقة

التصحيح:

نقل sum=0 إلى خارج الحلقة.

<script>

  var m, num, sum ;

  for (m=1; m <= 4; m++) {

    num = parseInt(prompt("Press a number"));

    sum = 0;

    sum = sum + num;

  }

  document.write( sum / 4 );

</script>

(ب)

الخطأ:

لم نقد بجمع العدد الأول.

التصحيح:

تبديل الأسطر التي بداخل الحلقة.

<script>

  var sum = 0, num = 0, m;

  for (m = 1; m <= 4; m++)  {

    sum = sum + num;

    num = parseInt(prompt("Press a number"));

  }

    document.write( sum / 4 );

</script>

(جـ)

الخطأ:

قسمنا المعدل على  العدد 5، بدل من 4

 

التصحيح:

نقسم على 4

 أو  m-1

<script>

  var sum = 0, num = 0, m;

  for (m = 1; m <= 4; m++) {

    num = parseInt(prompt("Press a number"));

    sum = sum + num;

  }

  document.write( sum / m );

</script>

 

 

 

 

 

 

 

 

سؤال  (سؤال 3، مفمار 2019) - تصحيح أخطاء

 

أمامك مقطعا كود (المقطع "أ" والمقطع "ب"). الهدف من كل مقطع كود هو أن يستقبل 10 علامات وأن يحسب ويطبع كمية العلامات التي فوق الــ 80 (الأكبر من 80).

على سبيل المثال، بالنسبة لسلسلة العلامات التالية:

76, 84, 80, 57, 77, 90, 68, 74, 100, 93

    سوف يُطبع 4

 

في كل مقطع كود وقع خطأ واحد، ولذلك لا يُحَقِّق مقطع الكود هدفه.

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

ملاحظة: الخطأ ليس خطأ ترجمة وتجميع برنامج (קומפילציה).

 

(أ)

ما هو الخطأ:

الأمر: count = 0;

يجب أن يكون خارج الحلقة.

 

كيف يمكن تصحيحه:

نقل الأمر:

 count = 0;

إلى خارج الحلقة.

<script>

  var count, num, k;

  for (k=1; k<=10; k++) {

      count = 0;

      num = parseInt(prompt("أدخل علامة"));

      if (num > 80) {

          count = count + 1;

      }

  }

  document.write (count);

</script>

(ب)

ما هو الخطأ:

موقع أمر القراءة (سطر3) خارج الحلقة خطأ.

 

كيف يمكن تصحيحه:

نقل أمر القراءة إلى أول سطر داخل الحلقة. 

 

<script>

    var count, num, k;

    count = 0;

    num = parseInt(prompt("أدخل علامة"));

    for (k=1; k<=10; k++) {

        if (num > 80) {

            count = count + 1;

        }

    }

    document.write (count);

</script>

 

 

 

 

 

 

 

 

سؤال   (سؤال 3، مفمار 2019) - تصحيح أخطاء

 

أمامك ثلاثة مقاطع كود.

هدف كلّ مقطع هو أن يستقبل 17 عددًا، أن يَعُدّ كمّيّة الأعداد المُكوَّنة من رقمَيْن من بينها وأن يطبعها.

على سبيل المثال، بالنسبة لتسلسل الأعداد الــ 10 التالية:

230 ، 555 – ، 76 ، 5 ، 80 ، 100 – ، 77 ، 8 ، 74 ، 90

،  سوف يُطبع 5

 

في كلّ مقطع كود وقع خطأ منطقيّ واحد، ولذلك لا يُحَقِّق مقطع الكود هدفه.

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

اِفترِض أنّ المُدْخَل سليم ويشمل أعدادًا صحيحة فقط.

ملاحظة: الخطأ ليس خطأ ترجمة وتجميع برنامج (קומפילציה).

 

 

المقطع (أ)

 

 

ما هو الخطأ؟

القراءة ليست بداخل الحلقة.

 

كيف يجب تصحيحه؟

نقل أمر القراءة إلى أول سطر داخل الحلقة.

var count = 0;

var num = parseInt(prompt("أَدخِل عددًا"));

for (k = 1; k <= 17; k++)

{

    if (num >= 10 && num <= 99)

        count = count + 1;

}

document.write ( "count:" + count );

 

المقطع (ب)

 

 

ما هو الخطأ؟

أمر الشرط يتعامل مع المتغير num قبل أن تحدث قراءة لداخله

 

كيف يجب تصحيحه؟

أمر القراءة يجب أن يكون أول أمر بداخل الحلقة

var num, count = 0;

for (k = 1; k <= 17; k++) {

   if (num > 9 && num <= 99)

      count = count + 1;

   num = parseInt(prompt(("أَدخِل عددًا"));

}

document.write ("count:" + count );

 

 

 

 

 

 

تمارين

   

 

 

 

 

تمرين

 

اكتب برنامج يقرأ عدين صحيحين، ثم يحسب ضرب هذان العددان.

حل التمرين بدون استعمال مشغل عملية الضرب *. الحل يكون من خلال تكرار الجمع.

3 * 4 = 3 + 3 + 3 + 3 = 15

a * b = a + a + a + … + a

القيمة a مكررة في الجمع b مرات

<script>

  a = parseInt(prompt('num2='));

  b = parseInt(prompt('num2='));

  sum = 0;  // يأخذ 0 كقيمة إبتدائية

  for (x=1; x<=b; x++) {

     sum = sum + a

  }

  document.write('sum=',sum,'<br>') 

</script>

 

 

 

 

 

 

 

 

تمرين

 

اكتب برنامج يقرأ عدين صحيحين، ثم يحسب القوى لهذان العددان.

 

 

القيمة a مكررة b مرات

   

 

<script>

  a = prompt('num2=');

  b = prompt('num2=');

  p = 1;     // يأخذ 1 كي لا يكون صفر

  for (x=1; x<=b; x++){

     p = p * a

  }

  document.write('p=',p,'<br>') 

</script>

 

 

 

 

 

 

 

(سؤال 4، مفمار 2017)

 

أمامكم مقطع كود JavaScript يَستقبِل خمسة أرقام (9- 0)،

يَحْسب بناءً على الأوامر ويَطبع النتائج:

 

<script>

  var m, digit;

  var result1 = 0;

  var result2 = 0;

  for (m=1 ; m <= 5 ; m++) {

    digit = parseInt(prompt("Press a digit"))

 

    if (digit % 2 == 0) {

      result1= (result1 * 10) + digit;

    }

    else {

      result2 = result2 + digit;

    }

  }

  document.write("<br/>");

  document.write("Result #1 is " + result1 + "<br/>")

  document.write("Result #2 is " + result2)

</script>

 

أ.  أمامكم جدول لتتبُّع مقطع الكود.

    سَجِّلوا في الجدول ما الذي سَيُعرَض كمُخْرَج بالنسبة إلى المُدْخَلات التالية: 9, 8, 6, 5, 2

   (المُدْخَل الأوّل هو 9).

 

المُخْرَج

result2

result1

if(digit % 2==0)

digit

m

 

 

 

Result #1 is 862

 

Result #2 is 14

 

0

0

 

 

 

0+9=9

 

If 9 % 2 == 0  ;  False

9

1

 

0*10+8=8

If 8 % 2 == 0  ;  True

8

2

 

8*10+6=8

If 6 % 2 == 0  ;  True

6

3

9+5=14

 

If 9 % 2 == 0  ;  False

5

4

 

86*10+2=862

If 9 % 2 == 0  ;  True

2

5

 

ب. سَجِّلوا خمسة أرقام يُعرَض بالنسبة إليها المُخْرَجان التاليان:

       Result # 1 is 646      و     Result # 2 is 6

     الحل: مثال 64633 , 64615 (توجد 5 أمكانيات مختلفة).

 

ج. ما هي وظيفة المُتَغَيِّر result2؟   أحيطوا بدائرة الإجابة الصحيحة.

 

  i.

  ii.

  iii.

  iv.

جَمْع كلّ الأرقام

جَمْع الأرقام الزوجيّة

جَمْع الأرقام الفرديّة

جَمْع كلّ الأرقام التي تُقسَم على m من دون باقٍ

 

    الحل:  iii.  جَمْع الأرقام الفرديّة

 

 

 

 

 

 

 

 

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

w4

 

  

 

 

 

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