loayy
01-24-2006, 06:56 AM
بسم الله الرحمن الرحيم
هذا الدرس السابع والأخير من سلسلة دروس دورة الجافا
لقد أنهى أخي الكريم حسين huss22us جزاه الله كل خير وأنا (وأعوذ بالله من كلمة أنا) سأكمل الآن بشرح المصفوفات على قدر ما يعينني الله عليه فإن قصرت فمن عندي وإن أصبت بتوفيق الله عز وجل
وسأبدأ من حيث انتهى أخي الكريم حسين وسأتحدث إن شاء الله عن المصفوفات
في البداية لماذا نستخدم المصفوفات ؟
نستخدم المصفوفات بدلاً من استخدام المتغيرات
لنرجع قليلا إلى المتغيرات – ومع أنه تم شرح المتغيرات في الدرس الثالث – لكن لا بد أن نعود إليها لنوضح لماذا نستخدم المصفوفات
المتغير يستخدم في تخزين البيانات فمثلا لو أردنا القول - كما قلنا في الدرس الثالث الخاص بالمتغيرات – لو أردنا القول أن المتغير a هو متغير صحيح يحمل القيمة 3 فإننا نقول :
Int a=3;
ولكن ماذا لو كنا سنتحدث عن 5 طلاب مثلا أو أكثر بحيث نقول أن كل طالب لديه علامة معينة مثلا في مادة الرياضيات فإننا سنضطر لأن نعمل لكل طالب متغير ونعطي كل متغير قيمة كما يلي :
Int a1=80;
Int a2=90;
Int a3=60;
Int a4=50;
Int a5=45;
ولكن هناك طريقة أخرى أفضل من هذه الطريقة وهي استخدام المصفوفات كما يلي :
Int [] student={80,90,60,50,45};
ماذا تعني هذه الجملة ؟
تعني أننا أنشأنا مصفوفة من نوع المتغير الصحيح integer أسمها student تحتوي على 5 قيم بحيث أن
student[0]=80 أي أن القيمة الأولى في المصفوفة واسمها student[0] تساوي 80
student[1]=90 أي أن القيمة الثانية في المصفوفة واسمها student[1] تساوي 90
student[2]=60 أي أن القيمة الثالثة في المصفوفة واسمها student[2] تساوي 60
student[3]=50 أي أن القيمة الرابعة في المصفوفة واسمها student[3] تساوي 50
student[4]=45 أي أن القيمة الخامسة في المصفوفة واسمها student[4] تساوي 45
إذا كان الحال كذلك ونحن قمنا بتعريف خمسة عناصر فما هو الحال يا ترى عندما نعرف 100 عنصر أو 1000 عنصر طبعا هذا سيضطرنا إذا استخدمنا طريقة المتغيرات أن نقول
int a1=10;
int a2=20;
وذلك حتى رقم 100 أي أننا سنحتاج إلى 100 جملة حتى نقوم بتعريف 100 عنصر وهذا طبعا غير عملي وغير منطقي بالمرة
لذلك نستخدم طريقة المصفوفات
إذن من هنا نستطيع أن نعرف ما هي المصفوفات :
المصفوفات هي مجموعة من المتغيرات المتماثلة في النوع والمرتبطة معا أو هي عبارة عن مجموعة من المتغيرات باسم واحد (التعريف مأخوذ من الصفحة التالية)
www.geocities.com/alyaa97/jom011.html
كيفية تعريف المصفوفة
1) نقوم بالإعلان عن المصفوفة : نستطيع أن نعلن في البداية عن المصفوفة وذلك بذكر نوعها كما في المثال التالي :
int[] a;
هذه يعني أننا أعلنا عن مصفوفة واسمها a من نوع integer
2) إنشاء المصفوفة
تتم عملية إنشاء المصفوفة باستخدام الأمر new كما في المثال التالي :
a= new int[10];
طبعا ما ينطبق على النوع الصحيح integer ينطبق على باقي الأنواع مثل string أو Boolean أو غيره من الأنواع الأخرى
ونستطيع كذلك اختصار الخطوتين السابقتين بأن يكون الإعلان عن المصفوفة وإنشاؤها في نفس الجملة كما يلي:
String [] am=new String[10];
وقد وضعت هنا String لأبين لكم أن الأمر ينطبق على جميع أنواع البيانات
الآن جاء دور البرنامج وهذا هو البرنامج :
import ****x.swing.*;
public class sumarray {
// main method begins execution of **** application
public static void main( String args[] )
{
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int total = 0;
// add each element's value to total
for ( int counter = 0; counter < array.length; counter++ )
total += array[ counter ];
JOptionPane.showMessageDialog( null,
"Total of array elements: " + total,
"Sum the Elements of an Array",
JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );
}
}
أولا وظيفة البرنامج
يقوم البرنامج بجمع عناصر المصفوفة 1+2+3+4+5+6+7+8+9+10 ويعطي المجموع وهو 55
الآن لنبدأ في شرح البرنامج سطرا سطرا كما تعودنا
السطر التالي :
import ****x.swing.*;
هذا السطر يعني أنني نستطيع التعامل مع جملة JOptionPane.showMessageDialog أو أي جملة لها علاقة بعملية إدخال البيانات عن طريق المستخدم أي أننا بواسطة هذه الجملة
import ****x.swing.*;
نستطيع استدعاء جملة الإدخال
أما السطر
public class sumarray {
وكنا قد شرحناه في الدروس السابقة وهو يتكرر معنا دائما فهو أسم البرنامج sumarray وكما قلنا في الدروس الماضية عند تخزين البرنامج يجب أن يخزن بأسم sumarray.****
أما السطر التالي :
// main method begins execution of **** application
فهو سطر أو عبارة أو جملة توضيحية غير تنفيذية بمعنى أن مترجم الجافا لا يتعرف عليها
أما السطر التالي
public static void main( String args[] )
وكنا قد شرحناه سابقا فهو بداية تنفيذ البرنامج أي أن تنفيذ برنامج الجافا يبدأ من هنا وكل برنامج جافا باستثناء الأبليت (وهي تطبيقات الجافا التي تعمل على الإنترنت) فلا تحتوي هذه الجملة
أما هذه الجملة
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
فتعني أنشئ مصفوفة أسمها array من نوع المتغير الصحيح integer وضع فيها القيم التالية :
1،2،3،4،5،6،7،8،9،10
أما هذه الجملة :
int total = 0;
فتعني أنشء متغير من نوع integer واسمه total وضع فيه القيمة الأولية 0
أما هذه الجملة :
for ( int counter = 0; counter < array.length; counter++ )
فتعني أنشئ حلقة تكرارية loop - علما بأن أخي حسين (huss22us) كان قد شرح الجمل التكرارية
ما هي أهمية هذه الحلقة التكرارية ؟
هذه الحلقة التكرارية الهدف منها هو أن يقوم البرنامج بقراءة عناصر المصفوفة عنصرا عنصرا
ملاحظة :
بعد أن عرفنا المصفوفة واستخدمنا الجملة التكرارية السابقة يصبح لدينا ما يلي :
العنصر الأول في المصفوفة واسمه counter[0] قيمته تساوي 1
العنصر الثاني في المصفوفة واسمه counter[1] قيمته تساوي 2
العنصر الثالث في المصفوفة واسمه counter[2] قيمته تساوي 3
العنصر الرابع في المصفوفة واسمه counter[3] قيمته تساوي 4
العنصر الخامس في المصفوفة واسمه counter[4] قيمته تساوي 5
العنصر السادس في المصفوفة واسمه counter[5] قيمته تساوي 6
العنصر السابع في المصفوفة واسمه counter[6] قيمته تساوي 7
العنصر الثامن في المصفوفة واسمه counter[7] قيمته تساوي 8
العنصر التاسع في المصفوفة واسمه counter[8] قيمته تساوي 9
العنصر العاشر في المصفوفة واسمه counter[9] قيمته تساوي 10
أما الجملة التالية
total += array[ counter ];
فتعني أجمع عناصر المصفوفة عنصرا عنصرا وهذه الجملة هي طريقة للاختصار وهي تكافئ الجملة التالية :
total=total+array[counter];
أما الجملة التالية :
JOptionPane.showMessageDialog( null,
"Total of array elements: " + total,
"Sum the Elements of an Array",
JOptionPane.INFORMATION_MESSAGE );
فتعني أطبع مجموع عناصر المصفوفة = المتغير total
لذلك يقوم البرنامج بطباعة قيمة مجموع عناصر المصفوفة وهو 55
أما الجملة التالية :
System.exit( 0 );
وكنا قد شرحناها سابقا ولكن لا مشكلة نعيدها مرة أخرى للتذكير
فعند استخدام أي برنامج للجافا فإنه يتم استخدام الذاكرة memory وحتى يتم إفراغ الذاكرة يجب أن نكتب هذه الجملة
إلى هنا انتهى الشرح
أرجو أن يكون الشرح واضحا وفي حالة أي استفسار بعون الله لن أتأخر عليكم
الواجب :
أكتب برنامج بلغة جافا يقوم بحيث يقوم المستخدم بإدخال عشر عناصر بنفسه وبعد ذلك يتم طباعة العنصر الأكبر والعنصر الأصغر من المصفوفة وكذلك يتم جمع عناصر المصفوفة
نهاية دورة الجافا بعون الله وبفضله
لا تنسونا من صالح دعائكم
ملاحظة أخيرة
هذا الجهد هو لوجه الله سبحانه وتعالى ويستطيع أي شخص أن ينقله كيفما شاء ولكن يرجى أن لا تنسونا من صالح دعائكم
إن كان لديكم أية ملاحظات يرجى ذكرها فكما تعلمون أننا بشر والبشر بطبعهم خطاؤون فيرجى وضع ما هي الأخطاء التي وقعنا فيها
أخوكم في الله / لؤي (أبو العبد)
هذا الدرس السابع والأخير من سلسلة دروس دورة الجافا
لقد أنهى أخي الكريم حسين huss22us جزاه الله كل خير وأنا (وأعوذ بالله من كلمة أنا) سأكمل الآن بشرح المصفوفات على قدر ما يعينني الله عليه فإن قصرت فمن عندي وإن أصبت بتوفيق الله عز وجل
وسأبدأ من حيث انتهى أخي الكريم حسين وسأتحدث إن شاء الله عن المصفوفات
في البداية لماذا نستخدم المصفوفات ؟
نستخدم المصفوفات بدلاً من استخدام المتغيرات
لنرجع قليلا إلى المتغيرات – ومع أنه تم شرح المتغيرات في الدرس الثالث – لكن لا بد أن نعود إليها لنوضح لماذا نستخدم المصفوفات
المتغير يستخدم في تخزين البيانات فمثلا لو أردنا القول - كما قلنا في الدرس الثالث الخاص بالمتغيرات – لو أردنا القول أن المتغير a هو متغير صحيح يحمل القيمة 3 فإننا نقول :
Int a=3;
ولكن ماذا لو كنا سنتحدث عن 5 طلاب مثلا أو أكثر بحيث نقول أن كل طالب لديه علامة معينة مثلا في مادة الرياضيات فإننا سنضطر لأن نعمل لكل طالب متغير ونعطي كل متغير قيمة كما يلي :
Int a1=80;
Int a2=90;
Int a3=60;
Int a4=50;
Int a5=45;
ولكن هناك طريقة أخرى أفضل من هذه الطريقة وهي استخدام المصفوفات كما يلي :
Int [] student={80,90,60,50,45};
ماذا تعني هذه الجملة ؟
تعني أننا أنشأنا مصفوفة من نوع المتغير الصحيح integer أسمها student تحتوي على 5 قيم بحيث أن
student[0]=80 أي أن القيمة الأولى في المصفوفة واسمها student[0] تساوي 80
student[1]=90 أي أن القيمة الثانية في المصفوفة واسمها student[1] تساوي 90
student[2]=60 أي أن القيمة الثالثة في المصفوفة واسمها student[2] تساوي 60
student[3]=50 أي أن القيمة الرابعة في المصفوفة واسمها student[3] تساوي 50
student[4]=45 أي أن القيمة الخامسة في المصفوفة واسمها student[4] تساوي 45
إذا كان الحال كذلك ونحن قمنا بتعريف خمسة عناصر فما هو الحال يا ترى عندما نعرف 100 عنصر أو 1000 عنصر طبعا هذا سيضطرنا إذا استخدمنا طريقة المتغيرات أن نقول
int a1=10;
int a2=20;
وذلك حتى رقم 100 أي أننا سنحتاج إلى 100 جملة حتى نقوم بتعريف 100 عنصر وهذا طبعا غير عملي وغير منطقي بالمرة
لذلك نستخدم طريقة المصفوفات
إذن من هنا نستطيع أن نعرف ما هي المصفوفات :
المصفوفات هي مجموعة من المتغيرات المتماثلة في النوع والمرتبطة معا أو هي عبارة عن مجموعة من المتغيرات باسم واحد (التعريف مأخوذ من الصفحة التالية)
www.geocities.com/alyaa97/jom011.html
كيفية تعريف المصفوفة
1) نقوم بالإعلان عن المصفوفة : نستطيع أن نعلن في البداية عن المصفوفة وذلك بذكر نوعها كما في المثال التالي :
int[] a;
هذه يعني أننا أعلنا عن مصفوفة واسمها a من نوع integer
2) إنشاء المصفوفة
تتم عملية إنشاء المصفوفة باستخدام الأمر new كما في المثال التالي :
a= new int[10];
طبعا ما ينطبق على النوع الصحيح integer ينطبق على باقي الأنواع مثل string أو Boolean أو غيره من الأنواع الأخرى
ونستطيع كذلك اختصار الخطوتين السابقتين بأن يكون الإعلان عن المصفوفة وإنشاؤها في نفس الجملة كما يلي:
String [] am=new String[10];
وقد وضعت هنا String لأبين لكم أن الأمر ينطبق على جميع أنواع البيانات
الآن جاء دور البرنامج وهذا هو البرنامج :
import ****x.swing.*;
public class sumarray {
// main method begins execution of **** application
public static void main( String args[] )
{
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int total = 0;
// add each element's value to total
for ( int counter = 0; counter < array.length; counter++ )
total += array[ counter ];
JOptionPane.showMessageDialog( null,
"Total of array elements: " + total,
"Sum the Elements of an Array",
JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );
}
}
أولا وظيفة البرنامج
يقوم البرنامج بجمع عناصر المصفوفة 1+2+3+4+5+6+7+8+9+10 ويعطي المجموع وهو 55
الآن لنبدأ في شرح البرنامج سطرا سطرا كما تعودنا
السطر التالي :
import ****x.swing.*;
هذا السطر يعني أنني نستطيع التعامل مع جملة JOptionPane.showMessageDialog أو أي جملة لها علاقة بعملية إدخال البيانات عن طريق المستخدم أي أننا بواسطة هذه الجملة
import ****x.swing.*;
نستطيع استدعاء جملة الإدخال
أما السطر
public class sumarray {
وكنا قد شرحناه في الدروس السابقة وهو يتكرر معنا دائما فهو أسم البرنامج sumarray وكما قلنا في الدروس الماضية عند تخزين البرنامج يجب أن يخزن بأسم sumarray.****
أما السطر التالي :
// main method begins execution of **** application
فهو سطر أو عبارة أو جملة توضيحية غير تنفيذية بمعنى أن مترجم الجافا لا يتعرف عليها
أما السطر التالي
public static void main( String args[] )
وكنا قد شرحناه سابقا فهو بداية تنفيذ البرنامج أي أن تنفيذ برنامج الجافا يبدأ من هنا وكل برنامج جافا باستثناء الأبليت (وهي تطبيقات الجافا التي تعمل على الإنترنت) فلا تحتوي هذه الجملة
أما هذه الجملة
int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
فتعني أنشئ مصفوفة أسمها array من نوع المتغير الصحيح integer وضع فيها القيم التالية :
1،2،3،4،5،6،7،8،9،10
أما هذه الجملة :
int total = 0;
فتعني أنشء متغير من نوع integer واسمه total وضع فيه القيمة الأولية 0
أما هذه الجملة :
for ( int counter = 0; counter < array.length; counter++ )
فتعني أنشئ حلقة تكرارية loop - علما بأن أخي حسين (huss22us) كان قد شرح الجمل التكرارية
ما هي أهمية هذه الحلقة التكرارية ؟
هذه الحلقة التكرارية الهدف منها هو أن يقوم البرنامج بقراءة عناصر المصفوفة عنصرا عنصرا
ملاحظة :
بعد أن عرفنا المصفوفة واستخدمنا الجملة التكرارية السابقة يصبح لدينا ما يلي :
العنصر الأول في المصفوفة واسمه counter[0] قيمته تساوي 1
العنصر الثاني في المصفوفة واسمه counter[1] قيمته تساوي 2
العنصر الثالث في المصفوفة واسمه counter[2] قيمته تساوي 3
العنصر الرابع في المصفوفة واسمه counter[3] قيمته تساوي 4
العنصر الخامس في المصفوفة واسمه counter[4] قيمته تساوي 5
العنصر السادس في المصفوفة واسمه counter[5] قيمته تساوي 6
العنصر السابع في المصفوفة واسمه counter[6] قيمته تساوي 7
العنصر الثامن في المصفوفة واسمه counter[7] قيمته تساوي 8
العنصر التاسع في المصفوفة واسمه counter[8] قيمته تساوي 9
العنصر العاشر في المصفوفة واسمه counter[9] قيمته تساوي 10
أما الجملة التالية
total += array[ counter ];
فتعني أجمع عناصر المصفوفة عنصرا عنصرا وهذه الجملة هي طريقة للاختصار وهي تكافئ الجملة التالية :
total=total+array[counter];
أما الجملة التالية :
JOptionPane.showMessageDialog( null,
"Total of array elements: " + total,
"Sum the Elements of an Array",
JOptionPane.INFORMATION_MESSAGE );
فتعني أطبع مجموع عناصر المصفوفة = المتغير total
لذلك يقوم البرنامج بطباعة قيمة مجموع عناصر المصفوفة وهو 55
أما الجملة التالية :
System.exit( 0 );
وكنا قد شرحناها سابقا ولكن لا مشكلة نعيدها مرة أخرى للتذكير
فعند استخدام أي برنامج للجافا فإنه يتم استخدام الذاكرة memory وحتى يتم إفراغ الذاكرة يجب أن نكتب هذه الجملة
إلى هنا انتهى الشرح
أرجو أن يكون الشرح واضحا وفي حالة أي استفسار بعون الله لن أتأخر عليكم
الواجب :
أكتب برنامج بلغة جافا يقوم بحيث يقوم المستخدم بإدخال عشر عناصر بنفسه وبعد ذلك يتم طباعة العنصر الأكبر والعنصر الأصغر من المصفوفة وكذلك يتم جمع عناصر المصفوفة
نهاية دورة الجافا بعون الله وبفضله
لا تنسونا من صالح دعائكم
ملاحظة أخيرة
هذا الجهد هو لوجه الله سبحانه وتعالى ويستطيع أي شخص أن ينقله كيفما شاء ولكن يرجى أن لا تنسونا من صالح دعائكم
إن كان لديكم أية ملاحظات يرجى ذكرها فكما تعلمون أننا بشر والبشر بطبعهم خطاؤون فيرجى وضع ما هي الأخطاء التي وقعنا فيها
أخوكم في الله / لؤي (أبو العبد)