جملة تكرار (دوران) For

وقت القراءة: 5 دقائق 108 مشاهدة

جملةة التكرار/ الدوران For هي جملة تتحكم في السماح لك بتنفيذ مجموعة تعليمات برمجية بشكل متكرر لعدد محدد من المرات. يكون البناء العام لجملة الدوران For كالتالي:

for (initialization; condition; increment) {
  // code to execute
}

الـ initialization هي جملة يتم تنفيذها قبل بداية حلقة ال for وهنا نعطي قيمة بدائية للمتغير. جملة الشرط condition يتم التحقق منها قبل كل دورة من جملة الدوران. إذا كان الشرط condition يعطي قيمة صحيحة، فسيتم تنفيذ مجموعة الأوامر داخل حلقة الدوران for. ويتم تنفيذ الزيادة increment في قيمة المتغير بعد كل دورة من جملة الدوران for.

هنا مثال على حلقة الدوران for:

#include <iostream>

using namespace std;

int main()
{
    
    for (int c = 0; c < 10; c++)
    {
        cout << c << endl;
    }
    
    return 0;
}

تعمل حلقة الدوران for كالتالي:

  1. الـ initialization أو الإبتداء، يعطي المتغير c قيمة بدائية تساوي 0.
  2. الـ condition الشرط، يتحقق إذا كانت قيمة المتغير c أقل من 10. إذا كانت كذلك، فإن البرنامج يقوم بتنفيذ مجموعة الأوامر البرمجية داخل هذه الحلقة.
  3. تتكون مجموعة الأوامر البرمجية في هذا البرنامج من أمر لطباعة قيمة المتغير c إلى شاشة المخرجات، وهو ما سيقوم به هذا البرنامج في حال صحة الشرط condition.
  4. الـ increment الزيادة تقوم بزيادة قيمة المتغير c بمقدار 1.
  5. ثم يتم تنفيذ الخطوات من 2 إلى 4 بشكل متكرر حتى تصبح قيمة الشرط condition خاطئة.

عندما تصبح قيمة الشرط condition خاطئة، تتوقف الحلقة عن الدوران وينتهي عملها.

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

0
1
2
3
4
5
6
7
8
9

هنا مثال إضافيّ يطلب من المستخدم إدخال 10 علامات ثم يقوم بطباعة المعدّل لهذه العلامات إلى شاشة المخرجات:

#include <iostream>

using namespace std;

int main()
{
    int m = 0, sum = 0;
    for (int i = 1; i <= 10; i++)
    {
        cout << "Enter your marks:";
        cin >> m;
        sum = sum + m;
    }
    cout << "the avg = " << ((double)sum / 10) << endl;
    
    return 0;
}

تعمل حلقة الدوران for كالتالي:

  1. الـ initialization أو الإبتداء، يعطي المتغير i قيمة بدائية بمقدار 1.
  2. الـ condition الشرط، يتحقق إذا كانت قيمة المتغير i أقل أو يساوي 10. إذا كان كذلك، فإن البرنامج يقوم بتنفيذ مجموعة الأوامر البرمجية داخل هذه الحلقة.
  3. مجموعة الأوامر البرمجية داخل هذه الحلقة تطالب المستخدم بإدخال علاماته وتخزن القيمة في المتغير m ثم يتم إضافة هذه العلامات المخزنة في المتغير m إلى المجموع sum .
  4. الـ increment الزيادة تقوم بزيادة قيمة المتغير i بمقدار 1.
  5. ثم يتم تنفيذ الخطوات من 2 إلى 4 بشكل متكرر حتى تصبح قيمة الشرط condition خاطئة.

عندما تصبح قيمة الشرط condition خاطئة، تتوقف الحلقة عن الدوران وينتهي عملها.

عند إنتهاء عمل حلقة الدوران، يقوم البرنامج بطباعة معدّل العلامات إلى شاشة المخرجات. تم حساب قيمة المعدّل بقسمة مجموع العلامات على عددها.

