إعداد / أ. محمود رفيق حمدي الفرا 2010-2011

Download Report

Transcript إعداد / أ. محمود رفيق حمدي الفرا 2010-2011

‫خوارزميات و مبادئ برمجة‬
‫بلغة جافا‬
‫األسبـوع التاسع‬
‫المحاضرة السابعة و الثامنـة عشـر‬
‫جمل الدوران و تطبيقاتها‬
‫شعبـة الطالبات‬
‫إعداد و تدريس‪ /‬محمود رفيـق الف َّـرا‬
‫‪2011-2010‬‬
‫في هذا األسبـوع‬
‫‪ ‬تصنيفات البيانات‬
‫‪ ‬مفهوم المصفوفات و تطبيقاته‬
‫‪ ‬طرق تعريف المصفوفة‬
‫‪ ‬التفاعل مع خاليا المصفوفة (طباعة و تغذية)‬
‫‪ ‬أمثلـة و حلول‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫تصنيفات البيانات‬
‫‪ ‬البيانات في الجـافـا تقسم إلى نوعين‬
‫)األنواع األساسية(‪• Primitive types‬‬
‫‪» int‬‬
‫‪» float‬‬
‫‪» char‬‬
‫)األنواع المشتقـة( ‪• Reference types‬‬
‫‪» Objects‬‬
‫)تراكيب البيانات( ‪» Data Structures‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫تصنيفات البيانات‬
‫‪ ‬يمكن تقسيم تراكيب البيانات لنوعين‪:‬‬
‫‪ ‬ثابتـة في الحجم و الشكل‬
‫‪ ‬مثل المصفوفات‬
‫‪ ‬متغيرة الحجم و الشكل‬
‫‪ ‬مثل الـ ‪Linked List ,Queue , stack‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫‪Top‬‬
‫مفهوم المصفوفات و تطبيقاته‬
‫‪ ‬المصفوفة هي أحد أنواع البيانات و المكونة من مجموعة متصلة و متواصلة من‬
‫مواقع الذاكرة لها نوع واحد و اسم واحد‪.‬‬
‫‪ ‬و يعتبر حجم المصفوفة ثابت فال يسمح بتغيير حجمها أثناء وقت التنفيذ فتعرف‬
‫باسم (‪)Static data structure‬‬
‫‪ ‬و تواصل خاليا المصفوفة يسمح بعمليات البحث و الترتيب للبيانات المختلفة‪.‬‬
‫‪ ‬و بذلك فيتم استخدامها في كافة التطبيقات التي نحتاج فيها إلى البحث‬
‫أو الترتيب أو التخزين الممنهج (التخزين حسب شرط معين)‪.‬‬
‫‪10.1‬‬
‫واجبـــــــ‬
‫اذكري خمسة من التطبيقات في حياتنا التي نحتاج فيها للمصفوفات‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الف َّـرا ‪2011-2010‬‬
‫مفهوم المصفوفات و تطبيقاته‬
‫اسم المصفوفة (كما تالحظ‬
‫جميع عناصر المصفوفة لها ذات‬
‫االسم وهو ‪)c‬‬
‫رقم المكان في المصفوفة‬
‫و يسمى (‪ )index‬أو‬
‫(‪)subscript‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫أنــواع المصفوفات‬
‫‪ ‬المصفوفات لها نوعين‪:‬‬
‫‪ ‬أحاديــة األبعــاد‪ :‬يتم فيها ختزين البيانات يف صف واحد فقط‪.‬‬
‫‪‬متعددة األبعــاد‪ :‬يتم فيها ختزين البيانات يف صفوف و أعمدة‪.‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫طرق تعريف المصفوفة أحاديـة األبعاد‬
‫;] ‪type[] array_name = new type[ x‬‬
‫عدد العناصر التي نريد‬
‫حجزها في الذاكرة‬
‫نوع العناصر التي‬
‫ستحجز في الذاكرة‬
‫;‪type [] array_name‬‬
‫;] ‪array_name = new type[ x‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫طرق تعريف المصفوفة متعددة األبعاد‬
‫;] ‪type [,] array_name = new type[ x, y‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫تعريف أنواع من المصفوفات‬
int[] grades = new int[ 70 ];
String[] employees = new String[ 10 ];
float[] salary = new float[ 30 ];
2011-2010 ‫ محمود رفيق حمدي الفرا‬.‫ أ‬/ ‫إعداد‬
‫التفاعل مع خاليا المصفوفة (طباعة و تغذية)‬
‫‪ ‬يمكن التفاعل مع أي عنصر من عناصر المصفوفـة من خالل التعبيـر‬
‫البرمجي التالي و الذي يشمل على اسم المصفوفة باإلضافـة إلى رقم‬
‫الخلية المراد التفاعل معها‪.‬‬
‫‪Array [ i ] = k‬‬
‫القيمة المراد وضعها في الخلية‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫رقم الخلية المراد التفاعل معها‬
‫و هو محدد من صفر إلى‬
‫طول الخلية ‪1-‬‬
‫اسم المصفوفـة‬
‫مثـالـ ‪ :‬تطبيق الدوران باستخدام ‪For‬‬
‫‪9.1‬‬
‫اكتبي برنامج يقوم بإنشـاء مصفوفة تحتوي على ‪ 5‬أرقام الصحيحة مع إعطاء‬
‫قيمة بدائية لكل خلية بالرقم ‪.2‬‬
‫الحل‬
‫‪9.2‬‬
‫واجبـــــــ‬
‫اكتبي برنامج يقوم بإنشـاء مصفوفة‬
‫تحتوي على نصوص ‪ 4‬نصوص‬
‫مع إعطاء كل خلية اسم‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.1‬‬
‫معلومة هامة‬
‫كل مصفوفة تحتوي على متغير اسمه ‪ length‬يخرن فيه طول المصفوفة و يمكننا االستفادة منه في‬
‫كثير من التطبيقات كما تشاهد في المثال العلوي (‪)Array.length‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مالحظات وتنبيهات‬
‫‪ ‬كــل التطبيقــات التــي نحتــاج فيهــا للوصــول لكافــة خاليــا المصفوفــة أو لعــدد معــين منهــا‬
‫حسب شرط ما ‪ ,‬نحتاج فيها إلى استخدام أحد أنواع الدوران‪.‬‬
‫‪ ‬اإلشارة ] [ يمكن اسـتخدامها خـالل تعريـف المصـفوفة قبـل االسـم أو بعـد و كالهمـا‬
‫صحيح‪.‬‬
‫‪ ‬خطأ شائع‪ :‬عدم تحديد عدد لعناصر المصفوفة عند تعريفهـا يعطـي خطـأ برمجـي إال إذا‬
‫تم تعريفها بالطريقة التالية‪:‬‬
‫;][ ‪int x‬‬
‫و يمكن بعد ذلك خالل البرنامج إعطاء العدد بالصيغة التالية‬
‫;]‪x = new [5‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.2‬‬
‫اكتبي برنامج يتم من خالله إنشاء مصفوفة لتخزين أرقام صحيحة محددة‬
‫معروفة سلفا دون إعطاء القيمة لكل خلية على حدا‬
‫الحل‬
‫‪9.3‬‬
‫واجبـــــــ‬
‫اكتبي برنامج يتم من خالله إنشاء‬
‫مصفوفة لتخزين الحروف اإلنجليزية‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.2‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.3‬‬
‫اكتبي برنامج يقوم بإنشـاء مصفوفة لتخزين أرقام صحيحة ‪ ,‬على أن يتم تخزين‬
‫فيها مضاعفات الرقم ‪ 2‬من ‪ 0‬إلى ‪ 20‬ثم يتم طباعتهم‪.‬‬
‫الحل‬
‫‪9.4‬‬
‫واجبـــــــ‬
‫أعيدي برمجة المثال السابق‬
‫لتخزين األرقام الفرديـة من‬
‫‪1‬إلى ‪100‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.3‬‬
‫‪9.5‬‬
‫واجبـــــــ‬
‫أعيدي برمجة المثال العلوي مع تخزين األرقام األوليـة من ‪ 1‬إلى ‪ .100‬علما َّ‬
‫بأن‬
‫الرقم األولي هو الذي ال يقبل القسمة إال على نفسـه و الواحد‪.‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.4‬‬
‫اكتب برنامج يقوم بإنشـاء مصفوفة لتخزين عشرة أرقام صحيحة يتم استقبالها‬
‫من المستخدم ‪ ,‬ثم يتم بعد ذلك جمع األرقام الزوجيـة منها و طباعة الناتج‬
‫الحل‬
‫‪9.6‬‬
‫واجبـــــــ‬
‫اكتبي الخوارزمية‬
‫المناسبة للمثال‬
‫العلوي بالطريقتين‬
‫المعتمدتين‪.‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪ :‬المصفوفات و عملياته‬
‫‪9.4‬‬
‫‪9.7‬‬
‫واجبـــــــ‬
‫قومي بالتعديل على البرنامج السابق لطباعة مجموع األعداد الفردية أيضا م طباعة عدد‬
‫األرقام الزوجية و الفردية المدخلة‪.‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪9.5:‬‬
‫المصفوفات و عملياته‬
‫مستفيدا من المثال السابق ‪ ,‬قم بكتابة برنامج يسمح للمستخدم بالبحث عن‬
‫احد القيم المدخلة و طباعة النتيجة (وجدتها في الخلية رقم ‪ )...‬أو (ال‬
‫أجدها)‬
‫الحل‬
‫‪9.8‬‬
‫واجبـــــــ‬
‫أعيدي برمجة‬
‫المثال السابق مع‬
‫استبدال‬
‫المصفوفة‬
‫بمصفوفة أسماء‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫مثـالـ ‪9.5:‬‬
‫المصفوفات و عملياته‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫شك ًـرا إلنصاتكم‬
‫لنبدأ النقاش فنستفيـد‪...‬‬
‫إعداد ‪ /‬أ‪ .‬محمود رفيق حمدي الفرا ‪2011-2010‬‬
‫إيمانك × ميزانكـ‬
‫قال اإلمام بن تيمية رحمه اهلل تعالى‪:‬‬
‫اإلسناد من الدين و لوال‬
‫اإلسناد لقال من شاء ما شاء‬
‫في المحاضرة القادمـة‬
‫إن شاء اهلل‬
‫تدريبات شاملة‬
‫على المصفوفات‬