الخميس، 1 أكتوبر 2020

برمجة الحاسوب - الحلقات التكرارية loops

برمجة الحاسوب - الحلقات التكرارية loops 



الموقف الذي تريد طباعة Hello، World! خمس مرات. إليك برنامج C بسيط للقيام بنفس الشيء -

#include <stdio.h>

int main() {
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
}

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

كان الأمر بسيطًا ، ولكن مرة أخرى ، دعنا نفكر في موقف آخر عندما تريد أن تكتب Hello، World! الف مرة. لا يمكننا بالتأكيد كتابة بيانات printf () ألف مرة. توفر جميع لغات البرمجة تقريبًا مفهومًا يسمى حلقة ، والذي يساعد في تنفيذ جملة واحدة أو أكثر حتى العدد المطلوب من المرات. توفر جميع لغات البرمجة عالية المستوى أشكالًا مختلفة من الحلقات ، والتي يمكن استخدامها لتنفيذ جملة أو أكثر بشكل متكرر.

دعنا نكتب برنامج C أعلاه بمساعدة حلقة while ، وسنناقش لاحقًا كيفية عمل هذه الحلقة

#include <stdio.h>

int main() {
   int i = 0;
   
   while ( i < 5 ) {
      printf( "Hello, World!\n");
      i = i + 1;
   }
}

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

يستفيد البرنامج أعلاه من حلقة while ، والتي يتم استخدامها لتنفيذ مجموعة من عبارات البرمجة الموجودة داخل {....}. هنا ، يتحقق الكمبيوتر أولاً مما إذا كان الشرط المعطى ، أي المتغير "a" أقل من 5 أم لا ، وإذا وجد أن الشرط صحيح ، يتم إدخال جسم الحلقة لتنفيذ التعليمات المعطاة. هنا ، لدينا العبارتان التاليتان في جسم الحلقة -

  • العبارة الأولى هي دالة printf () ، والتي تطبع Hello World!

  • العبارة الثانية هي i = i + 1 ، والتي تستخدم لزيادة قيمة المتغير i

بعد تنفيذ جميع العبارات الواردة في جسم الحلقة ، يعود الكمبيوتر إلى while (i <5) ويتم فحص الشرط المعطى (i <5) مرة أخرى ، ويتم تنفيذ الحلقة مرة أخرى إذا كان الشرط صحيحًا. تتكرر هذه العملية حتى يظل الشرط المحدد صحيحًا مما يعني أن المتغير "أ" له قيمة أقل من 5.

في الختام ، تسمح لنا تعليمة الحلقة بتنفيذ عبارة أو مجموعة من العبارات عدة مرات. فيما يلي الشكل العام لبيان الحلقة في معظم لغات البرمجة -

حلقة العمارة

تم تصميم هذا البرنامج التعليمي لتقديم المفاهيم الأساسية للبرمجة لغير المبرمجين ، لذلك دعونا نناقش أهم حلقتين متاحتين في لغة البرمجة سي. بمجرد أن تكون واضحًا بشأن هاتين الحلقتين ، يمكنك بعد ذلك التقاط برنامج تعليمي لبرمجة لغة C أو كتاب مرجعي والتحقق من الحلقات الأخرى المتاحة في C وطريقة عملها.

بينما حلقة

تحتوي حلقة while loop المتوفرة بلغة C Programming على الصيغة التالية -

while ( condition ) {
   /*....while loop body ....*/
}

يمكن تمثيل الكود أعلاه في شكل مخطط تدفق كما هو موضح أدناه -

بينما حلقة في C.

يجب ملاحظة النقاط المهمة التالية حول حلقة while -

  • وحين يبدأ حلقة مع الكلمة بينما تليها حالة المغلقة في ().

  • بالإضافة إلى العبارة while () ، سيكون لديك جسم الحلقة محاطًا بأقواس معقوفة {...} .

  • يمكن أن يحتوي جسم حلقة while loop على سطر واحد أو أكثر من التعليمات البرمجية المصدر ليتم تنفيذها بشكل متكرر.

  • إذا كان الجسم من حلقة في حين ديه خط واحد فقط، ثم في اختياري لاستخدام الأقواس المجعدة {...} .

  • تستمر حلقة while في تنفيذ جسدها حتى تتحقق حالة معينة بمجرد أن يصبح الشرط خاطئًا ، تخرج حلقة while وتواصل التنفيذ من العبارة التالية الفورية بعد جسم الحلقة while.

  • عادة ما يكون الشرط عبارة علائقية ، يتم تقييمها إما إلى صواب أو خطأ. يتم التعامل مع القيمة التي تساوي الصفر على أنها خاطئة وأي قيمة غير صفرية تعمل على أنها صحيحة.

