image001

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

 

 

  

 

 

 جافا سكريبت - JavaScript 

موقع كتابة الكود repl.it  | تحميل Brackets| تحميل Notebad++    

  

 

 

امتحان المُفَتِّش المُرَكِّز في علوم الحاسوب للصفّ الثامن

الوحدة التعليميّة برمجة طرف المُسْتَعْمِل - (מודול בצד לקוח) – java script

مفمار 2018

 

 

 

 

 

 سؤال 1

أمامكم عرض لصفحة حاسوب:

بطولة الـ سايبر

 

اسم المدرسة

عدد النجوم

صورة

المدرسة الثانوية (أ)

420

صورة الثانوية "أ"

schoolA.jpg

المدرسة الثانوية (ب)

750

صورة الثانوية "ب"

schoolA.jpg

 

أمامكم قسم من الكود الأصلي بلغة HTML بالنسبة للصفحة المعطاة.

أكملوا الأوامر الناقصة في هذا القسم:

 

<html>

  <head>

  </head>

  <body dir=rtl">"

    <h1> بطولة الـ سايبر </h1>

    <table border="1">

      <tr>

        <td>اسم المدرسة  </td>

        <td> عدد النجوم </td>

        <td> صورة </td>

      </tr>

  

      <tr>

        <td> الثانوية أ </td>

        <td> 420 </td>

        <td> <img src="schoolA.jgp"/> </td>

      </tr>

 

      <tr>

        <td> الثانوية ب </td>

        <td> 750 </td>

        <td> <img src="schoolB.jgp"/> </td>

      </tr>

</table> 

  </body>

</html>

 

 

 

 

 

 

 

 

سؤال 2

أمامكم ثلاثة تعابير (3-1)، وعن كل تعبير توجد أربعة أقوال .

أحيطوا بدائرة القول الصحيح بالنسبة لكل تعبير

 

 

1.    التعبير (n>100 && n<0) :

أ‌.        قيمته تكون "صدق" بالنسبة لكل قيمة لــ n

ب‌.    قيمته تكون " كذب" بالنسبة لكل قيمة لــ n.

ت‌.    قيمته غير معروفة، لأن ذلك متعلق بقيمة n.

ث‌.    هو تعبير غير صحيح، ولذلك نحصل على إشعار بوجود خطأ.

 

 

 

 

الحل: (ب)

 

2.     التعبير (n>100 || n<100) :

أ‌.        قيمته تكون "صدق" بالنسبة لكل قيمة لــ n.

ب‌.    قيمته تكون "كذب" بالنسبة لكل قيمة لــ n.

ت‌.    قيمته غير معروفة، لأن ذلك مُتعلْق بقيمة n.

ث‌.    قيمته تكون "كذب" فقط بالنسبة لقيمة مُعيَّنة لــ n.

 

 

 

 

الحل: (ث)

 

3.    التعبير (num % 10 ==0) مكافئ للتعبير:

أ‌.        num % 10) * 10 == 10)

ب‌.     (num % 5 == 0 || num % 2 == 0)

ت‌.     (num % 2 == 0 && num % 5 == 0)

ث‌.     (num / 10 = 0

 

 

 

 

الحل: (ت)

 

 

 

 

 

 

 

 

سؤال 3

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

على سبيل المثال، بالنسبة لسلسلة العلامات التالية: 76, 84, 80, 57, 77, 90, 68, 74, 100, 93

يطبع 4.

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

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

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

 

المقطع (أ):

 

<script>

  var count;

  var num;

  var k;

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

      count = 0;

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

      if (num > 80) {

          count = count + 1;

    }

  }

  document.write( count );

</script>

 

ما هو الخطأ ؟  المتغير العداد، count، يُفرَغ (يأخذ القيمة صفر) في كل دورة في الحلقة.

 

كيف يجب تصحيحه؟ إعطاء قيمة ابتدائية للعداد في بداية الكود خارج الحلقة.   

 

المقطع (ب):

 

<script>

  var count;

  var num;

  var k;

  count = 0;

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

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

      if (num > 80) {

          count = count + 1;

    }

  }

  document.write( count );

</script>

 

 

 

טעות: הוראת הקליטה של הציונים נמצאת מחוץ ללולאה .

תיקון: להכניס את הוראת הקליטה לתוך הלולאה.

ما هو الخطأ ؟  أمر قراءة العلامات يقع خارج الحلقة.  

 

كيف يجب تصحيحه؟ إدخال أمر القراءة إلى داخل الحلقة، أول سطر داحل الحلقة.

 

 

 

 

 

 

 

تمرين 4

 

في حديقة الحيوانات توجد فيلة صغيرة (شابة) وفيلة كبيرة (بالغة).