إستخدمنا نوع البيانات (double) في التعبير الحسابي ((double)sum / 10) للتأكيد أن قيمة النتيجة لعملية القسمة ستكون رقمًا عشريًّا. هذه نقطة مُهمّة لأن قيمة المجموع sum هي عبارة عن عدد صحيح، وقسمة عددين صحيحين ستنتج عددًا صحيحًا في لغة C++. في حال عدم إستخدام نوع البيانات (double) ، سيقوم البرنامج بطباعة قيمة صحيحة لنتائج القسمة، وهذه لن تكون نتيجة دقيقة.

هنا مثال على المخرجات لهذا البرنامج:

Enter your marks: 10
Enter your marks: 20
Enter your marks: 30
Enter your marks: 40
Enter your marks: 50
Enter your marks: 60
Enter your marks: 70
Enter your marks: 80
Enter your marks: 90
Enter your marks: 100
the avg = 55.000000

هذا البرنامج يقوم بطباعة الأ{قام من 10 إلى 50، مفصولة بمسافة بين كل عدد والذي يليه إلى شاشة المخرجات:

#include <iostream>

using namespace std;

int main()
{
    for (size_t i = 10; i <= 50; i++)
    {
        cout << i << " ";
    }

    return 0;
}

تعمل حلقة الدوران for كالتالي:

  1. الـ initialization أو الإبتداء، يعطي المتغير i variable to 10.
  2. الـ condition الشرط، يتحقق إذا كانت قيمة المتغير i أقل من أو تساوي 50. إذا كانت كذلك، فإن البرنامج يقوم بتنفيذ مجموعة الأوامر البرمجية داخل هذه الحلقة.
  3. تتكون مجموعة الأوامر البرمجية في هذا البرنامج من أمر لطباعة قيمة المتغير i إلى شاشة المخرجات متبوعًا بمساحة.
  4. الـ increment الزيادة تقوم بزيادة قيمة المتغير i بمقدار 1.
  5. ثم يتم تنفيذ الخطوات من 2 إلى 4 بشكل متكرر حتى تصبح قيمة الشرط condition خاطئة.

عندما تصبح قيمة الشرط condition خاطئة، تتوقف الحلقة عن الدوران وينتهي عملها.

هكذا ستكون مخرجات هذه البرنامج:

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

لماذا تم إستخدام size_t كعدّاد لحلقة الدوران؟

الـ size_t هو نوع بيانات تم إستخدامه كعدّداد للبرنامج لأن هذا النوع يتم إرجاع قيمته من خلال المشغّل sizeof . وهذه يؤكد أن عدّاد حلقة الدوران يمكن إستخدامه مع أي نوع من البيانات، وهذه يشمل المصفوفات arrays وال objects.

يقوم هذا البرنامج بطباعة الأرقام من 10 إلى 1 تنازليًّا مفصولة بمسافة بين كل رقم والآخر على شاشة المخرجات:

#include <iostream>

using namespace std;

int main()
{
    for (size_t i = 10; i >= 1; i--)
    {
        cout << i << " ";
    }

    return 0;
}

تعمل حلقة الدوران for كالتالي:

  1. الـ initialization أو الإبتداء، يعطي المتغير i variable to 10.
  2. الـ condition الشرط، يتحقق إذا كانت قيمة المتغير i أكبر من أو تساوي 1. إذا كانت كذلك، فإن البرنامج يقوم بتنفيذ مجموعة الأوامر البرمجية داخل هذه الحلقة.
  3. تتكون مجموعة الأوامر البرمجية في هذا البرنامج من أمر لطباعة قيمة المتغير i إلى شاشة المخرجات متبوعًا بمساحة.
  4. الـ decrement يقوم بإنقاص قيمة i بمقدار 1.
  5. ثم يتم تنفيذ الخطوات من 2 إلى 4 بشكل متكرر حتى تصبح قيمة الشرط condition خاطئة.

عندما تصبح قيمة الشرط condition خاطئة، تتوقف الحلقة عن الدوران وينتهي عملها.

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

10 9 8 7 6 5 4 3 2 1

مشاركة هذا

جملة تكرار (دوران) For

Or copy link

المحتوى
Arabic