دورة الجافا الرسومية بأستخدام NetBeans ... الدرس (6) المصفوفات Arrays !!
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1 • شاطر
دورة الجافا الرسومية بأستخدام NetBeans ... الدرس (6) المصفوفات Arrays !!
بسم الله الرحمن الرحيم
أهلا وسهلا بكم أخوانى و اخواتى أعضاء و زوار منتدى مصر التقنى...بداية أتقدم بالاعتذار لكم جميعا فلقد أطلت عليكم الغياب مرة أخرى كعادتي وتأخرت كثيرا فى تكملة تلك الدورة ، وسبب الغياب العالمي الموحد هو “مشغول” ، وهذه الحجة أصبحت مستهلكة تماما وشماعة لكل من لايستطيع الالتزام بمسؤولياته ولا الوفاء بوعوده ، وهو داء عضال أصاب الكثيرين وانا من أولهم ولا أبرئ نفسي لذلك ألتمس منكم العذر .....اليوم أن شاء الله تعالى سوف أقدم لكم الدرس السادس و هو سيكون ان شاء الله تعالى عن المصفوفات
أولا : تعريف المصفوفة و انواعها :
المصفوفة هى عبارة عن مواقع يتم تخزين البيانات فيها لمدة مؤقتة طيلة فترة تنفيذ البرنامج فقط ..أو بمعنى عامى عبارة عن جدول يتم تخزين فية البيانات و لفترة معينة.......يوجد نوعان من المصفوفات :
1_المصفوفة الأحادية: وهي مكونة من بعد واحد فقط.
2_المصفوفة متعددة الأبعاد: وهي مكونة من عدد من الصفوف والأعمدة (ليس شرطا ان تكون بعدين ) .
ثانيا : كيفية انشاء المصفوفات فى لغة الجافا
المصفوفة ذات البعد الواحد....والصيغة العامة للإعلان عن المصفوفة ذات البعد الواحد كالتالي:
أو يمكن الإعلان عنها بنفس الصيغة السابقة مع وضع الأقواس بعد اسم المصفوفة كالتالي:
وبعد الإعلان عن المصفوفة لابد من تحديد عدد عناصرها ويتم ذلك كالتالي:
فمثلا لعمل مصفوفة رقمية من النوع int خاصة بدرجات عشرة طلاب مثلًا يتم ذلك كالتالي:
- الكود:
int array1[];
array1[] = new int[10];
أو يمكن الإعلان عن المصفوفة وتحديد عدد عناصرها في سطر واحد كالتالي:
- الكود:
int array1[] = new int[10];
أو بهذا الشكل التالى :
- الكود:
int[] array1 = new int[10];
أذن كل الخيارات متاحة امامك فى الاعلان و انشاء مصفوفة ذات بعد واحد
مثال : المطلوب عمل مصفوفة ذات بعد واحد تحتوي على درجات خمس طلاب وطباعة الناتج على الشاشة.بنفترض أن درجات الطلاب (10, 20, 30, 40, 50 ) .
الحل و و كتابة البرنامج كالتالي:
- المصفوفة متعددة الأبعاد (ذات البعدين) Multidimensional array
ويمكن القول بأن المصفوفة ذات البعدين هي عبارة عن جدول يحتوي على صفوف وأعمدة .والصيغة العامة لهذه المصفوفة كالتالي :
ثالثا : كيفية أدخال العناصر الى المصفوفة من لوحة المفاتيح .
(1) _ فى البيئة غير الرسومية :نقم بأستخدام دالة الادخال Scanner ....
فمثلا لنفرض أن هناك مصفوفة ذات بعدين يراد فيها إدخال درجات 6 طلاب عن طريق لوحة المفاتيح يتم ذلك كالتالي:
سنقوم بتسمية المصفوفة student وسوف نستخدم دالة الإدخال Scanner لإدخال قيماً صحيحة إلى هذه المصفوفة وهذا هو شكل البرنامج:
1-في السطر الأول يتم الإعلان عن مصفوفة ذات بعدين من النوع int وعدد عناصرها 6 عناصر.
2-السطر الثاني سبق وتم شرحه في جملة الإدخال.
3-السطر الثالث والرابع تم عمل حلقتين , الحلقة الأولى الخارجية للإشارة إلى رقم الصف row والحلقة الثانية للإشارة إلى رقم العمود column. وطبعا لاحظ ان الحلقة الخارجية قد تم إضافة أقواس لها .
4-أما السطر الخامس فيتم استخدام دالة الإدخال كما شرحناها سابقًا. ولكننا هنا استخدمنا المصفوفة student كمتغير يتم تخزين عناصر المصفوفة المدخلة فيه.
وعند تشغيل البرنامج لن تظهر لك أي رسالة . لأننا لم نضف رسالة للإدخال يمكنك أنت إضافتها ولكن, سيظهر المؤشر في أقصى يسار الشاشة منتظرا إدخال قيم عناصر المصفوفة فيتم إدخال 6 عناصر والضغط على مفتاح الإدخال كل مرة. وبعد تمام الإدخال للستة عناصر تظهر علامة المحث للدرس دلالة على انتهاء الإدخال.
كيفية قراءة عناصر المصفوفة
بعد أن يتم إدخال عناصر المصفوفة وإجراء أي عمليات عليها كالعمليات الحسابية مثلًا, يهمنا أن نرى المخرجات على الشاشة. وفي هذا البرنامج سوف نتعرف على كيفية قراءة عناصر المصفوفة وطباعة هذه العناصر كما هي على الشاشة دون أي تغيير, ويتم ذلك عن طريق البرنامج التالي:
(2):فى بيئة النوافذ أو البيئة الرسومية نستخدم JOptionPane و التى من خلالها نقوم بإنشاء مربع حوارى للمستخدم يستطيع من خلالة ادخال البيانات ....فلنتفرض مثلا أننا نريد انشاء مصفوفة تتكون من خمس عناصر يتم تخزين فيها مجموع الدرجات للطلاب ثم يقوم بعض النتائج التى أكبر من 60 درجة .....الحل سيكون الكود على النحو التالى :
شرح المثال : فى السطر رقم (4) قمنا بتعريف مصفوفة أسمها b وتم حجز 5 مواقع فى تلك المصفوفة ...وفى الاسطر من (6 الى 9 ) قمنا بعمل حلقة تكرارية لإخراج المربع الحوارى input لادخال بيانات من المستخدم و ذلك لتخزينها فى مواقع المصوفة ...بعد ذلك يقوم البرنامج بطاعة الدرجات التى تساوى أو تزيد عن الرقم 60 و يكون مخرجات البرنامج كما يلى :
مثال أخر :
الشرح : فى السطر رقم (7) قمنا بإنشاء مصفوفة اسمها marks من نوع double بها 6 مواقع وذلك لتخزين درجات الطلاب فيها ...أما فى السطر رقم ( انشأنا مصفوفة أخرى اسمها names من نوع String لتخزين اسماء الطلاب 6 بها ...من بداية السطر رقم (11) استخدمنا الدوران لادخال اسماء و درجات الطلاب الستة و هذا طبعا عن طريق الامر showInputDialog الخاص بالكلاس JOptionPane ....ومن خلال الدروان ايضا يتم اضافة الطلاب التى تزيد أو تساوى درجاتهم الرقم (60) الى المخرجات و طباعة المخرجات عن طريق الامر showMessageDialog الخاص ايضا بنفس الكلاس JOptionPane
ثالثا : ترتيب عناصر المصفوفة :
فى كثيرا من التطبيقات نحتاج الى ترتيب المصفوفات أما ان يكون ترتيبا تصاعديا من الاكبر الى الاصغر أو ترتيبا تنازليا من الاصغر الى الاكبر ....وتوجد عدة طرق لذلك :
1_ الترتيب المصفوفة بأستخدام خوارزمة الترتيب الفقاعى :
وتتم عملية الترتيب الفقاعي للمصفوفة بمقارنة كل عنصر مع العنصر التالي له، فإذا كان العنصر الأول أكبر من العنصر التالي تتم عملية تبديل العنصرين باستخدام متحول وسيط، وفي كل مرحلة نحصل على العنصر الأكبر في نهاية المجموعة المقارنة، وتكرر العملية هذه (n-1) مرة باعتبار أن (n) هو عدد عناصر المصفوفة. والبرنامج التالي يبين ذلك :
فى الاسطر من 12 الى 20 يوجد عمليتان دوران متداخلتان يتم من خلالها ترتيب عناصر المصفوفة num حيث يتم فحص القيم فى السطر رقم 16 و اذا تحقق هذا الشرط يتم يتم تبديل عنصرين من عناصر المصفوفة بحيث بحيث يأخذ كل واحد من العنصرين مكان الاخر داخل المصفوفة ...وتكون مخرجات البرنامج كما يلى :
2_ ترتيب المصفوفة بأستخدام الكلاس util .
الامر سهل جدا فى ترتيب عناصر مصفوفة ما بأستخدام الكلاس المسمى util كل ما عليك فعله هو استيراد هذا الكلاس الى مشروعك و البرنامج التالى يبين ذلك :
الشرح :
فى السطر رقم (4) قمنا باستيراد الكلاس util.Arrays ...أما فى السطر رقم 9 قمنا بإنشاء المصفوفة names و اعطاء القيم لها ...أما رقم رقم 10 قمنا بترتيب عناصر المصفوفة بأستخدام الامر Arrays.sort و وضعنا اسم المصفوفة المراد ترتيب عناصرها بين قوسين ...اما مخرجات البرنامج عن طريق المربع الحوارى showMessageDialog وهو يحيتوى على عناصر المصفوفة مترتبة كما فى الشكل التالى :
واخيرا تبقى لنا فى هذا الدرس كيفية البحث الخطى و البحث الثنانى فى المصفوفات فالى اللقاء
[/center]
عدل سابقا من قبل أحمد مناع في الأحد يناير 17, 2016 9:56 pm عدل 1 مرات
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ... الدرس (6) المصفوفات Arrays !!
الله يبارك لك أخى أحمد أنا متابع الدورة بشغف فلا تحرمنا من باقى الدروس ....أصل بصراحة من خلال شرحك الجميل هتعلم الجافا ....و البركة فيك بقى يا ريس
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
NEXT- الادارة
- تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة :
الجنس :
رد: دورة الجافا الرسومية بأستخدام NetBeans ... الدرس (6) المصفوفات Arrays !!
NEXT كتب:الله يبارك لك أخى أحمد أنا متابع الدورة بشغف فلا تحرمنا من باقى الدروس ....أصل بصراحة من خلال شرحك الجميل هتعلم الجافا ....و البركة فيك بقى يا ريس
شكرا next وان شاء الله تعالى سنقوم باضافة باقى الدروس
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: دورة الجافا الرسومية بأستخدام NetBeans ... الدرس (6) المصفوفات Arrays !!
يعطيك الصحة والعافية أخي أحمد
x-wolf- ..
- تاريخ التسجيل : 01/12/2014
المساهمات : 20
النقاط : 20
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: أساسيات اللغة Java Basics
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
اليوم في 7:09 pm من طرف moslema_r
» شركة تنظيف فرشات بالرياض
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد