المدرس العربىالتسجيلالبحثمكتــبي   المدرس العربىاضف المدرس العربى لمفضلتكالاتصال بنا

 


 
 
العودة   المدرس العربى > منتدى البرمجة > منتدى الجافا
التعليمـــات قائمة الأعضاء التقويم البحث مشاركات اليوم اجعل كافة المشاركات مقروءة
 
 


رد
 
أدوات الموضوع إبحث في الموضوع طرق مشاهدة الموضوع
 
 
قديم 09-08-2007, 01:32 PM   #11
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي المفاهيم الأساسية للجافا


المفاهيم الأساسية للجافا
الأهداف
أن يتعرف المتدرب على أنواع المتغيرات
أن ينشيء متغيرا
أن يخزن القيم في المتغيرات
أن يستعمل المتغيرات في العمليات الرياضية
أن يضع قيمة متغير في متغير آخر
أن يزيد قيمة المتغير
أن ينقص قيمة المتغير



المتغيرات
هي أنواع من المعلومات التي يمكن تخزينها في موقع خاص في البرنامج ونستطيع تغييرها أثناء عمل البرنامج
المتغيرات هي الوسيلة التي يتذكر بها الحاسب القيم خلال تشغيل البرامج وفي برنامجنا الاول تعرفنا بسرعة على المتغيرات وقد قلنا أنها مخزن للأعداد والحروف والنصوص وقد كان المتغير الأول الذي استخدمناه Pep
لإبلاغ الحاسب بمقدار الزيادة السكانية في اليوم ـ وأود أن ألفت الانتباه

إالى أن الأعداد في البرنامج الأول هي أعداد تصورية لكي يصمم المتدرب برنامجه هو بالاعداد الحقيقية في وطنه أذا أراد أن يصمم برنامجا لحساب مقدار ازدياد السكان كل دقيقة ـ ما علينا نعود لموضوعنا ـ
أود أن أفرق بين الجملة والتعبير ؟

Statement & expressions

قلنا سابقا أن برامج الحاسوب هي مجموعة من الأوامر تحدد للحاسوب ما ينبغي عمله وكل أمر من هذه الأوامر يسمى جملة ويمكن تجميع عدد من الجمل بواسطة الحاصرات لتكوين تكتلات وحين تتضمن الجملة عملية رياضية أو تعبير رياضي فإن هذه الجملة تسمى تعبيرا

ولكن ما أنواع المتغيرات وما شروط انشاء المتغير ؟
النوع الأول int

يستعمل اذا كان المتغير سوف يستخدم لتخزين الأعداد الصحيحة ـ لا تحتوي على فاصلة عشرية وهذا النوع من المتغيرات يمكن أن يستوعب الأعداد الصحيحة من سالب 214 مليار الى موجب 214 مليار


يستعمل لتخزين الاعداد العشرية

هل هناك أنواعا أخرى من المتغيرات العددية ؟

نعم هناك ثلاثة أنواع من المتغيرات العددية غير الرئيسية تستعمل مع الاعداد الصحيحة

byte النوع الاول الفرعي
يستخدم للأعداد الصحيحة التي تتراوح بين -128 و 127
short النوع الثاني الفرعي
يستعمل للأعداد الصحيحة الأصغر من النوع انت والعدد الصحيح من هذا النوع الفرعي يتراوح بين -32768 و 32767
مثال

short setNumber = 236

long النوع الثالث الفرعي
يستعمل للأعداد الصحيحة الكبيرة التي لا يمكن استعيابها في النوع إنت وهذا النوع يمكنه استيعاب أعدادا حتى 19 خانة

هل توجد متغيرات لتخزين النصوص ؟

نعم توجد متغيرات لتخزين النصوص بنوعيها كحروف مفردة أو كسلاسل حروف
char النوع الأول يسمى
character وهي بداية كلمة

ولكن ماذا تقصد بالحرف هنا ؟
المقصود بالحرف هنا حرف أبجدي واحد أو رقم واحد أو علامة ترقيم واحدة أو غيرها من الرموز
أريد مثالا على هذا المتغير ؟
اذا أردت إنشاء متغيرا تضع فيه حرفا أكتب الجملة التالية في مصدر البرنامج ـ على سبيل المثال ـ

char key = 'u';

ونلاحظ أنه حين نستعمل متغيرا لإحتواء قيم الحرف يجب وضع علامات إقتباس مفردة على جانبي قيمة الحرف المراد تعيينه كقيمة للمتغير
هذا النوع الأول لتخزين النصوص فما النوع الثاني ؟
String النوع الثاني هو النوع
يستعمل هذا النوع لتخزين سلاسل الحروف واليك هذا المثال

String studentName = "ema";

ونلاحظ هنا أنه في حالة النوع الثاني تحاط سلسلة الحروف بعلامات اقتباس مزدوجة ويوجد تفرد في هذا النوع من المتغيرات حيث ينبغي كتابة الحرف ألأول كبيرا وذلك على غير العادة في باقي المتغيرات

هل هذه كل أنواع المتغيرات في الجافا ؟
طبعا لا فهناك نوعا في غاية الأهمية يستعمل لتخزين القيمة صواب أو خطأ

boolean يسمى هذا النوع من المتغيرات
false & true ستعمل لتخزين القيمة

واليك هذا المثال

boolean questionA = false;

وقد سمي هذا المتغير نسبة للعالم الرياضي الانجليزي جورج بوول الذي إخترع الجبر البوليني الذي يعتبر الأساس لعلوم البرمجة وخاصة لغة الماكينة والاليكترونيات الرقمية والبوابات المنطقية وعلم المنطق وقد استفدت كثيرا من علم المنطق الرياضي

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 01:49 PM   #12
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


الدرس الخامس
العمليات الرياضية وترتيبها

الأهداف

أن يتعرف المتدرب على أنواع المتغيرات
أن ينشيء متغيرا
أن يخزن القيم في المتغيرات
أن يستعمل المتغيرات في العمليات الرياضية
أن يضع قيمة متغير في متغير آخر
أن يزيد قيمة المتغير
أن ينقص قيمة المتغير
كيف أخزن المعلومة في متغير ؟

يمكن تحديد قيمة أولية للمتغير عندما نقوم بإنشائه ونستطيع أيضا تحديد قيمة للمتغير في أي موضع تالي ضمن البرنامج وتستعمل علامة = لتحديد قيمة أولية للمتغير عند إنشائه ويمكن أن نأخذ مثال

int i = 500;

i نلاحظ أننا أنشأنا متغيرا
هذا المتغير يحتوي على القيمة الإبتدائية 500 وهكذا وبنفس الطريقة يمكننا إعداد المتغيرات المخزنة للأعداد ويختلف الأمر بالنسبة للمتغيرات المخزنة لحرف أو سلسلة حروف حيث يجب وضع علامات اقتباس حول القيمة المراد تخزينها

String studentName = "alyaa";

ولكن هل يمكن إعداد أحد المتغيرات ليساوي قيمة متغير آخر من نفس النوع ؟
نعم يمكننا إعداد متغيرا ليساوي قيمة متغير آخر من نفس النوع كما نرى في المثال التالي

int i = 500;
int k= i ;

ولكن يا أستاذي ماذا يحدث إذا لم أحدد قيمة أبتدائية للمتغير ؟

هنا يحدث خطأ ويظهر مترجم الجافا رسالة خطأ ولذلك يجب تحديد قيمة أولية للمتغير
ولكن هل هناك قواعد معينة لتسمية المتغيرات ؟
نعم هناك قواعد يجب مراعاتها عند تسمية المتغيرات حيث تبدأ أسماء المتغيرات بحرف أبجدي أو علامة الدولار $ أو علامة التسطير (-) ويكون باقي الأسم حرف أو عدد وبشرط عدم وضع مسافات فارغة ولا يمكننا إستعمال أيضا علامات الترقيم حيث يظهر مترجم الجافا رسالة خطأ إذا كان في إسم المتغير مسافات فارغة أو علامات ترقيم واذا استعملت حرفا كبيرا في اسم متغير فانه يجب استعماله بنفس الطريقة في كل البرنامج على سبيل المثال

studentName هذا اسم لمتغير لن يكون نفس هذا
StudentName تغيير الحرف الأول من صغير الى كبير في نفس البرنامج لاسم المتغير يؤدي الى خطأ عند الترجمة

ولذلك يجب أن يكون اسم المتغير دالا على الغرض من استعمال هذا المتغير والحرف الأول من اسمه يجب أن يكون صغيرا وفي حالة تكون اسم المتغير من أكثر من كلمة يكون الحرف الأول من الكلمة الأولى صغيرا وباقي الكلمات تبدأ بحروف كبيرة وبدون فواصل أو علامات ترقيم

وماذا عن العمليات الرياضية على المتغيرات ؟

كما قلنا سابقا تطلب البرمجة عموما قدرات رياضية معينة وفكر رياضي في المبرمج وعلى الرغم من قيام الحاسب بكل العمليات الرياضية الا أنه يريد تعليمات وأوامر من المبرمج حتى يقوم بهكذا عمليات وتسمى الأوامر التي تعطيها للحاسب والتي تحتاج الى عمليات رياضية تعابير ويمكننا استخدام هذه التعابير للقيام بعدة مهام منها تغيير قيمة متغير واستعمال المعادلات في البرنامج وتسجيل عدد مرات حدوث عمل ما في البرنامج وتستعمل هذه التعابير الجمع والطرح والضرب والقسمة وباقي القسمة

يعني هذا أننا رجعنا الى المرحلة الابتدائية والى مدرس الحساب اليس كذلك يا أستاذ ؟

ما أجمل العودة الى ذكريات الطفولة والمرحلة الأولى وتلك الأيام الخوالي حيث البراءة والأحلام الوردية ـ ما علينا ـ نرجع بالذاكرة الى أيام مدرس الرياضيات في المرحلة الإعدادية ونسترجع العمليات الأربع الشهيرة في الحساب الجمع والطرح والضرب والقسمة وعلاماتها الأربع المعروفة + و - و * و / هذه الرموز تسمى مؤثرات وتستعمل هذه المؤثرات في برامج الجافا لإجراء العمليات الرياضية على الأرقام طبعا يراودك تساؤل عن الإختلاف بين * و × وبين / و ÷ ولكن كل أمر نتفق فيه على قواعد من البداية يسهل الأمور وهذا بمثابة الدستور الذي نمشي على منهاجه

