image001

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

 

 

  

\

 

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

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

  

 

 

 الحلقة التكرارية - while

   

 

 

  

 

مبنى حلقة while

 

حلقة while مع عداد

 

 

عداد = قيمة أولى

while (طالما-قيمة-العداد-صدق)  {

   الأوامر البرمجية للتنفيذ
  
عداد = عداد + قيمة

}

 

while (تنفيذ-الشرط)  {

   الأوامر البرمجية للتنفيذ
}

 

 

 

 

 

 

 

كل حلقة for يمكن تحويلها إلى حلقة while (العكس غير صحيح – كما سنرى لاحقاً).

 

تمرين:

 

غير كود حلقة for إلى حلقة while

 

for (x=2; x<=7; x=x+2) {

   document.write (x ," ")

}

الحل:

<script>

  x =  2 ;

  while (x <= 7) {

    document.write (x," ");

    x = x + 2     // x += 2

 }

</script>

 

 

 

 

 

 

 

 

تمرين:

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

 

number=-2
number=-1

number=0

number=1

number=2

number=3

number=4

number=5

<script>

  var i = -2;

    while (i <= 5) {

    document.write("number=", i ,"<br/>");

    i = i + 1;

  }

</script>

 

 

 

 

 

 

 

تمرين:

جد المخرج من البرنامج التالي:

 

 

المخرج:

 

number=-1

 

<script>

  var i = -1;

    while (i <= 5) {

    document.write("number=", i ,"<br/>");

    i = i + 7;

  }

</script>

 

 

 

 

 

 

 

 

تمرين  

جد المخرج من البرنامج التالي:

 

 

 

المخرج:

4  7  10

 

<script>

  x = 4;

  while (x <= 12) {

    document.write(x+" ");

    x = x + 3;

  }

</script>

 

 

 

 

 

 

 

تمرين:

أطبع مضاعفات العدد 10 بين 1 و 40 (يشمل)، كم عددا يوجد؟:

 

 

 

10

20

30

40

 

<script>

  var i = 10;

    while (i <= 40) {

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

    i = i + 10;

  }

</script>

 

 

 

 

 

 

 

 

تمرين:   (مثال لحلقة لا تُنَفذ شرطها لا يتحقق)

جد المخرج من البرنامج التالي:

 

لا يُطبع شيء.

هذه حلقة لا تُنَفَذ لأن الشرط (1 <= 0) غير صحيح ولا ندخل إلى تعليمات الحلقة.

<script>

  var i = 1;

    while (i <= 0) {

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

    i = i + 1;

  }

</script>

 

 

 

 

 

 

 

 

تمرين:     (مثال لحلقة لا نهائية)

جد المخرج من البرنامج التالي (اقرأ الحل قبل التشغيل):

 

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

i = 1, 0, -1, -2, ….

الشرط دائما يتحقق (يأخذ القيمة True)

ربما حاسوبك سوف  يتجمد !!

<script>

  var i = 1;

    while (i <= 2) {

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

    i = i - 1;

  }

</script>

 

 

 

 

 

 

( شرط الحلقة > أو >= )

   

 

 

 

 

تمرين:

أطبع الأعداد الزوجية بين 1 و- 20 (يشمل)،

اطبعها بشكل تنازلي: 20, 18, 16, …, 4, 2

 

 

20

18

16

14

:::

4

2

<script>

  var i = 20;

    while (i >= 2) {

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

    i = i - 2;

  }

</script>

 

 

 

 

 

 

 

 

تمرين  

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

 

 

المخرج:

10 9 8 7 6 5 4 3 2 1

 

<script>

  x = 10;

  while (x>=1) {

    document.write(x+" ");

     x = x - 1;

  }

</script>

 

 

 

 

 

 

 

 

تمرين:

جد المخرج من البرنامج التالي:

 

 

 

الشرط لا يتحقق (3>9)

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

لا يطبع شيء

 

<script>

  var x = 3;

    while (x > 9) {

    document.write(x + " ");

    x = x + 3;

  }

</script>

 

 

 

 

 

 

(مسائل كلامية)

   

 

 

 

 

تمرين

جد المخرج من الكود التالي، استعمل جدول متابعة:  

 

 

الحل:

 

k < 30

k

counter

5 < 30

5

0

15 < 30

15

1

25 < 30

25

2

35 < 30

35

3

 

المخرج:

3

35

<script>

  counter = 0;

  k = 5;

  while (k < 30) {

    counter = counter + 1;

    k = k + 10;

  }

  document.write(counter + "<br>")

  document.write(k + "<br>")

</script>

 

 

 

 

 

 

 

تمرين:

 

 

أكتب برنامج يقرأ 6 أعداد، على البرنامج أن يحسب:

أ‌.        عدد الأعداد الموجبة (كمية الأعداد الموجبة).

ب‌. عدد الأعداد السالبة (كمية الأعداد السالبة).

انتبه: الصفر لا يتم احتسابه

مثال: إذا أعطينا الأعداد:-

       2, 5, -4, 7, -6, 1

 البرنامج يطبع: عدد الأعداد الموجبة 4

                       عدد الأعداد السالبة 2

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

الحل:

pos: عدد: يعُد كمية الأعداد الموجبة (positive)

neg: عدد: يعُد كمية الأعداد السالبة (negative)

i    : عداد حلقة for، للتكرار 6 مرات.

 

<script>

  var pos = 0, neg = 0;

  var i = 1;

  while (i <= 6) {

    num = prompt("type a number? ")

    if (num > 0) {

       pos = pos + 1

    }

    else if (num < 0) {

      neg = neg + 1

    }

    i = i + 1;

  }

  document.write ("positive= ", pos,"<br/>");

  document.write ("negative= ", neg);

</script>

 

 

 

 

 

 

 

 

تمرين:

أكتب برنامج يعوض في المتغير n عدداً صحيحا، ثم يحسب ويطبع:

·       حاصل جمع الأعداد من 1 وحتى n (أي 1 + 2 + 3 + … + n)

·       معدل الأعداد من 1 وحتى n  (حاصل جمعهم مقسوم على n)

 

مثال: n=6،    عندها يطبع 21 (حاصل جمع الأعداد : 1+2+3+4+5+6)

                  يطبع معدلهم 3.5 (وهو 21/6=3.5)

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

الحل:

<script>

  var sum = 0;

  var x = 1, n = 6 ;

  while (x <=  n ) {

    sum = sum + x;

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

    x ++;

  }

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

  document.write("average= ", sum/n);

</script>

 

 

 

 

 

 

 

 

تمرين  

 

 

أكتب برنامج يقرأ 5 علامات لطالب،

على البرنامج أن يحسب ويطبع:

أ‌.        معدل العلامات.

ب.  عدد العلامات الأكبر من 90 (يشمل 90).

مثال:

المُدخلات: 8090, 96, 100, 84,  

المُخرج: المعدل: 90

            عدد العلامات الأكبر من 90 هو: 3

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

الحل:  count: متغير يَعُد كمية الأعاد الأكبر من 90

 

<script>

  var i = 1;     

  var sum =  0;      

  var count =  0; 

  while (i <= 5) {

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

    sum = sum + grade;

 

    if (grade >= 90) {

 

      count = count + 1

    }

    i = i + 1;

  }

 document.write(sum/5, "=المعدل ","<br/>");

 

 document.write(count, "عدد العلامات الأكبر من 90 هي");

</script>

 

 

 

 

 

 

 

تمرين 1

 

 

 

 

 

 

 

 

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

w4

 

  

 

 

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