منتدى يامنكو للترفيه و المعلومات

السلام عليكم و رحمة الله و بركاته أهلا و سهلا بكم نورتم المنتدى أرجو أن تقضوا معنا أجمل الاوقات
 
الرئيسيةالرئيسية  اليوميةاليومية  مكتبة الصورمكتبة الصور  س .و .جس .و .ج  بحـثبحـث  الأعضاءالأعضاء  المجموعاتالمجموعات  التسجيلالتسجيل  دخولدخول  

شاطر | 
 

 تعلم البرمجة بلغة الجافا

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
مدير المنتدى
مدير المنتدى
avatar

عدد المساهمات : 69
نقاط : 30668
السٌّمعَة 0
تاريخ التسجيل : 20/07/2009
العمل/الترفيه الكمبيوتر
المزاج فرحان

مُساهمةموضوع: تعلم البرمجة بلغة الجافا   الخميس يوليو 23, 2009 4:53 am

الدرس الثامن
الدرس الثامن من سلسلة دروس الجافا

حلقات التكرار

الأهداف
For ان يستعمل المتدرب حلقة التكرار
While ان يستعمل المتدرب حلقة التكرار
Do....while ان يستعمل المتدرب حلقة التكرار
أن يقارن المتدرب بين جمل حلقات التكرار
أن يخرج المتدرب من حلقة التكرار
أن يتعرف المتدرب على كيفية تسمية حلقات التكرار
العرض
أهلا ومرحبا بكم جميعا ونواصل مسيرتنا ـ بعون الله ـ مع الجافا
مرحبا بك استاذنا وكل عام وأنت بخير بمناسبة بدء العام الخامس من عمر موقعكم ـ المدرس العربي ـ وندعو الله تعالى أن يجعله في ميزان حسناتكم
شكرا جزيلا وأرحب بك صديقي العزيز
ما عنوان درسنا اليوم ؟
نتعرف اليوم على كيفية تكرار عمل بواسطة حلقات التكرار ولهذا عنوان درسنا اليوم هو حلقات التكرار
ما المقصود بحلقات التكرار ؟
ببساطة حلقة التكرار جملة أو مجموعة من الجمل تتكرر ضمن البرنامج ويمكن التحكم فيها بحيث تتكرر عدة مرات أو تتكرر بلا نهاية وجملة حلقة التكرار تجعل الحاسب يعود الى نفس الموقع أكثر من مرة
ما الفائدة من حلقات التكرار ؟
في برامج الجافا وبريمجاتها سوف تجد نفسك محتاجا لحلقات التكرار في كثيرا من الأمور منها
الانتظار حتى تحدث استجابة من المستخدم مثل نقر المستخدم على زر
يمكنك توظيفها لجعل الحاسب ينتظر فترة دون عمل شئ كما في برامج تحريك الرسوم
تكرار عرض نص متحرك في بريمج
تكرار عرض مسمع موسيقي في بريمج
ما هي الجمل التي تستعمل كحلقات تكرار ؟
في لغة الجافا يوجد ثلاث جمل تستعمل حلقات تكرار وهي
for while do....while
وهل تقوم هذه الجمل الثلاث بنفس العمل ؟
نعم تقوم بنفس العمل حيث يمكن اعداد أي منها لتقوم بعمل الأخرى ويعتمد اختيار جملة حلقة التكرارعلى تفضيلك الشخصي ونحن سوف نتدرب على عمل الجمل الثلاث ونترك لك اختيار ما يناسبك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://tosyamen.ahlamontada.net
Admin
مدير المنتدى
مدير المنتدى
avatar

عدد المساهمات : 69
نقاط : 30668
السٌّمعَة 0
تاريخ التسجيل : 20/07/2009
العمل/الترفيه الكمبيوتر
المزاج فرحان

مُساهمةموضوع: تعلم البرمجة بلغة الجافا   الخميس يوليو 23, 2009 4:56 am

