بسم الله (سلسلة دروس في الجافا)

الكاتب : الامير الصنعاني   المشاهدات : 19,355   الردود : 235    ‏2003-12-05
      مشاركة رقم : 1    ‏2003-12-05
  1. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    بسم الله الرحمن الرحيم
    بذكره نبدأ وبه نستعين
    والصلاة والسلام على خير المرسلين
    محمد الصادق الامين
    وبعد
    ان شاء الله
    هنا ساضع دروس الجافا اللي وعدتكم بها وان شاء الله تكون مفيدة لكم
    [color=FF0000]وانا قد اشترطت عليكم بعض الشروط وهي
    1- الصبر والالتزام والمتابعة
    2- التفاعل مع الدروس
    مش قصدي تجلسوا تشكروني او تمدحوا فيني كل ما وضعت درس
    لا لا لا هذا كلام مرفوض
    انا بحط اسئلة تتعلق بالدرس بكل درس وبحدد من يجيب على الاسئلة فلازم تتفاعلوا معي
    3- التقيد بالتعليمات اللي بتلقوها بالدرس
    4- فيه لكل درس متطلبات لازم توفروها بأي طريقة وتوفيرها سهل جدا المهم لا تكونوا بخلاء
    [/color]

    وكانت الاخت Nora الى هذه اللحظة هي الموافقة الاولى على هذه الشروط
    لذلك ان شاء الله سأبدأ معها
    [color=0000FF]ومن اراد الانضمام الينا ما عليه الا الموافقة على الشروط المذكورة انفا
    لكن لا يضع موافقته في هذا الموضوع
    يا ريت يضع موافقته في الموضوع السابق اللي بعنوان لغة الجافا وهو على هذا الرابط[/color]


    http://www.ye1.org/vb/showthread.php?s=&threadid=58612&perpage=10&pagenumber=1

    [color=FF00FF]وهنالك شرط خامس احب ان اضيفة
    5- في هذا الموضوع وعلى هذه الصفحات يمنع منعا باتاً استخدام اي جمل او عبارات خارجة عن تعلم الجافا
    بالكلام الصريح الفصيح
    عبارت المدح والشكر والثناء كلها عبارات خارجة عن الموضوع واتمنى ما اشوف اي منها على هذه الصفحات[/color]


    يتبع ان شاء الله الدرس الاول
     
  2.   مشاركة رقم : 2    ‏2003-12-05
  3. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    [color=FF0000]الدرس الاول :: مقدمة في الكمبيوتر والجافا[/color]

    [line]
    [line]
    [color=0000FF]متطلبات هذا الدرس
    هذا الدرس لاي شخص مبتدأ . فلا تحتاج الى اي خلفية عن اي شيء . كل ما تحتاجه هو تفتح مخك وتحاول تفهم[/color][line]
    [line]

    • مقدمة عن الكومبيوتر

    الكمبيوتر (الحاسوب) نقدر نقسمه الى قسمين ال hardware و ال software
    ال hardware :- عبارة عن الجزء الملموس من الادوات والقطع المكونة للكمبيوتر كالشاشة والكيبورد والفأرة والقطع اللي داخل
    ال program :- عبارة عن مجموعة من الاوامر والتعليمات التي ينفذها الكمبيوتر
    ال software :- عبارة عن مجموعة من البرامج (programs)

    الهاردوير hardware
    1- وحدات الادخال :- وهي عبارة عن الادوات والقطع التي عن طريقها يستلم الكمبيوتر الاوامر والتعليمات من الانسان
    أمثلة :- الفأرة + الكيبورد+...
    2- وحدات الاخراج :- وهي عبارة عن الادوات والقطع التي عن طريقها يعرض الكمبيوتر ناتج عملية تنفيذ الاوامر المتلقاه من الانسان
    أمثلة :- الشاشة + الطابعة +...
    3- المعالج (Processor) CPU :- عبارة عن قطعة مهمة (مخ الجهاز) تقوم باستقبال الاوامر والتعليمات من وحدات الادخال وتقوم بعرض نتائج تنفيذ هذه الاوامر والتعليمات على وحدات الاخراج
    أمثلة :- معالج بانتيوم 1 + معالج بانتيوم 2+ معالج بانتيوم 4 + معالج امدي اثلون +...
    4- الذاكرة :- وهي عبارة عن قطع وادوات يتم فيها خزن المعلومات اللازمة لتنفيذ الاوامر والتعليمات كما يتم فيها خزن نتائج تنفيذ الاوامر والتعليمات

    [line]
    سؤال:: ماذا يحدث عندما تريد ان تحرك مؤشر الفأرة ؟؟؟؟؟؟؟؟؟؟؟؟
    الاجابة:
    1- يقوم الانسان بتحريك وحدة الادخال ( الفارة)
    2- عند تحرك الفأرة يستقبل المعالج امر بتحريك المؤشر على الشاشة
    3- يقوم المعالج بتحريك المؤشر وتظهر النتيجة على وحدة الاخراج (الشاشة)

    يتبع ان شاء الله
    • مقدمة عن البرمجة
     
  4.   مشاركة رقم : 3    ‏2003-12-05
  5. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    • مقدمة في البرمجة
    كما تعلمنا من مما سبق ان المعالج البروسسر ( Processor) هو مخ الجهاز اللي يقوم باستلام الأوامر من الانسان عن طريق وحدات الادخال ويقوم بتنفيذها وعرض النتائج على وحدات الاخراج
    والسؤال المطروح هنا كيف يعمل المعالج ؟؟
    المعالج مصمم بحيث يتعامل مع لغة معينة يفهمها تماما هذه اللغة تسمى Machine language (لغة المشين) وكل معالج لا يفهم الا لغته المخصصة له
    هذه اللغة ليست موحدة فباختلاف المعالج تختلف اللغة وهذه اللغة تكتب بالارقام ال (0,1)
    يوجد ايضاً لغات تسمى بالاسمبلي Assembly Language هذه اللغات قريبة جدا من لغة المشين انما تختلف عنها بشكل بسيط
    وبسبب هذا الاختلاف البسيط لا يستطيع المعالج فهم هذه اللغة مباشرة فيحتاج الى مترجم يترجم من لغات الاسمبلي الى لغات المشين
    ولان لغات الاسمبلي قريبة جدا من لغات المشين فالترجمة من والى لغة المشين سهلة جدا فيوجد برنامج معين يقوم بهذه الترجمة وهذا البرنامج اللي يقوم بالترجمة يختلف من جهاز الى جهاز
    وذلك لاختلاف لغات المشين من جهاز الى جهاز
    انشاء برامج بلغات الاسمبلي يعتبر امر صعب جدا بالنسبة للانسان انما ليس مستحيلا ويوجد حتى الان الكثير من من يتقنون هذه اللغات
    المهم بعد هذه اللغات يوجد لغات اكثر سهولة وتكون مقاربة للغة الانجليزية مثل لغة السي ++ الجافا وغيرها
    [color=0000FF]الخلاصة
    أ- لغات البرمجة تنقسم الى قسمين
    1- Low Level Languages :- وهي اللغات التي يصعب على الانسان فهمها مثل لغة المشين والاسمبلي
    2- High Level Languages :- وهي اللغات التي يسهل على الانسان فهمها مثل لغة الجافا والسي والسي++

    ب- المعالج لا يفهم الا لغة مشين خاصة به فعند كتابة اي برنامج بأي لغة ما يجب ترجمتها الى لغة المشين الخاصة بالمعالج
    [/color]

    نحن ان شاء الله تعالى سنركز على لغة الجافا
    يتبع ان شاء الله مقدمة عن لغة الجافا
     
  6.   مشاركة رقم : 4    ‏2003-12-05
  7. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    • مقدمة عن الجافا

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

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

    كيف يفهم المعالج لغة الجافا ؟؟؟
    عند كتابة برنامج بلغة الجافا يكون هذا البرنامج مكتوب على ملف يحمل الامتداد java
    مثلاً Calculator.java
    هنالك برنامج مترجم ( Compiler) يترجم لغة الجافا الى لغة تسمى لغة البايت كود ( لغة قريبة جدا من لغة المشين)
    يقوم الكومبايلر بترجمة Calculator.java الى ملف اخر يحتوي على لغة البايت كود ويحمل الامتداد class
    الملف الجديد بعد الترجمة Calculator.class
    رغم ان لغة البايت كود لغة قريبة جدا من لغة المشين الا ان المعالج لا يفهمها فيوجد برنامج مترجم اخر يترجم من لغة البايت كود الى لغة المشين يسمى هذا البرنامج الانتربتر Interpreter
    لكن في هذه العملية لا يتم تكوين اي ملف جديد
    اللي بيحصل ان الانتربتر بياخذ لغة البايت كود Calculator.class ويترجمها الى لغة المشين وفورا يقوم المعالج بتنفيذها وتظهر النتيجة على الشاشة اي انه لا يتم حفظ لغة المشين على ملف


    وهذا شكل يبين الكلام السابق

    [​IMG]


    وتتميز الجافا بان لها كومبايلر موحد وهذه ميزة تفتقدها معضم اللغات الاخرى
    [​IMG]


    الاخطاء في البرمجة بلغة الجافا؟؟
    عندما نكتب برنامج ما بلغة الجافا قد نقع في اخطاء هذه الاخطاء هي ثلاثة اصناف فقط
    الصنف الاول :- الخطاء النحوي Syntax error:- وهي الاخطاء في الاسبلنق اي اخطاء املائية في كتابة اللغة
    الصنف الثاني :- خطاء تشغيلي Run Time Error:- وهي الاخطاء التي تحدث اثناء التشغيل مثلا القسمة على الصفر فعند محاولة القيام بعملية القسمة على الصفر نحصل على هذا النوع من الاخطاء
    الصنف الثالث :- خطاء منطقي Logic Error :- وهي الاخطاء الحسابية مثلا نريد جمع عدين وبالخطأ بدل ان نجمعهما قسمناهما هذا خطأ منطقي


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


    ------------------------
    بهذا الكلام اختتم الدرس الاول

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

    طبعا انا بعد كل درس بضع اسئلة تتعلق بهذا الدرس
    والى حد الان الاخت Nora هي اللي معاي
    فبنتظر فترة
    وبعدين انزل الاسئلة
    والان اي واحد عنده استفسار عن اي شيء يتعلق بهذا الدرس فليتفضل

    تحياتي والسلام ختام
     
  8.   مشاركة رقم : 5    ‏2003-12-05
  9. رغيد الطيب

    رغيد الطيب عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    58
    الإعجاب :
    0
    السلام عليكم ورحمة الله وبركاته ...

    الاخ العزيز الامير الصنعاني جعل الله ما تكتبه في ميزان حساناتك ووفقني واياك للاخلاص في العمل ....

    اخي العزيز راق لي الموضوع كثيراً .... ولي استفسار ... وودت ان تجيب عليه إن كان في وقتكم كفاية ...

    سؤالي هو ان كان للجافا مترجم واحد Complier فهل من المعقول ان يكون لها Interptuer واحد يعمل على كل الانظمة حتى غير الوينذوز منها ...

    و ان كان الامر على عكس ذلك كما هو موضوح في رسمتك التوضيحية ( اي ان لكل نظام Interptuer خاص به ) فهل هذا يعني انه يجب علي ان اقوم بتحميل هذة الـ Interptuers في الانظمة ام انها تأتي ضمنياً بها ؟

    و لي بعض الاستفسارات الاخرى اذكرها في حينها بإذن الله تعالى اعانني الله على وضع السؤال المناسب في المكان المناسب حتى لا اشتت الخطة التسلسلية التي تسير عليها اخي العزيز ... سدد الله خطاك ...

    والسلام عليكم ورحمة الله وبركاته ...
     
  10.   مشاركة رقم : 6    ‏2003-12-05
  11. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    اهلا وسهلا بالاخ رغيد الطيب

    س 1 :: ان كان للجافا مترجم واحد Complier فهل من المعقول ان يكون لها Interptuer واحد يعمل على كل الانظمة حتى غير الوينذوز منها؟

    ج1 :: للجافا كومبايلر واحد ولكل جهاز انتربتر خاص به

    --------------------------------------------------
    س2 : ان كان الامر على عكس ذلك كما هو موضوح في رسمتك التوضيحية ( اي ان لكل نظام Interptuer خاص به ) فهل هذا يعني انه يجب علي ان اقوم بتحميل هذة الـ Interptuers في الانظمة ام انها تأتي ضمنياً بها ؟

    ج2:: هنالك ما يسمى بال JAVA DEVOLPMENT KIT JDK ويجب تحميلها على جهازك وفيها كل البرامج التي تحتاجها لترجمة وتشغيل برامج الجافا
    فيها الكومبايلر والانتربتر وكل ما تحتاجه



    أتمنى ان تكون اجاباتي شافية وكافية على تساؤلاتك

    ولا تترد اخي في الاستفسار عن اي شيء

    تحياتي والسلام ختام
     
  12.   مشاركة رقم : 7    ‏2003-12-05
  13. Nora

    Nora عضو

    التسجيل :
    ‏2003-09-04
    المشاركات:
    59
    الإعجاب :
    0
    السلام عليكم ورحمة الله وبركاته .

    تحدثت عن ال JDK فما الاختلافات بين الاصدارات المختلفة لها.

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

    وجزاك الله كل الخير أخي الفاضل ...
     
  14.   مشاركة رقم : 8    ‏2003-12-05
  15. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    وعليكم السلام ورحمة الله
    س1 :: تحدثت عن ال JDK فما الاختلافات بين الاصدارات المختلفة لها.
    ج1 :: كما ذكرتي هنالك اصدارات مختلفة لل JDK
    وكلما نزل اصدار جديد بيكون افضل من اللي قبله من عدة نواحي اهمها
    1- الاصدار الاحدث يصلح مشاكل او بعض العثرات الموجودة في الاصدارات السابقة
    2- الاصدار الاحدث قد يحتوي على تعديلات لبعض الملفات تحسن من جودة البرامج
    3- الاصدار الاحدث عادة يحتوي على ملفات وبرامج اضافية تساعدة في بناء برامج بلغة الجافا

    0000000000000000000000
    س2 ما هي المدة الفاصلة بين كل درس؟؟
    اجابة هذا السؤال ترجع اليكم انتم
    انا شخصياً بعد وضع كل درس بعطي مهلة لكي تسئلوا
    وبعدها بضع اسئلتي الشخصية عليكم
    وبعدما تجاوبوا انتم على الاسئلة بحط الدرس الثاني

    ان شاء الله
     
  16.   مشاركة رقم : 9    ‏2003-12-05
  17. الامير الصنعاني

    الامير الصنعاني مشرف سابق

    التسجيل :
    ‏2002-05-04
    المشاركات:
    9,034
    الإعجاب :
    298
    بسم الله الرحمن الرحيم
    مثلما قلت لكم في البداية في الشروط التي وضعتها
    انني ساضع اسئلة بعد كل درس تتعلق بالدرس
    وانتم عليكم الاجابة عليها ( ملزمين)
    وللاسف الى حد الان الاخت Nora فقط هي الوحيدة التي وعدت بالالتزام بهذه الشروط اما بالقية فلم ارى منهم اي تعقيب على الشروط
    ولذلك
    الاسئلة التي ساطرحها كلها موجهة للاخت Nora (ما لم يحصل اي تغيير )
    الاخت Nora حاولي ان تجيبي على هذه الاسئلة
    ** اسئلة مباشرة
    س1 :: ما الفرق بين الكومبايلر والانتربتر ؟؟؟
    ----
    س2 :: ما هي الاخطاء الممكن حدوثها عند كتابة برنامج ما بلغة الجافا ؟؟
    ---

    ** اسئلة غير مباشرة (شوية صعبة وتحتاج تفكير)
    س1 :: علل
    الخطاء التشغيلي run time error لا يكتشفه الكومبايلر اثناء الترجمة بينما يكتشفه الانتربتر

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



    لا اريد ان اثقل على شخص واحد بالاسئلة
    اكتفي بهذا
    ومنتظر الاجابة
     
  18.   مشاركة رقم : 10    ‏2003-12-05
  19. رغيد الطيب

    رغيد الطيب عضو

    التسجيل :
    ‏2003-07-09
    المشاركات:
    58
    الإعجاب :
    0
    السلام عليكم ورحمة الله وبركاته ...

    الامير الصنعاني جزيت خيراً اخي .. ويمكنك اعتباري موافق على الشروط بإذن الله تعالى ...


    واسمح لي اخي بالاجابة على الاسئلة بحسب فهمي ... والله المستعان ...

    اجابات الاسئلة المباشرة ...

    ج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 اي المترجم في نفس الوقت ( والمقصود الترجمة عن تشغيل البرنامج ) وهو نفس مبداء انتربتر الجافا ....



    الحمد الله من قبل ومن بعد ...

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

مشاركة هذه الصفحة