المهندس معاذ علاء الدين على عبدالموجود
نرحب بكم فى منتداكم وبالمشاركة نصل الى كل جديد وفى حالة قيامكم بالتسجيل ستصل رسالة فى بريد الياهو spam او بريد هوتميل junk ومن خلال قيامك بتنشيط والضغط بفتح هذه الرسالة سوف يكون بامكانكم المشاركة والتحميل للمتريال وفتح الراوبط المهمة وبالمشاركة يكتمل العمل
نتمنى لكم دوام التقدم والرقى للدعم الفنى والاستفسارات يجب مراسلتناعلى هذا الايميل instructor_mo3az@yahoo.com

كتابة كود فىc#

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

كتابة كود فىc#

مُساهمة  معاذ علاء الدين في الخميس أكتوبر 07, 2010 9:49 am

1. مقدمة عن C#.net
مقدمة عن C#.net




بما أن #C تم إنشائها خصيصاً لتمثل إحدى لغات الـ .NET فسنحتاج لمعرفة ماهية .NET أولاً.

ماهي الـ .NET؟

كثيراً ما يتردد على مسامعنا كلمة .NET سواء في الإنترنت أو الصحف والمجلات التقنية أو حتى في الجامعات! فما هي الـ.NET ؟

هل هو برنامج ضخم يتم شراءه؟ أم لغة برمجة؟ أم خدمة يتم الاشتراك بها؟!

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

فالـ .NET عبارة عن مجموعة من تقنيات برمجية تمثل البنية التحتية والتي تسمى بـ .NET FRAMEWORK والتي تجعل المعلومات، المستخدمين، التطبيقات، ومختلف الأجهزة، والأنظمة تتصل ببعضها البعض من خلال ما يسمى بخدمات الويبweb services.



Web Services:


هي عبارة عن برامج يتم وضعها على الجهاز الخادم server لتعمل من خلال الإنترنت، هذه البرامج تم بناءها بواسطة لغة XML لتسمح لمختلف التطبيقات بتبادل المعلومات بغض النظر عن اللغة التي كُتبت بها هذه التطبيقات، أو أي نظام تشغيل تعمل عليه، أو حتى نوعية الأجهزة التي توجد عليها هذه التطبيقات.







.NET FRAMEWORK:

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

ويحتوي الـ .NET FRAMEWORK أيضاً على ما يسمى بـ Common Type System(CTS) وهي عبارة عن الأنواع المتاحة للغات الـ .NET لتمثيل البيانات في ذاكرة الكومبيوتر.

