البرمجة بلغة الجافا - بيوتات الكيمياء التعليمية

 
 

اخر المواضيع : الموضوع : تحضير كيمياء 4 مقررات   ( الكاتب : ايمان عبدالواحد     الزيارات : 8320     الردود : 16 )         الموضوع : توزيع منهج كيمياء 4 مقرارات   ( الكاتب : ايمان عبدالواحد     الزيارات : 5596     الردود : 11 )         الموضوع : وُلد في مثل هذا اليوم (متجدد)   ( الكاتب : عوود كبريت     الزيارات : 2596     الردود : 119 )         الموضوع : ملتقى تدريس الكيمياء على التلجرام   ( الكاتب : balkhoyor     الزيارات : 2905     الردود : 4 )         الموضوع : دفتر كيمياء اول ثانوي(ف1+ف2) / كيمياء 1 (نظام مقررات)   ( الكاتب : balkhoyor     الزيارات : 28908     الردود : 52 )         الموضوع : اوراق عمل كيمياء - المستوى الأول   ( الكاتب : hassan alali     الزيارات : 371     الردود : 3 )         الموضوع : اوراق عمل كيمياء - المستوى الأول   ( الكاتب : hassan alali     الزيارات : 41     الردود : 0 )         الموضوع : اوراق عمل كيمياء - ثالث - ف2   ( الكاتب : gassim45     الزيارات : 797     الردود : 2 )         الموضوع : ورق عمل شامل للصف الثالث الثانوي ـ الفصل الثاني ـ الطاقة والتغيرات الكيميائية   ( الكاتب : gassim45     الزيارات : 7364     الردود : 28 )         الموضوع : فقّاعات الهيدروجين المشتعلة   ( الكاتب : OLGA BENZ     الزيارات : 18982     الردود : 25 )         
عودة   بيوتات الكيمياء التعليمية > ... > بيت الوسائط التعليمية > عروض تطبيقات الجافا

إضافة رد
 
LinkBack أدوات الموضوع
  #1   -->
قديم 07-07-2005, 07:52 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي البرمجة بلغة الجافا

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

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

ولكن أريد أن أتعرف على أمثلة للغات البرمجة ؟
توجد لغات برمجة عديدة إلا أنه يوجد فيها نوع من التخصص حيث يعتمد إختيار اللغة على المهام التي نريد من الحاسب إنجازها حيث أن لكل لغة ما يناسبها وهناك مهام يصعب تنفيذها بلغة معينة ولكنها تكون ميسورة بلغة أخرى ومن اللغات التي ظهرت في فترة الستينات لغة البيسك وهي لغات تدرس للمبتدئين وكلمة بيسك لفظة أوائلية تشكل الحروف الأولى من
Biginners All Symbolic Instruction Cod
وظهرت بعدها لغة فيجوال بيسك التي وضعتها ميكروسوفت وهي غنية عن التعريف ولها مميزات عديدة حيث تجمع بين سهولة لغة البيسك وتصميم برامج ذات واجهة رسومية وأيضا فيجوال بيسك سكريبت التي تقدم بريمجات تعمل ضمن صفحات الانترنت وأيضا لغة السي بلاس بلاس ذائعة الصيت وهي لغة برمجة تم ابتكارها كتطوير للغة السي التي هي الأخرى تحسين للغة البي وهناك العشرات من لغات البرمجة الأخرى ولكن الآن نأتي لبيت القصيد وموضوعنا اليوم وهي اللغة التي أدهشت العالم ألا وهي لغة الجافا

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

ما مميزات الجافا ؟

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

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

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

ما الذي أحتاجه لكي أكتب برنامجا بلغة الجافا ؟
Java Developers Kit ( JDK) عدة تطوير الجافا
تعتبر هذه الأداة الأولى التي وضعها مطوروا الجافا بشركة صن ميكروسيستمز ورغم وجود أدوات برمجة أخرى من عدة شركات منافسة إلا أنه من الأفضل أن نأخذ الأمر ممن طوره وهذه الأداة قد صدرت في عدة إصدارات ويمكن تحميل هذه الأدوات من موقع صن ميكروسيستمز
ثانيا محرر نصوص لكتابة البرامج

