إعداد / أ. محمود رفيق حمدي الفرا 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
إيمانك × ميزانكـ
قال اإلمام بن تيمية رحمه اهلل تعالى:
اإلسناد من الدين و لوال
اإلسناد لقال من شاء ما شاء
في المحاضرة القادمـة
إن شاء اهلل
تدريبات شاملة
على المصفوفات