ويحتوي هذا الـ FRAMEWORK أيضاً على(Common Language Runtime(CLR وهو عبارة عن محرك يقوم بتنفيذ جميع البرامج المكتوبة بأحد لغات .NET


لغات .NET:


§ Visual basic.net

§ Visual C#.net

§ Visual c++.net

§ Visual j#.net

§ Jscript.net

§ Cobol.net

§ Perl.net

§ Eiffel.net

§ Python.net

§ Pascal.net

§ Mercury.net

§ Mondrian.net

§ Oberon.net

§ Salford FTN95.net



#C


#C كما ذكرنا في البداية أنها إحدى لغات .NET من إنتاج شركة مايكروسوفت، وتنطق "سي شارب".

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



حسناً، لن نتحدث عن جميع مميزاتها هنا! ولكن في الدروس القادمة إن شاء الله ستتعرف بنفسك على مميزات اللغة بشكل مفصل وأكثر وضوحاً !
1. نقاط مهمة في #C::
::نقاط مهمة في #C::




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



عند كتابة برامج C# نأخذ في الاعتبار أن :



§ لغة C# لغة حساسة لحالة الأحرف، أي أن الكلمة Console تختلف عن الكلمة console.

§ يجب أن ينتهي كل سطر برمجي بعلامة الفاصلة المنقوطة ( ; ) .

§ لإضافة تعليقات للكود نستخدم الرمز // لإضافة تعليقات في سطر واحد، بينما نستخدم الرمز /* */ ونضع التعليقات بينهما لإضافة تعليقات في أكثر من سطر. مثال:




this line to display a welcome message on the screen//

;("Console.WriteLine("welcome to the first C# Program






§ عند تنفيذ برامج #C فإنه يتم تجاهل المسافات البيضاء. و المسافات البيضاء هي الأسطر الفارغة التي قد نستخدمها في تنسيق شكل البرنامج لتسهل قراءته !



أنواع البرامج في C#:



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



§ برامج نصية: وهي البرامج التي تعرض نتائجها في صورة نصية على سطر الأوامر (الدوس) تماماً كما في المثال السابق.


§ برامج الويندوز: هي برامج ذات واجهة رسومية، كما في العديد من البرامج التي تستخدمها كبرنامج وورد مثلاً.


§ خدمات الويب: هي برامج يمكن استدعاؤها عبر الويب. مثل MSN Messenger للمراسلة الفورية عبر الإنترنت.


§ نماذج ويب: وهي صفحات ويب يتم معالجتها على الجهاز الخادم.
رد مع اقتباس
1. عمليات الأدخال والأخراج في C#.NET
عمليات الأدخال والأخراج في C#.NET




وللعمليات الأدخال والأخراج يجب أستخدام

;using System

كود:
using System;
...
Console.WriteLine("HI , JIMMY");
أو تظيف.System قبل الأوامر



كود:
System.Console.WriteLine("HI , JIMMY");

# عملية الأخراج على الشاشة


* ;()Console.Write

لطباعة


* ;()Console.WriteLine

لطباعة في سطر

والفرق بين Write و WriteLine أن الأول لما ينتهى من الطباعة سيقف المؤشر بعد آخر شىء طُبع
أما الثاني بعد ماينتهي من الطباعة سينزل إلي السطر التالي ويقف المؤشر في السطر التالي

كما في الصورتان


شكل يوضح عملية الأخراج عن طريق Console.Write







شكل يوضح عملية الأخراج عن طريق Console.WriteLine







برنامج بسيط لطباعة على الشاشة كلمة Heloo , World


كود:
using System;

class Hello
{
public static void Main()
{
Console.WriteLine("HI , JIMMY");
}
}



# عملة الأدخال من الكيبورد

* ;()Console.Read

لإدخال حرف أو رقم واحد

* ;()Console.ReadLine

لإدخال كلام وأرقام عباره عن سطر


وعند إدخال إي شي من الكيبورد فإنه يدخل على شكل string
لوا أردناها أن تكون قيمة (Value)
يجب تحويلها إلي Value

مثال
نريد أن ندخل قيمة 5 من الكيبورد
كود:
int x;
عرفنا متغير من نوع integer وأسمه x
كود:
x = int.Parse(Console.ReadLine());
والذي سوفا يدخل من الكيبورد حيدخل بلـ x ولاكن الذي سيدخل على شكل string ونحنوا نريده قيمه صحيحه فوضعنا
()int.Parse لكي تيم تحوله إلي integer
وطبعاً الشىء الذي سيتحول داخل الأقواس () وهوا ()Console.ReadLine الشىء الذي سيتجل من الكيبورد

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











ويطلع دش كلام ممكن المستخدم لايعرف ماذا حصل.


وبعدها سيوقف البرنامج عن العمل
فيجب تفادي الأخطاء مثل هذه.

ويسمى مثل هذه الأخطاء بلـ exception

ولكي تفادي مثل هذه الأخطاء يجب أمساكها لكي لاتطلع بوجه المستخدم ويقفل البرنامج فى وجهُ
هوا طبعاً الـ exception حيطلع حيطلع لوا تخل شي غير المطلوب بس نحنوا نمسك الـ exception
ونطلع له رسالة بسيطه حلوانقول فيها الـ error الذي حدث
وهكذا يفهم المستخدم ماذا حدث وفي نفس الوقت لن يقف البرنامج عن العمل .

نضع علي الشىء الشاكين فه وخايفين أن يرمى exception نضعهوا بين try
ونمسكه بلـ catch

-----------------------
كود:
int x;
الشىء الخايفين أن يرمي exception وضعنا بين try
كود:
try
{
x = int.Parse(Console.ReadLine());
}
ووضعنا catch الذي سوفا يأتي نت الـ try سيمسك فى catch وطبعاً إن لم يحدث exception لن تشتغل catch
يجب وضع catch للـ try ولكل try واحده catch واحده أو أكثر من catch ويجب وضع الـ catch اسفل الـ try علي طول.
وهنا catch من نوع Exception وهوا الأب الأكبر لهم
فهوا يمسك كل الـ Exception التي سوفا تحدث عند الـ try.
ويوجد أنواع كثيرة من الـ Exception ومنها
(DivideByZeroException) وهذا مثل x/y والـ x=0 والصفر لايقسم به فهذا سوفا يرمي Exception
فنمسكه بلـ DivideByZeroException حقه أو نمسكه بلـ Exception الأب.
كود:
catch(Exception){}
وطلعنا رسالة بسيطة نقول فيها لو سمحت أدخل رقم صحيح بدل من أن يطلع له كلام كتير.
كود:
Console.WriteLine("Please Enter Only Integer);
}

وهكذا عرفنا كيفية عمليات الأدخال والأخراج وتفادي الـ Exception

1. ::البرنامج الأول في#C::




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



قد يدور في ذهنك الآن، كيف وأين أكتب برامج#C ؟!



سؤال منطقي، بكل سهولة يمكننا كتابة برامج #C باستخدام برنامج المفكرة وحفظها بالامتداد .cs وقد ذكرنا في الدرس السابق أن .NETFRAMEWORK يحتوي على محرك لتنفيذ برامج .NET بالإضافة إلى مكتبة برامج .NET، فإذاً كل ما نحتاج إليه لتنفيذ برامج C# هي .NETFRAMEWORK وستجدها في موقع مايكروسوفت www.microsoft.com



ولكن شركة مايكروسوفت طرحت أداة تطوير جديدة تسمى Visual Studio.NET و اختصارها VS.NET وهي عبارة عن بيئة تطوير متكاملة IDE تحتوي على التالي:



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


لذلك فمن الأفضل لنا استخدام VS.NET لكتابة وتنفيذ برامجنا.





لنبدأ إذن:



لنفتح برنامج VS.NET ونتبع الخطوات التالية:



إذا كانت هذه المرة الأولى التي تفتح فيها البرنامج، فاختر My Profile، وذلك لتحديد لغة .NET التي تريدها كما في الشكل التالي:









ثم اختر Visual C# Developer من القائمة المنسدلة.



ثم مرة أخرى من القائمة الموجودة على اليسار اختر Get Started، ثم اختر زر New Project كما في الشكل التالي:






في الخطوة الأولى اختر Visual C# من القائمة الموجودة على اليسار، وفي الخطوة الثانية اختر Console Window من النافذة الموجودة على اليمين، وفي الخطوة الثالثة قم بتسمية المشروع بأي اسم تريد هنا قمنا بتسميته FirstProgram ولك الحرية المطلقة في التسمية، وفي الخطوة الرابعة اخترنا ملف لحفظ المشروع، في هذا المثال حفظنا المشروع في الملف الافتراضي لبرنامج VS.NET، وفي الخطوة الخامسة والأخيرة نضغط على الزر OK. كما يبين الشكل التالي:






بعد الضغط على OK ستفتح لنا نافذة البرنامج وسترى فيها محرر النصوص مكتوب بداخله أوامر C# (لا تقلق لست ملزماً بفهم هذه الأوامر في الوقت الحالي)، و في الجهة العليا ستجد شريط القوائم والأدوات كما هو مبين في الشكل :





أما في الجهة السفلى فستجد نافذة المخرجات، وهي النافذة التي تبين لك ما إذا كان تنفيذ برنامجك قد تم بنجاح أم أن هناك أخطاء في البرنامج !





هذه نظرة سريعة على الواجهة المرئية لبرنامج VS.NET، لنكتب أول برنامج لنا! في محرر النصوص، امسح الجزء المضلل في الشكل التالي:






ثم اكتب السطر التالي بدلاً منه:



كود:
Console.WriteLine("welcome to the first C# Program");





كما في الشكل التالي:








السطر السابق يؤدي إلى طباعة الجملة الموجودة بين علامتي التنصيص "" على شاشة الدوس السوداء.



لنشاهد النتيجة علينا تنفيذ الكود أولاً، من شريط القوائم الموجود أعلى محرر النصوص اختر Debug | Start without debugging (أو اضغط على المفتاحين ctrl+F5 )كما في الشكل:





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





اضغط على أي مفتاح لإخفاء هذه الشاشة.



هل تلاحظ أي تغير في نافذة المخرجات؟ بالطبع! فأثناء تنفيذ البرنامج، ظهرت على هذه النافذة أن البرنامج قد نفذ بنجاح ولا يوجد أخطاء. كما في الشكل التالي:





أنظر ما سيحدث في حال كتابة أخطاء في الكود السابق، كعدم كتابة علامة الفاصلة المنقوطة في آخر السطر السابق:





سيظهر الخطأ والسطر الذي يوجد به هذا الخطاء، ولن تظهر النتيجة على الشاشة السوداء حتى يتم تعديل هذا الخطأ.



إذا أردت معرفة الملفات التي يتضمنها هذا المشروع، فمن شريط الأدوات الموجود أعلى المحرر، اختر الرمز





وستفتح لك نافذة Solution Explorer يمين محرر النصوص، سترى في هذه النافذة أربع ملفات References و App.ico و assemplyInfo.cs و class1.cs. ما يهمنا هو class1.cs حيث أنه الملف الذي اضفنا له سطر#C السابق. وهو يحمل الإمتداد .cs وهو امتداد جميع ملفات البرامج المكتوبة بلغة#C. كما في الشكل:




عند اختيار أي ملف من هذه الملفات قم بالنقر على الرمز





حسناً، كل ما قمنا به حتى الآن هو التعرف على بيئة التطوير VS.NET و كتابة أول برنامج لنا مستفيدين من المميزات السهلة التي توفرها هذه البيئة.



وقبل أن أتركك تعبث في واجهة VS.NET، أود أن أضيف معلومات مبسطة حول الكيفية التي تمت بها تنفيذ برنامجنا السابق.



§ في البداية يوجد لدينا ملف به كود مكتوب بأحد لغات .NET وهو#C في هذه الحالة.




§ بعد ذلك تتم ترجمة الكود إلى لغة وسيطة ليست من لغات ذات المستوى الأعلى ولا من اللغات ذات المستوى الأدنى، وتسمى هذه اللغة MSIL وهي اختصار لـ Microsoft Intermediate Language حيث يصبح هذا الكود غير معتمد على جهاز معين ولا نظام تشغيل معين.



§ وباستخدام نوع من المترجمات يأتي مع .NETFRAMEWORK يسمى JIT Compiler وهو اختصار لـ Just In Time Compiler، وهو حسب ما يدل عليه اسمه مترجم لحظي أي يستخدم في كل مرة أريد تشغيل البرنامج وتحويله إلى لغة يفهمها جهاز الكومبيوتر وينفذها، وهذه اللغة تسمى Native Code.





ولذلك فمن مميزات تطبيقات .NET أنها غير معتمده على نظام تشغيل أو جهاز معين! فقط نستخدم JIT Compiler مناسب لنظام التشغيل والجهاز لدي ومن ثم يمكنني تشغيل أي تطبيق من تطبيقات .NET!

وبذلك يمكنني استدعاء برنامج مكتوب بلغة Visual Basic.NET من برنامج مكتوب بلغة #C أو العكس، وذلك لأن هذه البرامج قد تم ترجمتها إلى اللغة الوسيطة MSIL. وهذه من مميزات تقنية NET .

1. Keywords الخاصة بلـ #C




وهو تحذير من استخدام اسماء هذه المصطلحات كمتغيرات (variables) في البرنامج
لإنها تعتبر Keywords الخاصة بلـ #C

1. الشرط في #C
الشرط في #C






# اولاً الشرط بأستخدام if


(if(x == 0
;++x

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

مثال

(if(x == 0
}
;++x
;(Console.WriteLine(x
{

وممكن يأتي أكثر من شرط

(if(x == 0
;++x

(if(y == 0
;++y

وهنا سوفا يمر علي كل الشرط

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


(if(x > 0

;("Console.WriteLine("x is number positive

(else if(x < 0
;("Console.WriteLine("x is number negative

else
;("Console.WriteLine("x = 0


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

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





# ثانياً الشرط بأستخدام switch

ولها أستخدامات كثيرا وتسهل علينا في بعض الأحيان بدل من أستخدام if

وطريقة كتابتها كما في المثال





switch وبين القوسين الذي سوفا يكون به المقارنه
case هوا الشرط على إلى بين قوسين وهنا وتلاحظ ان كل case بعد : هوا الذي سوفا يفعلوا لو تحقق الشرط ويوجد أيضا break
مع نهاية كل فعل وهذا ضروري لكى لايمر علي كل الـ case ويفعل ماينطلب منهم كل واحد
وتلاحظ أيضاَ أنه في بعض الشروط لم يضع لها فعل مثل 100 وطبعاً لايوجد break فبهذه الحالة لو كانت قيمة x بتساوي 100 إلي 90 سوفا يفعل شرط واحد وهوا ان يطبع حرف A لانه يقف عندا الـ break ويخرخ من swtch عندما يتحقق إي شرط ويكون فه break
ويوجد أيضاً default وتعني أى شىء غير الموجود يفعل المطلوب منه


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

وفي المثال السابق قيمة x = 80 فماذا سيكون الأوت بوت



Quiz

في كل واحد يوجد غلط فين الغلط وليش لكل واحد فيهم ؟

-------------------
if X % 2 == 0
-------------------


--------------------
( if (X < 0) || (X > 100
--------------------


--------------------
;(if (x == 60
;x = 0
--------------------


--------------------
(switch(x
}
;++case 0 : x
;case -1 : x+=2

{

منقول للفائدة

_________________



INSTRUCTOR_MO3AZ@YAHOO.COM
محاضر كمبيوتر بالهيئات التعليمية يقوم بتدريس(الرخصة الدولية للقيادة الحاسب-لغات برمجة -برامج جرافيك -صيانة وشبكات )
ICDL - MCSE - CCNA - ORACLE - C# - OFFICE 2007 - GRAPHICS
00966565633760

معاذ علاء الدين
Admin

عدد المساهمات : 264
تاريخ التسجيل : 01/06/2009
العمر : 32
الموقع : http://mo3azmera.blogspot.com-http://mo3azmera.ibda3.org

معاينة صفحة البيانات الشخصي للعضو http://instructor_mo3az@yahoo.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

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


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى