19-10-12, 01:12 PM
كاتب الموضوع : 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][/COLOR]
كود :
[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]};
[/COLOR][/COLOR]
طريقة حجز قيمة المصفوفة احادية البعد في الذاكرة :
مصفوفات لمتغيرات اخري غير العددية مثل الحروف و القيم المنطقية:
مصفوفة للقيم المنطقية boolean :
برنامج بسيط علي المصفوفات احادية البعد ولكن بطريقة اخري :
مصفوفة للقيم المنطقية 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]};
[/COLOR][/COLOR]
مصفوفة لايام الاسبوع اي قيم 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],
[/COLOR][color=#0000bb]“Sun”[/color][COLOR=#007700]};
[/COLOR][/COLOR]
كانت هذه مجموعة امثلة علي الشكل المبسط للمصفوفات احادية البعد سواء ان كانت مصفوفة عددية او منطقية او حرفية ...وغيره...
مثال : برنامج يقوم بعمل استدعاء لكافة عناصر مصفوفة احادية .. و يضع عناصرها في اداة jComboBox :
مثال : برنامج يقوم بعمل استدعاء لكافة عناصر مصفوفة احادية .. و يضع عناصرها في اداة 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][color=#0000bb]jComboBox1[/color][color=#007700].[/color][color=#0000bb]removeAllItems[/color][COLOR=#007700]();
[/COLOR][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]};
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]++ ){
[/COLOR][color=#0000bb]jComboBox1[/color][color=#007700].[/color][color=#0000bb]addItem[/color][color=#007700]([/color][color=#0000bb]ages[/color][color=#007700][[/color][color=#0000bb]i[/color][COLOR=#007700]]);
}
}
[/COLOR][/COLOR]
كود :
[color=#000000][COLOR=#0000bb]jComboBox1[/color][color=#007700].[/color][color=#0000bb]removeAllItems[/color][COLOR=#007700]();
[/COLOR][/COLOR]
لتفريغ حقل ال 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][/COLOR]
تم تعريف مصفوفة تتكون من عشرة قيم عددية صحيحة ..
كود :
[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]++ ){
[/COLOR][color=#0000bb]jComboBox1[/color][color=#007700].[/color][color=#0000bb]addItem[/color][color=#007700]([/color][color=#0000bb]ages[/color][color=#007700][[/color][color=#0000bb]i[/color][COLOR=#007700]]);
}
[/COLOR][/COLOR]
قمنا تعريف متغير .. يمر علي جميع القيم العددية في المصفوفة بالترتيب حتي اخر قيمة .. ومن ثم وضع قيمة الحلقة النهائية في 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]};
[/COLOR][color=#0000bb]int n [/color][color=#007700], [/color][color=#0000bb]result[/color][color=#007700]=[/color][color=#0000bb]0[/color][COLOR=#007700];
for ([/COLOR][color=#0000bb]n[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700];[/color][color=#0000bb]n[/color][color=#007700]<[/color][color=#0000bb]5[/color][color=#007700];[/color][color=#0000bb]n[/color][COLOR=#007700]++)
{
[/COLOR][color=#0000bb]result [/color][color=#007700]+= array[[/color][color=#0000bb]n[/color][COLOR=#007700]];
}
[/COLOR][color=#0000bb]list1[/color][color=#007700].[/color][color=#0000bb]removeAll[/color][COLOR=#007700]();
[/COLOR][color=#0000bb]list1[/color][color=#007700].[/color][color=#0000bb]add[/color][color=#007700]([/color][color=#dd0000]""[/color][color=#007700]+[/color][color=#0000bb]result[/color][COLOR=#007700]);
[/COLOR][/COLOR]
حيث قمنا بتعريف متغير صحيح n .. يقوم هذا المتغير بالمرور علي عناصر اول خمسة عناصر بالمصفوفة و يقوم بجمعهم ويسند القيمة الي متغير اخر من خلال الامر التالي :
كود :
[color=#000000][COLOR=#0000bb]result [/color][color=#007700]+= array[[/color][color=#0000bb]n[/color][COLOR=#007700]]
[/COLOR][/COLOR]
ثانيا : المصفوفات متعددة الابعاد .. :
مثال علي تهيئة مصفوفة متعددة الابعاد لاستخدامها:
مثال علي تهيئة مصفوفة متعددة الابعاد لاستخدامها:
كود :
[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][/COLOR]
كود :
[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]}};
[/COLOR][/COLOR]
طريقة حجز قيمة المصفوفة متعددة الابعاد في الذاكرة :
(مثال متقدم كثيرا يربط بين معظم ما اتي في الدروس السابقة من 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]}};
[/COLOR][color=#0000bb]int searchFor [/color][color=#007700]=[/color][color=#0000bb]12[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int i[/color][color=#007700],[/color][color=#0000bb]j [/color][color=#007700]= [/color][color=#0000bb]0[/color][COLOR=#007700];
[/COLOR][color=#0000bb]boolean foundIt[/color][color=#007700]=[/color][color=#0000bb]false[/color][COLOR=#007700];
[/COLOR][color=#0000bb]search[/color][COLOR=#007700]:
for ( [/COLOR][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]arrayOfInts[/color][color=#007700].[/color][color=#0000bb]length [/color][color=#007700]; [/color][color=#0000bb]i[/color][COLOR=#007700]++){
for([/COLOR][color=#0000bb]j[/color][color=#007700]=[/color][color=#0000bb]0 [/color][color=#007700];[/color][color=#0000bb]j[/color][color=#007700]<[/color][color=#0000bb]arrayOfInts[/color][color=#007700][[/color][color=#0000bb]i[/color][color=#007700]].[/color][color=#0000bb]length[/color][color=#007700];[/color][color=#0000bb]j[/color][COLOR=#007700]++){
if ([/COLOR][color=#0000bb]arrayOfInts[/color][color=#007700][[/color][color=#0000bb]i[/color][color=#007700]][[/color][color=#0000bb]j[/color][color=#007700]] == [/color][color=#0000bb]searchFor[/color][COLOR=#007700])
{
[/COLOR][color=#0000bb]foundIt[/color][color=#007700]=[/color][color=#0000bb]true[/color][COLOR=#007700];
}
}
}
if ([/COLOR][color=#0000bb]foundIt[/color][COLOR=#007700]){
[/COLOR][color=#0000bb]jLabel1[/color][color=#007700].[/color][color=#0000bb]setText[/color][color=#007700]([/color][color=#dd0000]"found" [/color][color=#007700]+ [/color][color=#0000bb]searchFor [/color][color=#007700]+ [/color][color=#dd0000]"at" [/color][color=#007700]+ [/color][color=#0000bb]i [/color][color=#007700]+[/color][color=#dd0000]","[/color][color=#007700]+ [/color][color=#0000bb]j[/color][COLOR=#007700]);
}
[/COLOR][/COLOR]
ويستخدم لتحديد موقع متغير في مصفوفة متعددة الابعاد و هو 12 و موقعة 3,4
و الدالة عبارة عن دالة بحث تستخدم الحلقات التكرارية للمرور علي جميع متغيرات المصفوفة
للحصول علي موقع المتغير في الذاكرة و اذا تمكنت من تحديد الموقع تضعه في اداة ليبل من خلال الشرط if ....
و الدالة عبارة عن دالة بحث تستخدم الحلقات التكرارية للمرور علي جميع متغيرات المصفوفة
للحصول علي موقع المتغير في الذاكرة و اذا تمكنت من تحديد الموقع تضعه في اداة ليبل من خلال الشرط 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
--------------------------------------------------
و السلام عليكم ورحمة الله ...
---------------------------------------------------
روابط تحميل الامثلة :
المثال الاول :
http://vb4arb.com/vb/uploaded/18_01350637840.rar
المثال الثاني :
http://vb4arb.com/vb/uploaded/18_11350637840.rar
المثال الثالث :
http://vb4arb.com/vb/uploaded/18_21350637840.rar
--------------------------------------------------
و السلام عليكم ورحمة الله ...