مشاهدة النسخة كاملة : بسم الله (سلسلة دروس في الجافا)
الصفحات :
[
1]
2
3
4
5
6
7
8
الامير الصنعاني
05-12-2003, 01:52 AM
بسم الله الرحمن الرحيم
بذكره نبدأ وبه نستعين
والصلاة والسلام على خير المرسلين
محمد الصادق الامين
وبعد
ان شاء الله
هنا ساضع دروس الجافا اللي وعدتكم بها وان شاء الله تكون مفيدة لكم
وانا قد اشترطت عليكم بعض الشروط وهي
1- الصبر والالتزام والمتابعة
2- التفاعل مع الدروس
مش قصدي تجلسوا تشكروني او تمدحوا فيني كل ما وضعت درس
لا لا لا هذا كلام مرفوض
انا بحط اسئلة تتعلق بالدرس بكل درس وبحدد من يجيب على الاسئلة فلازم تتفاعلوا معي
3- التقيد بالتعليمات اللي بتلقوها بالدرس
4- فيه لكل درس متطلبات لازم توفروها بأي طريقة وتوفيرها سهل جدا المهم لا تكونوا بخلاء
وكانت الاخت Nora الى هذه اللحظة هي الموافقة الاولى على هذه الشروط
لذلك ان شاء الله سأبدأ معها
ومن اراد الانضمام الينا ما عليه الا الموافقة على الشروط المذكورة انفا
لكن لا يضع موافقته في هذا الموضوع
يا ريت يضع موافقته في الموضوع السابق اللي بعنوان لغة الجافا وهو على هذا الرابط
http://www.al-yemen.com/vb/showthread.php?s=&threadid=58612&perpage=10&pagenumber=1
وهنالك شرط خامس احب ان اضيفة
5- في هذا الموضوع وعلى هذه الصفحات يمنع منعا باتاً استخدام اي جمل او عبارات خارجة عن تعلم الجافا
بالكلام الصريح الفصيح
عبارت المدح والشكر والثناء كلها عبارات خارجة عن الموضوع واتمنى ما اشوف اي منها على هذه الصفحات
يتبع ان شاء الله الدرس الاول
الامير الصنعاني
05-12-2003, 02:00 AM
الدرس الاول :: مقدمة في الكمبيوتر والجافا
[line]
الاهداف المرجوة من هذا الدرس
1- تكوين فكرة عامة ومبسطة عن الكمبيوتر بشكل عام
2- تكوين فكرة عامة ومبسطة عن البرمجة
3- تكوين فكرة عامة ومبسطة عن لغة الجافا
[line]
متطلبات هذا الدرس
هذا الدرس لاي شخص مبتدأ . فلا تحتاج الى اي خلفية عن اي شيء . كل ما تحتاجه هو تفتح مخك وتحاول تفهم[line]
[line]
• مقدمة عن الكومبيوتر
الكمبيوتر (الحاسوب) نقدر نقسمه الى قسمين ال hardware و ال software
ال hardware :- عبارة عن الجزء الملموس من الادوات والقطع المكونة للكمبيوتر كالشاشة والكيبورد والفأرة والقطع اللي داخل
ال program :- عبارة عن مجموعة من الاوامر والتعليمات التي ينفذها الكمبيوتر
ال software :- عبارة عن مجموعة من البرامج (programs)
الهاردوير hardware
1- وحدات الادخال :- وهي عبارة عن الادوات والقطع التي عن طريقها يستلم الكمبيوتر الاوامر والتعليمات من الانسان
أمثلة :- الفأرة + الكيبورد+...
2- وحدات الاخراج :- وهي عبارة عن الادوات والقطع التي عن طريقها يعرض الكمبيوتر ناتج عملية تنفيذ الاوامر المتلقاه من الانسان
أمثلة :- الشاشة + الطابعة +...
3- المعالج (Processor) CPU :- عبارة عن قطعة مهمة (مخ الجهاز) تقوم باستقبال الاوامر والتعليمات من وحدات الادخال وتقوم بعرض نتائج تنفيذ هذه الاوامر والتعليمات على وحدات الاخراج
أمثلة :- معالج بانتيوم 1 + معالج بانتيوم 2+ معالج بانتيوم 4 + معالج امدي اثلون +...
4- الذاكرة :- وهي عبارة عن قطع وادوات يتم فيها خزن المعلومات اللازمة لتنفيذ الاوامر والتعليمات كما يتم فيها خزن نتائج تنفيذ الاوامر والتعليمات
[line]
سؤال:: ماذا يحدث عندما تريد ان تحرك مؤشر الفأرة ؟؟؟؟؟؟؟؟؟؟؟؟
الاجابة:
1- يقوم الانسان بتحريك وحدة الادخال ( الفارة)
2- عند تحرك الفأرة يستقبل المعالج امر بتحريك المؤشر على الشاشة
3- يقوم المعالج بتحريك المؤشر وتظهر النتيجة على وحدة الاخراج (الشاشة)
يتبع ان شاء الله
• مقدمة عن البرمجة
الامير الصنعاني
05-12-2003, 02:38 AM
• مقدمة في البرمجة
كما تعلمنا من مما سبق ان المعالج البروسسر ( Processor) هو مخ الجهاز اللي يقوم باستلام الأوامر من الانسان عن طريق وحدات الادخال ويقوم بتنفيذها وعرض النتائج على وحدات الاخراج
والسؤال المطروح هنا كيف يعمل المعالج ؟؟
المعالج مصمم بحيث يتعامل مع لغة معينة يفهمها تماما هذه اللغة تسمى Machine language (لغة المشين) وكل معالج لا يفهم الا لغته المخصصة له
هذه اللغة ليست موحدة فباختلاف المعالج تختلف اللغة وهذه اللغة تكتب بالارقام ال (0,1)
يوجد ايضاً لغات تسمى بالاسمبلي Assembly Language هذه اللغات قريبة جدا من لغة المشين انما تختلف عنها بشكل بسيط
وبسبب هذا الاختلاف البسيط لا يستطيع المعالج فهم هذه اللغة مباشرة فيحتاج الى مترجم يترجم من لغات الاسمبلي الى لغات المشين
ولان لغات الاسمبلي قريبة جدا من لغات المشين فالترجمة من والى لغة المشين سهلة جدا فيوجد برنامج معين يقوم بهذه الترجمة وهذا البرنامج اللي يقوم بالترجمة يختلف من جهاز الى جهاز
وذلك لاختلاف لغات المشين من جهاز الى جهاز
انشاء برامج بلغات الاسمبلي يعتبر امر صعب جدا بالنسبة للانسان انما ليس مستحيلا ويوجد حتى الان الكثير من من يتقنون هذه اللغات
المهم بعد هذه اللغات يوجد لغات اكثر سهولة وتكون مقاربة للغة الانجليزية مثل لغة السي ++ الجافا وغيرها
الخلاصة
أ- لغات البرمجة تنقسم الى قسمين
1- Low Level Languages :- وهي اللغات التي يصعب على الانسان فهمها مثل لغة المشين والاسمبلي
2- High Level Languages :- وهي اللغات التي يسهل على الانسان فهمها مثل لغة الجافا والسي والسي++
ب- المعالج لا يفهم الا لغة مشين خاصة به فعند كتابة اي برنامج بأي لغة ما يجب ترجمتها الى لغة المشين الخاصة بالمعالج
نحن ان شاء الله تعالى سنركز على لغة الجافا
يتبع ان شاء الله مقدمة عن لغة الجافا
الامير الصنعاني
05-12-2003, 04:54 AM
• مقدمة عن الجافا
صممت لغة الجافا من عام 1991م على يد فريق من شركة سن مايكروسستم وكانت تسمى لغة ال Oak ولكن الفريق اكتشف ان هنالك لغة اخرى تحمل نفس الاسم
ويقال بينما كان الفريق يفكرون باسم جديد لهذه اللغة ذهبوا لشرب القهوة فكانت نوع القهوة اللي شربوها اسمها جافا فقرروا تسمية اللغة بهذا الاسم فاصبحت لغة الجافا
كما تعلمنا من قبل ان المعالج لا يستطيع ان يفهم سوى لغة المشين الخاصة به
وطبعاً لغة الجافا غير مفهومة مباشرة من المعالج فتحتاج الى ترجمة كي يفهمها المعالج
وعملية الترجمة من لغة الجافا الى لغة الجهاز عملية مميزة عن باقي عمليات الترجمة من اللغات الاخرى الى لغة المشين
كيف يفهم المعالج لغة الجافا ؟؟؟
عند كتابة برنامج بلغة الجافا يكون هذا البرنامج مكتوب على ملف يحمل الامتداد java
مثلاً Calculator.java
هنالك برنامج مترجم ( Compiler) يترجم لغة الجافا الى لغة تسمى لغة البايت كود ( لغة قريبة جدا من لغة المشين)
يقوم الكومبايلر بترجمة Calculator.java الى ملف اخر يحتوي على لغة البايت كود ويحمل الامتداد class
الملف الجديد بعد الترجمة Calculator.class
رغم ان لغة البايت كود لغة قريبة جدا من لغة المشين الا ان المعالج لا يفهمها فيوجد برنامج مترجم اخر يترجم من لغة البايت كود الى لغة المشين يسمى هذا البرنامج الانتربتر Interpreter
لكن في هذه العملية لا يتم تكوين اي ملف جديد
اللي بيحصل ان الانتربتر بياخذ لغة البايت كود Calculator.class ويترجمها الى لغة المشين وفورا يقوم المعالج بتنفيذها وتظهر النتيجة على الشاشة اي انه لا يتم حفظ لغة المشين على ملف
وهذا شكل يبين الكلام السابق
http://java.sun.com/docs/books/tutorial/figures/getStarted/g1.gif
وتتميز الجافا بان لها كومبايلر موحد وهذه ميزة تفتقدها معضم اللغات الاخرى
http://java.sun.com/docs/books/tutorial/figures/getStarted/helloWorld.gif
الاخطاء في البرمجة بلغة الجافا؟؟
عندما نكتب برنامج ما بلغة الجافا قد نقع في اخطاء هذه الاخطاء هي ثلاثة اصناف فقط
الصنف الاول :- الخطاء النحوي Syntax error:- وهي الاخطاء في الاسبلنق اي اخطاء املائية في كتابة اللغة
الصنف الثاني :- خطاء تشغيلي Run Time Error:- وهي الاخطاء التي تحدث اثناء التشغيل مثلا القسمة على الصفر فعند محاولة القيام بعملية القسمة على الصفر نحصل على هذا النوع من الاخطاء
الصنف الثالث :- خطاء منطقي Logic Error :- وهي الاخطاء الحسابية مثلا نريد جمع عدين وبالخطأ بدل ان نجمعهما قسمناهما هذا خطأ منطقي
الكومبايلر عند الترجمة يكتشف الاخطاء النحوية ويرفض القيام بالترجمة حتى يتم اصلاحها
الانتربتر عند الترجمة يكشف الاخطاء التشغيلية ويقوم بتوقيف البرنامج حال اكتشاف الخطاء
------------------------
بهذا الكلام اختتم الدرس الاول
قد يكون هذا الدرس بديهي جدا عند البعض وقد يكون جديد عند البعض الاخر وقد يكون ممل وقد وقد
المهم اتمنى انه يكون مفهوم
طبعا انا بعد كل درس بضع اسئلة تتعلق بهذا الدرس
والى حد الان الاخت Nora هي اللي معاي
فبنتظر فترة
وبعدين انزل الاسئلة
والان اي واحد عنده استفسار عن اي شيء يتعلق بهذا الدرس فليتفضل
تحياتي والسلام ختام
رغيد الطيب
05-12-2003, 11:04 AM
السلام عليكم ورحمة الله وبركاته ...
الاخ العزيز الامير الصنعاني جعل الله ما تكتبه في ميزان حساناتك ووفقني واياك للاخلاص في العمل ....
اخي العزيز راق لي الموضوع كثيراً .... ولي استفسار ... وودت ان تجيب عليه إن كان في وقتكم كفاية ...
سؤالي هو ان كان للجافا مترجم واحد Complier فهل من المعقول ان يكون لها Interptuer واحد يعمل على كل الانظمة حتى غير الوينذوز منها ...
و ان كان الامر على عكس ذلك كما هو موضوح في رسمتك التوضيحية ( اي ان لكل نظام Interptuer خاص به ) فهل هذا يعني انه يجب علي ان اقوم بتحميل هذة الـ Interptuers في الانظمة ام انها تأتي ضمنياً بها ؟
و لي بعض الاستفسارات الاخرى اذكرها في حينها بإذن الله تعالى اعانني الله على وضع السؤال المناسب في المكان المناسب حتى لا اشتت الخطة التسلسلية التي تسير عليها اخي العزيز ... سدد الله خطاك ...
والسلام عليكم ورحمة الله وبركاته ...
الامير الصنعاني
05-12-2003, 12:34 PM
اهلا وسهلا بالاخ رغيد الطيب
س 1 :: ان كان للجافا مترجم واحد Complier فهل من المعقول ان يكون لها Interptuer واحد يعمل على كل الانظمة حتى غير الوينذوز منها؟
ج1 :: للجافا كومبايلر واحد ولكل جهاز انتربتر خاص به
--------------------------------------------------
س2 : ان كان الامر على عكس ذلك كما هو موضوح في رسمتك التوضيحية ( اي ان لكل نظام Interptuer خاص به ) فهل هذا يعني انه يجب علي ان اقوم بتحميل هذة الـ Interptuers في الانظمة ام انها تأتي ضمنياً بها ؟
ج2:: هنالك ما يسمى بال JAVA DEVOLPMENT KIT JDK ويجب تحميلها على جهازك وفيها كل البرامج التي تحتاجها لترجمة وتشغيل برامج الجافا
فيها الكومبايلر والانتربتر وكل ما تحتاجه
أتمنى ان تكون اجاباتي شافية وكافية على تساؤلاتك
ولا تترد اخي في الاستفسار عن اي شيء
تحياتي والسلام ختام
السلام عليكم ورحمة الله وبركاته .
تحدثت عن ال JDK فما الاختلافات بين الاصدارات المختلفة لها.
وعندي استفسار حول المدة الفاصلة بين كل درس واخر.
وجزاك الله كل الخير أخي الفاضل ...
الامير الصنعاني
05-12-2003, 01:49 PM
وعليكم السلام ورحمة الله
س1 :: تحدثت عن ال JDK فما الاختلافات بين الاصدارات المختلفة لها.
ج1 :: كما ذكرتي هنالك اصدارات مختلفة لل JDK
وكلما نزل اصدار جديد بيكون افضل من اللي قبله من عدة نواحي اهمها
1- الاصدار الاحدث يصلح مشاكل او بعض العثرات الموجودة في الاصدارات السابقة
2- الاصدار الاحدث قد يحتوي على تعديلات لبعض الملفات تحسن من جودة البرامج
3- الاصدار الاحدث عادة يحتوي على ملفات وبرامج اضافية تساعدة في بناء برامج بلغة الجافا
0000000000000000000000
س2 ما هي المدة الفاصلة بين كل درس؟؟
اجابة هذا السؤال ترجع اليكم انتم
انا شخصياً بعد وضع كل درس بعطي مهلة لكي تسئلوا
وبعدها بضع اسئلتي الشخصية عليكم
وبعدما تجاوبوا انتم على الاسئلة بحط الدرس الثاني
ان شاء الله
الامير الصنعاني
05-12-2003, 02:09 PM
بسم الله الرحمن الرحيم
مثلما قلت لكم في البداية في الشروط التي وضعتها
انني ساضع اسئلة بعد كل درس تتعلق بالدرس
وانتم عليكم الاجابة عليها ( ملزمين)
وللاسف الى حد الان الاخت Nora فقط هي الوحيدة التي وعدت بالالتزام بهذه الشروط اما بالقية فلم ارى منهم اي تعقيب على الشروط
ولذلك
الاسئلة التي ساطرحها كلها موجهة للاخت Nora (ما لم يحصل اي تغيير )
الاخت Nora حاولي ان تجيبي على هذه الاسئلة
** اسئلة مباشرة
س1 :: ما الفرق بين الكومبايلر والانتربتر ؟؟؟
----
س2 :: ما هي الاخطاء الممكن حدوثها عند كتابة برنامج ما بلغة الجافا ؟؟
---
** اسئلة غير مباشرة (شوية صعبة وتحتاج تفكير)
س1 :: علل
الخطاء التشغيلي run time error لا يكتشفه الكومبايلر اثناء الترجمة بينما يكتشفه الانتربتر
س2 :: برأيك ما فائدة وجود الانتربتر ؟ بكلمات اخرى
تستطيع شركة سن ان تنتج كومبايلر يقوم بالترجمة من لغة الجافا فورا الى لغة المشين دون الحاجة الى الانتربتر فلماذا لا يستغنى عن الانتربتر ؟
لا اريد ان اثقل على شخص واحد بالاسئلة
اكتفي بهذا
ومنتظر الاجابة
رغيد الطيب
05-12-2003, 04:06 PM
السلام عليكم ورحمة الله وبركاته ...
الامير الصنعاني جزيت خيراً اخي .. ويمكنك اعتباري موافق على الشروط بإذن الله تعالى ...
واسمح لي اخي بالاجابة على الاسئلة بحسب فهمي ... والله المستعان ...
اجابات الاسئلة المباشرة ...
ج1 ) يمكن النظر الى الفرق بينمها من منظورين مختلفين الاول ان الـ Compiler يقوم بترجمة البنية التركيبية لبرنامجك ويركز في ترجمته على الاخطاء الصيغية Syntax Errors ....
اما الانتربتر فيقوم بالترجمة الفورية ساعة تشغيل البرنامج بحيث يترجم الاوامر الموجوده فيه حتى يقوم بتنفيدها فوراً وتركيزة ينصب هنا على الاخطاء التشغيلية RunTime Errors...
واذا نظرنا الى الفرق من ناحية المخرجات فان الـ Complier ينتج لنا ملفات تحتوي عللا بيانات قريبة من لغة الآلة تسمة الـ ByteCode ولهذة الملفات امتداد خاص بها هو Class ...
بينما الانتربتر لاتوجد له مخرجات ذلك ان يقوم بترجمة الاوامر الموجودة في ملف الـ Class الذي يحتوي على الـ Byte Code ويترجمها الى مهام وظيفية تنفذ تلك اللحظة اي انه المسؤل على تنفيد البرنامج ( وذلك بالطبع بعد ان يوكن البرنامج قد تمت ترجمته بواسطة الـ Compiler كما اسلفنا ) ...
ج2 ) الاخطاء المتوقع الوقوع بها عند كتابة اي برنامج بواسطة اي لغة برمجة من ظمنها لغتنا الحالية الـ Java هي ثلاثة انواع اكتفي بذكرها لان التفصيل جاء في الدرس السابق ...
1 - Syntax Errors
2 - RunTime Errors
3 - Logical Errors
----------------------------------------------------------
اجابات الاسئلة غير المباشرة ....
ج1 ) السبب يعود هنا الى طبيعة الخطأ التشغيلي حيث انه لاينتج عن خطأ في تركيب اللغة ولكنه يتنج عن إغفال من قبل المبرمج فمثلاً عندما تكتب كود يقوم بطلب قيمة من المستخدم وبعد هذا يقوم البرنامج بقسمة مئة على القيمة التي ادخلها المستخدم !! ... من هنا لايمكن القول ان البرنامج يحتوي على خطأ وذلك لانك اذا قمت بتشغيله فأنه سوف يعمل ولكن توجد حالة سوف تسبب خطأ قاتل وذلك نظراً لأن المبرمج لم يأخذها في حسبانه وهذة الحالة هي عندما يقوم المستخدم بادخال صفر !! فهذا سيعني ان تتم قسمة المئة على صفر وهو شيء غير مقبول رياضياً ... وهنا ينتج خطأ تشغيلي ...
اضرب مثال آخر لنفرض انك قمت بعمل برنامج بسيط يفتح لك ملف اسمه مثلاً C:\AllFiles\MyFile.txt ثم يقوم بعرض محتوياته في الشاشة ... هذا البرنامج ايضاً سوف تتم ترجمته بشكل سليم دونما اي اخطاء ولكن الخطأ سيحدث في حالة تم أخد البرنامج الى كمبيوتر آخر وذلك لان البرنامج حينما سيحاول فتح الملف المذكور لن يجده في الجهاز الاخر لان وجوده في جهازك لايعني بالضرورة وجوده في اجهزة الغير ...
نلاحظ ان الاخطاء التشغليلة لا تنتج دائماً بل ان البرنامج ربما يعمل لسنوات عديدة دون ان يظهر ان فيه خطأ تشغليلي الى ان تأتي الفترة التي يحصل فيها شيء لم يكن بحسبان المبرمج يؤدي الى خطأ تشغليلي ... ولهذا يمكن تلافي الاخطاء التشغليلة بعمل اجراءات فحص اولية قبل القيام بتنفيد المهام الخطيرة مثل ان نقوم بجعل البرنامج يفحص العدد الذي ادخله المستخدم قبل القيام بالقسمة ... وكذلك الحال في البرنامج الاخر بحيث يقوم بالتأكد من وجود الملف قبل محاولة فتحه ... وهكذا ....
ج2 ) ان وجود الانتربتر وجعل الـ Compiler يترجم الى لغة وسيطة ByteCode له ميزة عظيمة في سهلولة نقل البرنامج بين الانظمة المختلفة دون تغيير في الكود ...
لتوضيح القصد فأن كل نظام يحتاج الى لغة آلة مختلفة اي انه اذا ترجمنا البرنامج الى لغة الآلة التي يفهمها الوينذوز فان لن يعمل اذا حاولنا تشغيله على نظام ماكنتوش لانه يريد لغة آلة مختلفة ... ولكن ترجمتة البرنامج الى لغه وسيطة ثم بعد ذلك جعل الانتربتر يقرر لغة الآلة الصالحة لكل جهاز يكسب برنامجنا نوع من الاستقلالية Independent Of OS عن نظام التشغيل وهي اهم الميزات التي حرصت عليها الجافا عن غيرها من الانظمة .... لهذا نلاحظ مؤخراً ان ميكروسوفت بدأت تركز على هذا المفهوم وهو مفهوم الاستقلالية وبدأت بالخطوات الاولى في هذا الطريق باصدارها مؤخراً للـ Visual Studio.Net واعتمادها على الـ DotNet Framework ومفهومه شبيه بالانتربتر في الجافا ... واللغة الوسيطة التي تستخدمها مايكروسوفت اسمها MSIL او Microsoft Intermidatte Language ويقوم الانتربتر الخاص بها والمسمى JIT او الـ Just In Time Compiler اي المترجم في نفس الوقت ( والمقصود الترجمة عن تشغيل البرنامج ) وهو نفس مبداء انتربتر الجافا ....
الحمد الله من قبل ومن بعد ...
والسلام عليكم ورحمة الله وبركاته ....
الامير الصنعاني
05-12-2003, 04:40 PM
بسم الله الرحمن الرحيم
ما شاء الله اخي رغيد الطيب
افدتنا باجاباتك
واسمح لي ان اوضح بعض الاجابات او ابسطها للانسان المبتدء
س1 :: علل
الخطاء التشغيلي run time error لا يكتشفه الكومبايلر اثناء الترجمة بينما يكتشفه الانتربتر
ج1 ::
الخطاء التشغيلي ان وجد يحدث اثناء تشغيل البرنامج
الانتربتر هو البرنامج الذي يقوم بالترجمة الى لغة المشين و تشغيل البرنامج بينما الكومبايلر يقوم بالترجمة من لغة الجافا الى لغة البايت كود فقط
فالخلل ان وجد سيطون في وقت التشغيل لذلك طبيعي ان يتعامل معه الانتربتر وليس الكومبايلر
س2 :: برأيك ما فائدة وجود الانتربتر ؟ بكلمات اخرى
تستطيع شركة سن ان تنتج كومبايلر يقوم بالترجمة من لغة الجافا فورا الى لغة المشين دون الحاجة الى الانتربتر فلماذا لا يستغنى عن الانتربتر ؟
ج2::
مثلما قلنا ان لكل معالج لغة مشين خاصة به فلو استغنينا عن الانتربتر نحتاج الى كومبايلر مخصص لكل معالج
والكومبايلر :- برنامج معقد جدا ومكلف جدا ويحتاج الى وقت كبير لانتاجه
بينما الانتربتر :- برنامج بسيط جدا جدا يسهل تكوينه
ويرجع سبب سهولة تكوين الانتربتر لان الوطيفة اللي بيقوم بها سهلة
وهي ترجمة من البايت كود الى لغة المشين
ومثلما ذكرنا مسبقا البايت كود لغة تشبه الى حد كبير لغة المشين
ان شاء الله يتبع الدرس الثاني
نجم اليمن
06-12-2003, 11:25 AM
الانتربرتر برنامج جزء من مشروع الكومبيلر ككل فالكمبيلر هو يعمل كترجمان ولكن كما ذكرت فبنائه يحتاج الى وقت كثير وامكانات خاصه ...
وشكرا
الامير الصنعاني
07-12-2003, 04:20 AM
الدرس الثاني ::: أساسيات في الجافا
الأ هداف المرجوة من الدرس
1- معرفة القواعد الاساسية في البرمجة بلغة الجافا
2- كتابة اول برنامج بالجافا
[line]
متطلبات هذا الدرس
• الالمام بما جاء في الدرس الاول
• تحتاج الى JDK
• تحتاج الى محرر جافا
• لا تحتاج الى اي خلفية مسبقة عن البرمجة
ان كنت تجيد البرمجة بأي لغة اخرى فهذا الدرس سيكون سهل جدا عليك
كيفية الحصول على متطلبات الدرس
احبذ ان تذهبوا الى محل بيع سيديهات ووتشتروا محرر JBuilder Borland وافضل الاصدار السابع وما فوقه
هنالك محرارت اخرى كثيرة استخدم اي محرر على راحتك
ويمكن الحصول على بعضها من النت
تستطيع الحصول على محرر ال JBuilder من النت من خلال هذا الموقع
http://www.borland.com/products/downloads/download_jbuilder.html#
هذا المحرر ينزل معه كل ما تحتاجه يعني ال JDK تتنزل معه واعتقد باحدث اصدار
هنالك محررات اخرى مثل
Text Pad
و JCreator
و IBM Visual Age for Java
وغيرها الكثير
بالنسبة للحصول على ال JDK
يمكنك الحصول عليها من هذا الموقع
http://java.sun.com/j2se/1.4.1/download.html
واضغط على زر داونلود الثاني تحت قائمة JRE
ملاحظة هامة جدا
في هذا الدرس هنالك اشياء ستكون غامضة نوعاً ما وانا لن اتعمق في شرحها في هذا الدرس فلا تقلق ان لم تفهمها
http://www.ic.sunysb.edu/stu/tkassim/prog.JPG
ناتج هذا البرنامج::
هذا البرنامج له نتيجتان تختلف نتيجته باختلاف ما يدخله المستخدم
النتيجة الاولى :: اذا كان ادخال المستخدم هو الحرف y تكون النتيجة كالتالي
هذا هو برنامجي الاول بالجافا
هل تريد المتابعة y
لقد اخترت المتابعة
شكراً مع السلامة
النتيجة الثانية :: اذا كان ادخال المستخدف هو اي حرف اخر غير y تكون النتيجة كالتالي مع افتراض ان ادخال المستخدم هو n
هذا هو برنامجي الاول بالجافا
هل تريد المتابعة n
مع السلامة
يتبع ان شاء الله شرح للبرنامج
نسراليمن
11-12-2003, 08:45 AM
ارجوا منك ان تعيد كتابه الكود بشكل اوضح لو سمحت
الامير الصنعاني
12-12-2003, 06:50 AM
http://www.ic.sunysb.edu/stu/tkassim/shr7.html
نجيب المجيدي
12-12-2003, 08:24 PM
شرح مفيد تستحق عليه الشكر و أود أن أشارك معاكم في هذا الموضوع
و جزاك الله خير
الامير الصنعاني
20-12-2003, 07:09 AM
يله يا شباب
اعتذر منكم
خلصت امتحاناتي اليوم
فليراجع المتابعين ما قد كتب
فان شاء الله سنستمر
بارك الله في الجميع
السلام عليكم ورحمة الله وبركاته.
لاداعي للاعتذار أخي الفاضل فكلنا لنا مشاغلنا أيضا ...أعاننا الله (جميعا )عليها .
أود أن أتساءل بالنسبة لرابط تحميل JBuilder حاولت التحميل لكن الموقع بدأ يطلب بيانات غريبة لا أدري لماذا هل من رابط أخر ... وهل من الأفضل أن يبدأ المتعلم التعامل مع المحررات البسيطة للجافا فأنا أستعمل الNotePad لكتابة البرنامج ومن ثم أنفذه من الDos ... أو أن يستعمل JBuilder Borland كما حبذت أنت ...
3laa3sam
21-12-2003, 09:57 PM
بعد الاذن الاول والاخير من (الامير الصنعاني)....انا شايف إن ال(J Builder) أفضل بكثير من أي اداه ثانيه وأنا يعني بنصح فيها ، عموماً إنتي لو سكنه في مدينة عدن روحي لإي حته وهتلاقي معاها إلي عاوزاها وأنا شايف إن ده (أمن أكثر) من حكايه التحميل من النت....وعفواُ ياجماعه ع المداخله !!!
نص مقتبس من رسالة : نجيب المجيدي
شرح مفيد تستحق عليه الشكر و أود أن أشارك معاكم في هذا الموضوع
و جزاك الله خير
الامير الصنعاني
25-12-2003, 12:59 AM
كنا قد وضعنا اول برنامج بلغة الجافا وقمنا بشرحه
وفي البرنامج كنا قد تعاملنا مع بعض المتغيرات وقلنا ان المبرمج له حرية اختيار اسم المتغير وفق ضوابط معينة
وفي هذا الدرس سنتكلم عن هذه الضوابط وعن انواع المتغيرات
• ضوابط وشروط كتابة المتغيرات
1- يجب ان يبدأ اسم المتغير باحدى الحروف الانجليزية (A-Z) او (a-z)
(مثال لا يمكن ان يكون الحرف الاول رقم)
2- يجب ان لا يحتوي الاسم على بعض الرموز (كالفاصلة او الفراغ)
3- يجب ان لا يكون الاسم مطابق للكلمات المحجوزة للجافا ( مثل if او public)
4- متغير اسم البرنامج يجب ان يكون مطابق لاسم ملف الجافا
ففي برنامجنا كان متغير اسم البرنامج MyProgram فلا بد ان يكون البرنامج محفوظ في ملف MyProgram.java
5- لا يمكن استخدام نفس الاسم لاكثر من متغير
6- لغة الجافا تفرق بين الحروف الانجليزية الكبيرة والحروف الصغيرة
بمعنى ان المتغير myProgram يختلف عن المتغير MyProgram ويختلفا عن المتغير myprOgram
• انواع المتغيرات
تقسم المتغيرات على حسب القيمة التي تخزنها.
وهذه القيم قد تكون اعداد او حروف او غيرها.
- قيم الاعداد الصحيحة
1- البايت byte
2- الشورت short
3- الانت int
4- اللونق long
- قيم الاعداد النسبية
1- الفلوت float
2- الدبل double
- قيم الحروف والرموز
1- الكاركتر char
- قيم منطقية
1- البولين boolean ومتغيرات هذا النوع لها قيمتان true او false
وهذه الانواع كلها تسمى primitive types
وهنالك قسم اخر Object types سنتكلم عنها لاحقاً.
• كيفية انشاء المتغيرات
لانشاء المتغيرات نقوم بكتابة نوع المتغير اولاً ثم اسم المتغير يتبعها هذه العلامة ;
امثلة
1- int x;
متغير باسم x من نوع انت (int) يخزن قيمة عدد صحيح
2- boolean xx;
متغير باسم xx من نوع بولين (boolean)
3- double number = 3.6;
متغير باسم number من نوع (double) عدد نسبي يحمل القيمة 3.6
4- boolean isWorking = false;
متغير باسم isWorking من نوع (boolean) تحمل القيمة false
5- char letter = 'a';
متغير باسم letter من نوع (char) يحمل القيمة الحرف a
ملاحظة الحروف والرموز تكتب بين ضمتين كما هو مبين بالمثال
• بعد قرائتك هذا الدرس ان كنت مبتدئا فلا تقلق من الغموض وعدم الوضوح الذي قد تشعر به
• اما ان كنت غير مبتدء فمثل هذا الدرس بديهي جدا
اكرر
هنالك اشياء غامضة كثيرة لا تتعب نفسك الان في حاولة فهمها
يكفي حفظها ومع الوقت سوف تصبح سهلة تماماً
يتبع ان شاء الله اسئلة تتعلق بهذا الدرس
نجيب المجيدي
25-12-2003, 04:20 PM
أشكرك أخي الأمير على معاودتك للدروس الخاصة بهذه اللغة حيث أنني كنت أنتظرك
بشوق شديد لتتابع الدروس , فهذه اللغة رائعة فعلاً.
كما أنها ستفيدني في التعرف أكثر على تقنية OOP
ولي سؤال إذا سمحت لي :
هل تتبع لغة VB.NET نفس الأسلوب
وبمعنى آخر (إذا استطعت فهم هذه اللغة جيداً
فهل سأستطيع البرمجة باستخدام VB.NET.
وآسف جداً على مقاطعتي للدروس بهذا السؤال !!
وأكرر شكري الجزيل لك أخي.
طالبة علم
25-12-2003, 09:51 PM
السلام عليكم ورحمة الله ...
أشكرك أخي الأمير على معاودتك للدروس الخاصة بهذه اللغة حيث أنني كنت أنتظرك
بشوق شديد لتتابع الدروس , فهذه اللغة رائعة فعلاً.
كما أنها ستفيدني في التعرف أكثر على تقنية OOP
و لدي اقتراح أخي الفاضل أرجو أن تتقبله بصدر رحب ... فأنت جزاك الله كل خير قد بادرت باعطاء مالديك من معلومات عن لغة البرمجة هذه و أرى أنه من المتعب أن تواصل ذلك لوحدك ...
وحتى لا نثقل عليك أقترح أن يتم اختيار كتــــاب معين من الكتب الألكترونية التي تشرح لغة الجافا ... (بحيث يكون الحصول عليه سهل) ونبدأ مع بعضنا بدراسة أقسامه واجراء النقاش عن مادته تحت اشرافك ومن ثم في نهاية كل فصل من الكتاب مثلا يتم وضع الاستفسارات للنقاش ... وأيضا ســــــــــؤال للاجابة عليه ، لتكون فعلا دورة حقيقية ...
رغيد الطيب
26-12-2003, 12:24 AM
السلام عليكم ورحمة الله وبركاته ...
الاخ العزيز الصنعاني جزاك الله خيراً عن و قتك الذي تزهقه من اجلنا وجزاك الله عما تقدم لنا خيراً ... و استميحك عذراً اخي في التعقيب على إستفسار الاخ العزيز نجيب ... واتمنى ان يتسع صدرك اخي الكريم ..
عزيزي نجيب بالنسبة OOP فهي تقنية ينبغي على كل مهتم بالبرمجة التعمق فيها اكثر لما لها من فائدة كبيرة ولكي تتمكن من أخذ فكرة اعمق عنها يجب عليك استخدام احدى اللغات التي تدعم هذة التقنية وهو ما ستجده سواءً في الجافا او في الرائعة VB.NET ...
اما الاسلوب فيوجد اختلافات كبيرة بين الجافا والدوت نت فلا يخفى عليك اخي ان كثيراً من مبرمجي الفيجوال بيسك الاصدار 6 يجدون صعوبة في الانتقال الى برمجة الدوت نت فكيف هو الحال مع مبرمجي الجافا !
ولكي تكون الامور اوضح فان هذا لا يعني صعوبة الدوت نت على الاطلاق اجدها سهلة جداً ولذيذة ايضاً ولكن المربك هو حجم اللغة التي اصبحت لغة جبارة فلم تعد امكانيات اللغة يمكن حصرها كما كان الحال مع الفيجوال بيسك 6 لهذا قليل من الصبر وحب البرمجية سيصلان بالمجد المحب للبرمجة الى اتقاناها بإذن الله تعالى ... اما مبرمجي الجافا فقد حرصت مايكروسوفت كل الحرص على اجتذابهم الى لغاتها البرمجية و بهذا بزغ نور اللغة الوليدة الجديدة المسماه سي شارب #C وهي لغة جمعت بين سلاسة الفيجوال بيسك و تركيب السي والجافا النحوي لهذا فاني اتوقع ان مجيدي الجافا لن يبذوا ابداً الانتقال الى VB.NET بل الى #C ... واليك اخي هذا المثال البسيط ...
لكي تطبع الارقام الزوجية المحصورة بين 1 و 10 في موجة الدوز بلغة الجافا ... فان سوف تكتب برنامج كالتالي :
class Class1
{
public static void main(String[] args){
int i;
for (i=1; i<=10; i++)
{
if(i%2==0) System.out.println(i);
}
}
}
ولكي تقوم بنفس العمل في لغة الـ #C فان شكل الربنامج يصبح :
class Class1
{
[STAThread]
static void Main(string[] args)
{
int i;
for (i=1; i<=10; i++)
{
if (i%2==0) Console.WriteLine(i);
}
}
}
اما اذا اردته بإستخدام الفيجوال بيسك دوت نت VB.NET فانه يصبح :
Module Module1
Sub Main()
Dim I As Integer
For I = 1 To 10
If (I Mod 2) = 0 Then Console.WriteLine(I)
Next
End Sub
End Module
وبنظرة سريعة على الاكواد السابقة يمكنك التمييز بسرعة انه لايكاد يود فرق بين الجافا و الـ #C إلا في اوامر الاظهار التي هي في الجافا System.out.println و في السي شارب هي Console.WriteLine اما الفيجوال بيسك دوت نت فانه يظهر الفرق وإن لم يكن كبيراً إلا انه لاي قارن مع التشابه الكبير بين اللغتين السابقتين ..
لهذا اخي فكما اسلفت ان الفيجوال بيسك دوت نت هو التطور الطبيعي لمبرمجي الفيجوال بيسك 6 و اما السي شارب فهو الاكثر ملائمة للمنتقلين من لغات اخرى كالجافا او السي ...
ولكن هذا لايعني ان تعلم الجافا لايفيد بل على العكس فكلما زاد اطلاع المبرمج على لغات الغير كلما زادت خبرتة في لغته ... فعلى الرغم من اني لا اتصور ولا ارضى لنفسي ان اكون سوى مبرمج فيجوال بيسك بكل اصدارته لتعلقي الشديد به إلا انك تجدني احد المتابعين وبنهم شديد لدروس اميرنا العزيز ...
اخيراً اتمنى ان يغفر لي الامير الصنعاني خروجي غير المبرر عن تسلسل الدروس الرائعة .. وله مني وكل الحاظرين الدعاء بالغفران والرحمة من رب العالمين ...
والسلام عليكم ورحمة الله وبركاته ...
الامير الصنعاني
26-12-2003, 12:50 PM
بسم الله الرحمن الرحيم
الاخ نجيب المجيدي
اهلا وسهلا بك ولا داعي للشكر واعذرني على التاخير ولكن ان شاء الله لن يتكرر
ووان شاء الله يكون في كلام الاخ الفاضل جواب لاستفسارك
بارك الله فيك وفيه
تحياتي لكما والسلام
الامير الصنعاني
26-12-2003, 01:03 PM
الاخت الفاضلة طالبة علم
لا استطيع ان الزم احدا بشيء مما ذكرتي
ومن جهتي اقتراحك رائع ومقبول
وهذا الشيء يعود اليكم وانا معك ومع البقية
بارك الله فيكم اختنا الفاضلة
بس ملاحظة بسيطة
(انا بحاول في هذه السلسلة من الدروس ان يستفيد الجميع
ويهمني كثيرا ان يستفيد المبتدئين اللي ما عندهم خبرة في البرمجة بتاتاً
)
يتبع ان شاء الله اسئلة موجهة لمتابعي هذه الدروس
نجيب المجيدي
26-12-2003, 04:50 PM
ابدأ بالشكر لأخي العزيز رغيد على رده الواضح وأعتقد أني الآن مهيء أكثر للانتقال إلى VB.NET ولكن هذا لن متابعتي بحرص كل ما سيكتبه الأمير
واجد في اقتراح الأخت طالبة العلم فكرة تستحق الدراسة من الأمير الصنعاني وله في الأخير حرية الاختيار في الطريقة التي يراها مناسبة لمواصلة الدروس جزاه الله عنا كل خير
الامير الصنعاني
27-12-2003, 01:04 PM
بسم الله الرحمن الرحيم
اخواني الافاضل
كنت قد بحثت في النت عن كتب في الجافا باللغة العربية فلم اجد
ووجدت مجموعة من الكتب الانجليزية
فان وافقتم على اعتماد كتاب
Introduction to Computer Science using Java
فانا معكم
وان اردتم الاستمرار على ما نحن عليه فانا كذلك معكم
المهم
الان ساضع مجموعة اسئلة تتعلق بما سبق لكي اتأكد من ان الدرسين السابقين مفهومين لدى المتابعين
س1:: غير البرنامج الموجود في الدرس بحيث يكون ناتج البرنامج التالي
--------------------------------------------------------------
اختر من القائمة التالية
1- ادخال الاسم
2- ادخال العمر
3- ادخال الجنسية
اختر (1-2-3):
* في حالة كان الاختيار 1
ادخل اسمك: Hamza
مع السلامة
* في حالة كان الاختيار 2
ادخل عمرك : 19
مع السلامة
في حالة كان الاختيار 3
ادخل جنسيتك : Yemen
مع السلامة
------------------------------------------------------------------------------
س2 : صح ام خطأ (مع تصحيح الخطأ)
1- Int هو احد انواع المتغيرات في الجافا
2- boolean احد انواع المتغيرات التي تحمل القيمة صفر او واحد
3- int 3c; متغير من نوع انت ( عدد صحيح)
4- int P;
char p;
خطاء املائي حيث ان المتغيرين لهما نفس الاسم
------------------------------------------
س3 ::
في البرنامج المشروح في الدرس
استخرج كل المتغيرات الموجودة مع ذكر نوعها
-----------------------------------------------------
سؤال لمن عندهم خلفية في لغة برمجة اخرى
هل لدى اللغة الاخرى التي تجيدها نفس انواع المتغيرات الموجودة في الجافا ؟
-------------------------------------------------------------------------
تحياتي والسلام ختام
طالبة علم
27-12-2003, 07:05 PM
السلام عليكم ورحمة الله ...
المطلوب الأول :
( عملت على اظهار كيفية سير البرنامج دون أن أجعل المستخدم يدخل بياناته لعدم معرفتي بأوامر )الادخال في الجافا
public class Choice
{
public static void main(String args[])
{
System.out.println(" Enter Your Choice 1(To get Name), 2(To get Age), 3(To get Country) ");
System.out.print( " Your Coice = ");
char response = SaveitchIn.readNonwhiteChaR();
if (response == "1")
System.out.println(" TALEBT3ELM ... GOODBY ");
if (response == "2")
System.out.println(" 23 ... GOODBY ");
if (response == "3")
System.out.println(" Yemen ... GOODBY ");
}
}
المطلوب الثاني :صح ام خطأ (مع تصحيح الخطأ)
- Int هو احد انواع المتغيرات في الجافا (True)
2- boolean احد انواع المتغيرات التي تحمل القيمة صفر او واحد (False) الا ان كانت لغة الجافا تقابل True ب 0 و False ب 1
3- int 3c; متغير من نوع انت ( عدد صحيح) (False) ;لايبدأ المتغير برقم الصح int c3;
4- int P;
char p;
خطأ املائي حيث ان المتغيرين لهما نفس الاسم (True)
المطلوب الثالث :
س3 ::
في البرنامج المشروح في الدرس
استخرج كل المتغيرات الموجودة مع ذكر نوعها
ans as char (primitive data type)
args as array of Strings ( Obgect (Reference!) data type )
بالنسبة للكتاب الذي أوردته Introduction to Computer Science using Java أتمنى أن ترفق الموقع الذي يحويه حتى يتسنى لنا التحميل ومن ثم الاطلاع على محتواه ...
...
vBulletin® v3.8.4, Copyright ©2000-2010, Jelsoft Enterprises Ltd.