تفعل ... بينما Loop

تقوم حلقة while بفحص حالة معينة قبل أن تنفذ أي عبارات معطاة في جزء الجسم. توفر برمجة C شكلاً آخر من أشكال الحلقة ، يسمى do ... بينما يسمح ذلك بتنفيذ جسم حلقة قبل التحقق من حالة معينة. يحتوي على النحو التالي -

do {
   /*....do...while loop body ....*/
} 
while ( condition );

يمكن تمثيل الكود أعلاه في شكل مخطط تدفق كما هو موضح أدناه -

افعل ... أثناء حلقة في C

إذا كنت ستكتب المثال أعلاه باستخدام do ... while loop ، فإن Hello، World ستنتج نفس النتيجة -

ج تواصل البيان

#include <stdio.h> int main() { int i = 0; do { printf( "Hello, World!\n"); i = i + 1; } while ( i < 5 ); }

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

بيان الاستراحة

عندما يتم مصادفة تعليمة break داخل حلقة ، يتم إنهاء الحلقة على الفور ويستأنف التحكم في البرنامج في العبارة التالية التي تلي الحلقة. صيغة جملة break في C كما يلي -

break;

و كسر يمكن أن تكون ممثلة بيان في شكل رسم تخطيطي تدفق كما هو مبين أدناه -

ج بيان كسر

فيما يلي أحد أنواع البرنامج أعلاه ، لكنه سيظهر بعد طباعة Hello World! ثلاث مرات فقط -

#include <stdio.h>

int main() {
   int i = 0;
   do {
      printf( "Hello, World!\n");
      i = i + 1;
      
      if( i == 3 ) {
         break;
      }
   }
   while ( i < 5 );
}

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Hello, World!
Hello, World!
Hello, World!

بيان الاستمرار

و يستمر البيان في لغة البرمجة C يعمل الى حد ما مثل كسر بيان. بدلاً من فرض الإنهاء ، استمر في فرض التكرار التالي للحلقة ، وتخطي أي رمز بينهما. بناء الجملة ل مواصلة البيان في C على النحو التالي -

continue;

و يواصل يمكن أن تكون ممثلة بيان في شكل رسم تخطيطي تدفق كما هو مبين أدناه -

فيما يلي أحد أنواع البرنامج أعلاه ، ولكنه سيتخطى الطباعة عندما يكون للمتغير قيمة تساوي 3 -

#include <stdio.h>

int main() {
   int i = 0;
   do {
      if( i == 3 ) {
         i = i + 1;
         continue;
      }
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Hello, World!
Hello, World!
Hello, World!
Hello, World!

حلقات في جافا

فيما يلي البرنامج المكافئ المكتوب بلغة Java والذي يدعم أيضًا حلقات while and do ... while . البرنامج التالي يطبع Hello، World! خمس مرات كما فعلنا في حالة البرمجة بلغة سي -

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

public class DemoJava {
   public static void main(String []args) {
      int i = 0;
   
      while ( i < 5 ) {
         System.out.println("Hello, World!");
         i = i + 1;
      }
   }
}

تعمل عبارات break and continue في برمجة Java بنفس الطريقة التي تعمل بها في برمجة C.

حلقات في بايثون

فيما يلي البرنامج المكافئ المكتوب بلغة بايثون. يدعم Python أيضًا حلقات while and do ... while . البرنامج التالي يطبع Hello، World! خمس مرات كما فعلنا في حالة البرمجة بلغة سي. هنا يجب أن تلاحظ أن بايثون لا تستخدم الأقواس المتعرجة لجسم الحلقة ، وبدلاً من ذلك تحدد ببساطة جسم الحلقة باستخدام المسافة البادئة للعبارات.

يمكنك محاولة تنفيذ البرنامج التالي لرؤية الإخراج. لإظهار الفرق ، استخدمنا تعليمة طباعة أخرى ، والتي سيتم تنفيذها عندما تنتهي الحلقة.

i = 0

while (i < 5):
   print "Hello, World!"
   i = i + 1
print "Loop ends"

عند تنفيذ البرنامج أعلاه ، فإنه ينتج النتيجة التالية -

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends

تعمل عبارات break and continue في Python بنفس الطريقة تمامًا كما تعمل في برمجة C.

التسميات: