صفحة 1 من 7 123456 ... الأخيرةالأخيرة
النتائج 1 إلى 15 من 95

الموضوع: الكامل في السي شارب

  1. #1
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Thumbs up الكامل في السي شارب

    بسم الله الرحمن الرحيم

    سنعقد هنا دورة السي شارب بإذن الله ...

    وإليكم البداية

    المحاضرة الأولى : ( ساعة ونصف )

    تاريخ الـ . NET منذ بداية صناعة الحاسوب :

    - في بداية الأمر خرج أناس عرفوا بإسم المهندسين والمصممين والعلماء اللذين قاموا بتصميم وهيكلة جهاز الحاسوب وقد نتج عن ذلك جهاز ضخم إحتوى على 5 طوابق تقريباً من النوع الكبير . وكانت فكرة إنشاء جهاز حاسب آلي قد نتجت إثر ضخامة المعلومات وإزالة طريقة الكتابة على الورق وإزالة الوقت الكبير للعمليات الحسابية الأربعة .
    - IBM كانت من الشركات الرائدة والسباقة في هذا المجال بحيث كانت تصمم جهاز حاسب آلي و تضع فيه نظام تشغيل صغير Operating System ( O.S ) والتي أدت فيما بعد إلى تطور مصطلح نظام التشغيل O.S والحاجة إلى تطويره .
    - ومعنى نظام التشغيل : هو النظام الذي يستخدم أجهزة الهاردوير الموجودة لدى الحاسوب .
    - في ذلك الوقت ظهر طالبين من إحدى الجامعات الأمريكية اللذان كانا في مستوى سنة ثانية من تطوير وتصميم نظام تشغيل خاص بهما والذي أسفر فيما بعد عن ثورة معلوماتية ضخمة وهما الطالبان بلقتس وصاحبه وكان هندي الأصل .
    - عندما نظرت شركة IBM إلى النظام الذي صُمم بواسطة هذين الطالبين تبنت نظامهما بالكامل وعملت على تشجيعهما والذي أدى إلى أن تركا الدراسة وفتحا شراكة مع شركة IBM .
    - كان النظام يدعى DOS – 8 Bit وكلمة DOS جاءت من الجملة المختصرة Disk Operating System ومعناها قرص نظام التشغيل . أما القسم الثاني من النظام فهو كناية ودلالة على عدد الخانات المستعملة لكل جملة Instructor وهي أوامر النظام ونلاحظ هنا أن عددها 8 أي أننا عندما نضغط على لوحة المفاتيح من خلال النظام فإن الحاسوب يقوم بفهمها على أساس 8 أرقام ثنائية ( 1 , 0 ) . وكما نعرف فإن الحاسوب لا يمكنه التعامل مع الحروف وإنما بواسطة الأرقام الثنائية Binary فمثلاً لإدخال حرف A فإن الحاسوب يفهمها ( ******** ) والنجمة معناها إما 1 أو 0 .
    - من خلال هذا النظام ظهرت لغة الأسمبلي الشهيرة والمعقدة ومعناها لغة التجميع .
    - بواسطة لغة الأسمبلي كان العمل صعباً وكانت الجمل طويلة وعدد سطورها طويلة حيث أن المبرمج كان يتعامل مع الذاكرة مباشرة من خلال وضع وجمع وحذف .. إلخ قيمتين مخزنتين في الذاكرة ، لذلك فقد كان يتوجب على المبرمج مثلاً لطباعة كلمة أن يكتب 5 أو 6 سطور لتنفيذ ذلك . و نتيجة لذلك كان لابد من إيجاء طريقة جديدة لتوفير الوقت والتقليل من حجم البرنامج فقاموا بإبتكار طريقة جديدة وهي طريقة الدوال Function حيث قاموا بوضع أكثر من Instruction بدالة واحدة فقط ومن هنا نشأ مفهوم المكتبات التي تضم أكثر من دالة وتطورت البرمجة فعرفت بإسم Structured Programming ومعناها البرمجة التركيبية . نتيجة لذلك طُورت عدة لغات مثل COBOL ولغة C الشهيرة و FORTRON .
    - بعدد تلك اللغات وبسبب الحاجة إلى إضافة كلمات فقد تم إضافة وتوسعة النظام لكي يصبح DOS – 16 Bit .
    - كانت شركة أبيل ماكنتوش قد عملت على تطوير نظام عجيب وكان فريد من نوعه فقد كان يستخدم الصور للدلالة على الأعمال فظهر شكل الملف وشكل المجلد ... إلخ وذلك بدل الشاشة السوداء التي كانت معروفة في ذلك الوقت والمسماة Console وبذلك النظام تم معرفة الـ Interface ومعناها الواجهة والتي كانت User-Friendly حيث كان التفاعل مع المستخدم تفاعلاً مباشراً من خلال الرسومات .
    - أخذت شركة SUN الفكرة من نظام ماكنتوش والتي كانت تمتلك النظام المفتوح Open Source المسمى يونيكس نسبة إلى صانعه وقامت بتشكيل نظام جديد عُرف بإسم لينكس .
    - ظهرت في هذه اللحظة التسابق لإنتاج نظام تشغيل كامل من واسطة كبريات الشركات مثل Microsoft وشركة Sun وشركة Apple Macintosh و باقي الشركات الكبرى .
    - وأيضاً في هذه الأثناء وبينما كان هناك تقدم وتطور من قِبل شركات Sun وشركة Apple Macintosh كانت شركة Microsoft تعيش ركود نسبي لأنها كانت تعتمد نظام الـ Console في تلك الأثناء .
    - شعرت شركة مايكروسوفت بعجزها وبتنحيها عن السوق فقامت بطرح تطبيق Application وليس نظام تشغيل يعتمد الواجهة الرسومية والذي عرف بنظام Windows 3.X .
    - ظهرت الحاجة لتوحيد نظام البرمجة لدى المبرمجين لكي يكون الكود ديناميكي وسلس وله قواعد وشروط ولكي لا يخرج كل مصمم بأفكار بعيدة عن الهدف المقصود فظهر مفهوم الـ Object Oriented Programming والمعروف بالرمز ( OOP ) وأدت إلى ظهور العديد من اللغات ومن الأمثلة عليها C++ , Small Talk , … .
    - بواسطة البرمجة الموجهة بالأهداف أنتجت شركة مايكروسوفت شبه نظام وسموه Windows 95 وسبب أنه كان شبه نظام أنه كان يعتمد على نظام الـ DOS في أداءه وعمله .
    - وظهرت الحاجة إلى إخراج جيل من البرمجيات المتكاملة من خلال شركة مايكروسوفت والتي سميت فيما بعد بـ Microsoft Office .
    - وبعد سنتين تقريباً طرحت شركة مايكروسوفت نظام تشغيل وسمته Windows 97 ولكنه فشل فشلاً سريعاً فقد طرح وخلال شهرين فقط تم سحبه من الأسواق لرداءته .
    - ولكنها سرعان ما قدمت أول نظام تشغيل مستقل بواجهة رسومية والذي عرف بإسم Windows 98 ومن هنا ظهرت الحاجة لإنشاء برمجيات متكاملة على طريقة الـ Enterprise التي تعني وجود جميع الحلول في مجموعة واحدة .
    - قامت شركة مايكروسوفت بالتفكير بفكرة ذكية لجذب ولإجبار جميع العملاء على بإستخدام نظامها التشغيلي فقد قامت بطرح معالج لبعض اللغات مثل لغة الـ C ولغة الـ BASIC ولإجبار المبرمجين على إستخدامه فقد قامت بالتسهيل على المبرمجين وبالمجان فقدمت API المستخدمة من قِبل النظام والمختصرة من جملة Application Program Interface والتي تعني واجهة البرامج التطبيقية . فسهلت على المبرمج فمثلاً إذا أراد المبرمج كتابة كود لإظهار نافذة فقط فإنه سيبقي وقت طويل جداً وسيكتب كود طويل جداً ، فقامت مايكروسوفت بطرح المكتبات لهذه الغاية بحيث ينتج نافذة كما في نظام التشغيل بوقت وكلفة قليلين جداً . وبذلك جذبت العديد من المبرمجين ومن العملاء إليها بواسطة هذه الخطة . وبالطبع فإن البرنامج الناتج من هذه العملية لن يشتغل سوى على نظام التشغيل Windows .
    - قام المبرمجين بكتابة البرامج المختلفة بواسطة نظام API لأنه كان سلس وسهل الإستعمال ونتيجة لذلك فقد زادت مبيعات شركة مايكروسوفت أضعافاً مضاعفة والتي وصلت سنوياً إلى 3.5 مليار دولار سنوياً .
    - في هذه الأثناء قامت شركة SUN بطرح لغة جديدة من إنتاجها والتي عرفت بإسم جافا JAVA لملاحقة شركة مايكروسوفت وبذلك تكون هذه الشركة قد قطعت شوطاً كبيراً بهذا المجال حيث قامت بتجزيء هذه اللغة إلى ثلاثة أقسام وهي : J2SE , J2EE , J2ME .
    - ظهرت مكتبتان هنا من إنتاج الشركتان وهما :
    SDK : من شركة مايكروسوفت وهي إختصار لجملة Software Developer Kit .
    JDK : من شركة SUN وهي إختصار لجملة JAVA Developer Kit .
    - لكن يوجد جانب لم تعيهما تلك الشركتان وهو قواعد البيانات Database والتي أصبحت حالياً الجانب المهم والأكبر في إستخدام الحاسب الآلي فقد كانت شركة Oracle الرائدة في هذا المجال والسباقة إليه . وظهرت شركات أخرى مثل شركة Fox Pro التي أيضاً كانت من الشركات الكبيرة في هذا المجال .
    - تنبهت شركة مايكروسوفت باكراً إلى خطورة هذا الجانب فإشترت ملكية شركة Fox Pro وضمتها إلى أملاكها وقامت لاحقاً بإنشاء المكتبة الخاصة للـ Database التي عرفت بإسم SQL .
    - و بإستخدام قواعد البيانات أنتجت شركة مايكروسوفت لغات جديدة مثل Visual C++ , Visual Basic , Visual Fox Pro وضمتها إلى قائمتها البرمجية .
    - و بإستخدام تكنولوجيا الإنترنت فقد قامت شركة مايكروسوفت بطرح لغة خاصة لمعالجة صفحات الإنترنت والي سُميت فيما بعد بالإسم InterDev وهي عبارة عن صفحات إنترنت نشطة ذات الإمتداد المعروف ASP .
    - كانت شركة SUN تعمل على تحديث وتطوير لغتها ( JAVA ) أول بأول من حيث قواعد البيانات و التعامل مع الإنترنت .
    - وطبعاً جاءت هنا فكرة الـ Script والتي تعني جزء من كود لغات الإنترنت في صفحة HTML .
    - بسبب الطمع والجشع الذي كان عند شركة مايكروسوفت فقد قامت بالخطوة القاتلة وهي أنها أنشأت لغة جديدة وسمتها بإسم Visual J++ , ولكنها لم تسلم بتلك الفعلة فقد قامت شركة SUN برفع دعوة قضائية على شركة مايكروسوفت ولأنها صاحبة اللغة فقد خسرت شركة مايكروسوفت تلك القضية وتم تغريمها مبالغ طائلة وصلت إلى 3 مليار دولار أمريكي ومُنعت من إستعمالها والتطوير عليها لذلك السبب .
    - يمكن تلخيص الإصدارات للغات البرمجة في تلك الفترة لشركة مايكروسوفت بالجدول التالي تجدونه في المرفق )

    - ظهرت مشاكل عديدة في لغات شركة مايكروسوفت فمثلاً وجود أوامر في لغة السي ++ وعدم وجودها في الفيجوال بيسك وكذلك فقد كان من الصعب تشغيل برنامج على الفيجوال بينما هو مكتوب بلغة السي ++ , في هذه الأثناء كانت شركة SUN تسير على الطريق الصحيح وتعمل على تطوير لغتها أولاً بأول . ومن المشاكل الأخرى لمايكروسوفت أن مبرمج اللغة الواحدة لا يستطيع أن يتعامل أكثر من نسخة من برامج قواعد البيانات فمثلاً كل مبرمج واحد يستطيع التعامل مع لغة واحدة لا يسعة إستعمال غير مكتبة واحدة فقط من المكتبات التالية DAO , ADO , ODBC ... الخ ، وكل مكتبة متخصصة بلغة واحدة لا يستطيع المبرمج إستعمالها في لغة أخرى وفي هذا تقسيم المبرمجين إلى أقسام عديدة وكل مبرمج له مجال يختلف عن مجال زميله في المهنة ، بينما كانت شركة SUN تمشي بدون أي مشاكل فهناك لغة واحدة فقط وهي الجافا وهناك مكتبة واحدة وموحدة فقط لقواعد البيانات وهي JDBC .
    - نظرت شركة مايكروسوفت بنظرة عميقة للموضوع وأسفر عن ذلك خطة جديدة مع عام 2000 وهي إخراج لغات موحدة لها نفس مكتبات التشغيل ولها إطار واحد فقط Frame Ware وأدت إلى ظهور لغات جديدة عرفت بمجموعة الدوت نيت . NET فقدمت لغات جديدة مثل VC# وضمتها في مجموعة Visual Studio 7 . NET وضمت :
    1 – Visual C # ( 2000 )
    2 – Visual C ++ ( 2002 )
    3 – Visual Basic (2002)
    4 – Visual J# ( 2003 )
    في هذه النسخة قاموا بضم لغة الـ J# ولعلك تتساءل كيف ذلك ؟؟ والمحاكمة ؟؟
    هنا قامت شركة مايكروسوفت بتصميم تلك اللغة من الصفر وقاموا بتطويرها لتحاكي لغة الجافا

    كل اللغات السابقة كانت قادرة وبكفاءة التعامل مع الـ XML , ADO وبإستطاعة المبرمج تصميم وصناعة البرامج في المجالات التالية :
    Windows Application , Web Application , Mobile Application , Smart Device …
    كان هذا في النسخة لعام 2000 الماضي
    وفي نسخة عام 2003 قاموا بإنشاء Compiler مترجم لكل لغة وهو موحد ويستدعي مكتبة واحدة كما في الشكل التالي : كما في المرفق

    O M S


    إنتظروا المزيد
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip C#.zip‏ (13.1 كيلوبايت, المشاهدات 586)
    التعديل الأخير تم بواسطة Argonaut ; 02-09-2005 الساعة 05:59 PM

  2. #2
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    أحب أقول لكم إخواني والله (( ولا أقسم عبثاً ))

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

    وأحاول أعصره لأنوا يمتلك خبرة عالية جداً إسمه (( معن الجيتاوي ))

    إذا حد بحب يتأكد من أقوالي ...

    إنتظروا الدرس القادم ...

  3. #3
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    المحاضرة الثانية :

    الأربعاء 16 – 2 - 2005

    مفهوم وفلسفة البرمجة هدفية الغرض ( الكائنية ) Object Oriented ( OOP ) :



    - كما قلنا وتحدثنا سابقاً في المحاضرة الأولى من أنه لا بد من وجود معيار ومقياس لبرمجة وكتابة الكود من طرف المبرمجين ولنخرج جيل ذو خبرة عالية ومرونه وسهولة . وبسبب هذه الفلسفة ظهر ما يعرف ببرمجة الكائنات الموجهه Object Oriented ( OOP ) والتي تستند إلى إستخدام المكتبات Library وإستخدام الدوال Function والتي عرفناها قبل ذلك بالبرمجة التركيبية Structured Programming والتي ظهر مفهوم البرمجة بواسطة الكائنات الموجهه على إثرها .

    - والآن ما معنى البرمجة الموجهه بالكائنات وكيف نستطيع الحكم على لغة بأنها OOP أو لا ؟



    - قبل أن أبدأ أريد أن أسرد لكم نهفة سريعة حدثت مع معلمي الأستاذ (( معن الجيتاوي )) فعندما كان يشتغل في شركة WinWord الموجودة هنا في الأردن والتي تعتبر رقم 1 في الشركات البرمجية والتي بواسطتها تم إدخال علم الحاسوب ونظم المعلومات الحاسوبية في المدارس والجامعات . وبصفته Project Manager في تلك الشركة جاءه شخص من شركة IBM الرائدة في عالم الحاسوب . وأراد أن يسأله وكونه ذو الخبرة العالية في السي بلس بلس وهو في المقابلة فقام بسؤاله السؤال التالي :

    هل لغة C++ تعتبر OOP أم لا ؟ قال له لا تعتبر مع العلم أن الجميع يقولون بنعم (( تعتبر OOP )) فتنبه هذا الشخص الى ذكاء أستاذي ومعلمي فقال له إنتهت المقابلة بنجاح .



    والسبب في ذلك (( لغة الـ C++ )) ليست لغة برمجة موجهة بالكائنات التالي :

    فلكي نتكلم عن لغة أنها Full OOP يجب أن تتوافر فيها الشروط الأربعة التالية :

    1 – Encapsulation

    2 – Abstraction

    3 – Inheritance

    4 – Polymorphizen



    ولنأتي الى الشروط الأربعة بالتفصيل الممل :

    الشرط الأول : Encapsulation

    ومعناه هو تجميع أشياء ووضعها كاملة بمكان ما . ومن إسمها تستطيع تمييز ذلك فمعناها الكبسولة

    ولتعريفها جزئين :

    الجزء الأول : هي تعريف مكان (( Class )) ونضع فيه كل المتغيرات والدوال التي لها علاقة ببعضها ومن ثم نسند إليه إسماً

    الجزء الثاني : هذا المكان لا يستطيع أحد الدخول إليه إلا بصلاحيات تحدد من قِبل المبرمج فيوجد قسمان رئيسيان لها وهما الـ Public وهو القسم العام والـ Private وهو القسم الخاص .



    الشرط الثاني : Abstraction

    وهي إضافة دالة عامة Function داخل الـ ( Class ) لا أقوم بتحديد التفصيلات لها إلا في قسم البرنامج الرئيسي .

    فمثلاً :

    نريد صنع عدة كائنات (( Class )) أو Modules في جامعة معينة فينتج من ذلك كائن للدكتور وكائن للطالب وكائن للمدير وكائن للعامل و ... إلخ وأردنا أن نجري بحث في من خلال البرنامج الرئيسي

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



    وكمثال ثانٍ :

    نفترض أن عندنا شركة مشروبات غازية تقوم بإضافة علبة خامة (( قياسية )) فتأتي شركة أ وتطلب مئة عبوة هنا تستخدم الشركة العبوة الخامة وتقوم بالتعديل وإضافة الإعلانات الخاصة بشركة أ على العلب المطلوبة وتأتي شركة ب وتطلب 300 عبوة فتصنع كما صنعت مع شركة أ



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



    ستحدث خسارة في الوقت والجهد



    فهنا يكون معنى الـ Abstraction قد توضح لنا ورسم في مخيلتنا .



    الشرط الثالث : Inheritance

    لو سألنا أنفسنا ما معنى هذه الكلمة لأجبنا أنفسنا بالسرعة معناها التوارث (( طيب )) وماذا يعني ذلك ؟؟!!



    العديد من المبرمجين يفهموا هذا المفهوم فهماً خاطئاً كالتالي :

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

    لنفترض أننا نمتلك الكائنات التالية : الطالب و الدكتور والعامل والسكرتير و ... إلخ

    كل الكائنات السابقة لها خاصيتان متشابهتان وهما الإسم والرقم .

    فلو قمنا بفصل هذين الخاصيتين وجعلناها في كائن واحد ثم قمنا بإعطاءه دور الأب وإعطاء الكائنات التالية دور الإبن فهنا يمكننا القول بأن الكائنات الأخرى هي Inheritance أي متوارثة من الكائن الأصلي (( الجديد )) وهذا كما قلت منطقياً مقبول . ولكن !!!

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



    سؤال يجب طرحه هنا : ما الفرق بين ال(( Class)) الكائن وبين ال (( Object )) ؟؟!!

    سؤال محير أليس كذلك !! إليك الفرق :

    الـ Class هو شيء نظري غير موجود على الواقع فهو عبارة عن تعريفات لشيء معين نظرياً .

    الـ Object وهو الكائن النظري عند تطبيقه على أرض الواقع ليصبح عنصراً وكائناً عملياً .



    الشرط الرابع : Polymorphizen

    يمكن تقسيمه إلى نوعين وهما الـ Overload والـ Override . وإليك تبييناً لكلاهما :



    Overload : وهي عبارة عن دوال لهم نفس الإسم ولكن تختلف في عدد الباراميتر (( الوسائط التي تأخذها )) أو نوعها

    Operator Overload : فمثلاً نريد إشارة الزائد + في المعادلة التالية 1+1=2 أن نحوله الى حرف وصل (( & )) فبإمكاننا تعريف نفس الإسم ولكن أغير في النوع والكود لتصبح المعادلة التالية 1 & 1 = 11 .

    Override : وهي عبارة عن كتابة نفس الدالة الأصلية طبق الأصل عنها ولكن أغير في الكود فمثلاً

    نعرف الجملة التالية X = 3 ثم نقوم بعدها بتعريف الجملة التالية X = 7 فيقوم الحاسوب بحذف الأولى وتطبيق الثانية . هذا بالنسبة للمتغيرات

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



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



    إذن :

    Overload : تغيير النوع أو عدد الباراميتر لدالة معينة

    Override : تغيير الكود فقط ولا تغيير على النوع أو الباراميتر

  4. #4

    مشاركة: الكامل في السي شارب

    احسنت صنعا اخي وصدق معلمك :-)


    اود فقط ان انبهك ان لاترى الفئات Classes كاوعية للاحتواء، وانما كاصناف. كلما تعين فئتا او صنفا، انك لا تحجز اي ذاكرة وانما توسع مفهومك عن عالم المسالة التي انت بصدد حلها.

    حجز الذاكرة يتم فقط حين تنشاء او تكون Instantiate عنصرا من ذلك النوع.

    على سبيل المثال، عندما تخترع لعبة اطفال جديدة ولديك العينة الاولى كانك تعين او تعرف فئة او صنف جديد Class Defenition. ولكن حين ترسل اللعبة الى مصنع في العقبة، يتم صنع الالاف منها، انت بحق تكون عناصرا من فئة و تستهلك مود الصنع، اما بلاستيك في حالة اللعبة او ذاكرة حاسوب عند الفئات.

  5. #5
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    كلامك جميل أخوي وأهديك الدرس التالي للسي شارب خصوصاُ

    وللأعضاء عموماً


  6. #6
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool المحاضرة الثالثة :

    المحاضرة الثالثة :
    الإثنين 21 – 2 - 2005
    بيئة الفيجوال ستوديو دوت نيت – قسم الـ Console :

    - قبل التحدث والدخول إلى هذه البيئة يجب أن تمتلك نسخه منها وعنوانها :
    Microsoft Visual Studio .NET 2003 وهي تتكون من 6 سيديات على الأغلب وتتكون من
    2 سي دي للدوت نيت 2003
    3 سي دي للمكتبة MSDN
    1 سي دي Component وهو عبارة عن مكونات ما قبل البداية
    1 سي ي SQL 2000 Server وهو غالباً لا يكون موجود معاها (( إضافي )) للتعامل مع قواعد البيانات

    لنبدأ الآن :
    إذا نظرنا إلى الإصدارات القديمة من مكتبة الـ Microsoft Visual Studio مثل الإصدارة السادسة أو الخامسة وأخذنا على سبيل المقارنة برنامج الـ Visual C++ و برنامج الـ Visual Basic وقارناهم كالتالي :

    من الناحية النظرية :
    إذا قمنا بالعمل والتصميم على برنامج السي ++ ثم فجأة إنتقلنا إلى واجهة الفيجوال بيسك سنرى هناك إختلافاً كبيرأ بينهما . وهذه نقطة ضعف لدى مايكروسوفت . بينما لو نظرنا الى مجموعة الأوفيس 2003 بالعمل على وورد ثم الإنتقال الى بوربوينت مثلاً سنجد هناك تشابهاً بنسبة 95%
    إذا فشل الإصدار السادس من الناحية النظرية .

    أما من الناحية العملية :
    إليك التالي :

    - قم بالضغط على
    Start -> Program File -> Microsoft Visual Studio 6.0 -> Microsoft Visual C++ 6.0

    سيظهر لك الشكل التالي :



    قم بالضغط على Close ثم قم بإختيار
    ( File -> New -> Project -> MFC AppWizard ( exe
    كالصورة التالية :



    وقم بإختيار الإسم لها كما في الرقم 4 و 5 ثم إضغط على موافق .
    وسيظهر لك شاشة أخرى قم بإختيار Finish منها ثم OK قم بفتح الشجرة من قسم نافذة المشروع كالتالي :



    إنظر إلى عدد الـ Classes الموجودة هنا ستجدها 6 حسناً خزن هذا الرقم في مخيلتك

    الآن إنتقل إلى فيجوال بيسك حسب التسلسل التالي :
    Start -> Program File -> Microsoft Visual Studio 6.0 -> Microsoft Visual Basic 6.0

    سيظهر لك الشكل التالي :



    لاحظ أننا إخترنا المشروع التنفيذي كما في السي ++ ولكن هنا إنظر إلى الرقم 3 ماذا تلاحظ ؟؟
    وجود ملف واحد فقط (( طيب في السي ++ موجود 6 )) إذاً فشل الإصدار السادس كذلك في الإختبار من الناحية العملية لأنه يجب على كل لغة في الإصدار أن تحتوي على نفس عدد الملفات في كل مشروع مشابه

    الآن وبعدما لاحظنا المقارنة في الإصدار السادس ننتقل إلى مجموعة الدوت نيت (( 2003 )) ونلاحظ الفرق :
    قم بتتبع التسلسل التالي :
    Start -> Program File -> Microsoft Visual Studio .NET 2003 -> Microsoft Visual Studio .NET 2003

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

    بعد أن تتبعت المسار ستظهر لك النافذة الرئيسية كالتالي :



    لاحظ معي وبالترتيب لكي تتعرف على واجهة البرنامج :

    1 – وهو شريط العنوان والكل يعرفه .
    2 – شريط القوائم وبها أوامر للمساعدة في بناء المشروع في بيئة الدوت نيت
    3 – شريط الإختصارات وبه أوامر مختصرة (( كثيرة الإستعمال )) من شريط القوائم (( 2 ))
    4 – صفحة البداية وهي الصفحة الرئيسية لهذه البيئة وتتكون من :

    - المشاريع Projects (( 6 )) وتتكون من التالي :
    - نافذة المشاريع وتحتوي على آخر أربع مشاريع (( رقم 7 )) قمت بالعمل بهم مع التاريخ حيث يكتب التاريخ إما اليوم أو الأمس أو تاريخ العمل به (( التعديل عليه )) .
    - أزرار إنشاء أو فتح مشاريع سابقة (( 12 )) (( 13 )) على التوالي .

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

    - ملفك الشخصي My Profile :
    هنا يمكنك التعديل على الواجهة بشكل عام أو إختصارات لوحة المفاتيح كالتالي :
    لو فتحت هذه النافذة لوجدت الشاشة كالتالي :



    (( 3 )) يمكنك إختيار أي إختصارات للغة قد تعودت عليها من قبل كالسي ++ 6
    (( 4 )) يمكنك تغيير الشكل العام أو الإطار العام لبيئة الدوت نيت
    (( 5 )) يمكنك أن تختار طريقة عرض المساعدة للغة قد تعودت عليها من قبل
    * كل الأرقام السابقة يمكن أن تعطيك ملف خاص كما في (( 2 ))
    والإختيار السادس هو إجراء حدث عند بداية تنفيذ بيئة الدوت نيت .

    5 - شريط لعرض النوافذ الموجودة أمامك فإذا إختفت واحدة ما عليك سوى الضغط على إسمها وستظهر لك حالاً .
    9 – شريط الأدوات ولكن في السي شارب Console لن نستعمله فهو خاص بتطبيثات النوافذ .
    10 – نافذة ملفاتك في مشروعك الذي تعمل عليه الآن .
    11 – نافذة المساعدة .
    14 – في كل نافذة ستجد إشارة الدبوس هذه ومعناها أخفي تلقائياً بمعنى أنه إذا ذهبت الماوس من فوق تلك النافذة قم بإخفائها تلقائية . وإذا إقتربت منها قم بإظهارها تلقائياً .

    ملاحظة ( 1 ) :
    في القسم رقم (( 6 )) من الصورة السابقة يمكنك زيادة عدد المشاريع عن أربعة وذلك بالمسار التالي :
    Tools -> Option -> Environment -> General -> Display recently
    كالصورة التالية :



    فقم بزيادة العدد عند إشارة النجمة (( * )) ثم قم بالنقر على موافق

    ملاحظة ( 2 ) :
    إذا بدأت البيئة ثم لم تظهر لك نافذة البداية (( صفحة البداية )) إذهب إلى :
    Help -> Show Start Page

    الآن وبعد ما تعرفت على أقسام النافذة الرئيسية لنبدأ بمثالنا الأول بالـ Console Application :

    إذهب الآن إلى File -> New -> Project .
    أو قم بالضغط على Ctrl + Shift + N .
    أو قم بالنقر على زر المشروع الجديد من شريط الإختصارات .
    إذا نجحت في ذلك ستظهر لك النافذة التالية :



    لنقف قليلاً عند هذه النافذة لكي نبين أجزائها :
    1 – أنظر هنا في هذا القسم (( 1 )) ستلاحظ أسماء جميع اللغات المستعملة في بيئة الدوت نيت وبهذا تكون شركة مايكروسوفت قد نجحت في تجميع جميع اللغات في إطار واحد .
    2 – تجد جميع الأقسام (( القوالب )) التي يمكنك تصميمها مثل تطبيقات الويندوز وتطبيقات الكونسول وتطبيقات السمارت ديفايس (( بوكيت بي سي )) وذلك في القسم (( 2 )) .
    3 – يمكنك أن تصغر وتكبر الأيقونات الموجودة في القسم (( 2 )) بواسطة الأزرار في القسم (( 3 )) .
    4 – إذن الآن لنقم بفتح مشروع سي شارب فقم بالضغط على (( 4 )) .
    5 – ثم بعدها قم بالضغط على (( 5 )) ولاحظ أن تطبيقات الـ Console سبق لنا تعريفها وهي التطبيقات التي تفتح شاشة سوداء كنظام الدوس .
    6 – يمكنك تسمية المشروع من الرقم (( 6 )) وتذكر أنه سيسمي الملفات كلها بهذا الإسم (( ملفات العمل )) .
    7 – من إسمها (( 7 )) تعرف أنها مكان منطقة العمل Directory . وبإمكانك تحديد مكان معين بالضغط على الزر الذي يحمل الرقم (( 8 )) .
    8 – إذا ضغط هذا المفتاح (( 9 ))سيفتح لك نافذة مساعدة عن هذه الصفحة فقط .
    9 – بإمكانك زيادة الخيارات المستخدمة عندك بإضافة عملك في مجلد جديد على المسار الذي حددته في الخطوة رقم (( 7 )) وذلك بالضغط على الرقم (( 10 )) والذي يحمل كلمة More .
    10 - وأخيراً قم بعمل OK (( موافق )) لنبدأ مشروعنا اليوم .

    إذا نجحت في تطبيق السابق ستظهر معك النافذة التالية :



    أنظر إلى النافذة السابقة ولاحظ معي :
    1 – قام بفتح نافذة جديدة (( 1 )) وسماها Class1.cs .
    يتكون الإسم من قسمين كالتالي :
    القسم الأول يحمل إسم Class1 وهذه تعتبر الكائن الرئيسي في المشروع لأنه سبق لنا أن قلنا أننا نسعى للغة تدعم البرمجة الكائنية OOP ولأننا قلنا أنه يجب أن يكون هناك على الأقل كائن واحد وهو يحمل الدالة الرئيسية Main Function وبهذه الخطوة إرتقت مايكروسوفت إلى مستوى البرمجة بالكائنات والتي لم تكن موجودة بالإصدارات السابقة .

    والقسم الثاني يحمل إسم الإمتداد cs ومعناه C Sharp أي إسم اللغة

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

    - بنأتي الآن إلى منطقة العمل ونشرحها بالتفصيل :
    لاحظ معي النافذة كالتالي :



    ((إقرأ الملاحظة بعد الموضوع مباشرة ))

    في السطر رقم ( 1 ) جملة using System; نستطيع إستنتاج التالي :
    * جميع الكلمات الموجودة في منطقة العمل والتي تحمل اللون الأزرق هي كلمات محجوزة Keyword لانستطيع إستعمالها كمتغيرات .
    * تعتبر لغة السي شارب لغة حساسة Case Sensitive يعني أن المتغيرات (Age, AGE, aGE , AgE ) كلها متغيرات لا يشبه بعضها بعضاً وتعاملها هذه اللغة كل واحدة على حده .
    * نهاية كل جملة تحتوي على فاصلة منقوطة ; وهي تعبر عن نهاية السطر .

    ووظيفة السطر الأول هي إستدعاء مكتبة (( سنتفق على تسميتها namespace )) للتعامل مع المشروع بشكل جيد مثل جمل الإدخال والإخراج وتعادل هذه الجملة بكلمة #include في لغة السي
    هنا إستدعى مكتبة الـ System ولاحظ أن أول حرف كبير وهذه المكتبة مختصة بالدوال الرئيسية التي تستخدم بكثرة كجمل الإدخال والإخراج وتعادل هذه المكتبة مكتبة الـ iostream.h المستخدمة في لغة السي .

    في السطر رقم ( 3 ) جملة namespace First_Application_With_Console نستطيع إستنتاج التالي :
    * قام بإنشاء مكتبة تحتوي على المشروع الذي نكتبه الآن .
    * قام بوضع علامة تحت السطر ( _ ) بدلاً من الفراغات والتي أصلاً إسم مشروعنا الحالي .
    * تلاحظ أنه يوجد مربع صغير يحتوي على إشارة ناقص ( - ) ووظيفته إخفاء تفاصيل الكلاس أو الدالة المشار إليها وبعد الضغط عليه يظهر لنا مستطيل يحتوي على ثلاث نقاط ( ... ) إذا حركت الماوس عليه يعطيك محتوى الكلاس أو الدالة المشار إليها كاملاً كشكل ملاحظة Tag بمستطيل أصفر اللون فيعرض لك محتوياتها مهما بلغت من الطول .
    والهدف من هذا المربع هو إخفاء دالة أو كلاس سبق لنا أن كتبناها ولا نريد إظهارها .

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

    في السطر رقم ( 4 ) القوس المشهور ({ ) والذي يدل على بداية الدالة أو الكلاس وطبعاً نغلقها بالمثل بإستخدام القوس المثيل (} ) كما في السطر رقم ( 21 ) .

    في السطر رقم ( 5 ) /// <summary> جملة تعيق ولكنها للغة الـ XML دعها جانباً لن تفيدنا الأن في الوقت الحالي فلها وقتها . لاحظ أنها تحتوي على ثلاث أقواس .

    في السطر رقم ( 7 ) لاحظ وجود إشارة ( - ) على العمود وهذا يعني بداية الجملة الأولى في الكلاس أو الدالة Function .

    في السطر رقم ( 8 ) تلاحظ وجود إسم الكلاس المستعملة في مشروعنا الحالي .

    في السطر رقم ( 13 ) [STAThread] أي كلمة موجودة بين قوسين (( مربعين )) تسمى خاصية Attribute وسنقوم بشرحها لاحقاً .

    في السطر رقم ( 14 ) ( static void Main(string[] args هنا توجد الدالة الرئيسية لمشروعنا
    والجملة تتكون من :
    * static void تحديد نوع الدالة الرئيسية فهي من نوع Void التي تعني أن الدالة لا ترجع أي قيمة وهي من القسم Static من النوع الإستاتيكي .
    * Main لاحظ أن أول حرف كبير .
    * (string[] args) وهي هنا تعني أننا بإمكاننا أن نستخدم الوسائط (( الباراميترات ))
    فمثلاً لو أنشأنا مشروع لجمع عددين وقمنا بتسميته Sum طبعاً ستقول لي بعد تنفيذ المشروع نكتب الجمل اللازمة لكي يقوم بالحساب في ما بينهما وذلك بالطلب من المستخدم أن يدخل رقمين مباشراً من طريق جمل الإخال . حسناً هنا بإمكانك قبل تنفيذ المشروع أن تدخل العددين وتقوم بالتعامل معهما فمثلاً نذهب الى محرر الدوس ونقوم بكتابة الجملة التالي :
    C:\> Sum.exe 152 965
    فنستطيع مباشرة وبأول جملة في المشروع أن تعطيه الناتج .

    في السطر رقم ( 16 ) // لاحظ وجود قوسين هنا وهما لجمل التعليقات (( لاحظ الفرق في السطر الخامس )) . أي أنها جمل لا معنى لها تضع التوضيح أو التعليق على الجمل في هذا السطر

    ملاحظة :
    إذا واجهتك أي مشكلة في أي سطر وتريد معرفة المزيد قم بالنقر مرتين مزدوجتين على الجملة ثم قم بالضغط على F1 لظهور نافذة المساعدة بالجملة التي تريد فقط (( يجب أن تمتلك MSDN ))

    ملاحظة :
    إذا لم تحتوي منطقة العمل على أرقام فبإمكانك إضافتها بإتباع المسار التالي :
    Tools -> Option -> Text Editor -> C# -> General -> Line Numbers
    كما في الصورة التالية :



    قم بوضع ( صح ) على الرقم (( 1 ))
    كذلك بإمكانك أن تفعل خاصية Word Wrap )) 2 )) والتي تعني أنه بعد حد معين للسطر قم بإنزاله إلى السطر الجديد وبذلك أنت بغنى عن شريط الـ Scroll Bar الأفقي .
    أيضاً تستطيع إظهار معلومات أخرى عن هذه النافذة بالضغط على الرقم (( 3 )) .
    الآن إختر كما في النافذة السابقة وإضغط الزر رقم (( 3 )) OK .


    نكون هنا قد شرحنا كود البداية لملف السي شارب بطريقة الـ Console .

    الآن سنقوم بكتابة أول برنامج شهير وهو طباعة جملة "Hello World " بواسطة المكتبة System :

    الآن قم بكتابة السطر التالي في الدالة الرئيسية :



    ولاحظ أنه يوجد حروف كبيرة كما في الشكل (( تحته خط ))
    الآن للناقش السطر السابق :
    * إستخدمنا الدالة WriteLine والتي تسمح لنا بإظهار سطر على الشاشة وهي تأخذ قيمة من نوع String وبإمكانك أن تطبع المتغيرات والأسماء والأرقام .
    * لاحظ أن الدالة السابقة خرجت من كلاس إسمه Console لتطبيق مبدأ الـ Full OO .

    يوجد أكثر من صيغة للدالة WriteLine . إليك الأمثلة كالتالي :
    كود:
    1 - Console.WriteLine("555");
    2 - Console.WriteLine(555);
    3 - Console.WriteLine("Hello To RTAQ");
    4 - Console.WriteLine("Hello To {0}","RTAQ");
    5 - Console.WriteLine("Sum {0} + {1} = {2}",5,4,5+4);
    في المثال الأول :
    سيكون الناتج 555 وسيعتبرها كأنها نص
    في المثال الثاني :
    سيكون الناتج 555 وسيعتبرها كأنها رقم
    في المثال الثالث :
    سيكون الناتج Hello To RTAQ وسيعتبرها كأنها نص
    في المثال الرابع :
    سيكون الناتج Hello To RTAQ وسيعتبرها كأنها نص ولكن إنتبه هنا فيوجد تكنيك جديد وهو أننا بإمكاننا فصل الكلام إلى مواقع Index تعتبرها البيئة بالترتيب بداية من صفر فهنا قمنا بإضافة متغير (( نص )) إلى الجملة الأصلية Hello To الذي يمتلك Index = 0 فإستدعيناه بالرمز {0} والموجود بعد الجملة الأولى مباشرة بعد الفاصلة
    في المثال الخامس :
    سيكون الناتج 5 + 4 = 9 هنا أيضاً قام بأخذ المواقع Index بالترتيب ووضعها في الجملة الأولى .



    والآن إلى كيفية تنفيذ البرنامج :

    فبعد كتابة الكود قم بالذهاب إلى Debug -> Start Without Debugging أو قم بالضغط على الأزرار التالية : Ctrl + F5

    لعلك تتسائل : لماذا هذه مع أنه يوجد أوامر كثيرة مثل الـ Debug والـ Start ؟؟
    سأقوم بتوضيح الأمر لك . أنظر إلى الصورة التالية :



    الرقم 1 : وهو مسؤول مباشرة عن ظهور النافذة السوداء وتطبيق الكود .
    الرقم 2 : كوظيفة (( 1 )) ولكن هنا يقوم بوضع سطر إضافي وهو سطر إيقافي لمشاهدة الكود ففي الكود السابق وبطريقة الرقم (( 1 )) تظهر الشاشة السوداء ولكن سرعان ما تنتهي .
    الرقم 3 : يقوم بإنشاء الملفات اللازمة للمشروع بما فيها الملف التنفيذي EXE .
    الرقم 4 : يقوم بحذف الملفات السابقة وإنشاء ملفات جديدة حسب التغيرات التي حدثت .

    إنتهى الدرس أرجوا أن أكون قد وفقت في الشرح

    (( مع إنوا أخذ مني وقت )) بس إستمتعت

  7. #7
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    المحاضرة الرابعة :
    الإثنين 23 – 2 - 2005
    أنواع البيانات وجملة الإدخال والإخراج – قسم الـ Console :

    كما تعلمنا سابقاً في جملة الطباعة أنه يمكننا الطباعة حسب المواقع Indexes .

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

    يمكن تعريف نوع من المتغيرات بالطريقتين التاليتين :
    كود:
    Data Type    Var Name    ;
    Data Type    Var Name = Value    ;
    سنقوم الآن بتعريف الأنواع كالتالي :
    ظهر مفهوم المتغيرات ( Variables )جديداً في عالم البرمجة مما أحدث تغييراً عميقاً في هذا المجال
    ويمكن تعريف المتغير بأنه إسم يحمل قيمة قابلة للتغيير في وقت لاحق في المشروع . ويخضع لشروط تسمية ويحمل نوع معين . أما بالنسبة للشروط فهي :

    1 – أن تبدأ بحرف
    2 – يجوز إستخدام الرمز _ في البداية أو النهاية
    3 – يجوز إستخدام الأرقام في جميع الخانات ما عدا أول خانة
    4 – أن لا تكون من الكلمات المحجوزة للبرنامج
    5 – لغة السي شارب لغة حساسة أي (Age, AGE, aGE , AgE ) كلها متغيرات لا يشبه بعضها بعضاً

    - سؤال : أي الجمل التالية برمجياً صحيحية . ولماذا؟
    (جاوب عليها وأرسل الجواب على الإيميل الخاص بي مع ذكر الإسم )
    كود:
    int idnumber;
    int transaction_number;
    int __my_phone_number__;
    float 4myfriend;
    float its4me; 
    double VeRyStRaNgE;
    float while;
    float myCash;
    int CaseNo;
    int CASENO;
    int caseno;
    أما بالنسبة للأنواع فهي كالتالي :

    - تسمح لغة السي شارب بتعريف المتغيرات التالية :
    Boolean , character, float , integer , double , decimal , string ,
    object , long , short , byte

    الأنواع باللون الأحمر ( تحته خط ) هي أنواع جديدة في لغة السي شارب حيث لم تكن موجودة في لغة السي ++ , وأود إعلامك أخي العزيز إلى ضرورة كتابة الأنواع كلها بحروف صغيرة وأنت تعرف لماذا .
    حسناً سأقوم الآن بشرح الأنواع جميعها :

    1 – يعرف المتغير البولياني Boolean بالكلمة المحجوزة bool ويحتوي إحدي القيمتين true أو false صحيح أو خاطىء وإليك أخي الكريم مثالأ على ذلك :

    كود:
    bool myStatus = true;
    bool yourStatus = false;
    وكما رأينا في المثال السابق يمكن وضع قيمة إفتراضية في جملة التعريف أو في جملة لاحقة .
    ويجب التنبيه هنا بأنه لا يمكن إستخدام الأرقام 0 أو 1 كما في الإصدارات السابقة .
    2 – يعرف المتغير العددي الصحيح Integer بالكلمة المحجوزة int وهاذا النوع هو من أكثر الأنواع إنتشاراً وإستعمالاً إليك أمثلة هاذا النوع :

    كود:
    int count;
    int number_of_students = 30;
    وننبه هنا أن المتغير الذي يحمل نوع ال integer يأخذ قيمة عدد صحيح أي أننا إذا أسندنا إليه قيمة مثل 5.3 أو 5.9 فإنه سوف يعتبرها 5 .

    3 – يعرف المتغير العددي العشري Float بالكلمة المحجوزة float وهو يشبه النوع السابق ولكن يسمح بالفاصلة العشرية مثال 3.33333333 . ومن هنا يمكننا إشتقاق النوع Double وهو النوع العشري ولكن يسمح بطول 32 قبل وبعد الفاصلة أيضاً النوع Decimal مشابه له . ومثال على النوع float :

    كود:
    float owned = 0.0f;
    float owed = 1234567.89f;
    هنا يجب التنويه إلى أمر وهو أن لغة السي شارب تعتبر النوع الأصل هو الـ Double فإذا أردت أن تعرف متغير من هذا النوع ما عليك سوى كتابة جملة التعريف له ثم قم بإعطاءه قيمة وأنهي الجملة بفاصلة منقوطة . ولكن ...
    مع الأنواع الأخرى مثل الـ Float والـ Decimal يجب أن تزيد حرف بعد التعريف فإذا أردت أن تعرف متغير من النوع Float عليك بكتابته كالتالي :
    كود:
    float x = 32.23f
    حيث أن الحرف f يدل على أن هذا الرقم ليس من النوع Double وإنما من النوع Float
    أيضاً إذا أردت أن تعرف متغير من النوع Decimal عليك بكتابة التالي :
    كود:
    decimal x = 31.43m
    حيث أن الحرف m يدل على أن هذا الرقم ليس من النوع Double وإنما من النوع Decimal وهنا الحرف ميم للتمييز بينه وبين حرف الـفاء للنوع Float .

    4 – يعرف المتغير الخاني ( خانات ) Character بالكلمة المحجوزة char ( لفظها كار وليس شار ) ومن خلال هذا النوع الذي يحمل خانة واحدة فقط تستطيع تعريف أي خانة أو أي رمز من رموز لوحة المفاتيح أو الرموز الأمريكية المشفرة ASCII وإليك بعض الأمثلة على هذا النوع :

    كود:
    char firstInitial = 'J';
    char secondInitial = 'K';
    ومن هنا أيضاً يمكن أن نعرف النوع الجديد وهو الـ String وهو عبارة عن نوع كامل يحتوي على جمل ونصوص كتابية .

    هنا يجب التنويه إلى أمر وهو أن لغة السي شارب تميز بين النوع Char والنوع String بالفاصلة
    حيث تعطي النوع Char فاصلة واحدة ( ' ) والنوع String بفاصلة مزدوجة ( " ) وكما قلت لك النوع الأول يأخذ خانة واحدة فقط .

    5 - النوع الأخير وهو الـ Object وهو عبارة عن نوع يحمل جميع أي قيمة من القيم السابقة أي أنه يمكن أن يحتوي عدد صحيح أو خاني أو من نوع بولياني ... إلخ . ها هو مثال ذلك :

    كود:
    object x=313.22222m;
    object x=313.22222f;
    object x = 'a'
    object x = "Hello"
    ونهايةً أريد أن أذكر أننا عندما نعرف متغير من نوع ما فإن أول قيمة له هي مكانه في الذاكرة فمثلاً لو أننا قمنا بتعريف متغير من نوع صحيح وعملنا له إخراج كالتالي :

    كود:
    static void Main(string[] args)
    {
    	int  x;
    	Console.WriteLine(x);
    		
    }
    فإننا سوف نحصل على Error أي خطأ في كتابة الكود . حيث أن لغة السي شارب لا تسمح بطباعة مكان موقع المتغير في الذاكرة لذلك يجب أن نعطي له قيمة بداية كما في المثال التالي :

    كود:
    static void Main(string[] args)
    {
    	int  x = 124;
    	Console.WriteLine(x);
    		
    }
    كذلك يمكنك تعريف المتغيرات بالأنواع بإستخدام مكتبة الـ System كالتالي :
    System.Int16 x=121; --> 16 character
    System.Int32 x=121; --> 32 character
    System.Int64 x=121; --> 64 character
    أو أي نوع من الأنواع السابقة مثل :
    كود:
    System.String x="RTAQ";
    الآن لنتعرف أكثر على جمل الإدخال والإخراج :
    تعلمنا طباعة المتغيرات بطريقة الـ Indexes فمثلا :
    كود:
    int x=432;
    Console.WriteLine("The Value Of X Is : {0}",x);
    سأذكر في هذه الجملة أنه لا يجوز طباعة متغيران فقط مثل :
    كود:
    Console.WriteLine(x,y);
    فهذه الجملة خاطئة ويجب أن تبتدأ بنص وتصحيح الجملة السابقة كالتالي :
    كود:
    Console.WriteLine("The Value Of X & Y Is : {0}  {1}",x,y);
    سيقوم بطباعة قيمة x .
    الآن يمكننا وبواسطة جملة الإخراج التحكم في صيغة المخرج فمثلاً يمكننا إخراج المتغير على شكل عملة أو عدد صحيح أو بفاصلة عشرية أو حتى بالـ Exponential كالتالي :
    كود:
    Console.WriteLine("The Value Of X : {0:E}",x);
    لاحظ هنا أننا قمنا بزيادة {0:E} أي موقع المتغير ثم الصيغة المطلوبة وحرف الـ E هنا يعني Exponential وهو متغير رياضي معروف .
    حسناً إليك سرداً بقائمة الصيغ وما تعني والمخرجات بجانبه (( يجب أن يكون الحرف كبير )) :
    على إفتراض أن قيمة x تساوي 52.19f .
    كود:
    Console.WriteLine("The Value Of X : {0:C}",x); --> $ 52.190
    Console.WriteLine("The Value Of X : {0:D}",x); --> Error
    Console.WriteLine("The Value Of X : {0:E}",x); --> 5.219000E+001
    Console.WriteLine("The Value Of X : {0:F6}",x); --> 52.190000
    Console.WriteLine("The Value Of X : {0:G}",x); --> 52.19
    الشرح :
    في الجملة الأولى إستخدمنا الحرف C لإضافة تأثير العملة أي علامة الدولار والحرف C مأخوز من إسم العملة بالإنجليزي وهي Currency .
    في الجملة الثانية إستخدمنا الحرف D ومعناها Decimal وهي لا تنفع إلا مع النوع Integer فإذا عرفنا متغير من نوع عدد صحيح ثم أسندنا له القيمة 25 ثم نفذنا الجملة التالية لكان الناتج :
    كود:
    Console.WriteLine("The Value Of X : {0:D6}",x); --> 000025
    أي أنه أخذ 6 خانات للرقم x بوضع أصفار إلى اليسار لتصبح بعدد الخانات التي أدخلتها .
    في الجملة الثالثة إستخدمنا الحرف E لإضافة تأثير المتغير الرياضي Exponential .
    في الجملة الرابعة إستخدمنا الحرف F للدلالة على عدد الفاصلة (( الرقم بعد الحرف مباشرة )) .
    في الجملة الخامسة إستخدمنا الحرف G ومه مأخوذ من كلمة General ولا يقوم بالتغيير بشيء .

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

    جملة الإدخال والصيغة العامة :
    كود:
    Var Name = Console.ReadLine();
    لاحظ هنا أننا قمنا بإسناد المدخل من لوحة المفاتيح إلى المتغير الذي قبل إشارة المساواة ويجب أن يحمل المتغير النوع String وإلا فسيظهر معك خطأ في تنفيذ المشروع .

    إليك الأمثلة :
    كود:
    string x;
    x = Console.ReadLine();
    Console.WriteLine("You Entered : {0}",x);

    سيقوم بإسناد قيمة المدخل إلى المتغير x كقيمة String .

    حسناً لعلك تتسائل كيف أقوم بإدخال رقم ؟؟!!
    سأقوم بالرد عليك حالأ وأقول لك يجب هنا أن تستخدم النوع أو دالة الـ Convert الموجودة في المكتبة System كالتالي :

    يمكنك أن تحول قيمة نص إلى رقم بإستعمال النوع ثم إتبعه بنقطة ثم كلمة Parse :
    كود:
    Integer Var = Type.Parse(String Var) ;
    وإليك مثال ذلك :

    كود:
    static void Main(string[] args)
    {
    	string x;
    	int y;
    	x = Console.ReadLine();
    	y = int.Parse(x) ;
    	Console.WriteLine("Square Number : {0}",y*y);
    }
    في المثال السابق قمنا بتحويل المتغير x من نوع String إلى المتغير y من نوع Integer .
    أيضاً يمكنك فعل السابق بالدالة Convert كالتالي :
    كود:
    y = Convert.ToInt16(x) ;
    وهذا الكائن يحتوي على جميع الأنواع .

    ويمكنك دمج الخطوتان السابقتان في واحدة كالتالي :
    كود:
    static void Main(string[] args)
    {
    	int x;
    	x = Convert.ToInt16(Console.ReadLine());
    	Console.WriteLine("Square Number : {0}",x*x);
    }
    وهنا يرجع الأمر للمبرمج ولطريقة التفكير لديه ولكفاءته .

  8. #8
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    المحاضرات بواسطة ملفات بي دي إف

    الدروس الأول والثاني والثالث والرابع على شكل بي دي إف للتنزيل
    بالصورة والألوان
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip C#_1.zip‏ (108.5 كيلوبايت, المشاهدات 427)
    • نوع الملف: zip C#_2.zip‏ (78.5 كيلوبايت, المشاهدات 347)
    • نوع الملف: zip C#_4.zip‏ (104.7 كيلوبايت, المشاهدات 398)

  9. #9
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    من الآن وصاعداً سأقوم بتحويل الملفات إلى بي دي إف للضرورة

    وهنا الدس الخامس
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip C#_5.zip‏ (81.2 كيلوبايت, المشاهدات 381)

  10. #10
    التسجيل
    08-03-2005
    المشاركات
    3

    مشاركة: الكامل في السي شارب

    السلام عليكم ياجماعة

    الفزعة اريد مشروع في .net عبارة عن جمع عددين على سبيل المثال .لكن المسألة تكمن في ان يكون مكتوب بجميع لغات .net
    في برنامج واحد.
    (الرجاء بسرعة لان آخر موعد لتسليم الواجب يوم السبت وأيضًا عليه 10درجات)

  11. #11

    مشاركة: الكامل في السي شارب

    بطل انت يا OMS بحق السماء!

    احسنت صنعا.

  12. #12
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    مشاركة: الكامل في السي شارب

    السلام عليكم

    أخوي ابو يسرى أنا آسف بس أنا الآن شاهدت الموضوع

    وأنا الآن خارج (( ما عندي الدوت نيت على الجهاز ))


  13. #13
    الصورة الرمزية C.Falcon
    C.Falcon غير متصل ҳ̸Ҳ̸ҳ •° The Chevalier °• ҳ̸Ҳ̸ҳ •°
    التسجيل
    19-03-2001
    الدولة
    KSA - JEDDAH
    المشاركات
    7,812

    مشاركة: الكامل في السي شارب

    كود PHP:

    [right]Console.WriteLine("\nThank U So Much Man\nAm Very Happy Cuz Of U \nPlzzzz CUNT !!");[/right]
    [
    right][/right
    التعديل الأخير تم بواسطة DARK FALCON ; 13-03-2005 الساعة 08:39 PM

  14. #14
    التسجيل
    08-12-2004
    الدولة
    Turkey-Istanbul
    المشاركات
    3,393

    Cool مشاركة: الكامل في السي شارب

    الدرس السادس

    وشكراً للإطراء والتعليق
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: zip C#_6.zip‏ (94.2 كيلوبايت, المشاهدات 340)

  15. #15

    مشاركة: الكامل في السي شارب

    اقتباس المشاركة الأصلية كتبت بواسطة oms
    الدرس السادس

    وشكراً للإطراء والتعليق
    ممتاز.

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

    ايضا, قد تفسر الابعاد قليلا مستخدما جدول ضرب او لوحة شطرنج, مثلا, لتوضيح مانعني بمصفوفة ثنائية البعد, او ربما بطولة او دوري كرة قطم او جدول للحصص المدرسية ...

    قد يسئم الطالب من التعامل مع الارقام, لذا يستحب تدريس طريقة التعامل مع النصوص و الطباعة مبكرا: text input and output.

    كالعادة, ممتاز. انا شخصيا تعلمت منه, لاني لااعرف السي شارب بعد. تكرم عزيزي.

صفحة 1 من 7 123456 ... الأخيرةالأخيرة

ضوابط المشاركة

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