حلقة التكرار فور التي اخترت أن نبدأ بها هي الحلقة الأكثرتعقيدا وتستعمل عندما نريد أن نكرر مقطع من البرنامج عدد معين من المرات وأيضا يمكن استعمالها اذا كان عدد المرات التي ستكرر فيها الحلقة متغيرا
من فضلك استاذي الكريم أريد مثالا يبسط الموضوع ؟
لا عليك صديقي العزيز ولم أقصد بقولي عن حلقة التكرار فور بأنها أكثر تعقيدا أن أعقدك ولكن سيتضح لك المقصود بعد أن نتعرف على الجمل الثلاث ــــ ولنبدأ الآن المثال المقصود
for ( int number = 0; number < 1000; number++) {
if ( number % 14 == 0)
system.out.println("#:" + number);
}

من فضلك أريد التفسير لهذا المثال وليكن مفصلا نوعا ما ؟
لك ما تريد ولله الحمد والمنة
أولا الغرض من حلقة التكرار ـــ عرض كل الأعداد الواقعة بين 0 و 999 والتي تقبل القسمة على 14 بدون باقي
ثانيا ـ المتغير نمبر يسمى بالعداد حيث تحتوي كل حلقة تكرار فور على متغير يستعمل لتحديد متى تبدأ حلقة التكرار ومتى تنتهي
ثالثا ـ تتكون جملة حلقة التكرار فور من ثلاث أجزاء هي
جزء التمهيد ــ وفيه يتم تحديد قيمة أولية للمتغير نمبر تساوي صفرا ويمكنك في هذا الجزء إعداد المتغير العداد الذي ترغب في استعماله ضمن الجملة فور وأود أن أوضح أنك يمكنك إنشاء المتغير ضمن الجملة فور كما في المثال أو إنشاء المتغير في موضع سابق من برنامجك ولكن في كلتا الحالتين يجب تحديد قيمة أولية للمتغير في هذا الجزء من الجملة فور وبحيث تكون هذه القيمة هي قيمة المتغير عندما تبدأ حلقة التكرار
if الجزء المشروط ــ في هذا الجزء يوجد اختبار مشروط موجود في الجملة
true ونلاحظ أن الشرط يجب أن يبقى صحيحا
وذلك حتى تستمر حلقة التكرار حيث أن حلقة التكرار تتوقف عندما يصبح الشرط خطأ وفي المثال الذي نتناوله الآن تتوقف حلقة التكرار عندما تصبح قيمة المتغير نمبر أكبر من 1000 ـــــ
جزء التغيير ــ هذا الجزء عبارة عن جملة وظيفتها تغيير قيمة المتغير نمبر باستعمال مؤثر الزيادة بواحد ويتم تنفيذ هذه الجملة في كل عملية تكرار لحلقة التكرار وهنا أود التأكيد على ضرورة تغيير العداد وإلا فلن تتوقف حلقة التكرار وفي المثال يزداد المتغير نمبر بواحد باستعمال معامل الزيادة بواحد ++ واذا لم يتغير المتغير نمبر فانه سيظل عند القيمة الأولية 0 ويبقى الشرط صحيحا
عفوا أستاذي الكريم ما الذي يتم تنفيذه من هذا المثال في كل عملية تكرار ؟
في كل عملية تكرار لحلقة التكرار تنفذ الجمل الموجودة ضمن الحاصرتين { } اذا المنطقة المحددة بالحاصرتين يتم فيها العمل الرئيسي لحلقة التكرار وفي مثالنا توجد جملتين ضمن الحاصرتين
{
if ( number % 14 == 0)
system.out.println("#:" + number);
}