operators ( معاملات (مؤثرات

نستعمل العلامة + لإجراء عملية الجمع
نستعمل العلامة - لتعبير الطرح
يستعمل تعبير الضرب العلامة * في برامج الجافا
يستعمل تعبير القسمة العلامة / في برامج الجافا
نستعمل المؤثر % لتحديد باقي القسمة
نستعمل المؤثر ++ لزيادة القيمة المخزنة في المتغير بمقدار واحد
يستخدم المعامل -- لإنقاص قيمة المتغير بمقدار واحد

البرنامج الا ينبغي أن أعرف التريب الذي يتبعه الحاسب لإنجاز هذه العمليات حتى يمكنني ضبط قيمة المتغير ؟

أحسنت هذا موضوع هام جدا ونسترجع من الدراسة في المرحلة الثانوية كيف كان مدرس الرياضيات يركز على هذا الأمر ومن يتوزع على الآخر ومن يسبق من في هذه العمليات الرياضية وفي برامج الحاسب تتم هذه العمليات حسب الترتيب التالي
يتم أولا الزيادة والنقص بمقدار واحد
يلي ذلك الضرب والقسمة وباقي القسمة
يأتي بعد ذلك الجمع والطرح
ثم المقارنة
وتستخدم العلامة = لضبط قيمة المتغير

وسوف نأخذ مثالا عمليا لتوضيح كل ما سبق تناوله في هذا الموضوع بإذن الله

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 01:54 PM   #13
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


بسم الله خير الأسماء والصلاة والسلام على إمام الانبياء
اللهم يا محول الاحوال حول حالي لأحسن حال
اللهم ارزقني فهم النبيين وحفظ المرسلين وإلهام الملائكة المقربين


الأهداف

أن يخزن المتدرب النص بواسطة سلاسل الحروف

أن يعرض المتدرب نصوص في البرنامج

أن يدرج المتدرب حروفا خاصة في سلاسل الحروف

أن يلصق سلسلتين من الحروف معا

أن يدرج المتغيرات ضمن سلسلة الحروف

أن يقارن بين سلسلتي حروف

أن يحدد طول سلسلة الحروف

أن يغير حروف نص من حروف كبيرة الى صغيرة

أن يعدد استعمالات سلاسل الحروف
نرحب بكم مرة ثانية ونواصل بإذن الله سلسلة دروسنا مع الجافا ونلتقي في هذا الدرس مع عرض النصوص هيا بنا

يا أستاذ ماذا تقصد بسلاسل الحروف ؟

Strings سلاسل الحروف

مجموعات من النصوص التي تتكون من الحروف الأبجدية والأرقام وعلامات الترقيم وغيرها من الرموز

ولكن ما الفرق بينها وبين الحروف ؟

الحرف كما عرفنا سابقا هو حرف أبجدي واحد أو رقم عشري واحد أو علامة ترقيم أو أي رمز من الرموز الأخرى المعروفة وفي لغة الجافا يعتبر الحرف من المعلومات التي يمكنناتخزينها في متغير

char سبق وأن عرفنا أن المتغير من النوع

يستخدم لتخزين حرف واحد على سبيل المثال

char keyopen='$';

هذه الجملة تنشىء متغيرا باسم

لتخزين حرفا واحدا ونلاحظ هنا أنه يمكننا تحديد قيمة أولية للمتعير ونؤكد على أن قيمة الحرف يجب أن تحاط بعلامة اقتباس مفردة

طيب اذا أردت تخزين نص ماذا افعل يا أستاذي ؟

ياصديقي حينما تريد تخزين نص ما عليك إلا أن تنشىء متغيرا من النوع استرينج وتعطيه اسما كما يلي

String studentName="Ahmad bahaa eldin Hegazy";

تنشىء هذه الجملة متغيرا من النوع استرينج يسمى ـ اسم الطالب ـ ويخزن فيه النص أحمد بهاء الدين حجازي

عفوا يا أستاذ لاحظت هنا ملاحظة لا أدري هل تستحق أن أطرحها أم أطرحها جانبا ؟

لا حياء في العلم وقد قال لي صديق ذات مرة أن علوم الحاسب تختلف نوعا ما عن باقي العلوم حيث هي تطلب ولا تمنح ولقد قرأت بحثا مسفيضا لأحد أساتذة طرق التدريس في جامعة عريقة عن الاختلافات في طرق تدريس علوم الحاسب عن باقي العلوم وخلاصة القول هو أنك تسأل عن أي شيء بدون تردد

شكرا يا أستاذ الملاحظة هي أن اسم المتغير استرينج بخلاف جميع أنواع المتغيرات ألأخرى قد بدأ بحرف كبير فهل هذا له معنى ؟

int float char boolean هذه المتغيرات وغيرها تبدأ بحروف صغيرة ولكن المتغير من النوع استرينج يجب أن يبدأ بحرف كبير
String هكذا
والسبب يا صديق هو في سلاسل الحروف التي التي تعتبر نوع خاص من الموارد يسمى كائنات ويجب أن يكون الحرف الأول من اسم نوع كل الكائنات حرفا كبيرا وسوف نتناول موضوع الكائنات بالتفصيل في الدروس مستقبلا بعون الله

بارك الله فيك يا أستاذي العزيز ـــ والآن كيف يمكننا عرض هذه السلاسل في البرنامج ؟

سبق أن قولنا أنه لعرض نص في البرنامج نكتب ما يلي

system out println("Line of Force of Magnetic Field.")

تنتج هذه الجملة النص التالي
Line of Force of Magnetic Field.

طيب يا أستاذ ثمة أمر آخر ألاحظ أن علامتي الاقتباس لم تعرض فكيف أعرض علامات الاقتباس ذاتها والأقواس ؟

وضعت لغة الجافا رموزا خاصة لعرض علامات الإقباس المفردة أو المزدوجة أو الشرطة المائلة

لعرض علامات الإقباس المفردة أو المزدوجة أو الشرطة المائلة مثال
ما تعرضه
الرمز

علامة اقتباس مفردة
\'

شرطة مائلة للخلف
\\

علامة اقتباس مزدوجة
\"

علامة جدولة
\t

تراجع
\b

من أول السطر
\r

تغذية النموذج
\f

سطر جديد
\n

كيف أدمج نصين معا ؟ يعني كيف ألصق سلسلتين من الحروف معا ؟

يستعمل المؤثر + للصق نصين معا واليك هذا المثال

system out println("\"The Series of Hydrogen Spectrum\'are Leyman's series" +

"Balmer's series \"\n\t~pacshen's series");

هل يمكننا استعمال متغيرات أخرى مع سلاسل الحروف

نعم يمكننا استعمال متغيرات أخرى ونستخدم المعامل + لربط هذه المتغيرات والسلاسل كما في المثال التالي

int length = 102;

char degree = 'M';

system out println("operating time :"+ length + "minutes");

system out println("Degree" + degree);
سيكون الناتج الذي يعرض على الشاشة

operating time : 102 minutes

Degree M

ونحن نتقدم الآن يلح علي سؤال يرتبط بهذا الأمر كيف يعرف برنامج البريد الالكتروني مثلا أني قد كتبت اسمي خطأ اذا حدث ذلك ؟

صحيح يحدث هذا والأمر الذي سوف نركز عليه في برامجنا هو التحقق من مساوة سلسلة حروف لسلسلة أخرى ونقوم بهذا الإجراء باستعمال الجملة

equals( )

اليك هذا المثال
String favorite = "ahli";

String guess = "zamalek";

system out println("Is omda's favorite sport club a" + guess + "?");

system out println("Answer :" + favorite. equals(guess));

نلاحظ أن الجزء الأخير

favorite. equals(guess)

Method يسمى

وهو وسيلة تستخدمها الجافا لتحديد ما اذا كانت سلسلة حروف تحتوي على نفس القيمة الموجودة في سلسلة أخرى فاذا كان المتغيران من النوع استرينج في المثال السابق يحتويان نفس القيمة يتم عرض النص صواب والعكس يتم عرض النص خطأ
Is omda's favorite sport club a zamalek ?

Answer : false

كيف نغير حالة الحروف من صغير الى كبير والعكس؟

لغة الجافا تحتوي على طرق لعرض سلاسل الحروف بأحرف كبيرة أو أحرف صغيرة

ToUpperCase( ) أحرف كبيرة

ToLowerCase( ) أحرف صغيرة
اليك هذا المثال

String teacher = "Samy Adnan"

String change = teacher.toUpperCase( );

سوف تتحول كل الحروف في السلسلة الى حروف كبيرة أي الى

SAMY ADNAN

هل نستطيع احصاء عدد حروف كلمة معينة ؟
length( ) نعم نستطيع ونستخدم النهج


int nameLength = gravitational.length( );


واليك هذا التمرين الاجمالي

في هذا التمرين نعرض لأسماء مراجع في الفيزياء




كود:
 


class RePhysics {
public static void main(String[] arguments) {
String title = "The Resources";
String dir = "Physics Resources";
String res1 = "College Physics";
int year1 = 1968;
String auth1 = "Raytheon Education Company";
String res2 = "Fundamentals of Physics";
int year2 = 1974;
String auth2 = "D. Haliday and R. Resnick";
String res3 = "Practical Physics";
int year3 = 1972;
String auth3 = "John Murry";
String res4 = "Physics";
int year4 = 1979;
String auth4 = "Macmillan Publishing";
// display information
System.out.println(title + "\n" +
dir + " \n\n" +
res1 + "\t" + auth1 + "\t" + year1 + "\n" +
res2 + "\t" + auth2 + "\t" + year2 + "\n" +
res3 + "\t" + auth3 + "\t" + year3 + "\n" +
res4 + "\t" + auth4 + "\t" + year4);
}

ويكون خرج هذا البرنامج بعد ترجمته كما في الصورة




لتحميل المصدر والملف التنفيذي


http://www.deyaa.org/les6.zip

الى اللقاء في الدرس القادم بإذن الله

سؤال تحضيري

ما المقصود بالجمل المشروطة ؟

if else switch case break

كيف نستخدم المؤثرات الشرطية

= = != > < ?

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 02:01 PM   #14
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


الاهداف
- ان يعرف المتدرب التفكير المنطقي
- ان يستعمل المتدرب الجمل المشروطة لتصميم برامج أكثر ذكاء
- ان يستعمل المتدرب الجملة اذا للاختبارات المشروطة
- ان يستعمل المتدرب جملا أخرى مع الجملة اذا
- ان يقارن المتدرب بين قيمتين
- ان يختبر المتدرب تساوي قيمتين
أن يستعمل المتدرب الجملة ــ اذا لم ــ كنقيض للجملة اذا

أن يربط المتدرب عدة جمل مشروطة معا



أن يستخدم المتدرب للاختبارات المعقدة الجملة

أن ينشأ المتدرب اختبارات معقدة بواسطة المؤثر الثلاثي



نرحب بكم مرة ثانية ونواصل مسيرتنا ـ بعون الله ـ مع الجافا

مرحبا بك يا أستاذنا ما عنوان درسنا اليوم ؟

عنوان الدرس السابع من سلسلة دروس الجافا هو الجملة المشروطة ـ اذا ـ

Conditional Statement



عفوا يا صديقي أريد تمهيد أو مثال توضيحي ؟

في كثير من البرامج نطلب من الحاسب أن يكون أكثر تحديدا في تنفيذ المهام التي نطلبها منه ـ مثلا حين نكتب برنامجا للامتحانات وعرض نتائج الطلاب في مدرسة معينة نطلب من الحاسب عرض رسالة معينة بنتيجة طالب لدخول الدور الثاني في مادة الرياضيات ـ نلاحظ هنا أن الحاسب لن يعرض هذه الرسالة الا اذا نقصت درجة الطالب في مادة الرياضيات عن الحد الادني ولتحقيق هذه المهمة في برامج الجافا نستعمل فعل الشرط إذا ضمن جملة تسمى الجملة المشروطة هذه الجملة تجعل الحاسب ينفذ عمل ما في البرنامج عند تحقق شرط معين وسوف نستخدم ثلاثة أنواع من الجمل المشروطة

If ***Else *** Switch

أستاذي هل نرجع المتغير بوليان الذي يستعمل لتخزين قيمتين فقط هما ـ صواب ,خطأ ؟

نعم يا صديق الجملة اذا تعمل بنفس المبدأ حيث تختبر الشرط من حيث الصواب أو الخطأ ولا تقوم بالعمل إلا إذا كان الشرط صحيحا

طيب مثال بسيط يوضح الأمور لو سمحت ؟

if ( degree > 75)

System.out.println("very good ");

نلاحظ هنا أن اذا الشرطية تحدد ما اذا كان المتغير المذكور وهو درجة الطالب أكبر من 75 باستخدام المؤثر أكبر من ولا يتم تنفيذ جواب الشرط الا اذا كان فعل الشرط صحيحا يعني أنه لن يكتب للطالب جيد جدا الا اذا كانت درجته أكبر من 75 وهكذا

وصلت أم نزيد ؟

حياك الله أستاذي العزيز ولكن لفت انتباهي وجود فعل الشرط بين قوسين وأيضا أنك كتبت فعل الشرط على سطر وجواب الشرط على سطر فهل لهذا مغزى معين

نعم يا صديقي الشرط الذي نختبر صدقه يجب أن يضع بين قوسين ونلاحظ أن فعل الشرط ليس جملة مستقلة حيث نلاحظ عدم انتهاء السطر الأول بفاصلة منقوطة ونذكر بأن الفاصلة المنقوطة في لغة الجافا تستخدم لتحديد نهاية جملة وبداية جملة أخرى

ماذا يحدث لو ضعنا فاصلة منقوطة بعد القسم الأول ـ فعل الشرط ـ ؟

اذا وضعنا فاصلة منقوطة بعد القسم الأول فإننا بهذا نجعل القسم الأول جملة منفصلة مستقلة وهذا يسبب خطأ من النوع المنطقي الذي يصعب تحديده اذا عند استعمال الجملة المشروطة يجب أن نراعي تلك النقطة



ألاحظ يا أستاذ أنك استعملت المعامل أو المؤثر أكبر من في المثال السابق فهل يقوم بنفس الدور الذي يقوم به في الرياضيات التي ندرسها ؟

نعم يقوم بنفس الدور هو ونقيضه ـ أصغر من ـ واليك هذا المثال

if (hour < 12)
System.out.println("Good morning.");

ونلاحظ هنا أن جواب الشرط يرتبط بفعل الشرط بمعنى أنه اذا لم يتحقق الشرط فانه لن يحدث شيء
ولكن في بعض الحالات أريد أن أقارن بين قيمتين فماذا أفعل ؟

اذا أردت أن تختبر هل قيمة معينة تساوي أخرى أو أقل منها يمكنك استخدام المؤثر أصغر من أو يساوي >=

<= يستخدم لاختبار أكبر من أو يساوي

<= & >=



يمكنني إختبار المساوة فقط ؟

نعم يمكنك اختبار ما اذا كان متغير ما يساوي قيمة معينة أو لا وهل متغير ما يساوي متغير آخر باستعمال المؤثر == ونلاحظ أنه يتكون من علامتي يساوي ونؤكد على أنه لا تستعمل علامتي التساوي الا في الجمل الشرطية

طيب واختبار عدم المساوة كيف يكون ؟

نستعمل المؤثر =! لاختبار عدم المساوة

وهل نستخدم المؤثرين السابقين لكل أنواع المتغيرات ؟

نستخدم المؤثرين == & =! لكل أنواع المتغيرات ما عدا المتغير استرينج الخاص بسلسلة الحروف وقد تكلمنا في الدرس السادس عن هذا الموضوع وأشرنا في حينه الى استعمال النهج ايكوال لاختبار تساوي سلسلتي حروف


لاحظت أنك يا أستاذي العزيز في جميع الأمثلة السابقة تجعل جواب الشرط أمرا واحدا وهو النهج

println ( )

ولكننا في عديد من الحالات قد نرغب في انجاز أكثر من مهمة كنتيجة لفعل الشرط فماذا نفعل ؟

كلامك صحيح ياصديقي معك حق وأبشرك أنك الآن قد بدأت تنتهج النهج الصحيح في البرمجة وهذه الملحوظة تأخذنا الى الغوص في بحر البرمجة لنبحث عن الدر في صدفاته

لكي تنجز أكثر من مهمة كنيجة لتحقق الشرط عليك أن تنشأ جمل كتلية بواسطة { } الحاصرتين

بالمناسبة الجمل الكتلية هي جمل مرتبة في اطار مجموعة وقد رأينا في دروس سابقة الكتلة

main( )

وهذه الكتلة تبدأ بحاصرة الفتح { وتنتهي بحاصرة الغلق } اذاً نستعمل الجمل الكتلية مع فعل الشرط لكي نجعل الحاسب يقوم بإداء عدة مهام كنيجة لتحقق الجملة الشرطية

if (minute != 0) {
System.out.print(" " + minute + " ");
System.out.print( (minute != 1) ? "minutes" : "minute");
System.out.print(" past");
}

في بعض الأحيان نريد من الحاسب انجاز عمل ما اذا كان الشرط صحيحا والقيام بعمل آخر اذا كان هذا الشرط غير صحيح فماذا نفعل أستاذي العزيز في هذه المعضلة ؟

لا معضلة ولا يحزنون لكي تفعل ذلك عليك استعمل الجملة

else مع الجملة if

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 02:06 PM   #15
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


كود:
if (hour < 12)
System.out.println("Good morning.\n");
else if (hour < 17)
System.out.println("Good afternoon.\n");
else
System.out.println("Good evening.\n"); 

----------------
if ( grade = = 'A')
System.out.println(" ناجح بامتياز ");
else if ( grade = = 'B')
System.out.println(" ناجح بتقدير جيد جدا ");
else if ( grade = = 'C')
System.out.println("ناجح بتقدير جيد ");
else if ( grade = = 'D')
System.out.println("ناجح بتقدير مقبول ");
else 
System.out.println(" راسب وباق للاعادة ");


تمام يا أستاذ الحالات السابقة فيها شرطان فقط باستثناء المثال أعلاه الا يوجد طريقة أخرى للتعامل مع شروط مختلفة متنوعة

يوجد طريقة أخرى لاختبار مجموعة متنوعة من الشروط والاستجابة لكل منها منفردا هذه الطريقة هي استعمال الجملة

switch


كود:
switch (month) {
case (1):
System.out.print("January");
break;
case (2):
System.out.print("February");
break;
case (3):
System.out.print("March");
break;
case (4):
System.out.print("April");
break;
case (5):
System.out.print("May");
break;
case (6):
System.out.print("June");
break;
case (7):
System.out.print("July");
break;
case (8):
System.out.print("August");
break;
case (9):
System.out.print("September");
break;
case (10):
System.out.print("October");
break;
case (11):
System.out.print("November");
break;
case (12):
System.out.print("December");

يحدد السطر الأول من الجملة سويتش المتغير المراد اختباره وهو هنا متغير الشهر ثم نتستعمل بعد ذلك الحاصرتين لتكوين جملة كتلية
case الجملة

تختبر هذه الجملة قيمة متغير الاختبار المحدد في الجملة سويتش مقارنة بقيمة معينة

ارجو التوضيح لأننا قد رجعنا الى الطلاسم مرة ثانية ؟

لا طلاسم ولا غيره ببساطة في المثال السابق نجد أن هناك جمل للقيم من 1 الى 12 وكل جملة من هذه الجمل يليها جملة واحدة وعندما تتطابق واحدة من هذه الجمل مع المتغير المحدد في الجملة سويتش يقوم الحاسب بتنفيذ الجملة الموجودة بعد الجملة كايس المحددة الى أن يصل الى الجملة بريك

switch ------- ------ case ------- ------- break

على سبيل المثال اذا كان المتغير ( شهر ) يحتوي القيمة 3 فسوف يعرض النص ( مارس ) ولأن الجملة التالية هي بريك فلن يتم التعامل مع ما تبقى من الجملة سويتش

break اذا الآن اتضح وظيفة الجملة

معك حق الجملة بريك تطلب من الحاسب أن يخرج من الجملة سويتش

ولكن في بعض البرامج غير المثال المذكور أعلاه تكون جميع الجمل كايس غير صحيحة فماذا نفعل ؟

default نستعمل الجملة

حيث تستعمل هذه الجملة عندما تكون جميع الجمل كايس غير صحيحة

مثال للتوضيح


كود:
 


switch ( grade ){
case "A":
System.out.println(" ناجح بامتياز ");
break;
case "B":
System.out.println(" ناجح بتقدير جيد جدا ");
break;
case "C":
System.out.println("ناجح بتقدير جيد ");
break;
case "D":
System.out.println("ناجح بتقدير مقبول ");
break;
default:
System.out.println(" راسب وباق للاعادة ");





عفوا أستاذي الكريم الا يوجد طريقة مختصرة عن الطريقة السابقة ؟

يوجد طريقة مختصرة ولكنها تحتاج الى تركيو وقدرات خاصة وتسمى هذه الطريقة المختصرة باسم ( المؤثر الثلاثي ) ويتكون من الآتي
الشرط الواجب اختباره محاطا بقوسين
علامة استفهام ؟
القيمة التي يجب استعمالها اذا كان الشرط صحيحا
نقطتان :
القيم البديلة اذا كان الشرط غير صحيح

مثال

لعرض النص السيد أو السيدة ضمن برنامج يعرض أسماء المدرسين والمدرسات في المدرسة وفقا للمتغير جيندر




System.out.print( ( gender. equals("male"))?"السيدة" :" السيد");
طلب أخير من فضلك أستاذي العزيز أريد برنامجا يتضمن كل ما سبق ؟

اليك هذا البرنامج بعنوان كام الساعة

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 02:21 PM   #16
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


كود:
import java.util.*;

class WTime {
public static void main(String[] arguments) {
// اجلب الوقت الحالي والتاريخ 
GregorianCalendar now = new GregorianCalendar();
int hour = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
int month = now.get(Calendar.MONTH) + 1;
int day = now.get(Calendar.DAY_OF_MONTH);
int year = now.get(Calendar.YEAR);

// إعرض التحية 
if (hour < 12)
System.out.println("Good morning.\n");
else if (hour < 17)
System.out.println("Good afternoon.\n");
else
System.out.println("Good evening.\n");

// ابدأ الرسالة بعرض الدقائق 
System.out.print("It's");
if (minute != 0) {
System.out.print(" " + minute + " ");
System.out.print( (minute != 1) ? "minutes" : "minute");
System.out.print(" past");
}

// اعرض الساعة 
System.out.print(" ");
System.out.print( (hour > 12) ? (hour - 12) : hour );
System.out.print(" o'clock on ");

// عرض اسم الشهر 
switch (month) {
case (1):
System.out.print("January");
break;
case (2):
System.out.print("February");
break;
case (3):
System.out.print("March");
break;
case (4):
System.out.print("April");
break;
case (5):
System.out.print("May");
break;
case (6):
System.out.print("June");
break;
case (7):
System.out.print("July");
break;
case (8):
System.out.print("August");
break;
case (9):
System.out.print("September");
break;
case (10):
System.out.print("October");
break;
case (11):
System.out.print("November");
break;
case (12):
System.out.print("December");
}

// عرض التاريخ والسنة 
System.out.println(" " + day + ", " + year + ".");
}
}



اذا اردت تحميل كود البرنامج والملف التنفيذي

ارسل ايميل

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 02:23 PM   #17
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


اللهم ارزقنا فهم النبيين وحفظ المرسلين والملائكة المقربين
الدرس الثامن

الدرس الثامن من سلسلة دروس الجافا
For ان يستعمل المتدرب حلقة التكرار
While ان يستعمل المتدرب حلقة التكرار
Do....while ان يستعمل المتدرب حلقة التكرار
أن يقارن المتدرب بين جمل حلقات التكرار
أن يخرج المتدرب من حلقة التكرار
أن يتعرف المتدرب على كيفية تسمية حلقات التكرار
العرض

أهلا ومرحبا بكم جميعا ونواصل مسيرتنا ـ بعون الله ـ مع الجافا

مرحبا بك استاذنا وكل عام وأنت بخير بمناسبة بدء العام الخامس من عمر موقعكم ـ المدرس العربي ـ وندعو الله تعالى أن يجعله في ميزان حسناتكم

شكرا جزيلا وأرحب بك صديقي العزيز

ما عنوان درسنا اليوم ؟

نتعرف اليوم على كيفية تكرار عمل بواسطة حلقات التكرار ولهذا عنوان درسنا اليوم هو حلقات التكرار

ما المقصود بحلقات التكرار ؟

ببساطة حلقة التكرار جملة أو مجموعة من الجمل تتكرر ضمن البرنامج ويمكن التحكم فيها بحيث تتكرر عدة مرات أو تتكرر بلا نهاية وجملة حلقة التكرار تجعل الحاسب يعود الى نفس الموقع أكثر من مرة

ما الفائدة من حلقات التكرار ؟

في برامج الجافا وبريمجاتها سوف تجد نفسك محتاجا لحلقات التكرار في كثيرا من الأمور منها
الانتظار حتى تحدث استجابة من المستخدم مثل نقر المستخدم على زر
يمكنك توظيفها لجعل الحاسب ينتظر فترة دون عمل شئ كما في برامج تحريك الرسوم
تكرار عرض نص متحرك في بريمج
تكرار عرض مسمع موسيقي في بريمج

ما هي الجمل التي تستعمل كحلقات تكرار ؟

في لغة الجافا يوجد ثلاث جمل تستعمل حلقات تكرار وهي
for while do....while

وهل تقوم هذه الجمل الثلاث بنفس العمل ؟

نعم تقوم بنفس العمل حيث يمكن اعداد أي منها لتقوم بعمل الأخرى ويعتمد اختيار جملة حلقة التكرارعلى تفضيلك الشخصي ونحن سوف نتدرب على عمل الجمل الثلاث ونترك لك اختيار ما يناسبك

for شكرا أستاذي العزيز ولنبدأ مثلا الآن بحلقة التكرار فور

حلقة التكرار فور التي اخترت أن نبدأ بها هي الحلقة الأكثرتعقيدا وتستعمل عندما نريد أن نكرر مقطع من البرنامج عدد معين من المرات وأيضا يمكن استعمالها اذا كان عدد المرات التي ستكرر فيها الحلقة متغيرا

من فضلك استاذي الكريم أريد مثالا يبسط الموضوع ؟

لا عليك صديقي العزيز ولم أقصد بقولي عن حلقة التكرار فور بأنها أكثر تعقيدا أن أعقدك ولكن سيتضح لك المقصود بعد أن نتعرف على الجمل الثلاث ــــ ولنبدأ الآن المثال المقصود


for ( int number = 0; number < 1000; number++) {
if ( number % 14 == 0)
system.out.println("#:" + number);
}



فضلك أريد التفسير لهذا المثال وليكن مفصلا نوعا ما ؟

لك ما تريد ولله الحمد والمنة
أولا الغرض من حلقة التكرار ـــ عرض كل الأعداد الواقعة بين 0 و 999 والتي تقبل القسمة على 14 بدون باقي
ثانيا ـ المتغير نمبر يسمى بالعداد حيث تحتوي كل حلقة تكرار فور على متغير يستعمل لتحديد متى تبدأ حلقة التكرار ومتى تنتهي
ثالثا ـ تتكون جملة حلقة التكرار فور من ثلاث أجزاء هي
جزء التمهيد ــ وفيه يتم تحديد قيمة أولية للمتغير نمبر تساوي صفرا ويمكنك في هذا الجزء إعداد المتغير العداد الذي ترغب في استعماله ضمن الجملة فور وأود أن أوضح أنك يمكنك إنشاء المتغير ضمن الجملة فور كما في المثال أو إنشاء المتغير في موضع سابق من برنامجك ولكن في كلتا الحالتين يجب تحديد قيمة أولية للمتغير في هذا الجزء من الجملة فور وبحيث تكون هذه القيمة هي قيمة المتغير عندما تبدأ حلقة التكرار
if الجزء المشروط ــ في هذا الجزء يوجد اختبار مشروط موجود في الجملة
true ونلاحظ أن الشرط يجب أن يبقى صحيحا
وذلك حتى تستمر حلقة التكرار حيث أن حلقة التكرار تتوقف عندما يصبح الشرط خطأ وفي المثال الذي نتناوله الآن تتوقف حلقة التكرار عندما تصبح قيمة المتغير نمبر أكبر من 1000 ـــــ
جزء التغيير ــ هذا الجزء عبارة عن جملة وظيفتها تغيير قيمة المتغير نمبر باستعمال مؤثر الزيادة بواحد ويتم تنفيذ هذه الجملة في كل عملية تكرار لحلقة التكرار وهنا أود التأكيد على ضرورة تغيير العداد وإلا فلن تتوقف حلقة التكرار وفي المثال يزداد المتغير نمبر بواحد باستعمال معامل الزيادة بواحد ++ واذا لم يتغير المتغير نمبر فانه سيظل عند القيمة الأولية 0 ويبقى الشرط صحيحا

عفوا أستاذي الكريم ما الذي يتم تنفيذه من هذا المثال في كل عملية تكرار ؟

في كل عملية تكرار لحلقة التكرار تنفذ الجمل الموجودة ضمن الحاصرتين { } اذا المنطقة المحددة بالحاصرتين يتم فيها العمل الرئيسي لحلقة التكرار وفي مثالنا توجد جملتين ضمن الحاصرتين

{
if ( number % 14 == 0)
system.out.println("#:" + number);
}

ونلاحظ أن هذه الجملة سوف تنفذ 1000 مرة حيث تبدأ حلقة التكرار بجعل المتغير نمبر مساويا للصفر ثم تضيف بعد ذلك 1 في كل مرة من مرات التكرار وتتوقف عندما لا تكون قيمة المتغير أصغر من 1000 وكلما كان العدد قابلا للقسمة على 14 بدون باق يعرض هذا العدد بجانب النص :#

ولكن متى يكون من الضروري وضع الحاصرات ؟

يكون من الضروري وضع الحاصرات اذا كانت الحلقة فور تحتوي على أكثر من جملة ولكن اذا كانت تحتوي على جملة واحدة فان الأمر متروك لك حيث يمكنك استخدامها أو تركها ولكن يستحسن استعمالها لتسهيل فهم البرنامج


for (int q = 0; q < 66; q++)
system.out.println("لن أفعل هذا مرة أخرى ");



تعرض هذه الحلقة المكونة من جملة واحدة بدون حاصرات النص ــ لن أفعل هذا مرة أخرى ـ 66 مرة وهذا يذكرنا بعقاب المدرسين الأوائل للتلاميذ في المرحلة الابتدائية حيث يطلب المعلم من التلميذ أن يكرر هذه الجملة 66 مرة لعقابه على خطأ ارتكبه

طيب يا أستاذ اذا أردنا اعداد أكثر من متغير خلال جزء التمهيد فماذا نعمل ؟

اذا اردت إعداد أكثر من متغير في جزء التمهيد فعليك التفريق بينها بالفواصل ونلاحظ أن كل جزء من الحلقة فور يفصل عن الاجزاء الأخرى بفاصلة منقوطة

ولكن هل يمكن أن تكون أقسام حلقة التكرار فارغة ؟

نعم يمكن أن تكون أقسام حلقة التكرار فارغة وهذا عندما تكون القيمة الأولية للمتغير العداد قد تحددت في جزء سابق من البرنامج

وقفة هنا أستاذي الكريم حيث اتذكر الآن الخطأ المنطقي والذي يدعوني الى ذلك هو الفاصلة المنقوطة فحيث أن العديد من جمل الجافا تنتهي بفاصلة منقوطة اذا يمكن وضع فاصلة منقوطة عند نهاية الجملة فور فماذا يحدث ؟

كلامك صحيح فوضع الفاصلة المنقوطة عند نهاية جملة فور يضع الجملة التي بعدها خارج نطاق حلقة التكرار وبسبب ذلك لن يحدث شيء عند تنفيذ حلقة التكرار وعند ترجمة البرنامج لن تحدث أخطاء وفي نفس الوقت لن نحصل على النتائج المطلوبة

هل باقي حلقات التكرار تتكون من ثلاثة أجزاء ؟

while لا حلقة التكرار التي سوف نتناولها الآن لا تحتوي على أقسام وحلقة التكرار هذه هي

while حلقات التكرار

في هذه الحلقة لا يوجد عدة أجزاء ولكن يجب أن يكون هناك شرط محدد وعندما يصل البرنامج الى جملة حلقة التكرار للمرة الأولى يقوم باختبار الشرط المحدد فإذا كان غير صحيح فانه يتجاهل الجمل الموجودة داخل حلقة التكرارأما اذا كان الشرط صحيحا فإن البرنامج يقوم بتنفيذ جمل حلقة التكرار ثم يعاود البرنامج اختبار الشرط فإذا لم يتغير الشرط موضع الإختبار داخل حلقة التكرار فإن الحلقة تواصل التكرار الى ما لا نهاية وهكذا

do....while عملية بسيطة وماذا عن حلقة التكرار

do.......while حلقات التكرار

لكي ندرك الفرق بين الحلقتين اليك هذا المثال
لنفرض مثلا أن الآنسة أروى تريد الذهاب الى الكوافير فان أمامها طريقتان
الأولى أن تذهب الى الكوافير ثم تخبر والدتها
الثانية أن تستأذن أولا من والدنها قبل أن تذهب الى الكوافير
do...while الطريقة الأولى تشبه حلقة التكرار
بمعنى أنه سوف يتم تحقق الشرط لمرة واحدة قبل أن يختبر يعني أن الآنسة أروى سوف تذهب لمرة واحدة الى الكوافير سواء وافقت والدتها أم لم توافق ومن هنا يتضح لنا أنه في حلقة التكرار دو ....هويل يتم تنفيذ الشرط أولا قبل التحقق من صحة الشرط موضع الاختبار فعندما يصل البرنامج خلال عمله للمرة الأولى الى حلقة التكرار دو فانه ينفذ الجمل الموجودة بين الجملة دو والجملة هويل بشكل تلقائي ثم يجري بعد ذلك التحقق من صحة شرط الجملة هويل فاذا كان صحيحا فن البرنامج يعاود تكرار حلقة التكرار مرة أخرى أما اذا كان الشرط غير صحيح فان حلقة التكرار سوف تتوقف

ولكن يا أستاذي كيف يمكنني الخروج من حلقة التكرار ؟

للخروج من حلقة تكرار قلنا سابقا أن الشرط موضع الاختبار اذا كان غير صحيح فان هذا يوقف حلقة التكرار

طيب اذا أردت أن أوقف حلقة التكرار مباشرة والشرط المختبر صحيحا فماذا أفعل ؟

يمكنك إيقاف حلقة التكرار مباشرة حتى لو كان الشرط موضع الإختبار صحيحا باستعمال الجملة بريك

while (index <= 100)
index = index +3;
if (index ==40)

break;
system.out.println("the index is"+ index);

تواصل الحلقة التكرار الى أن تصبح قيمة المتغير اندكس أكبر من 100 ولكن اذا كانت قيمة المتغير مساوية 40 فإن حلقة التكرار سوف تتوقف مباشرة

هل توجد جملة خاصة أخرى ؟

نعم توجد حالة خاصة أخرى

while (index <= 100)
index = index +3;
if (index ==40)

continue;
system.out.println("the index is"+ index);

في حلقة التكرار هذه سوف يتم تنفيذ الجمل الا اذا صارت قيمة المتغير مساوية 40 وعندها تجعلالجملة كونتينيو حلقة التكرار تعيد تنفيذ الجملة هويل

هل يمكن وضع حلقات التكرار داخل بعضها البعض ؟

نعم يمكن وضع حلقات التكرار داخل بعضها البعض كما في المثال الآتي

while ( totalprise < 1000 ){
for( int prise=0; prise <100; prise++){
totalprise = totalprise + prise;
if ( totalprise > 2000 )
brak;
}
}

ما فعل الجملة بريك في هذه الحالة؟

فعل الجملة بريك في هذه الحالة هو ايقاف حلقة التكرار ـ فور ـ عندما تساوي قيمة المتغير 2000 أو أكثر

ولكن يا صديقي العزيز هناك حالات أرغب في ايقاف حلقتي التكرار معا فكيف الطريق الى ذلك ؟

في هذه الحالة يجب أن تمنح الحلقة الخارجية اسما هذا الاسم يكتب في السطر السابق حلقة التكرار متبوعا بنقطتين : ثم استخدم هذا الاسم بعد الجملة بريك أو كونتينو

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-08-2007, 02:31 PM   #18
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي




أن يعرف المتدرب المصفوفات
أن ينشئ المتدرب مصفوفة
أن يعرف المتدرب أبعاد المصفوفة
أن يحدد المتدرب قيمة لعنصر في المصفوفة
أن يغير المتدرب المعلومات داخل المصفوفة
أن ينشئ المتدرب مصفوفات متعددة الأبعاد
أن يفرز المتدرب المصفوفة





أهلا ومرحبا بكم جميعا ونواصل مسيرتنا ـ بعون الله ـ مع الجافا

مرحبا بك استاذنا وكل عام وأنت بخير بمناسبة بدء العام الخامس من عمر موقعكم ـ المدرس العربي ـ وندعو الله تعالى أن يجعله في ميزان حسناتكم

شكرا جزيلا وأرحب بك صديقي العزيز

ما عنوان درسنا اليوم ؟

كل عام وأنتم جميعا بخير سوف نتناول في درس اليوم كيفية اسنعمال المصفوفات

ما المقصود بالمصفوفات ؟

قبل أن نتعرف على تعريف المصفوفات من الناحية البرمجية ـ وأقصد هنا تعريفها ضمن سياق البرمجة ـ حيث نعرفها مسبقا من دراسة الرياضيات ـ أود أن أشير إلى أننا في الدروس السابقة قد تعرفنا على الطريقة الأساسية لتخزين المعلومات في برامجنا السابقة وهي للتذكرة وضع هذه المعلومات في متغير ولكن هذه الطريقة تناسب البرامج البسيطة ذات البعد الواحد ولكن اذا أردت أن تصمم برنامجا للقيام بأعمال الكنترول في مدرستك فإنك ستكون في حاجة الى وسيلة معقدة للتعامل مع 1000 طالب في صفوف دراسية مختلفة هذه الطريقة هي المصفوفات ـ أود هنا أن أشير الى برنامج الادارة المدرسية الذي كنت أعمل عليه خلال وجودي في مدرسة حفص بن راشد الثانوية بمسقط الزاهرة والجميلة بسلطنة عمان ـ وهو برنامج رائع صصمه الاستاذ عماد ، ونهاد من شركة صخر الرائدة في وضع برامج بالعربية هذه الاشارة العابرة للاشادة بهذا البرنامج وبجهود شركة صخر المشكورة كما أود أن أشكر في هذا السياق الأستاذ / سليمان الكندي مدير دائرة تقنيات التعليم والاستاذ / خالد السيابي مدير نظم المعلومات لجهودهما في هذا السياق بوزارة التربية والتعليم بسلطنة عمان

اذا التعريف المحدد للمصفوفات ضمن سياقنا هو ...؟

المصفوفات هي مجموعة من المتغيرات المتماثلة في النوع والمرتبطة معا أو بعبارة أخرى هي عبارة عن مجموعة من المتغيرات باسم واحد

مثال بسيط بعد إذنك ؟

كما يحدث في المتغيرات يتم انشاء المصفوفات بتحديد نوع المتغير المراد تنظيمه ضمن المصفوفة واسم المصفوفة وللتفرقة يجب اضافة قوسين [ ] وتنشأ المصفوفات لتحتوي أي نوع من المعلومات التي يمكن أن تخزن في متغير واليك هذا المثال



كود:
int[] samy = { 90,85,85,75,70,95 };

String[] netWeight;

String netWeight[];

boolean[] GradeStudents;

int[] primes = new int[300];


لاحظت في الأمثلة السابقة أن المثالين الثاني والثالث متشابهين الا في مكان القوسين فهل هذه الملاحظة صحيحة ؟

نعم يا صديقي ملاحظتك سليمة حيث أن لغة الجافا تتيح حرية في التحرك ومرونة في الموضع الذي يمكن أن نضع فيه القوسين المعقفين فيمكنك وضعها بعد اسم المتغير أو بعد نوع المتغير

دعنا الآن نناقش أنواع المصفوفات

هيا بنا ولنبدأ بالمصفوفات أحادية البعد
المصفوفة أحادية البعد هي المصفوفة التي لها بعد واحد فقط ـ سطر واحد من الأرقام التي تتراوح بين الصفر ورقم العنصر الأعلى المحدد للمصفوفة

وهل للمصفوفة عناصر ؟

نعم والعناصر هنا بمعنى عدد البنود التي يمكن تخزينها في المصفوفة فكل بند في المصفوفة يسمى عنصرا وبعبارة أخرى عندما ننشئ مصفوفة نقوم بتخزين قيمة أولية فيها باستعمال الجملة نيو مع نوع المتغير كما في المثال التالي


int[] primes = new int[300];



ننشئ في هذا المثال مصفوفة من الأرقام الصحيحة تسمى أولية ـ الأعداد الأولية ـ وتحتوي هذه المصفوفة على 300 عنصرا يمكننا استعمالها لتخزين 300 عدد أولي

هل يجب تحديد عدد العناصر ؟

نعم عندما تنشئ مصفوفة باستعمال الجملة نيو يجب تحديد عدد العناصر ونعطي لكل عنصر قيمة أولية تعتمد على نوع المصفوفة كما يلي
المصفوفات العددية تحتوي القيمة الأولية 0

المصفوفات الحرفية تحتوي القيمة'0\' ــ وهكذا

false المصفوفات البولية تحتوي القيمة

null مصفوفات سلاسل الحروف تحتوي على القيمة الصفرية

هل نستطيع إعداد قيمة أولية للمصفوفة عند تكوينها ؟



بالنسبة للمصفوفات الصغيرة حجما يمكننا ذلك

String [] physicsTeachers = { "Samy","Nasser","Taha",};



للدرس بقية بعون الله ـ تابعونا

لمتابعة دروس الجافا

احجز نسختك من كتاب

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-09-2007, 10:37 PM   #19
المدرس المصرى
Junior Member
 
 
 
تقييم العضو :
 
افتراضي مشكور أستاذنا


الأخ الفاضل/ المدرس العربى
سلمت يداك
حقيقى قرأت وفهمت من خلال شرحك الفوق رائع
رائع يا أستاذنا، وأتعجب من عدم مشاركة الأعضاء
لشرحك الوافى لأن المشاركة تفاعلية
وتدفع لبذل جهد أكثر
مشكور يا أستاذنا
وننتظر المزيد

 

 

 

 

 

المدرس المصرى غير متواجد حالياً  

رد مع اقتباس
 
 

 
 
قديم 09-17-2007, 10:17 PM   #20
المدرس العربي
المدرس العربي
 
الصورة الرمزية المدرس العربي
 
 
 
تقييم العضو :
 
افتراضي


السلام عليكم
شكرا جزيلا أخي
كل عام وأنت بخير

 

 

 

 

 

المدرس العربي غير متواجد حالياً  

رد مع اقتباس
 
 

رد


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع إبحث في الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML متاحة
الانتقال السريع إلى