المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الكامل في السي شارب



oms
19-02-2005, 08:06 AM
بسم الله الرحمن الرحيم

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

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

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

تاريخ الـ . 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 مليار دولار أمريكي ومُنعت من إستعمالها والتطوير عليها لذلك السبب .
- يمكن تلخيص الإصدارات للغات البرمجة في تلك الفترة لشركة مايكروسوفت بالجدول التالي http://forum.rtaq.com/images/smiles/sad.gif تجدونه في المرفق )

- ظهرت مشاكل عديدة في لغات شركة مايكروسوفت فمثلاً وجود أوامر في لغة السي ++ وعدم وجودها في الفيجوال بيسك وكذلك فقد كان من الصعب تشغيل برنامج على الفيجوال بينما هو مكتوب بلغة السي ++ , في هذه الأثناء كانت شركة 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


إنتظروا المزيد

oms
19-02-2005, 08:07 AM
أحب أقول لكم إخواني والله (( ولا أقسم عبثاً ))

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

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

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

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

oms
19-02-2005, 09:07 PM
المحاضرة الثانية :

الأربعاء 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 : تغيير الكود فقط ولا تغيير على النوع أو الباراميتر

ibn_alqalam
21-02-2005, 10:22 AM
احسنت صنعا اخي وصدق معلمك :-)


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

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

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

oms
22-02-2005, 11:56 AM
كلامك جميل أخوي وأهديك الدرس التالي للسي شارب خصوصاُ

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

:biggthump

oms
22-02-2005, 12:30 PM
المحاضرة الثالثة :
الإثنين 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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/1.jpg

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

http://free.hostdepartment.com/o/omssd84/c_sharp/2.jpg

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

http://free.hostdepartment.com/o/omssd84/c_sharp/3.jpg

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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/4.jpg

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

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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/5.jpg

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

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

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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/6.jpg

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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/7.jpg

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

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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/8.jpg

لنقف قليلاً عند هذه النافذة لكي نبين أجزائها :
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 (( موافق )) لنبدأ مشروعنا اليوم .

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

http://free.hostdepartment.com/o/omssd84/c_sharp/9.jpg

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

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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/10.jpg

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

في السطر رقم ( 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
كما في الصورة التالية :

http://free.hostdepartment.com/o/omssd84/c_sharp/11.jpg

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


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

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

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

http://free.hostdepartment.com/o/omssd84/c_sharp/12.jpg

ولاحظ أنه يوجد حروف كبيرة كما في الشكل (( تحته خط ))
الآن للناقش السطر السابق :
* إستخدمنا الدالة 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 ؟؟
سأقوم بتوضيح الأمر لك . أنظر إلى الصورة التالية :

http://free.hostdepartment.com/o/omssd84/c_sharp/13.jpg

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

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

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

oms
24-02-2005, 11:34 AM
المحاضرة الرابعة :
الإثنين 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);
}

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

oms
04-03-2005, 10:55 PM
المحاضرات بواسطة ملفات بي دي إف

الدروس الأول والثاني والثالث والرابع على شكل بي دي إف للتنزيل
بالصورة والألوان :) :lol:

oms
08-03-2005, 06:25 PM
من الآن وصاعداً سأقوم بتحويل الملفات إلى بي دي إف للضرورة

وهنا الدس الخامس

ابو يسرى
09-03-2005, 10:42 PM
السلام عليكم ياجماعة

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

ibn_alqalam
10-03-2005, 06:16 PM
بطل انت يا OMS بحق السماء!

احسنت صنعا.

oms
12-03-2005, 11:09 PM
السلام عليكم

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

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

