خوارزميات و مبادئ برمجة
DESCRIPTION
خوارزميات و مبادئ برمجة. إعداد و تدريس/ محمود رفيـق الفـرَّا. بلغة جافا. الأسبـوع الثامن. المحاضرة الخامسـة عشر و السـادسـة عشـر جمل الدوران و تطبيقاتها. شعبـة الطالبات. 2010-2011. في هذا الأسبـوع. مفهوم جمل الدوران تطبيقاته أنواعـه و قواعد كتابتها أمثلـة و حلول. - PowerPoint PPT PresentationTRANSCRIPT
و خوارزميات برمجةمبادئ
إعداد و تدريس/ محمود ا �رفيـق الفـر
بلغة جافا
2010-2011
الخامسـة عشر و المحاضرة السـادسـة عشـر
جمل الدوران و تطبيقاتها
الثامناألسبـوع
شعبـة الطالبات
في هذا األسبـوع
مفهوم جمل الدوران
تطبيقاته
أنواعـه و قواعد كتابتها
أمثلـة و حلول
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
مفهوم جمل الدوران الدوران أو التكرار هو تنفيذ عدد من األوامر
ككتلة واحدة بناًءL على شرط معين لعدد من المرات.
و سمي دورانًـا ألن سيـر العمليات يتكرر بشكل دوراني كما تشاهد.
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
1 1 ==ضعقيمةالعدد ضعقيمةالعدد
بدايةبدايةبداية
العددالصحيحمن العددالصحيحمن اقرأ اقرأXXالمستخدم المستخدم
اطبعحاصلالضرب اطبعحاصلالضرب
العدادأقلمنأو العدادأقلمنأو 1212يساوييساوي
نعم نعم
الال
X * 1 X * 1 ==حاصلالضرب حاصلالضرب
1 1 + + قيمةالعدادالحالية قيمةالعدادالحالية = = قيمةالعداد قيمةالعداد
1 1 ==ضعقيمةالعدد ضعقيمةالعدد
بدايةبدايةبداية
العددالصحيحمن العددالصحيحمن اقرأ اقرأXXالمستخدم المستخدم
اطبعحاصلالضرب اطبعحاصلالضرب
العدادأقلمنأو العدادأقلمنأو 1212يساوييساوي
نعم نعم
الال
X * 1 X * 1 ==حاصلالضرب حاصلالضرب
1 1 + + قيمةالعدادالحالية قيمةالعدادالحالية = = قيمةالعداد قيمةالعداد
من تطبيقاته... من التطبيقات التي نحتاج فيها إلى استخدام مفهوم الدوران/ التكرار
طباعة جدول الضرب لألرقام1.
طباعة األرقام الفرديـة.2.
طباعة األرقام الزوجيـة.3.
البحث في مجموعة من األرقام.4.
حساب معدل السكان في دول معينة.5.
ترتيب مجموعة من األرقام تصاعدي أو تنازلي.6.
رسم تشكيالت معينـة. 7.
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
واجبـــــــ
8.1
ا إلى اج فيـه تي نحـت د من التطبيـقات اـل اذـكري المزـياستخدام جمل الدوران
أنواعـه و قواعد كتابتها لتنفيذ عملية الدوران هناك مجموعة من
الجمل التي يمكن استخدام أي منها حسب الحاجـة و حسب التطبيق.و هي
1. for2. while3. do … while
هناك بعض التطبيقات يمكن الحصولعليها )تطبيقها( بكافة األنواع و هناك
البعض اآلخر ال يمكن إال بواحد منها.
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
Forصيـغـة عندما نحتاج إلى تكرار تنفيذ مجموعة من
الجمل أو األوامر بعدد محدد من المرات forفإن أنسب الصيغ هي صيغة
:تكتب كما يلي
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
for( counter ; cond. ; expr)for( counter ; cond. ; expr){ ….. }{ ….. }
بداية لتحديد تعريفه يتم عداديبدأ قد و للتكرار االنطالق
العكس أو للصغير الكبير من
التكرار استمرار شرطبقيمة غالبا مرتبط هو و
العداد
خالله من يتم محدد تعبيرليقترب العداد قيمة على التعديل
الشرط صحة كسـر من مرة كل فيمعين عدد بعد التكرار إيقاف بذلك ليتم و
forطريقة تنفيذ الدوران الدوران باستخدامif يتم من خالل فحص الشرط في كل
دورة ثم ينفذ المطلوب لمرة واحدة ثم يقوم بتعديل قيمة العداد )زيادة / نقصان( ثم يفحص الشرط و هكذا ...
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
انتبـهانتبـه
البدائيـة البدائيـة القيمة القيمةيتم يتم للعداد للعداد
فقط فقط حسابها حسابهاواحدة واحدة مرة مرة
بداية بداية عند عندال و ال الدوران و الدوران
تنفيذها تنفيذها يتكرر يتكررذلك ذلك بعد ..بعد
مثـالـ : تطبيق الدوران Forباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.1
إلى مليون 1اكتبي برنامج يقوم بطباعة األرقام من
باستخدام جملة طباعة واحدة فقط.
الحل
واجبـــــــ
8.2
ارســمي مخطــــط ســــــــير ــات العمليالمناســب للمثـــــال
السابق
مثـالـ : تطبيق الدوران Forباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.1
واجبـــــــ
8.3
أعـيدي برمـجة المـثال العـلوي ـمع طباـعة فـقط إلى مليـون.1األرقام الزوجيـة من
مالحظات وتنبيهات عند وضع فاصلة منقوطة بعد جملةfor المترجم يعتبر هذا � فإن
التكرار ال يقوم بتنفيذ جمل أخرى غير زيادة العداد, و بالتالي
يقوم المترجم بتنفيذ الجمل التي تلي التكرار مرة واحدة فقط.
( في كثير من األحيان.خطأ منطقيخطأ منطقيو هذا يعرف باسم )
( يعتبر خطأ برمجي ,( بفاصلة );استبدال الفاصلة المنقوطة )
(.Compilingيتم اكتشافه من المترجم عند الترجمـة )
)عند الحاجـة لجعل التكرار يشتمل أكثر من جملة )أمر برمجي
ليتم تكرارهم كجملة واحدة.} {البد من احتوائهم داخل أقواس
مثـالـ : تطبيق الدوران Forباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.2
اكتبي برنامج يقوم باستقبال خمسـة أرقام صحيحة موجبة من
المستخدم و يطبع أصغرهم على أن تستخدم جملة إدخال واحدة
فقط.
الحل
واجبـــــــ
8.4
اكتـــــــــــــبي الخوارزميـــــــة المناســــــــــبة ابق. ال الـس للمـث
مثـالـ : تطبيق الدوران Forباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.2
واجبـــــــ
8.5
أعيدي برمجة المثال العلوي لطباعة أكبرهم
whileجملة
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
جملةwhile من الجمل التي تمكننا من تكرار عدد من األوامر حسب عدد معين أو شرط منطقي
معين.و تكتب بالصورة التالية
int x = number;while (Condition) { // actions x--; }
int x = number;while (Condition) { // actions x--; }
كعداد استخدامه يتم متغير تعريف
التكرار سيستمر الذي الشرطعدمه من صحته على Lيتم بناًء و
تكرار كل قبل فحصه
تعديل خاللها من يتم جملةمن تجعل بصورة العداد قيمةفي خطأ يصبح أن الممكن
ما وقت
whileطريقة عمل جملة
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
true
false
ActionsActionsCondition
Start
End
و جملةwhile كما تالحظ تقوم بفحص الشرط قبل -preكل عملية تنفيذ لألوامر و عليه تسمى على ذلك )
test.)
مثـالـ : تطبيق الدوران whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.3
1اكتبي برنامج يقوم بطباعة األرقام الزوجيـة من
.50إلى
الحل
واجبـــــــ
8.6
ارســمي مخطــــط ســــــــير ــات العمليالمناســب للمثـــــال
السابق
مثـالـ : تطبيق الدوران whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.3
واجبـــــــ
8.7
أعـيدي برمـجة المـثال العـلوي ـمع طباـعة فـقط .100 إلى 1األرقام األوليـة من
مالحظات وتنبيهاتعند وضع فاصلة منقوطة بعد جملة : خطأ شائع while �فإن
المترجم يعتبر هذا التكرار ال يقوم بتنفيذ جمل أخرى غير فحص
الشرط ألول مرة فقط, و بالتالي يقوم المترجم بتنفيذ الجمل
خطأ خطأ التي تلي التكرار مرة واحدة فقط. و هذا يعرف باسم )
( في كثير من األحيان.منطقيمنطقي
عدم احتواًء متغير التكرار على قيمة بدائية يسبب : خطأ شائع
خطأ برمجيخطأ برمجي
عدم وجود أمر برمجي يتم من خالله تغيير القيمة : خطأ شائع
خطأ و هذا تكرار ال نهائي تكرار ال نهائي التي يعتمد عليها الشرط يؤدي إلى
.منطقي
)عند الحاجـة لجعل التكرار يشتمل أكثر من جملة )أمر برمجي
ليتم تكرارهم كجملة واحدة.} {البد من احتوائهم داخل أقواس
مثـالـ : تطبيق الدوران whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.4
يستقبل من المستخدم عدد من األرقام الصحيحة و يطبع أصغرهم على أن
يكون الرقم األول هو عدد األرقام التي سيدخلها المستخدم للبرنامج.
الحل
واجبـــــــ
8.8
اكتـــــــبي ــوارزمي الخ
ة المناـسبة للمثـــــــال العلــــــوي ــالطريقتي ب
ن ــدتي المعتمـ
ن.
مثـالـ : تطبيق الدوران whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.4
واجبـــــــ
8.9
ابق ال الـس تخدم أدـخل في المـث افترـضي أن المـسكل أرقامه أكبر من مليون !! فما الحل ؟
do…whileجملة
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
جملةdo…while من الجمل التي تمكننا من تكرار عدد من األوامر حسب عدد معين أو شرط
منطقي معين.و تكتب بالصورة التالية
int x = number;do { // actions x--; } while (Condition)
int x = number;do { // actions x--; } while (Condition)
كعداد يستخدم متغير تعريفتكرار عملية في فحصه يتم علم أو
التكرار سيستمر الذي الشرطعدمه من صحته على Lيتم بناًء و
تكرار كل بعد فحصه
العلم أو العداد قيمة على تعديلمعين وقت بعد يمكن بحيث
الشرط صحة كسر
…doطريقة عمل جملة while
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
صحيح
خاطئ
ActionsActions Condition
بدايـة
نهـايــة
الشرط في جملة � يتم فحصه في كل do…whileالحظي أنتكرار بعد التكرار و ليس قبل و بالتالي فهو ينفذ على
Post-testاألقل تكرار واحد و يسمى بذلك
مثـالـ : تطبيق الدوران do…whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.5
اكتبي برنامج يقوم بحسـاب متوسط األعداد
.50 إلى 1الصحيحة من
الحل
واجبـــــــ
8.10
اكتـــــبي الـخوارزمي
ة ــبة المناسللمثـــــال المطلوب
مثـالـ : تطبيق الدوران do…whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.5
واجبـــــــ
8.11
بي ال السـابق , اكـت ك للمـث مسـتفيدة من فهـمامج يطبـع مجمـوع مربعـات األرقـام من 1برـن
+ ....(16+ 9+4 +1 )مثال: 50إلى
مالحظات وتنبيهاتبعد شرط جملة نسيـان وضع فاصلة منقوطةنسيـان وضع فاصلة منقوطة: خطأ شائع
do…while المترجم يعتبر هذا �ألن الفاصلة خطأ برمجي فإن
المنقوطة تعتبر جزًء من التكرار في هذه الصيغة.
عدم احتواًء متغير التكرار على قيمة بدائية : خطأ شائع
خطأ برمجيخطأ برمجييسبب
عدم وجود أمر برمجي يتم من خالله تغيير : خطأ شائع
تكرار ال نهائي تكرار ال نهائي القيمة التي يعتمد عليها الشرط يؤدي إلى
.خطأ منطقيو هذا
عند الحاجـة لجعل التكرار يشتمل أكثر من جملة )أمر
ليتم تكرارهم } {برمجي( البد من احتوائهم داخل أقواس
كجملة واحدة.
مثـالـ : تطبيق الدوران do…whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.6
اكتبي برنامج يستقبل من الطالب خمس درجات لمساقاته
ليطبع البرنامج مجموعة درجاته و متوسطه.
الحل
واجبـــــــ
8.12
اكتـــــــبي ــوارزمي الخ
ة المناـسبة للمثـــــــال العلــــــوي ــالطريقتي ب
ن ــدتي المعتمـ
ن.
مثـالـ : تطبيق الدوران do…whileباستخدام
إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي 20112011--20102010الفرا الفرا
8.6
واجبـــــــ
8.13افترـضي أن ـعدد المـساقات ـغير مـعروف و ـسيتم ــيطبع ــامج س ــذلك البرن ــالب , ك ــه من الط إدخالللطـالب تقـديره )ممتـاز , جيـد جـدا , ...( و ليس المتوـسط ... ـقومي بتـعديل البرـنامج بـناL على ـهذه
التعديالت
whileالفارق بين صيغ
كل قبل يكون الشرط فحص)Pre-Testتكرار (
( أو ( صفر تكرر تنفذ أن لها يمكنصحة حسب المرات من أكثر
الشرط بفاصلة تنتهي أن يسمح ال
خطأ يعتبر إال و منقوطةمن كثير في منطقي
األحيان.
كل قبل يكون الشرط فحص)Pre-Testتكرار (
( أو ( صفر تكرر تنفذ أن لها يمكنصحة حسب المرات من أكثر
الشرط بفاصلة تنتهي أن يسمح ال
خطأ يعتبر إال و منقوطةمن كثير في منطقي
األحيان.
كل بعد يكون الشرط فحص)Post-Testتكرار (
( على ( تكرر تنفذ أن لها يمكنأكثر أو واحدة مرة األقل
منقوطة بفاصلة االنتهاًء ) برمجي) خطأ يعتبر إال و الزم
كل بعد يكون الشرط فحص)Post-Testتكرار (
( على ( تكرر تنفذ أن لها يمكنأكثر أو واحدة مرة األقل
منقوطة بفاصلة االنتهاًء ) برمجي) خطأ يعتبر إال و الزم
while do…while
while (condition) { // actions }
while (condition) { // actions }
do { // actions }while (condition);
do { // actions }while (condition);
breakمفهوم الجملة الجملة البرمجيـةbreak إلجبــارتستخدم
المترجم على الخروج من التكرار حتى و إن لم
يتم عدد التكرارات المخصصة له سلفًـا.
و بالتالي يخرج المترجم لتنفيذ أول أمر برمجي
بعد التكرار مباشرة.
و يمكن استخدامها في التكرارات أو جمل
switchاالختيار عامة و لكن� استخدامها في جملة
يعتبر إجبـاري.
continueمفهوم الجملة الجملة البرمجيـةcontinue إلجبــارتستخدم
المترجم على إنهاًء الدورة الحالية من التكرار
حتى و إن لم يتم الدورة لنهايتها, و لكن
المترجم يعود لبداية الدوران و يكمل من حيث
وصل العداد.
و يمكن استخدامها في التكرارات أو جمل
switchاالختيار عامة و لكن� استخدامها في جملة
يعتبر إجبـاري.
و breakالفارق بين جملة continueجملة
و breakالفارق بين جملة continueجملة
باستخدام continue
التكرار سيستمرطباعة في
من إلى 1األرقامتصبح 4 عندما و
العداد قيمةcount = 5
بقية تجاهل سيتميعود و الدورةالدوران لبدايةمن مستأنفًـا
يكمل 6العدد وطباعة
باستخدام continue
التكرار سيستمرطباعة في
من إلى 1األرقامتصبح 4 عندما و
العداد قيمةcount = 5
بقية تجاهل سيتميعود و الدورةالدوران لبدايةمن مستأنفًـا
يكمل 6العدد وطباعة
و breakالفارق بين جملة continueجملة
باستخدام break
التكرار سيستمرطباعة فيمن 1األرقام
عندما 4إلى وقيمة تصبح
count = العداد 5
من سيخرجا التكرار nمجبر
سيشاهد النهbreak
باستخدام break
التكرار سيستمرطباعة فيمن 1األرقام
عندما 4إلى وقيمة تصبح
= countالعداد 5
من سيخرجا التكرار nمجبر
سيشاهد النهbreak
ا إلنصاتكم Lشكـر
لنبدأ النقاش إعداد / أ. محمود رفيق حمدي إعداد / أ. محمود رفيق حمدي فنستفيـد...
20112011--20102010الفرا الفرا
إيمانك × ميزانكـقال اإلمام بن تيمية رحمه الله تعالى:
اإلسناد من الدين و لوال اإلسناد
لقال من شاًء ما شاًء
في المحاضرة القادمـة إن شاًء الله
تدريبات شاملة تدريبات شاملة على جمل على جمل
الدورانالدوران / 30آخر موعد لتسليم الواجبات يوم
12 / 2010Lالساعة العاشرة مساًء