ونلاحظ أن هذه الجملة سوف تنفذ 1000 مرة حيث تبدأ حلقة التكرار بجعل المتغير نمبر مساويا للصفر ثم تضيف بعد ذلك 1 في كل مرة من مرات التكرار وتتوقف عندما لا تكون قيمة المتغير أصغر من 1000 وكلما كان العدد قابلا للقسمة على 14 بدون باق يعرض هذا العدد بجانب النص :#
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://tosyamen.ahlamontada.net
Admin
مدير المنتدى
مدير المنتدى
avatar

عدد المساهمات : 69
نقاط : 30668
السٌّمعَة 0
تاريخ التسجيل : 20/07/2009
العمل/الترفيه الكمبيوتر
المزاج فرحان

مُساهمةموضوع: تعلم البرمجة بلغة الجافا   الخميس يوليو 23, 2009 4:57 am

ولكن متى يكون من الضروري وضع الحاصرات ؟
يكون من الضروري وضع الحاصرات اذا كانت الحلقة فور تحتوي على أكثر من جملة ولكن اذا كانت تحتوي على جملة واحدة فان الأمر متروك لك حيث يمكنك استخدامها أو تركها ولكن يستحسن استعمالها لتسهيل فهم البرنامج
for (int q = 0; q < 66; q++)
system.out.println("لن أفعل هذا مرة أخرى ");

تعرض هذه الحلقة المكونة من جملة واحدة بدون حاصرات النص ــ لن أفعل هذا مرة أخرى ـ 66 مرة وهذا يذكرنا بعقاب المدرسين الأوائل للتلاميذ في المرحلة الابتدائية حيث يطلب المعلم من التلميذ أن يكرر هذه الجملة 66 مرة لعقابه على خطأ ارتكبه
طيب يا أستاذ اذا أردنا اعداد أكثر من متغير خلال جزء التمهيد فماذا نعمل ؟
اذا اردت إعداد أكثر من متغير في جزء التمهيد فعليك التفريق بينها بالفواصل ونلاحظ أن كل جزء من الحلقة فور يفصل عن الاجزاء الأخرى بفاصلة منقوطة
ولكن هل يمكن أن تكون أقسام حلقة التكرار فارغة ؟
نعم يمكن أن تكون أقسام حلقة التكرار فارغة وهذا عندما تكون القيمة الأولية للمتغير العداد قد تحددت في جزء سابق من البرنامج
وقفة هنا أستاذي الكريم حيث اتذكر الآن الخطأ المنطقي والذي يدعوني الى ذلك هو الفاصلة المنقوطة فحيث أن العديد من جمل الجافا تنتهي بفاصلة منقوطة اذا يمكن وضع فاصلة منقوطة عند نهاية الجملة فور فماذا يحدث ؟
كلامك صحيح فوضع الفاصلة المنقوطة عند نهاية جملة فور يضع الجملة التي بعدها خارج نطاق حلقة التكرار وبسبب ذلك لن يحدث شيء عند تنفيذ حلقة التكرار وعند ترجمة البرنامج لن تحدث أخطاء وفي نفس الوقت لن نحصل على النتائج المطلوبة
هل باقي حلقات التكرار تتكون من ثلاثة أجزاء ؟
while لا حلقة التكرار التي سوف نتناولها الآن لا تحتوي على أقسام وحلقة التكرار هذه هي
while حلقات التكرار
في هذه الحلقة لا يوجد عدة أجزاء ولكن يجب أن يكون هناك شرط محدد وعندما يصل البرنامج الى جملة حلقة التكرار للمرة الأولى يقوم باختبار الشرط المحدد فإذا كان غير صحيح فانه يتجاهل الجمل الموجودة داخل حلقة التكرارأما اذا كان الشرط صحيحا فإن البرنامج يقوم بتنفيذ جمل حلقة التكرار ثم يعاود البرنامج اختبار الشرط فإذا لم يتغير الشرط موضع الإختبار داخل حلقة التكرار فإن الحلقة تواصل التكرار الى ما لا نهاية وهكذا
do....while عملية بسيطة وماذا عن حلقة التكرار
do.......while حلقات التكرار
لكي ندرك الفرق بين الحلقتين اليك هذا المثال
لنفرض مثلا أن الآنسة أروى تريد الذهاب الى الكوافير فان أمامها طريقتان
الأولى أن تذهب الى الكوافير ثم تخبر والدتها
الثانية أن تستأذن أولا من والدنها قبل أن تذهب الى الكوافير
do...while الطريقة الأولى تشبه حلقة التكرار
بمعنى أنه سوف يتم تحقق الشرط لمرة واحدة قبل أن يختبر يعني أن الآنسة أروى سوف تذهب لمرة واحدة الى الكوافير سواء وافقت والدتها أم لم توافق ومن هنا يتضح لنا أنه في حلقة التكرار دو ....هويل يتم تنفيذ الشرط أولا قبل التحقق من صحة الشرط موضع الاختبار فعندما يصل البرنامج خلال عمله للمرة الأولى الى حلقة التكرار دو فانه ينفذ الجمل الموجودة بين الجملة دو والجملة هويل بشكل تلقائي ثم يجري بعد ذلك التحقق من صحة شرط الجملة هويل فاذا كان صحيحا فن البرنامج يعاود تكرار حلقة التكرار مرة أخرى أما اذا كان الشرط غير صحيح فان حلقة التكرار سوف تتوقف
ولكن يا أستاذي كيف يمكنني الخروج من حلقة التكرار ؟
للخروج من حلقة تكرار قلنا سابقا أن الشرط موضع الاختبار اذا كان غير صحيح فان هذا يوقف حلقة التكرار
طيب اذا أردت أن أوقف حلقة التكرار مباشرة والشرط المختبر صحيحا فماذا أفعل ؟
يمكنك إيقاف حلقة التكرار مباشرة حتى لو كان الشرط موضع الإختبار صحيحا باستعمال الجملة بريك
while (index <= 100)
index = index +3;
if (index ==40)