:(

C.Falcon
13-03-2005, 08:26 PM
Console.WriteLine("\nThank U So Much Man\nAm Very Happy Cuz Of U \nPlzzzz CUNT !!");

oms
15-03-2005, 08:40 AM
الدرس السادس

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

ibn_alqalam
16-03-2005, 04:24 AM
الدرس السادس

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

ممتاز.

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

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

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

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

oms
16-03-2005, 10:25 AM
أخوي كلامك جميل وإن شاء الله أستفيد منه

وهذا الدرس السابع لعيونك :biggthump

HASSON_ME
18-03-2005, 03:56 PM
السلام عليكم
first of all i would like to thank for these useful lectures, and your perfect way to deliver the knowlodge.

Now we are following your lectures so never stop .:)
Request, would you mind to increase the number of the English Terminoligies as i'm studing in English so im getting so confuse from thearabic terminoligies:icon6: .



Secondly ,
i have a question related to the vs.net ,after installing that by one week at most it will start giving me an error says (unhandled arithmitic Exception ) whenever i add new object and even if it was just a simple button , where there are no operations. at the same time i can use the .net Frame work for the asp.net application normally.
So, if u have any idea about that please share it with me. ;)

Your Bro. HASSON:reporter:

oms
19-03-2005, 10:18 AM
أخوي إن شاء الله تكمل معانا

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

oms
19-03-2005, 10:47 AM
الدرس الثامن

وأرجوا الإستفادة :biggthump

oms
21-03-2005, 08:57 AM
الدرس التاسع

صوت الجريح
21-03-2005, 09:50 PM
موضوع جميل ورائع

oms
22-03-2005, 08:14 AM
شكراً أخوي وأتمنى لك وقت جميل معنا

oms
23-03-2005, 11:38 AM
وهذا الدرس العاشر

Morta7el
23-03-2005, 04:14 PM
شكرااااااااااااااااااااااااااااااا جدا

oms
27-03-2005, 08:42 AM
وإليكم الدرس الحادي عشر

oms
31-03-2005, 02:17 PM
الدرس الثاني عشر

oms
02-04-2005, 11:30 PM
الدرس الثالث عشر

ابو يسرى
06-04-2005, 03:42 PM
اريد بناء كلاس عبارة عن coplex number أي عدد -1 تحت الجذر .ومن ثم ضرب هذين العددين

oms
06-04-2005, 10:07 PM
خذ هذا الرابط :

http://winfx.msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_csref/html/c9b8d982-5112-413f-bae3-b42ae3248ddf.asp

أو هذا :

http://www.extremeoptimization.com/Mathematics/UsersGuide/ComplexNumbers/Default.aspx

وأرجوا أن تستفيد منها ...

oms
06-04-2005, 11:01 PM
الدرس الرابع عشر

C.Falcon
09-04-2005, 07:46 PM
الله يقويك أخوي oms ^^

oms
11-04-2005, 05:42 PM
الدرس الخامس عشر

وهو آخر درس في قسم الكونسول

أم سلطان
14-04-2005, 01:55 AM
بسم الله الرحمن الرحيم

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

جزاكم الله خير الجزاء

لقد طرحت أسئلة في السيي شارب على الرباط التالي
فهل من معين بعد الله

http://www.montada.com/showthread.php?p=3441784#post3441784

oms
14-04-2005, 08:59 AM
الرد ... :

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

أم سلطان
14-04-2005, 11:25 AM
جزاك الله خير الجزاء أخي في الله

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

أسأل الله أن يفرج بها عنك جميع كرب الآخرة

وأن يرزقك بها الفردوس الأعلى بصحبة النبي الأمين

بانتظارك

oms
14-04-2005, 12:28 PM
أبشري أختي

بدأت بها الآن

oms
14-04-2005, 02:56 PM
using System;

using System.IO;

class Class1

{

static void Main()

{

StreamWriter w1 = new StreamWriter("c:\\2.txt");

for ( int i=1 ; i<=5 ; i++ )

w1.WriteLine(i);

w1.Close();

}

}

oms
14-04-2005, 03:00 PM
السؤال الثاني

oms
14-04-2005, 03:06 PM
السؤال الثالث :

يجب أن تنشأي ملف c:\2.txt


StreamReader r1 = new StreamReader("c:\\2.txt");

string line1 ;

while ( (line1 = r1.ReadLine()) != null )