ولكن لماذا نالت الجافا هذه الشهرة والإهتمام العالمي ؟

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

عماد الدين

قام بآخر تعديل alomda يوم 19-07-2009 في 03:46 PM.
رد مع اقتباس
  #2   -->
قديم 08-07-2005, 05:08 PM
الصورة الرمزية لـ محمد فعال
كيميائي متميز
 
تاريخ الانتساب: 11 2002
المكان: سلطنة عمان
مشاركات: 931
محمد فعال على طريق التميز و النجاح
افتراضي

معلومات قيمة استاذ عماد الدين ......... ننتظر المزيد وجزاك الله كل الخير ......
__________________
اخلاص العمل لله تعالى سر النجاح
برنامج لتشغيل الفلاشات بدون اتصال
رد مع اقتباس
  #3   -->
قديم 08-07-2005, 10:46 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي تجهيز الحاسب للبرمجة بلغة الجافا

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



Java Developers Kit ( JDk)

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

Java Development Kit, v 1.1.8_010 and v 1.1.8_16

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


ومن أرشيف شركة صن ميكروسيستيمز

وبعد أن حملت العدة على حاسبي كيف أثبتها وأجهزها للعمل ؟

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

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



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


ياصديقي أنا واحد مبتدأ لا تحيرني ؟

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

يا صديق أنا لا أعرف الا برنامج الوورد فهل يصلح ؟

يا صاحبي لا تغضب صبرا نعم يصلح برنامج الوورد لكتابة برامج الجافا ولكن بشرط أن تحفظ الملفات كنصوص فقط يعني
Text Only


لقد وعدتني بمفاجأة أما آن الأوان بعد لها ؟

آن الآوان وهي مفاجأة سارة سوف تساعدك كثيرا في البرمجة وهي عبارة عن برنامج يعمل في بيئة الويندوز ويقوم بكل شيء نيابة عنك ولكن ما أطلبه منك هو الدعاء لأبو دعاء

هذا البرنامج هدية للطلاب الذين طلبوه ـ نسخة محسنة ـ

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

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

يا أستاذ لقد دوختني معاك البرناج أيضا يحتاج الى إعداد ؟

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

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

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

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

لقد أصبحت متشوقا لكتابة برنامجي الأول فلما التمهل ؟

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

اللقاء القادم بعون الله ( برنامجي الأول : الساعة السكانية )
في أمان الله
عماد الدين

قام بآخر تعديل alomda يوم 22-04-2006 في 07:21 PM.
رد مع اقتباس
  #4   -->
قديم 11-07-2005, 07:47 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي البرنامج الأول

الأهداف

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

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

أن يحفظ المتدرب المعلومات في متغير

أن يغير قيمة المتغير

أن يعرض المعلومات المحفوظة في المتغير

أن يترجم البرنامج
أن يشغل المتدرب البرنامج
أن يقوم المتدرب البرنامج


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

الخطوات هي
أولا : كتابة البرنامج بمعالج النصوص الذي اخترته وهو بالنسبة لي البرنامج الذي اشرنا اليه في الصفحة السابقة واذا كنت قد جهزته كما ذكرنا سالفا فقد اختصرت نصف المسافة ولكن اذا كنت قد فضلت برنامج الوورد فلا بأس ولكن تذكر أن تحفظ الملف كنص فقط يعني بدون تنسيق
وإن كنت اخترت برنامج الدوس ـ المحرر ـ إيديت ـ فهو جيد من حيث أنه يقوم بترقيم الأسطر وهي مفيدة في حالة إكتشاف الأخطاء
Class ثانيا : اعطاء البرنامج الذي سوف تكتبه إسما بواسطة الجملة
{ } ثالثا : تنظيم البرنامج بواسطة الحاصرات
رابعا : حفظ المعلومات في متغير وتغيير قيمة المتغير
خامسا : عرض المعلومات المحفوظة في المتغير
سادسا : حفظ البرنامج
سابعا : ترجمة البرنامج
ثامنا : تشغيل البرنامج
تاسعا : تقويم البرنامج ـ تصحيح الأخطاء والتعديل ـ


PepClock إنشاء البرنامج الأول

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


الهدف من البرنامج

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

ما الأسلوب الذي سوف نتبعه ؟

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


هل أبدأ الآن بالكتابة ؟

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

1: class PopClock {
2: public static void main (String[] arguments) {
3: // My first java program goes here
4: int pop = 730000;
5: pop = pop / 1440;
6: System.out.println("A minute's worth of pop is " + pop);
7: }
8: }

مهلا يا أستاذ ما هذه الطلاسم ؟

قبل أن نقوم بتفسير أي شيء وحتى لا ننسى في زحام هذه الطلاسم يجب أن نقوم بما يلي على وجه السرعة
PopClock.java أولا بمجرد أن تنتهي من كتابة برنامجك الأول احفظه باسم
تأكد من استعمال الأحرف الكبيرة تماما كما يظهر في البرنامج المكتوب أعلاه
استعمل مفتاح الجدولة ومفتاح المسافة لإدراج المسافات الفارغة قبل بعض الأسطر
نأتي الآن الى تفسير الطلاسم كما تقول
السطر رقم 1
PopClock هذا السطر كأنك تقول للحاسب الآتي ـ أيها الحاسب لوسمحت مولودي الأول سمه من فضلك
statement كما تذكر من المقدمة في الصفحات السابقة أن كل أمر تعطيه للحاسب يسمى جملة
class الجملة
طريقة تعطي اسما لبرنامج الحاسب ونلاحظ أن اسم البرنامج يطابق مع اسم الملف
السطر رقم 2
2: public static void main (String[] arguments) {
يعلم هذا السطر الحاسب بالبيان التالي ـ إن الجزء الأساسي من برنامجي البكر يبدأ من هنا ـ
بما أن برامج الجافا تنظم في أقسام مختلفة اذا يجب أن تكون هناك طريقة معينة لتعريف الجزء الأول الذي يجب أن يبادر الحاسب ليعالجه
main كل البرامج التي سوف نكتبها بعون الله تعالى تستعمل لنقطة البدء كلمة
تستعمل الحاصرتين لتجميع أجزاء البرنامج ونلاحظ أن كل ما يوجد بين الحاصرتين حاصرة الفتح وحاصرة الغلق يسمى مجموعة وتسمى المجوعات كتلا ويمكن استعمال كتلا ضمن كتل أخرى
السطر رقم 3
3: // My first java program goes here
هذا السطر يسمى تعليق ويضعه المبرمج كملاحظة لمن يقرأ نص البرنامج والعلامة // في بداية السطر تعلم الحاسب بوجوب تجاهل هذا السطر
السطر رقم 4
4: int pop = 730000;
تأمر هذه الجملة الحاسب بأن يخزن القيمة 730000 والتي تعين مقدار ازدياد عدد السكان في دولة ما في اليوم الواحد في متغير
المتغيرات ـ مواقع تخزين يستعملها الحاسب لتخزين المعلومات ويمكن تغيير قيمة المتغير
وسوف نتناول في الدرس القادم موضع المتغيرات بالتفصيل ولكن الان نشير على وجه السرعة الى أن المتغيرات تستعمل لإحتواء أنواع مختلفة من المعلومات مثل الارقام الصحيحة والعشرية والحروف والنصوص وبالتالي يجب أن نحدد للحاسب أي نوع من هذه المعلومات سوف نضعها في المتغير وفي برنامجنا الأول الذي نحن بصدده نلاحظ أن المتغير يحتوي على رقم
int صحيح وهذا نعرفه من وضع اسم المتغير
int المتغير
يمكنه تخزين قيم تقع بين -2.1 بليون و 2.1بليون
نلاحظ أن الجملة في السطر الرابع تنتهي بفاصلة منقوطة ; حيث تستعمل هذه الفاصلات المنقوطة عند نهاية كل أمر في برامج جافا ويستعملها الحاسب لتحديد نهاية الأمر وبدايةالأمر التالي
السطر رقم 5
5: pop = pop / 1440;
يعطي هذا السطر للحاسب أمرا بأن يجعل المتغير بوب يساوي قيمته الحالية مقسومة على 1440 وهنا سوف يقوم الحاسب بقسمة قيمة المتغير على عدد الدقائق في اليوم وبالتالي نوجد مقدار الزيادة في عدد السكان في الدقيقة الواحدة
السطر السادس
6: System.out.println("A minute's worth of pop is " + pop);
في هذا السطر نحدد للحاسب الذي يجب أن يعرضه وهو النص التالي ( مقدار الزيادة السكانية في الدقيقة تساوي ) يليها القيمة المخزنة في المتغير بوب
System.out.println
تعني اعرض سطرا على جهاز خرج النظام ( المونيتور ) فيتم عرض كل ما يوجد بين القوسين


كيف يمكنني أن أترجم برنامجي الأول

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



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

javac PopClock.java

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

الان ماذا تبقى لنا عن تشغيل البرنامج ؟

لتشغيل برنامج جافا اكتب مايلي

java PopClock


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

للموضوع بقية بعون الله ــــ تابعونا
في أمان الله
عماد الدين

قام بآخر تعديل alomda يوم 11-07-2005 في 08:00 PM.
رد مع اقتباس
  #5   -->
قديم 14-07-2005, 04:16 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي الدرس الثاني

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

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

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


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


بعد ذلك انشيء الملف التنفيذي كلاسس كما في الصورة القادمة
مرة ثانية كيف أكون الملف التنفيذي كلاسس؟

Execute كما في الصورة أدناه من أدوات أختر الأمر
سوف يفتح لك موجه الدوس تلقائيا أكتب فيه الأمر التالي

javac PopClockApplet.java

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


افتح برنامج الفورنت بيج وفي صفحة جديدة أكتب الكود التالي واذا لم تكن لديك دراية بلغة اتش تي إم إل يمكنك من ادراج في الصفحة العادية اختيار ادراج جافا ثم تختار الملف الذي نحن بصدده ولكن بشرط أن يكون في نفس المجلد وهو كما اتفقنا على سبيل المثال مجلد العمدة 9 وهناك طريقة سهلة جدا في برنامجنا الرائع كما ترى في الصورة فهناك أمر ينشء صفحة للانترنت بدون أن تكون لديك أي فكرة عن الفورنت بيج أو لغة إتش تي إم إل
<applet code=PopClockApplet.class width=250 height=80></applet>

وهذا البرنامج أمامك يعمل وتراه والعملية بسيطة جدا ياصديقي
كود:
import java.awt.*;

public class PopClockApplet extends java.applet.Applet {
int Pop;

public void init() {
Pop = 730000;
Pop = Pop / 1440;
}

public void paint(Graphics screen) {
screen.drawString("مقدار الزيادة في عدد السكان في الدقيقة " + Pop +"نسمة" , 5, 50);
}
}
رد مع اقتباس
  #6   -->
قديم 17-07-2005, 06:07 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي الدرس الثالث

الأهـــداف
أن يقارن المتدرب بين التطبيق والريمج
أن يفهم عمل التطبيق
أن ينظم المتدرب التطبيق
أن يرسل الوسطاء الى التطبيق
أن يفهم عمل البريمج
أن يعرف الأجزاء الضرورية للبريمج
أن يرسل البارامترات الى بريمج
أن يستعمل وسوم لغة إتش تي إم إل لنشر بريمج في الانترنت

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

كيف أنظم برنامجي؟

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

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

كود:
1: class SquareRoot {
2:      public static void main(String[] arguments) {
3:           int number = 625;
4:           System.out.println("The square root of "
5:                + number
6:                + " is "
7:                + Math.sqrt(number) );
8:        }
9:  }
وماذا بعد ؟

SquareRoot قم بحفظ البرنامج باسم
انتقل الى المجلد الذي يوجد فيه ثم قم بترجمة البرنامج بكتابة ما يلي في موجه الدوس

javac SquareRoot.java

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

SquareRoot.class
وماذا عن برنامجنا المفضل ؟
اذا كنت تستعمل برنامجنا المفضل اتبع الخطوات المصورة التالية

وفي موجه الدوس


ولتشغيل البرنامج

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

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

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

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

كود:
class NSRoot {
public static void main(String[] arguments) {
int number = 0;
if (arguments.length > 0)
number = Integer.parseInt( arguments[0] );
System.out.println("The square root of "
+ number
+ " is "
+ Math.sqrt(number) );
}
}
احفظ البرنامج باسم NSRoot.java
قم بترجمة البرنامج بنفس الطريقة فيتكون ملف جديدفي نفس المجلد بنفس الإسم ولكن بامتداد كلاسس

لتشغيل البرنامج استعمل المفسر واكتب الأمر التالي

java NSRoot 81


هل نكتب الان نفس التطبيق السابق ولكن للانترنت

نعم في برنامجنا المفضل اكتب النص التالي

كود:
public class SRootApplet extends java.applet.Applet {
int number;

public void init() {
number = 625;
}

public void paint(java.awt.Graphics g) {
g.drawString("الجذر التربيعي للعدد " +
number +
" هو " +
Math.sqrt(number), 5, 50);
}
}
بعد أن تنتهي من كتابة البرنامج احفظه باسم

SRootApplet.java

ترجم البرنامج بكتابة الأمر التالي

javac SRootApplet.java


في حالة النجاح سيتم انشاء ملف بنفس الإسم ولكن بامتداد كلاسس

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

لانشاء صفحة للعرض عبر صفحات الويب استعمل برنامج الفورنت بيج واكتب التالي في الصفحة ليست العادية ولكن إتش تي إم إل

<applet code=SRootApplet.class width=180 height=80></applet>

والآن نرى البرنامج وهو يعمل

أما إذا أردت استعمال ألأداة السابق الإشارة اليها أكتب ما يلي عبر سطر الأوامر

appletviewer SRootApplet.html
ولكن الآن كيف يمكن ادخال أعداد الى البرنامج

اكتب النص التالي
كود:
public class NSRootApplet extends java.applet.Applet {
int number;

public void init() {
String parameter = getParameter("NUMBER");
if (parameter != null)
number = Integer.parseInt(parameter);
}

public void paint(java.awt.Graphics g) {
g.drawString("الجذر التربيعي لعدد " +
number +
" هو " +
Math.sqrt(number), 5, 50);
}
}
احفظ البرنامج وترجمه
ولكي تتمكن من ارسال أعداد الى البرنامج عدل الكود في صفجة الانترنت الى الكود التالي

<applet code=NSRootApplet.class width=300 height=100>
<param name="NUMBER" value=196>
</applet>

لمعاينة البرنامج حال العمل

لارسال عدد جديد الى البرنامج

VALUE قم بتغيير الصفة
وهو موجود في مصدر صفحة الوب وهنا نشير الى أنه يمكن استعمال العدد الذي نرغب فيه من البارامترات بشرط أن يكون لكل بارامتر صفة مختلفة ومحددة في العلامة <PARAM>
رد مع اقتباس
  #7   -->
قديم 22-07-2005, 08:20 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي البريمجات ـ تطبيقات الجافا الصغيرة للانترنت

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

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

أن يعد المتدرب بريمجا

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

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

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

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

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

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

الاولى من ميكروسوفت وكانت موجودة في الويندوز 98 بشكل تلقائي ولكن بسبب التنافس بين ميكروسوفت وصن ميكروسيستيمز تم حذف ماكينة الجافا الافتراضية المعنية بتشغيل بريمجات الجافا من اصدرات الويندوز التالية حتى آخر نسخة من الويندوز اكس بي

والثانية من صن ميكروسيستتيمز ويمكنك تحميلها من هذا الرابط

ماكينة الجافا الإفتراضية

ولكي تعمل بريمجات الجافا يجب ان تحمل الى حاسب المستخدم
عفوا أستاذي الكريم استوقفك لسؤال ـــ ـــ ـــ هل عمل بريمجات الجافا من خلال حاسوب المستخدم ميزة أم عيب ؟
هذه من مميزات الجافا حيث تعمل بريمجات الجافا من خلال حاسوب المستخدم وليس من خلال السيرفر الذي تخزن به صفحات الموقع وهذا يستلزم أن يكون حجم ملفات البريمجات صغيرا
ولكن يا استاذ اليست هذه النقطة بالذات مثيرة للقلق ؟
هذه من مميزات الجافا حيث تعمل بريمجات الجافا من خلال حاسوب المستخدم وليس من خلال السيرفر الذي تخزن به صفحات الموقع وهذا يستلزم أن يكون حجم ملفات البريمجات صغيرا
ولكن يا استاذ اليست هذه النقطة بالذات مثيرة للقلق ؟
قلق من أية ناحية ؟ اتقصد ناحية الأمان ؟ ان كان هذا ما تقصد اقول لك ان بريمجات الجافا تخضع لتدقيقات كثيرة تجعلها اكثر امانا
كيف نبدأ اذا يا استاذي العزيز ؟
اود ان اذكرك بأننا قد قدمنا في البداية نموذجا لبريمج وكان هذا لإيضاح الفرق بين التطبيق والبريمج ولكننا الان سوف نتكلم بالتفصيل عن البريمجات من جميع النواحي وبعون الله تعالى سوف نتدرب على مواضيع متقدمة من حيث ربط بريمجات الجافا بالتطبيقات المعدة بلغة الفيجوال بيسك ذائعة الصيت وهذا الموضوع يهم الكثيرين ممن يبرمجون بلغة الفيجوال بيسك وبعبارة أخرى سوف نتدرب على وضع بريمج جافا في برنامج تمت برمجته بلغة الفيجوال بيسك
هيا يا صديقي نبدأ
JApplet لكي ننشأ بريمج جافا نركز على الخطوة الأولى وهي جعل البريمج فئة فرعية لجافا أبلت
.com.sun.java.swing واذكر هنا بأن هذه الفئة تشكل جزءا من حزمة
SWING تسمى هذه الحزمة
التي توفر مجموعة من الفئات لإنشاء واجهة مستخدم رسومية وما يلزم من العناصر المرئية للبريمج حيث يعامل البريمج كإطار مرئي داخل صفحة الانترنت اذا جافا ابلت جزء من سوينج
وسوف نتكلم بالتفصيل ان شاء الله عن موضوع السوينج

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

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

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

paint( ) :: int( ) :: stop( ) & start( ) ::: destroy( ) :::

paint( ) اولا النهج

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

عفوا استاذي العزيز تحتاج هذه النقطة الى مزيد من التوضيح

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

public class paint(graphics screen) {
// display statements go here
}

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

import java.awt.Graphics;
import java.awt.graphics2D;

واذا كانت لديك النية لاستعمال عدة فئات ـ كلاسس ـ من الحزمة
java.awt
استعمل الجملة التالية التي تجعل كل هذه الفئات متوفرة في بريمجك
java.awt.*
شكرا جزيلا لك على هذا التوضيح المسهب وماذا عن باقي النهج أو كما تشبهم عفاريت الجافا ؟

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

stop( ) & start( ) النهجان

init عندما يبدأ البرنامج في العمل أول مرة ينفذ النهج

start( ) هذا النهج هو الذي يلي النهج التجهيزي بمعنى انه كلما نفذ البريمج يتم التعامل مع هذا النهج

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

destroy( ) النهج

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

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

<applet code=Refraction.class width=500 height=450></applet>

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

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

WIDTH & HEIGHT تحدد هذين السمتين

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

مثال آخر

<applet code="Moledm.class" width=300 height=290 archive="Moledm.jar"><PARAM NAME="Type" VALUE="ac"></APPLET>

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

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

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

<object classid="java:PopClock.class"width=270 height=80></object>

للدرس بقية
عماد الدين
رد مع اقتباس
  #8   -->
قديم 24-07-2005, 11:29 PM
الصورة الرمزية لـ محمد فعال
كيميائي متميز
 
تاريخ الانتساب: 11 2002
المكان: سلطنة عمان
مشاركات: 931
محمد فعال على طريق التميز و النجاح
افتراضي

دروس ممتعة حقا ، ما شاء الله استاذ عماد رغم ان البرمجة جافة بعش الشي لكن باسلوبك المبسط ادخلت فيها المتعة والبهجة ............ شكرا استاذ ارجوا ان تواصل هذه الدروس ....
__________________
اخلاص العمل لله تعالى سر النجاح
برنامج لتشغيل الفلاشات بدون اتصال
رد مع اقتباس
  #9   -->
قديم 27-07-2005, 08:43 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي مثال للتطبيق

السلام عليكم
شكرا استاذ محمد ، ادعو المولى عز وجل أن يفتح علينا ويمدنا بمدده لكي نتم هذه الدروس فهو سبحانه المستعان وعليه التكلان.
الحاقا للدرس السابق نعرض هذا المثال للتطبيق
مثال لبريمج
كود:
import java.awt.*;

public class PopClock extends java.applet.Applet {
int Pop;

public void init() {
Pop = 7300;
Pop = Pop / 1440;
}

public void paint(Graphics screen) {
screen.drawString("مقدار الزيادة في عدد السكان في الدقيقة " + Pop +"نسمة" , 5, 50);
}
}
لوضع البريمج في صفحة موقع اضف هذا الوسم

كود:
<applet code=PopClock.class width=270 height=80></applet>
لرؤية البريمج وهو يعمل

على فكرة يمكن وضع البريمجات مباشرة في المنتدى بكود PHP وبالسماح برفع ملفات class و Jar الخاصة بالجافا وهي اختصار لجافا ارشيف وكنت قد رأيت استفسارا في المنتدى عن هذا الموضوع ولذا لزم التنويه
الى اللقاء في درس قادم بعون الله

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


قام بآخر تعديل alomda يوم 04-08-2005 في 11:53 PM.
رد مع اقتباس
  #10   -->
قديم 29-07-2005, 07:20 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي المفاهيم الأساسية للجافا

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

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

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

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

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

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


النوع الثاني float ( floating-point)
يستعمل لتخزين الاعداد العشرية

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

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

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;

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

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

رد مع اقتباس
  #11   -->
قديم 05-08-2005, 12:05 AM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي الدرس الخامس

السلام عليكم
مرحبا بكم
العمليات الرياضية وترتيبها

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

كيف أخزن المعلومة في متغير ؟

يمكن تحديد قيمة أولية للمتغير عندما نقوم بإنشائه ونستطيع أيضا تحديد قيمة للمتغير في أي موضع تالي ضمن البرنامج وتستعمل علامة = لتحديد قيمة أولية للمتغير عند إنشائه ويمكن أن نأخذ مثال
كود:
int i = 500;
نلاحظ أننا أنشأنا متغيرا
هذا المتغير يحتوي على القيمة الإبتدائية 500 وهكذا وبنفس الطريقة يمكننا إعداد المتغيرات المخزنة للأعداد ويختلف الأمر بالنسبة للمتغيرات المخزنة لحرف أو سلسلة حروف حيث يجب وضع علامات اقتباس حول القيمة المراد تخزينها
كود:
String studentName = "alyaa";
ولكن هل يمكن إعداد أحد المتغيرات ليساوي قيمة متغير آخر من نفس النوع ؟
نعم يمكننا إعداد متغيرا ليساوي قيمة متغير آخر من نفس النوع كما نرى في المثال التالي

كود:
int i = 500; 
int k= i ;
ولكن يا أستاذي ماذا يحدث إذا لم أحدد قيمة أبتدائية للمتغير ؟

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


--------------------------------------------------------------------------------

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

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

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

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


--------------------------------------------------------------------------------

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

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

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

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


--------------------------------------------------------------------------------

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

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

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

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

رد مع اقتباس
  #12   -->
قديم 05-08-2005, 03:57 PM
الصورة الرمزية لـ محمد فعال
كيميائي متميز
 
تاريخ الانتساب: 11 2002
المكان: سلطنة عمان
مشاركات: 931
محمد فعال على طريق التميز و النجاح
افتراضي

ما زلنا نرى الابداع من الاستاذ عماد ينضح من دلوه المملوه بالدرر والنفائس ، شكرا استاذ عماد على عملك هذا واسال الله ان يكون في ميزان حسناتك .......... ولا تحزن لعدم وجود ردود من الاعضاء فانا متاكد من احد سيتفيد من جهدك المبذول ولو بعد حين .............. شكرا استاذي وارجوا ان تواصل عطائك بلا حدود ........ اخوك محمد
__________________
اخلاص العمل لله تعالى سر النجاح
برنامج لتشغيل الفلاشات بدون اتصال
رد مع اقتباس
  #13   -->
قديم 12-08-2005, 08:55 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي الدرس السادس * عرض النصوص

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

الأهداف

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

كود:
char keyopen='$';
key open هذه الجملة تنشىء متغيرا باسم

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

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

ياصديقي حينما تريد تخزين نص ما عليك إلا أن تنشىء متغيرا من النوع استرينج وتعطيه اسما كما يلي
كود:
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);
}
ويكون خرج هذا البرنامج بعد ترجمته كما في الصورة



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

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

سؤال تحضيري

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

if else switch case break

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

= = != > < ?

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


قام بآخر تعديل alomda يوم 12-08-2005 في 09:24 PM.
رد مع اقتباس
  #14   -->
قديم 19-08-2005, 05:26 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي الدرس السابع

الأهداف
1- أن يعرف المتدرب التفكير المنطقي
2 - أن يستعمل المتدرب الجمل المشروطة لتصميم برامج أكثر ذكاء
3 - أن يستعمل المتدرب الجملة اذا للإختبارات المشروطة
4 - أن يستخدم المتدرب جملا أخرى مع الجملة اذا
5 - أن يقارن المتدرب بين قيمتين
6 - أن يختبر المتدرب تساوي قيمتين
7 - ن يستعمل المتدرب الجملة ــ اذا لم ــ كنقيض للجملة اذا
8 - أن يربط المتدرب عدة جمل مشروطة معا
9 - Switch أن يستخدم المتدرب للاختبارات المعقدة الجملة
10 - أن ينشأ المتدرب اختبارات معقدة بواسطة المؤثر الثلاثي


الجملة المشروطة ـ اذا ـ

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

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   

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 اذا الآن اتضح وظيفة الجملة

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

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

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

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

مثال للتوضيح

كود:
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"))?"السيدة" :" السيد");
طلب أخير من فضلك أستاذي العزيز أريد برنامجا يتضمن كل ما سبق ؟

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

كود:
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 + ".");
}
}
بعد ترجمة البرنامج واخراجه عند تشغيله سوف يعرض الآتي



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


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

رد مع اقتباس
  #15   -->
قديم 30-08-2005, 07:44 PM
الصورة الرمزية لـ alomda
كيميائي نشط
 
تاريخ الانتساب: 06 2005
المكان: مصر المحروسة
مشاركات: 100
alomda على طريق التميز و النجاح
افتراضي الدرس الثامن ( حلقات التكرار )

الدرس الثامن


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


الأهداف

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 أو أكثر

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

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

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

رد مع اقتباس
إضافة رد


زوار هذا الموضوع الآن : 1 (0 عضو و 1 ضيف)
 
أدوات الموضوع

ضوابط المشاركة
غير مصرّح لك بنشر موضوع جديد
غير مصرّح لك بنشر ردود
غير مصرّح لك برفع مرفقات
غير مصرّح لك بتعديل مشاركاتك

وسوم vB : نشيط
كود [IMG] : نشيط
كود هتمل : خامل
Trackbacks are نشيط
Pingbacks are نشيط
Refbacks are نشيط



التوقيت حسب جرينتش +3. الساعة الآن 05:57 PM.


Powered by: vBulletin® Version 3.8.8 Copyright ©2000-2017, Jelsoft Enterprises Ltd.
SEO by vBSEO
Translated By vBulletin®Club©2002-2017
Ads Management Version 3.0.1 by Saeed Al-Atwi
Powered by: vBulletin® Version 3.8.8 Copyright ©2000-2015, Jelsoft Enterprises Ltd.

a.d - i.s.s.w