المصفوفات و انواعها في الجافا ..(5) - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة تعلم java (http://vb4arb.com/vb/forumdisplay.php?fid=137) +---- الموضوع : المصفوفات و انواعها في الجافا ..(5) (/showthread.php?tid=6532) |
المصفوفات و انواعها في الجافا ..(5) - RaggiTech - 19-10-12 كاتب الموضوع : Friendassist
ما هي المصفوفات arrays ؟ المصفوفات هي عبارة عن نوع متقدم من ابنية البيانات كالدوال و ال classes تسمح للمبرمج بان يحجز مكان لمجموعة من كبيرة من المتغيرات في الذاكرة دفعة واحدة و تكون هذه المتغيرات من نوع واحد اما اعداد صحيحة او اعداد عشرية او نصوص ..الخ .. وتنقسم المصفوفات الي نوعين : 1_المصفوفات احادية البعد .. Single Array 2_المصفوفات متعددة الابعاد .. Multi-Dimensional Array اولا : المصفوفات احادية البعد .. : مثال علي تهيئة مصفوفة احادية البعد لاستخدامها: كود : [color=#000000][COLOR=#0000bb]int [/color][color=#007700][] [/color][color=#0000bb]myarray [/color][color=#007700]={[/color][color=#0000bb]1[/color][color=#007700],[/color][color=#0000bb]2[/color][color=#007700],[/color][color=#0000bb]3[/color][COLOR=#007700]}; كود : [color=#000000][COLOR=#0000bb]int ages[/color][color=#007700][] = { [/color][color=#0000bb]10[/color][color=#007700], [/color][color=#0000bb]20[/color][color=#007700], [/color][color=#0000bb]30[/color][color=#007700], [/color][color=#0000bb]40[/color][color=#007700], [/color][color=#0000bb]50[/color][color=#007700], [/color][color=#0000bb]60[/color][color=#007700], [/color][color=#0000bb]70[/color][color=#007700], [/color][color=#0000bb]80[/color][color=#007700], [/color][color=#0000bb]90[/color][color=#007700], [/color][color=#0000bb]100 [/color][COLOR=#007700]}; طريقة حجز قيمة المصفوفة احادية البعد في الذاكرة :
مصفوفات لمتغيرات اخري غير العددية مثل الحروف و القيم المنطقية:
مصفوفة للقيم المنطقية boolean : كود : [color=#000000][COLOR=#0000bb]boolean results[/color][color=#007700][] = { [/color][color=#0000bb]true[/color][color=#007700], [/color][color=#0000bb]false[/color][color=#007700], [/color][color=#0000bb]true[/color][color=#007700], [/color][color=#0000bb]false [/color][COLOR=#007700]}; مصفوفة لايام الاسبوع اي قيم string :
كود : [color=#000000][COLOR=#0000bb]String days[/color][color=#007700][] = { [/color][color=#0000bb]“Mon”[/color][color=#007700], [/color][color=#0000bb]“Tue”[/color][color=#007700], [/color][color=#0000bb]“Wed”[/color][color=#007700], [/color][color=#0000bb]“Thu”[/color][color=#007700], [/color][color=#0000bb]“Fri”[/color][color=#007700], [/color][color=#0000bb]“Sat”[/color][COLOR=#007700], كانت هذه مجموعة امثلة علي الشكل المبسط للمصفوفات احادية البعد سواء ان كانت مصفوفة عددية او منطقية او حرفية ...وغيره...
مثال : برنامج يقوم بعمل استدعاء لكافة عناصر مصفوفة احادية .. و يضع عناصرها في اداة jComboBox : كود : [color=#000000][COLOR=#007700]private [/color][color=#0000bb]void jButton1ActionPerformed[/color][color=#007700]([/color][color=#0000bb]java[/color][color=#007700].[/color][color=#0000bb]awt[/color][color=#007700].[/color][color=#0000bb]event[/color][color=#007700].[/color][color=#0000bb]ActionEvent evt[/color][COLOR=#007700]) { كود : [color=#000000][COLOR=#0000bb]jComboBox1[/color][color=#007700].[/color][color=#0000bb]removeAllItems[/color][COLOR=#007700](); لتفريغ حقل ال jComboBox ..
كود : [color=#000000][COLOR=#0000bb]int ages[/color][color=#007700][] = { [/color][color=#0000bb]1[/color][color=#007700], [/color][color=#0000bb]2[/color][color=#007700], [/color][color=#0000bb]3[/color][color=#007700], [/color][color=#0000bb]4[/color][color=#007700], [/color][color=#0000bb]5[/color][color=#007700], [/color][color=#0000bb]6[/color][color=#007700], [/color][color=#0000bb]7[/color][color=#007700], [/color][color=#0000bb]8[/color][color=#007700], [/color][color=#0000bb]9[/color][color=#007700], [/color][color=#0000bb]10 [/color][COLOR=#007700]}; تم تعريف مصفوفة تتكون من عشرة قيم عددية صحيحة ..
كود : [color=#000000][COLOR=#007700]for( [/color][color=#0000bb]int i[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]ages[/color][color=#007700].[/color][color=#0000bb]length[/color][color=#007700]; [/color][color=#0000bb]i[/color][COLOR=#007700]++ ){ قمنا تعريف متغير .. يمر علي جميع القيم العددية في المصفوفة بالترتيب حتي اخر قيمة .. ومن ثم وضع قيمة الحلقة النهائية في jComboBox ..
البرنامج الناتج : برنامج بسيط علي المصفوفات احادية البعد ولكن بطريقة اخري : كود : [color=#000000][COLOR=#0000bb]int [/color][color=#007700]array []={[/color][color=#0000bb]16[/color][color=#007700],[/color][color=#0000bb]2[/color][color=#007700],[/color][color=#0000bb]77[/color][color=#007700],[/color][color=#0000bb]40[/color][color=#007700],[/color][color=#0000bb]1000[/color][color=#007700],[/color][color=#0000bb]2500[/color][COLOR=#007700]}; حيث قمنا بتعريف متغير صحيح n .. يقوم هذا المتغير بالمرور علي عناصر اول خمسة عناصر بالمصفوفة و يقوم بجمعهم ويسند القيمة الي متغير اخر من خلال الامر التالي :
كود : [color=#000000][COLOR=#0000bb]result [/color][color=#007700]+= array[[/color][color=#0000bb]n[/color][COLOR=#007700]] ثانيا : المصفوفات متعددة الابعاد .. :
مثال علي تهيئة مصفوفة متعددة الابعاد لاستخدامها: كود : [color=#000000][COLOR=#0000bb]int [/color][color=#007700][][] Array = {{[/color][color=#0000bb]1[/color][color=#007700],[/color][color=#0000bb]2[/color][color=#007700],[/color][color=#0000bb]3[/color][color=#007700]},{[/color][color=#0000bb]10[/color][color=#007700],[/color][color=#0000bb]20[/color][color=#007700],[/color][color=#0000bb]30[/color][COLOR=#007700]}}; كود : [color=#000000][COLOR=#0000bb] int numbers [/color][color=#007700][][] = {{[/color][color=#0000bb]1000[/color][color=#007700],[/color][color=#0000bb]2000[/color][color=#007700],[/color][color=#0000bb]3000[/color][color=#007700],[/color][color=#0000bb]4000[/color][color=#007700]},{[/color][color=#0000bb]100[/color][color=#007700],[/color][color=#0000bb]200[/color][color=#007700],[/color][color=#0000bb]300[/color][color=#007700],[/color][color=#0000bb]400[/color][COLOR=#007700]}}; طريقة حجز قيمة المصفوفة متعددة الابعاد في الذاكرة :
(مثال متقدم كثيرا يربط بين معظم ما اتي في الدروس السابقة من if , loop , strings , array )
كود : [color=#000000][COLOR=#0000bb] int [/color][color=#007700][][] [/color][color=#0000bb]arrayOfInts [/color][color=#007700]= {{[/color][color=#0000bb]32[/color][color=#007700],[/color][color=#0000bb]87[/color][color=#007700],[/color][color=#0000bb]3[/color][color=#007700],[/color][color=#0000bb]58[/color][color=#007700]},{[/color][color=#0000bb]12[/color][color=#007700],[/color][color=#0000bb]1076[/color][color=#007700],[/color][color=#0000bb]2000[/color][color=#007700],[/color][color=#0000bb]8[/color][color=#007700]},{[/color][color=#0000bb]622[/color][color=#007700],[/color][color=#0000bb]127[/color][color=#007700],[/color][color=#0000bb]77[/color][color=#007700],[/color][color=#0000bb]955[/color][COLOR=#007700]}}; ويستخدم لتحديد موقع متغير في مصفوفة متعددة الابعاد و هو 12 و موقعة 3,4
و الدالة عبارة عن دالة بحث تستخدم الحلقات التكرارية للمرور علي جميع متغيرات المصفوفة للحصول علي موقع المتغير في الذاكرة و اذا تمكنت من تحديد الموقع تضعه في اداة ليبل من خلال الشرط if ....
في النهاية انا جاهز ان شاء الله لاي استفسار ...
--------------------------------------------------- روابط تحميل الامثلة : المثال الاول : http://vb4arb.com/vb/uploaded/18_01350637840.rar المثال الثاني : http://vb4arb.com/vb/uploaded/18_11350637840.rar المثال الثالث : http://vb4arb.com/vb/uploaded/18_21350637840.rar -------------------------------------------------- و السلام عليكم ورحمة الله ... |