textBox1.Text += line1;

r1.Close();

MessageBox.Show ( Convert.ToString( line1.Length

));

أم سلطان
14-04-2005, 06:37 PM
جزاك الله خير الجزاء

بالنسبة للمشروع الثاني نفذته ولله الحمد

والمشروعين الآخرين أجلت تنفيذهما حتى أفهم الأكواد

سوف أطلع على الأكواد وقد يكون لدي بعض الأسئلة فيها

شاكرة لك حسن تعاونك وأثابك الله بالجنة

أم سلطان
14-04-2005, 07:32 PM
بسم الله الرحمن الرحيم

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


أخي oms
لقد قمت بكتابة كود السؤال الأول
وعندما اقوم بتنفيذ الكود تظهر لي شاشة الـ console
وتظهر لي الرسالة
press any key to continue
وبعدها ضغطت (اني كي)
ثم فتحت قرص السي وأجد الملف الذي قمت بكتابته قد تم إنشاؤه
وعند فتحه أجد مكتوب فيه:
1
2
3
4
5
هل هذا هو المطلوب من البرنامج؟؟

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

ــــــــــــــــــــــــــــــ
أما بالنسبة لكود السؤال الثالث
قمت بكتابته ولكن عند تنفيذه يظهر لي 2errors
وجميعها رسالة الخطأ لها هي:
the type or namespace
name'MessageBox'could not be found
ونفس الرسالة تظهر بالنسبة للـ textBox1

يبدو لي نستخدم مكتبة لكني لاأذكر اسم المكتبة .
سؤال آخر:
لماذا نستخدم الــMessageBox و الــtextBox1

أنا فهمت أن هذا السؤال المطلوب منه هو:
أن يقرأ الملف النصي ويحسب عدد مرات تكرار كل حرف

أعذرني على الإطالة وكثرة الأسئلة
ودمتم بخير

oms
15-04-2005, 09:54 PM
أختي الرجاء الإنتظار

فأنا في الغربة الآن

وسأعود بعد بضعة أيام ...

أم سلطان
18-04-2005, 04:22 PM
في انتظار الإجابة

السهاد
19-04-2005, 01:28 AM
مشكووووووووووووور اخوي

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

يعطيك العافة وفتح الله عليك ...

malikmalik
19-04-2005, 05:28 PM
مشششششششششششششششششششككككككككككككوووووووووووووووورررررررررر يالغالي

oms
19-04-2005, 05:44 PM
أهلاً إخواني إنتظروا المزيد

Wolf Sniper
20-04-2005, 10:30 PM
أريد أن أحيك أخي الكريم oms على هذا المجهود الرائع .. و أنا كنت أتابع دروسك منذ البداية و كنت أشاهد الفروق بين السي شارب و السي++ ..

و لكني للأسف لا أجد الكثير من الوقت لكتابة الردود ..

أتمنى أن تستمر في هذا الموضوع و آمل أن يكون هذا الرد بمثابة تشجيع لك على المتابعة ..

في انتظار دروس برمجة النوافذ ( ويندوز ) .. بالتوفيق و جزاك الله خيراً

بصمة الهكر
21-04-2005, 12:38 AM
السلام عليكم ورحمة الله وبركاته:
مشكووووووووووووووورين ومن القلب على هذه الدورة
ولكن بصراحة انا لا اعلم عن السي شارب شيئ ولا عن السي بلاس
ولم يكن عنذي وقت كافي لكي اقرأ الموضوع من البداية
فلذلك اعذروني على اسالتي ولكن بناء عليها سآقرر هل اتعلم هذه اللغة ام لا
1- مبرمج فيجول بيسك6 هل استطيع تحويل شيفرات برامجي للغة السي شارب بسهولة واتعامل معها ام يلزمني اعاذة صياغة وهيكلة تلك الشيفرات
2-السي شارب ماهو توجهها الاساسي يعني لقواعد البيانات ام لغيرها
3-ماهو حجم الاستفادة منها في نظام لينكس
4-ماهو اخر اصداراتها
5-وهل لها مراجع باللغة العربية متوفرة؟؟
6- هل يعمل ال ocx الخاص بالفيجول بيسك معها
7-مستوى الصهولة والصعوبة
8-ماهو مجال عملها في سوق العمل يعني هل هي مرغوبة في سوق العمل وما هو مستوى الاقبال عليها؟؟؟


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