break;
system.out.println("the index is"+ index);

تواصل الحلقة التكرار الى أن تصبح قيمة المتغير اندكس أكبر من 100 ولكن اذا كانت قيمة المتغير مساوية 40 فإن حلقة التكرار سوف تتوقف مباشرة
هل توجد جملة خاصة أخرى ؟
نعم توجد حالة خاصة أخرى
while (index <= 100)
index = index +3;
if (index ==40)

continue;
system.out.println("the index is"+ index);
في حلقة التكرار هذه سوف يتم تنفيذ الجمل الا اذا صارت قيمة المتغير مساوية 40 وعندها تجعلالجملة كونتينيو حلقة التكرار تعيد تنفيذ الجملة هويل
هل يمكن وضع حلقات التكرار داخل بعضها البعض ؟
نعم يمكن وضع حلقات التكرار داخل بعضها البعض كما في المثال الآتي
while ( totalprise < 1000 ){
for( int prise=0; prise <100; prise++){
totalprise = totalprise + prise;
if ( totalprise > 2000 )
brak;
}
}
ما فعل الجملة بريك في هذه الحالة؟
فعل الجملة بريك في هذه الحالة هو ايقاف حلقة التكرار ـ فور ـ عندما تساوي قيمة المتغير 2000 أو أكثر
ولكن يا صديقي العزيز هناك حالات أرغب في ايقاف حلقتي التكرار معا فكيف الطريق الى ذلك ؟
في هذه الحالة يجب أن تمنح الحلقة الخارجية اسما هذا الاسم يكتب في السطر السابق حلقة التكرار متبوعا بنقطتين : ثم استخدم هذا الاسم بعد الجملة بريك أو كونتي
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://tosyamen.ahlamontada.net
 
تعلم البرمجة بلغة الجافا
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى يامنكو للترفيه و المعلومات :: المنتديات العامة: :: عالم النكنولوجيا: :: البرمجة:-
انتقل الى: