اذهب إلى المحتوى
  • 0

كيف أحترف حلقات التكرار في البرمجة؟

احمد اسامه3

السؤال

علمت منذ قليل أن من أهم الأشياء في البرمجة هو احتراف حلقات التكرار، ومهما فعلت لا أستطيع تعقب العملية الخاصة بالحلقة، دائماً يسقط مني شيء ما، دائماً يكون هناك جزء لا أستطيع استيعابه!

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

عليك بكثرة التمرين على الحلقات التكرارية وفهم طريقة عملها.

فمثلا الحلقة التكرارية for تأخذ ثلاث عبارات: أولها index رقم تعرفه لتبدأ حلقة الfor من عنده، ولا يشترط أن يكون 1 أو 0، فحسب المشكلة التي ستحلها بحلقة الfor ستبدأ العداد. وثاني عبارة هي شرط الإيقاف، أي شرط تضعه أنت بحيث توقف حلقة الfor إذا تحقق. وآخر عبارة هي الخطوة؛ أي مقدار الزيادة أو النقصان على العداد index الذي عرّفته.

//for (الخطوة, شرط التوقف,العداد معرف بقيمة ابتدائية){
//	وهنا أكواد لحل مشكلة ما
//}

مثال هذه حلقة لجمع الأعداد الزوجية من 0 إلى 10
sum = 0
for (i=0, i<10, i = i+2){
	sum+=i
}

أما من أجل تعقّب عملية الfor فأنصحك بما يسمى أدوات التصور أو مراقبة المسار (track and Visualize) حيث هناك أدوات تنفذ لك الكود سطراً سطراً هذا سيفيدك في البداية لمعرفة عمل الحلقات.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

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

يمكن تمييز كل تكرارة من الحلقة بفهرس يميزها عن غيرها. فالحلقة الاولى تمتلك فهرسا 0 والثانية 1 والثالثة 2 الى ان ينقضي التكرار او ينتفي شرطه.

فمثلا يوجد:

  • الحلقة for التي تقوم بتكرار الكتلة البرمجية من اجل قيمة متغير ما.
    for(var i = 0 ; i < 5 ; i++) {
                         
        // اي كتلة برمجية                     
    }

     

  • الحلقة  while التي تقوم بتكرار الكتلة البرمجية باعتبار شرط ما، فطول ما كان الشرط محققا يتم تكرار التنفيذ.
    var i = 1;
    
    while(i < 5 ) {
     
                // كتلة برمجية
               
    }

    تتبع هاته الحلقات غالبا ما يكون عن طريق الفهرس الذي يميز كل تكرارة. فقد تحتاج مثلا تتبع قيمة ما يتم تجاوز قيمتها من داخل التكرار. هنا ستكون طباعة هاته القيمة داخل الحلقة بجانب الفهرس الخاص بهاته التكرارة عمليا.

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1
اقتباس

ما هي أدوات التصور أو track and Visualize؟ وكيف أستخدمها؟

هذه الأدوات التي تعرف أيضاً باسم (Debugger) تعينك على مراقبة تنفيذ الcode أمراً أمراً، بحيث لو كان هناك خطأ تعرف في أي خطوة حدث الخطأ وأيضاً لماذا. لحسن الحظ أغلب لبرامج المخصصة لكتابة الكود تتوفر على هذه الخاصية.

لتتحكم بسير تنفيذ الأوامر يجب وضع نقطة توقف (Breakpoint) عند الأمر الذي تريد أن لا يتم تنفيذه إلّا بأمر منك و تستطيع وضع أكثر من نقطة توقف إذا أردت. كما أنه يفترض تشغيل البرنامج الذي تستخدمه لكتابة الكود بوضعية تصحيح الأخطاء (Debugging Mode) حتى يتوقف عند الوصول لأي نقطة توقف.

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

مثلاً إذا كنت تستخدم VSCode كمحرر نصوص فإنه يدعم هذه الخاصيةbreakpoint-set-net6.png

هذه النقطة الحمراء أنت تضعها بضغطة زر، ثم شغّل الأمر debug سيخرج لك شريط فيه أسهم للانتقال للأمر التالي أو السابق.

إذا كنت لا تعمل على VSCode فاطمئنّ لأنّ أغلب ال debugger يعملون بنفس الطريقة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 16 ساعات قال معاذ قره محمد:

عليك بكثرة التمرين على الحلقات التكرارية وفهم طريقة عملها.

فمثلا الحلقة التكرارية for تأخذ ثلاث عبارات: أولها index رقم تعرفه لتبدأ حلقة الfor من عنده، ولا يشترط أن يكون 1 أو 0، فحسب المشكلة التي ستحلها بحلقة الfor ستبدأ العداد. وثاني عبارة هي شرط الإيقاف، أي شرط تضعه أنت بحيث توقف حلقة الfor إذا تحقق. وآخر عبارة هي الخطوة؛ أي مقدار الزيادة أو النقصان على العداد index الذي عرّفته.


//for (الخطوة, شرط التوقف,العداد معرف بقيمة ابتدائية){
//	وهنا أكواد لحل مشكلة ما
//}

مثال هذه حلقة لجمع الأعداد الزوجية من 0 إلى 10
sum = 0
for (i=0, i<10, i = i+2){
	sum+=i
}

أما من أجل تعقّب عملية الfor فأنصحك بما يسمى أدوات التصور أو مراقبة المسار (track and Visualize) حيث هناك أدوات تنفذ لك الكود سطراً سطراً هذا سيفيدك في البداية لمعرفة عمل الحلقات.

ما هي أدوات التصور أو track and Visualize؟ وكيف أستخدمها؟

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...