oms
21-04-2005, 12:10 PM
أهلاً أخوي -- يبدو أنك من مبرمجي لغة الفيجوال بيسك --
أقول لك أنا في البداية قمت بالعمل على الفيجوال بيسك 6 لمدة 4 سنوات كاملات وبعدها ..
قرأت مقالاً عن تعليم الهاكر -- كانت من محترفين الهاكر وقالوا فيها بالحرف الواحد : إبتعد عن لغات البرمجة الركيكة
مثل الفيجوال بيسك -- بعدها قمت بالبحث عن لغة جديده تساعدني على المتابعة بدون أي عائق ،
فكانت السي ++ ولكنني وجدتها في غاية الصعوبة خصوصاً في تطبيقات الويندوز
وما لبثت بضع أشهر إلا وسمعت عن لغة جديدة من باقة الدوت نيت مدعومة وموجهة ببرمجة الكائنات يعني تعتبر OOP كاملة
ولأنها Full OOP قاموا ببرمجة ويندوز 2006 ( إذا تابعت أخبار هذه النسخة ) بالسي شارب دوت نيت ..
وأيضاً الأوفيس التابع لها وقاموا بتسمية هذا الويندوز بالويندوز دوت نيت ..

فتعلمتها خطوة بخطوة -- والدروس السابقة نتاج لما تعلمته في هذه اللغة الرائعة ..
بالنسبة للأسئلة التي سألتني إياها :
1 - حسب ما أعرف أنه أكيد يمكنك تحويلها فتقوم أولاً بفتحها بواسطة الفيجوال بيسك دوت نيت ثم تقوم بفتحها بواسطة السي

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

تقوم بالتسهيل عليهم وجعلهم يتابعون ما كتبوه بواسطة النسخ القديمة وذلك كي لا تضيع الأكواد الكثيرة جداً .
2 - بواسطة السي شارب تستطيع أن تبرمج :
Windows Application -- تطبيقات الويندوز مثلاً كما في الآلة الحاسبة يعني نستخدم النوافذ بشكل أساسي .
mobile Application -- من منا لا يعلم هذا فبإمكانك تصميم برنامج أو حتى لعبة لجهازك الخلوي .
web Application -- تصميم للمواقع وبواسطة لغة السي شارب .
Console Application -- أكيد الكل بيعرفها وهي الشاشة السوداء Command Prompt . وليس الدوس .
smart device Application -- جهاز جديد وهو عبارة عن دمج بين تقنية الحاسوب المحمول والهاتف المحمول .
وغيرها الكثير يعني التوجه كامل حول كل مجالات البرمجة ومجالات الحاسوب ككل .
3 - لغات الدوت نيت كلها ( فقط وليس النسخة السابقة 6 ) تعمل على كافة الأنظمة وأخذت هذه الفكرة من الجافا .
حيث أنه بإمكانك تشغيل ملف الجافا في أي نظام مثل الويندوز أو اليونيكس أو الماكينتوش .. إلخ . وتتم هذه العملية بإنزال مكتبة أو
ملف يسمى Virtual Machine إختصارها VM للجافا ، وتمتلك الدوت نيت مكتبة تشبهها تسمى CLR إختصار
لكلمة Common Library Runtime حيث بإمكانك تشغيلها على أي نظام تريده .
4 - بالنسبة لإصداراتها ظهرت أولاً في عام 2002 ومن ثم ظهرت نسخة جديدة لها عام 2003 مع باقة
Microsoft Visual Studio .NET 2003 وهذا هو التحديث لباقة الدوت نيت 2000 . والنسخة التالية هي
عام 2005 على ما أعتقد ولكنها لم تنتهي بعد وبالنسبة للمالكين لها فستضع شركة مايكروسوفت قيود شديدة على مالكيها
عكس الباقة 2003 منها ولأننا نستخدمها من غير ترخيص ، حيث ستقوم بفرض نظام حماية معقد عليها ، هذا غير ال