الفيل الصغير يستهلك في اليوم الواحد 80 لتر ماءِ وَ 70 كيلوغرام نباتات.

الفيل الكبير يستهلك في اليوم الواحد 150 لتر ماء 140 كيلوغرام نباتات.

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

من أجل ذلك، حضروا الاستمارة التي أمامكم. بعد إدخال أعداد الفيلة (الصغيرة والكبيرة) وضغط الزر  "إحسب..."، ينتج مُخرج يَشمل:

-         كمية الماء باللترات التي تحتاجها حديقة الحيوانات في يوم واحد.

-         كمية النباتات بالكيلوغرامات التي تحتاجها حديقة الحيوانات في يوم واحد.

 

 

حساب كمية الماء والنباتات التي تستهلكها الفِيَلة

 

إحسب كمية المياه (لترات) وكمية النباتات (كيلوغرامات) ليوم واحد

 

عدد الفيلة الكبيرة       عدد الفيلة الصغيرة       

 

لترات ماء       كيلوغرامات نباتات      

 

 

 

 

 

 

استعملوا في هذا الكود أسماء المتغيرات التالية:

adult_elephant لتمثيل الفيلة الكبيرة (البالغة)      

child_elephant لتمثيل الفيلة الصغيرة (الشابة)     

water لتمثيل كمية المياه (لترات)        

vegetation لتمثيل كمية النباتات (كيلوغرامات)      

 

أكملوا الكود الأصلي: (توجد مشكلة بسيطة في الحل ... يجب مراجعتها)

<html><head><script>

function calculate() {

 

var child_elephant =  parseInt(document.getElementById("child_elephant").Value);

 

var adult_elephant = parseInt(document.getElementById("adult_elephant").Value);

 

var total_water = 80*child_elephant + 150*adult_elephant;

 

var total_vegetation = 70*child_elephant + 140*adult_elephant;

 

document.getElementById("water").value = total_water;

 

document.getElementById("vegetation").value = total_vegetation;

}

 

</script></head>

 

<body dir="rtl">

 

<h1> حساب كمية الماه والنباتات التي تستهلكها الفيلة </h1>

 

عدد الفيلة الصغيرة

<input type="text" id="child_elephant" value="" size=4>

 

عدد الفيلة الكبيرة

<input type="text" id="adult_elephant" value="" size=4><br/>

 

<input type="button" value =" إحسب كمية المياه (لترات) وكمية النباتات (كيلوغرامات) ليوم واحد" Onclick = "calculate()">

 

لترات ماء

<input type="text" id="water" value="" size=4><br/>

 

كيلوغرامات نباتات

<input type="text" id="vegetation" value="" size=4><br/>

 

</html> </body>

 

 

 

 

 

 

 

 

 

تمرين 5

 

الحلقة اللانهائية هي حلقة فيها شرط التوقف لا يتحقق أبدا، ولذلك فإن الأوامر التي في جسم الحلقة تنفذ عددا لا نهائيا من المزات.

                       

أمامكم خمسة مقاطع كود في JavaScript تحتوي على حلقة while.

بالنسبة لكل مقطع، حددوا إن كانت هذه الحلقة حلقة لا نهائية أو حلقة نهائية.

إن كانت الحلقة لا نهائية فاكتبوا إشارة X في العمود الملائم.

إن كانت الحلقة نهائية فاذكروا كم مرة تنفذ الحلقة وما الذي يطبع.

 

يحتوي على حلقة

لا نهائية

كم مزة تنفذ الحلقة وما الذي يطبع

الكود في JavaScript

رقم المقطع

 

______

 

تنفذ 5 مرات

5 4 3 2 1

 

 

var num = 5;

while (num>0) {

  document.write(num)

  num = num - 1;

}

1

 

______

 

تنفذ 3 مرات

1 4 7

 

var num = 1;

while (num < 10) {

  document.write( num );

  num = num + 3;

}

2

 

______

 

 

الحلقة لا تنفذ

 لا توجد طباعة 

var num = 5;

while (num > 0) {

  document.write( num );

  num = num + 1;

}

3

 

حلقة لا نهائية

 

___________

 

var num = 3;

while (num != 10) {

  document.write( num );

  num = num + 3;

}

4

 

______

 

2 4 6 8  

var num = 2;

while (num != 10) {

  document.write( num );

  num = num + 2;

}

5

 

 

 

 

 

 

 

 

تمرين 6

أمامكم أربع مقاطع كود. أضيفوا إلى كل وحد من مقاطع الكود الأمر

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

في المكان الملائم، لكي تحصلوا على المُخرج المُعطى في العامود الأيمن.

 

الحل

المُخْرَج

مقطع الكود

 

 

 

بين الأسطر 4 و 5

 

****

****

**

for (var x=1; x<=2; x++) {

  for (var y=1; y<=4; y++) {

    document.write("*");

  }

}

document.write("**");

1

2

3

4

5

6

1

 

بين الأسطر 5 و 6

 

 

 

********

**

for (var x=1; x<=2; x++) {

  for (var y=1; y<=4; y++) {

    document.write("*");

  }

}

document.write("**");

1

2

3

4

5

6

2

 

بين الأسطر 3 و 4

 

 

*

*

*

*

**

for (var x=1; x<=2; x++) {

  for (var y=1; y<=2; y++) {

    document.write("*");

  }

}

document.write("**");

1

2

3

4

5

6

3

 

 

بين الأسطر 5 و 6

 

****

**

for (var x=1; x<=2; x++) {

  for (var y=1; y<=2; y++) {

    document.write("*");

  }

}

document.write("**");

1

2

3

4

5

6

4

 

 

 

 

 

 

 

 

تمرين 7

 

في المدرسة الثانوية "الأوائل م، ض." جميع التلاميذ الـ 472 يتعلمون علوم الحاسوب، قسم منهم بمستوى 5 وحدات تعليمية وقسم بمستوى 10 وحدات تعليمية.

 

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

 

مقطع الكود يَعُد ويطبع عدد التلاميذ الذين يتعلمون 10 وحدات في علوم الحاسوب وعلاماتهم فوق الـ 80، كما يعد ويطبع عدد التلاميذ الذين يتعلمون علوم الحاسوب بمستوى 5 وحدات وعلاماتهم فوق الــ 90.

 

أمامكم مقطع كود جزئي. أكملوا الأوامر الناقصة في الكود.

 

<html> <body dir="rtl"><script>

var m, units, grade, count1=0, count2=0;

for (m=0; m<472; m++) {

  units = parseInt(prompt("كم وحدة تعليمية تتعلم في علوم الحاسوب"));

  grade = parseInt(prompt("ما هي علامتك"));

  if (units==10 && grade>80)

 

     count1 ++;

 

  if (units==5 && grade>90)

 

     count2 ++;

}

document.write(count1+"عدد التلاميذ الذين علاماتهم فوق الـ 80 ويتعلمون 10 وحدات<br>");

document.write(count2+"عدد التلاميذ الذين علاماتهم فوق الـ 90 ويتعلمون 5 وحدات<br>");

</script> </body> </html>

 

 

 

 

 

 

 

 

تمرين 8

 

أمامكم كود يحتوي على الوسم canvas. إلى جانب الكود تعرض لائحة مربعات وفيها حدود الــ

canvas>.

ارسموا على لائحة المربعات الرسم الذي سنحصل عليه بعد تشغيل كود الـ HTML.

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

 

<html><body>

<canvas id="canvasFrame" width="400" height="400"

        onClick="quiz()">

</canvas>

<script>

var elem = document.getElementById('canvasFrame');

var ctx = elem.getContext('2d');

var x1 = 50, y1 = 50;

var x2 = 100, y2 = 100;

var x3 = 200, y3 = 100;

var count = 1;

ctx.fillStyle = "yellow";

ctx.fillRect(x1, y1, 200, 150);

ctx.fill();

ctx.beginPath();

ctx.fillStyle = "blue";

ctx.arc(x2, y2, 25, 0, Math.PI * 2, true);

ctx.fill();

ctx.arc(x3, y3, 25, 0, Math.PI * 2, true);

ctx.fill();

ctx.beginPath();

ctx.strokeStyle = "red";

ctx.moveTo(100,150);

ctx.lineTo(200,150);

ctx.stroke();

</script></body></html>

 

 

 

 

 

الحل:

 

 

 

 

 

 

 

 

 

تمرين 8

استعملوا الرسم الذي رَسَمتِموه في السؤال 8.

كل ضغطة على الفارة تحول الخط الأحمر الذي رُسِم في السؤال 8 إلى مستطيل، وتُحَول المستطيل إلى خط، بالتناوُب.

أمامكم كود جزئي للعملية التي تُنَفذ هذه الرسوم المُتحركة (animation)

أكملوا الاوامر الناقصة:

 

function quiz(event) {

  count=count + 1;

  if (count % 2 == 0) {

    ctx.fillStyle = "yellow";

    ctx.fillRect (100,15,100,20);

    ctx.strokeStyle = "red";

    ctx.moveTo (100,150);

 

    ctx.lineTo (200,150);

    ctx.stroke();

  }

  else {

    ctx.fillStyle="red";

    ctx.fillRect (100,150,100,20);

  }

} //quiz

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

w4

 

  

 

 

 

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