Supportment والإضافات التي يحصل عليها مالكها الأصلي ويتميز بها .
5 - كما قلت لك سابقاً أنها في عام 2002 وهنا نستنتج أنه يوجد القليل جداً بل يمكن أن نقول نادراً .. أن تجد كتباً فيها باللغة

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

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

بصفة Project Manager أي مدير مشاريع .. وهو هنا عندنا من الأعلام في بلدنا .
6 - بالنسبه للـ OCX هي عبارة عن ملف مشفر يحتوي على أداة Control قمت بإنشائها أو أخذتها من مكان آخر ، يعني يمكن
أن نعتبرها بمثابة الإمتداد EXE أي الملف التنفيذي ، ولو سألتك : يا هل ترى هل الملف التنفيذي يشتغل على كل جهاز حاسوب ؟
فأكيد ستقول لي بالطبع لأنه ملف معتمد لدى كل الحواسيب الشخصية بواسطة نظام ويندوز ، وبالمثل فلو أنك كتبت الـ OCX بلغة

السي ++ أو الفيجوال بيسك ، أو حتى بلغة الباسكال ( فرضاً ) فإنه بالإمكان أن تستخدمها في أي لغة تريدها .. إذن نستطيع

إستعمالها في لغتنا السي شارب بكل سهولة .
7 - لا أستطيع تحديد مستوى السهولة أو الصعوبة فأنت المسؤول عن جعلها سهلة أو صعبة وذلك بالإستمرار وتوسيع المدارك

من المصادر الموجودة على الشبكة أو حتى من المحترفين بهذه اللغة .
8 - قلت لك سابقاً أن الويندوز الجديد بواسطتها والأوفيس أيضاً . إذن نستطيع أن نقول أنها معتمدة ، ويمكن توضيح النقطة كما

يلي :
لغة الشي شارب جائت تطوير من لغة السي ++ وكلنا نعلم أن لغة السي ++ هي أول لغة نستطيع بواسطتها كتابة نظم التشغيل ،
وتعتبر السي شارب أقوى من اللغات التالية :
Oracle العملاقة من شركة صن والهدف الأساسي لها كان قواعد البيانات .
Java المشهورة والمتخصصة في صفحات الإنترنت ومن جديد في الموبايل .
C++ رغم أنها خرجت منها ولكنها تغلبت على كثير من المشاكل التي كانت تواجه السي ++ ومنها مشكلة الـ OOP .
الفيجوال بيسك : طبعاً لا مجال للمقارنة أبداً .

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

بخبرات جديدة بواسطة السي شارب ، وسبب ذلك دعمها الكامل والتوجه الكامل نحو الكائنات OOP .
مستقبلها -- الأولى بلا منازع -- للخمس سنين المقبلة وبعدها يغير الله من حال إلى حال .
المبرمج فيها يعتبر محترف ورقم واحد بين المبرمجين الآخرين .

وأخيراً - يجب أن تكون سباقاً إلى تعلم هذه اللغة خصوصاً أن التوجه الكبير الآن لها ..

أرجوا أن أكون قد أجبتك عن أسئلتك أخوي -- وأنا جاهز لأي أسئلة أخرى قد تفيدك في مستقبلك .

بصمة الهكر
21-04-2005, 04:01 PM
السلام عليكم ورحمة الله وبركاته:
مشكور يا اخي الغالي وجزاك الله خيرا وانا اليوم بعونه تعالى ساشتري نسخة منها
وسأبدأ رحلتي معكم ومعك انت بالذات ومع هذه اللغة
وعلى بركة الله سبحانه وتعالى نسير
وتحمل اسالتي فانا متعب في التعلم ولكن عندما اتعلم باذن الله انجح
وعسى الله ان يكون في تعلمنا خير لذيننا واسلامنا
سلامي

oms
21-04-2005, 10:57 PM
ما شي أخوي أنا جاهز

وحياك الله -- وأنا على أشد الإستعداد لأي سؤال في هذه اللغة الجميلة .

yasser max
25-04-2005, 11:58 AM
السلام عليكم

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

ملاحظة : يبدو انك نسيت وضع الدرس الثالث في ملف الاكروبات

oms
25-04-2005, 01:22 PM
مشكور يالغالي :

وهذه وصلة الدرس الثالث لعيونك :

http://s19.yousendit.com/d.aspx?id=0GF0Q0RNL49LO2GRFJ0T0W13OZ (http://s19.yousendit.com/d.aspx?id=0GF0Q0RNL49LO2GRFJ0T0W13OZ)

mema2000
29-04-2005, 11:25 PM
:p شكرا أخي الحبيب على تلك المعرفة الهائلة التي تقدمها لنا و نتمنى لك التوفيق دائما و نرجو منك الاستمرار و في انتظار باقي دروسك الرائعة:p

mema2000
16-05-2005, 10:09 PM
الدرس التاسع
شكرا يا أخي و لكننا نتوقع منك الباقي و نحن في انتظار

oms
17-05-2005, 05:02 AM
إخواني ...

أنا أعدكم في دروس الويندوز أبليكيشن ...
ولكن لو تتمهلون علي شوي ؟؟؟

وأنا عارف إنوا السي شارب مش حلوة إلا في الويندوز أبليكيشن
لا في الشاشة السوداء ( الكونسول ) ؟!!!

الأخ مديو
22-05-2005, 08:59 PM
السلام عليكم
أنا باقى لى سنة على التخرج من الهندسة قسم الحاسبات
ولكنى أسمع أنة فى سوق العمل ان ال DotNet لا ينتج برامج بالقوة الكافية للمنافسة فى أسواق البرمجيات

فما مدى صحة هذة المقولة

أخوك فى الله: أحمد من مصر

ehab
19-06-2005, 12:08 AM
السلام عليكم

شكراً جزيلاً اخي OMS
و أنا عندي استفسار اذا في حدا بعرف كيف ممكن احصل على اسئلة امتحانات سابقة لل MCAD و خصوصا الامتحان
70-315 Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET

و لكم جزيل الشكر

oms
19-06-2005, 07:51 PM
أخوي ما أجد والله ....

وأصلاً هي محظورة على النت يعني إذا كان واحد منزلها على طول يتسكر الموقع ..

يعني إذا لقيت موقع يا ريت ترسل لي على الخاص ....

malawala
25-06-2005, 07:13 PM
السلام عليكم
ايش احسن مركز يعطيني دورة في السي شارب علما تراني ابيض (يعني ما افهم شيء في البرمجة) ابغاه يبدا معاي من الصفر
لقيت مركز جده الدولي عنده دوره مبتدي ودورة متقدم في السي شارب مدة الدورتين 3 اشهر ب 2400 ريال
بس مادري هل اطلع منها واعرف اعمل برنامج خاص بعملي( قاعدة بيانات للمرضى وارقام ملفاتهم ... الخ )

oms
25-06-2005, 08:57 PM
أخوي ... لا أستطيع الحكم على مركزك أبداً ....
ولا يستطيع أحد أن يحكم على مركز أبداً إلا من قام بتجربته ...

أي أنك يا أخي لازم تسأل أحد الأشخاص الذين قاموا بتجربته ...
أو قم بحضور أول درسين ,,, ويمكنك أن تحكم بذلك ..

أما عن مراكز أخرى فلا أعتقد أخوي ...
لأني في الأردن وأنا لا أعرف أياَ من المراكز خارجها ...!!!


وأتمنى لك التوفيق أخوي في الدنيا والآخرة ...

oms
26-06-2005, 10:50 PM
وهذا هو أول درس لتطبيقات الويندوز ...

سأضع الرابط ...

لكن بعد أسبوع من هذا التاريخ سيلتغي ...

http://s31.yousendit.com/d.aspx?id=3TFZ4X7UOM4491MJY5C3224M7P (http://s31.yousendit.com/d.aspx?id=3TFZ4X7UOM4491MJY5C3224M7P)

Y.S.A
15-07-2005, 03:01 PM
السلام عليكم ورحمه الله وبركاته

بصراحه يا اخ oms انته كفيت ووفيت

بس ناقص الدرس الثالث ( تكفى نزل رابط جديد)

وتحياتي

oms
19-07-2005, 01:34 PM
أخوي يمكنك اتلإشتراك بالجروب الخاص بي وتستطيع تحميل النسخة التهائية من الدروس

على الرابط لتالي ::

http://groups.yahoo.com/group/OMSGroup/join

Y.S.A
24-07-2005, 10:00 AM
مشكور اخوي

بس لو تحط الرابط اللي منه ارسل رساله من الايميل واشترك على طول (من الوتميل)

وثانيا لو اشتركت كل القديم بيفوت صح ولا انا غلطان


تحياتي

oms
24-07-2005, 10:49 AM
كيف يعني !!!

وضح أكثر !! :06:

Y.S.A
28-07-2005, 10:36 AM
انا منتظرك

oms
31-07-2005, 06:45 PM
أخوي هاك الوصلات :

http://www.qfile.de/dl/114201/C_5.rar.html (http://www.qfile.de/dl/114201/C_5.rar.html)

ال 16 درس الكاملين !!

عمود ارتكاز
01-08-2005, 12:36 PM
مشكور جدا :biggthump

Argonaut
03-08-2005, 06:27 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
تقديرا لتعبك ارجو منك عدم معاودة هذا الامر "اسامة بيك انت تستاهل كل الخير":)

وشكرا

oms
03-08-2005, 06:36 PM
أمرك مراقب حسام ... وأنا آسف إن ضايقك الموضوع :D

أم سلطان
13-08-2005, 12:31 AM
الأخ oms

جزاك الله خير الجزاء على هذه الدروس القيمة

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

وبإذن الله سأكما متابعة دروس الويندوز

وجزاك الله خير الجزاء

hado
25-08-2005, 12:50 PM
السلام عليكم أخي ما لقيت رابط تحميل الدرس الثالث:wow:

oms
25-08-2005, 06:59 PM
أخوي هاك الوصلات :

http://www.qfile.de/dl/114201/C_5.rar.html (http://www.qfile.de/dl/114201/C_5.rar.html)

ال 16 درس الكاملين !!

islamforall
29-08-2005, 05:34 PM
السلام عليكم ارجو منكوم مساعدتى فى ايجاد هذه الكتاب القيم فى السى شارب ولكم جزيل الشكر
beginning visual c#

drbmsh
31-08-2005, 10:26 AM
very muchthank you

drbmsh
31-08-2005, 10:32 AM
can you tell me about a link which contain the complete visual studio 2005 beta or v.s 6

with all languages

c++

c#

v.b

j++

Sahiboka
31-08-2005, 12:08 PM
السلام عليكم
لماذا قلت بان لغة السي بلص بلص ليست كاملة oop
هذا خطأ كبير و شائع
لأنها تدعم جميع مفاهيم oop

أحمد بدار
03-09-2005, 12:06 AM
أخي الفاضل

لدي سؤال

كيف يمكن أن نرسم one pixel باستخدام c#

يعني عندما أعطي الأمر
DrawLine(1,1,1,1)
لا يرسم شيء
و أنا أريد أن أرسم بكسل واحد فقط و ليس خطا طوله بكسل واحد

أرجو منك أخي الرد

THE LION
04-09-2005, 08:17 PM
كيف أحمل الكتاب بواسطة هذه الوصلة,
أنا الآن بدأت التخصص في الصف العاشر وقد تغير المنهاج إلى لغة C# ولكن كل التطبيقات على الكونسول...
للأسف لا يوجد كتب باللغة العربية حتى السنة القادمة وسنعتمد على كتاب الكتروني بلغة غير لغتنا... لذلك أن بحاجة إلى هذا الكتاب <<< ربما سأعطيه للأستاذ....

ارجاء مساعدتي بتحميل الوصلة....

oms
23-09-2005, 09:31 PM
أخوي THE LION ...

أنا فعلاً آسف لأني تركت الموضوع ولم أنتبه لردك طوال هذه المدة ...

تفضل هذه وصلة الملفات كلها .... 16 درس ... وحجمه تقريباً 3.16 ميجا :::

http://rapidshare.de/files/5445903/C_.rar.html

وبالنسبة لشرك كيفية التنزيل كالتالي :::

أولاً قم بفتح الرابط ... بعدها قم بالضغط على زر Free كما في الصورة التالية ::


http://www.w6w.net/upload2/23-09-2005/w6w_200509231327233486f403.JPG



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


http://www.w6w.net/upload2/23-09-2005/w6w_20050923132903d74a5ee4.JPG



بعدها بعد ما يخلص العد التنازلي تصبح الصورة كالتالي :::

http://www.w6w.net/upload2/23-09-2005/w6w_20050923133018b697a0c0.JPG


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

هانى الفقى
24-09-2005, 01:51 AM
أين أنت يا oms نحن فى انتظارك بعد console ونريد الوندوز ابليكيشن

oms
25-09-2005, 08:21 PM
بالراحة علينا يا هاني ...

والله أنا الموضوع ببالي ..

بس والله ما في وقت ومشغول كثير ....

هانى الفقى
19-11-2005, 12:45 AM
كدة ياعم oms بقلنا ياما مستنينك وانت مش معبرنا نفسى تكمل المشوار لانك مميز وطريقة شرحك جميل وعايز أقلك حاجة تبسطك احنا مجموعة كبيرة أوى بنتعلم منك فمتحرمناش منك

CHALLENGER
02-12-2005, 09:24 PM
oms انا متابعك من زمان و الحين حتى شفت سلسلة الدروس هذه و اعجبت فيك اكثر بس ليش الحين ما تكملها ؟

oms
05-12-2005, 10:38 AM
المشكلة ما في وقت ..

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

tabassi
09-12-2005, 01:24 PM
MERCI BEAUCOUP :-)

هانى الفقى
10-12-2005, 10:45 PM
ياعم oms ابوس راس أبوك كمل اللى انت بد أته لأنى متبعك وماشى معاك خطوة بخطوة :biggthump

yasean
31-12-2005, 11:53 AM
..
السلام عليكم ..
أتمنى منك أخوي وضع ملف pdf للدرس الثالث في الصفحة الأولى حتى يكتمل الموضوع ..

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

وجزاكم الله خيراً ..

تحياتي لك ..

oms
03-01-2006, 12:23 PM
أخوي ..yasean


تابع هذه المشاركة .. تجد جميع ما تريده :
http://www.montada.com/showpost.php?p=4062989&postcount=81

ALCOONDOOR
05-01-2006, 04:47 PM
مشكور بالفعل مشاركة رائعة

:) :p :) :) :) :)

fernadoortega
16-06-2007, 04:08 PM
دي نهايه المشوار ولا ايه؟؟؟؟؟؟؟؟؟

drbmsh
17-07-2007, 08:42 PM
هل هناك اية نية لاستكمال هذة الدورة

oms
18-07-2007, 09:25 AM
أتوقع أنه نعم ...

يا ريت تدعوا لي إنوا الله يهديني وأكمل ما بدأت به .. لأنوا بصراحة هذه فائدة لي قبل ما تكون لكم .

we7daty
30-08-2007, 11:47 PM
مشكور كثير أخينا

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

يا الله شو فهمان هالبني آدم ما شاء الله عليه

أرجو منك تكملة الدروس وأن تكتب لنا رابط "شغال" لكل الدروس!!!

مشكور أخي العزيز