تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس 2- فهم مبادئ اللغة والمدخل لها مع برنامج الة حاسبة بسيطة
#1
كاتب الموضوع : Tarek Aldwire

الدرس 2: فهم مبادئ اللغة والمدخل لها


للبدئ في اللغة بشكل جدي لا بد من فهم عدة نقاط
أولا: الكلمة المحجوزة:
وهي كلمة تم إستخدامها من قبل لغة البرمجة المستخدمة مثل الكلمة if فهي كلمة محجوزة في لغة سي شارب

ثانيا: مجالات الأسماء (Name Spaces):
يمكنك إستيراد إحدى مجالات الأسماء باستخدام الكلمة المحجوزة using
فمثلا لو أردنا إستيراد الفئة IO وكما هو واضح أن أكبر مجال أسماء في اللغة هو System:

كود :
[color=#000000][COLOR=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]IO[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

فمثلا إذا أردنا أن نوصل إلى أمر فتح ملف في برنامجنا يمكننا فعل إحدى الطريقتين:
علما أن الأمر يقع تحت مجال الأسماء System.IO

الأولى

كود :
[color=#000000][COLOR=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]IO[/color][color=#007700].[/color][color=#0000bb]File[/color][color=#007700].[/color][color=#0000bb]Open[/color][color=#007700]([/color][color=#dd0000]"مسار الملف"[/color][color=#007700],[/color][color=#dd0000]"نوع الفتح للملف"[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

أو نقوم أولا باستيراد مجال الأسماء System.IO كالتالي:

كود :
[color=#000000][COLOR=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]IO[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

وفي هذه الحالة يكتفى بكتابة الأمر كالتالي:
File.Open


البدئ مع لغة c# :
الان قد ان الأوان لنبدأ بلغة سي شارب بشكل جدي:

كتابة البرنامج الأول لك:

أولا قم بفتح برنامج ال Visual Studio 2008
سوف تجد كلمة Project وعلى يمينها خيارين Open,Create
Open : لفتح برنامج مصنوع سابقا
Create : إنشاء مشروع جديد

إختر Create سوف تظهر لك نافذة تحوي على العديد من الخيارات التي سوف ندرس اهمها:
1- Windows Forms Application
وهي البرامج ذات النوافذ كال Internet Explorer ويكون إمتدادها exe
2- Class Library
وهي عبارة عن صف برمجي فارغ للبدأ ببرمجته من الصفر ويكون إمتداده dll
3- ASP.NET Web Application
إنشاء تطبيقات Web باستخدام تقنية asp.net
4- ASP.NET Web Service Application
إنشاء خدمات لتطبيقات الويب باستخدام تقنية asp.net
5- WPF Application
وهي برامج متطورة يستخدم في رسمها لغة xaml
6- Console Application
وهي تطبيق مهمته تنفيذ شيئ ثم الإغلاق وسوف تظهر ال Console أثناء تنفيذ هذا البرنامج
وعادة ما يستخدم في برامج فك الضفط . النسخ ,,,
7- Windows Forms Control Library
لتصنيع أداة خاصة بك لأستخدامها في تطبيقات Windows Form Application

والان نعود إلى موضوعنا سوف نختار Windows Forms Application:

في ال Name : نضع إسم البرنامج والذي سيكون الان myfirstprogram
ثم إضغط على زر Ok
الان سوف تلاحظ ظهور فورم أمامك ( تم الشرح في الدرس السابق ماهية الفورم )
والان سوف نبدأ بدراسة بعض خواص هذه الفورم:
( ملاحظة لعرض خواص Control ما إضغط عليها ضغطة بالزر الأيمن للفأرة ثم إختر Properties
سوف تظهر خصائص ال Control في أسفل الشاشة على اليمين )

1- الخاصية Text
وهي الخاصية التي تحدد ماهو المكتوب على رأس الفورم (( بشكل إفتراضي هو Form1)) لأنها الفورم الأولى في البرنامج
إكتب هنا MyFirstProgram

2- الخاصية Size
من خلال هذه الخاصية تستطيع تحديد حجم الفورم ولا داعي لكتابتها يدويا فأنت عدل بحجم الفورم بالفأرة وهي سوف تعدل تلقائيا

3- الخاصية Name:
ومن هنا يتم تحديد إسم الفورم (( إجعلها MainForm))

4- StartPosition
ومن هنا تحدد مكان الفورم عندما يتم تحميلها (( إجعلها CenterScreen لكي تبدأ بمنتصف الشاشة ))

الان سوف نقوم ببرمجة الة حاسبة بسيطة نقوم بوضع رقمين لها فتخرج الناتج برسالة:
ولكن قبل ذلك
عليا تعريفك ببعض مصطلحات اللغة ولو بشكل بسيط ( الذي يلزمنا الان ) :

bool وتكون قيمتها true أو false
string وتكون قيمتها نصية مثلا "td"
double رقم كبير
(( سوف يرد في الدورة الشرح المفصل لكل واحدة وحدود إستيعابها ومقدار وزنها على ال ram))

الان نضع إثنان من ال textbox على ال form ثم نضع Button نجعل الخاصية text له = إجمع
وفي كل من خاصية ال text لل textboxes إجعلها = 0

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

كود :
[color=#000000][COLOR=#0000bb]using System[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Collections[/color][color=#007700].[/color][color=#0000bb]Generic[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]ComponentModel[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Data[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Drawing[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Linq[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][COLOR=#007700];

[/COLOR][COLOR=#0000bb]namespace WindowsFormsApplication1
[/COLOR][COLOR=#007700]{
    public [/COLOR][color=#0000bb]partial [/color][color=#007700]class [/color][color=#0000bb]Form1 [/color][color=#007700]: [/color][COLOR=#0000bb]Form
    [/COLOR][COLOR=#007700]{
        public [/COLOR][color=#0000bb]Form1[/color][COLOR=#007700]()
        {
            [/COLOR][color=#0000bb]InitializeComponent[/color][COLOR=#007700]();
        }

        private [/COLOR][color=#0000bb]void button1_Click[/color][color=#007700]([/color][color=#0000bb]object sender[/color][color=#007700], [/color][color=#0000bb]EventArgs e[/color][COLOR=#007700])
        {

        }

    }
}  
[/COLOR][color=#0000bb][/color][/COLOR]
}}}}
تم الشكر بواسطة:
#2
لكن ما الذي كتب تلقائيا؟؟؟
أولا:

كود :
[color=#000000][COLOR=#0000bb]using System[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Collections[/color][color=#007700].[/color][color=#0000bb]Generic[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]ComponentModel[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Data[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Drawing[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Linq[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700];
[/COLOR][color=#0000bb]using System[/color][color=#007700].[/color][color=#0000bb]Windows[/color][color=#007700].[/color][color=#0000bb]Forms[/color][COLOR=#007700];  
[/COLOR][color=#0000bb][/color][/COLOR]

هنا تم إستيراد المجالات كما تعلمنا في الدرس السابق

ثم تم تعريف ال namespace الخاص بالبرنامج والذي يدعى هنا WindowsFormsApplication1


كود :
[color=#000000][COLOR=#0000bb]        [/color][color=#007700]public [/color][color=#0000bb]Form1[/color][COLOR=#007700]()
        {
            [/COLOR][color=#0000bb]InitializeComponent[/color][COLOR=#007700]();
        }  
[/COLOR][color=#0000bb][/color][/COLOR]

هنا كما تلاحظ أنه تم إستدعاء الأمر InitializeComponent
وهو الأمر الذي يقوم برسم الفورم (( سوف نتطرق إليه ويمكن الوصول إليه من ال Designer
الخاص بالفورم


كود :
[color=#000000][COLOR=#0000bb]        [/color][color=#007700]private [/color][color=#0000bb]void button1_Click[/color][color=#007700]([/color][color=#0000bb]object sender[/color][color=#007700], [/color][color=#0000bb]EventArgs e[/color][COLOR=#007700])
        {
[/COLOR][COLOR=#0000bb]هنا سوف ينفذ كل شيئ مكتوب عند ضغط button1
        [/COLOR][COLOR=#007700]}  
[/COLOR][color=#0000bb][/color][/COLOR]

أما هنا فقط تم إضافة أمر في ال Designer مع الحدث Click لل button1 لكي يتم تنفيذ الكود مع ضغط الزر والذي يتم على الشكل التالي

كود :
[color=#000000][COLOR=#0000bb]button1[/color][color=#007700].[/color][color=#0000bb]Click[/color][color=#007700]+=new [/color][color=#0000bb]EventHandler[/color][color=#007700]([/color][color=#0000bb]button1_Click[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

أنتبه في الكود السابق تم إفتراض أنك قد كتبت أمر بأسم button1_Click حيث سوف يتم تنفيذ هذا الأمر عند ضغط زر البرتون وبإمكانك تغيير إسم الأمر كما تشاء

الان نكتب في الأمر الذي كتب تلقائيا في المكان الذي أشرت إليه سابقا:

كود :
[color=#000000][COLOR=#0000bb]        [/color][color=#007700]private [/color][color=#0000bb]void button1_Click[/color][color=#007700]([/color][color=#0000bb]object sender[/color][color=#007700], [/color][color=#0000bb]EventArgs e[/color][COLOR=#007700])
        {
[/COLOR][COLOR=#0000bb]هنا أكتب كود الجمع
        [/COLOR][COLOR=#007700]}  
[/COLOR][color=#0000bb][/color][/COLOR]

نكتب:


كود :
[color=#000000][COLOR=#0000bb]            double num1[/color][color=#007700], [/color][color=#0000bb]num2[/color][COLOR=#007700];
            [/COLOR][color=#0000bb]num1 [/color][color=#007700]= [/color][color=#0000bb]double[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]textBox1[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700]);
            [/COLOR][color=#0000bb]num2 [/color][color=#007700]= [/color][color=#0000bb]double[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#0000bb]textBox2[/color][color=#007700].[/color][color=#0000bb]Text[/color][COLOR=#007700]);
            [/COLOR][color=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700](([/color][color=#0000bb]num1 [/color][color=#007700]+ [/color][color=#0000bb]num2[/color][color=#007700]).[/color][color=#0000bb]ToString[/color][COLOR=#007700]());  
[/COLOR][color=#0000bb][/color][/COLOR]

شرح الكود:
أولا قمنا بتعريف متغيرين من نوع double الأول :num1 والثاني num2
وفي السطر الثاني تم إعطاء القيمة num1 = textbox1.text ولكن هنا يوجد مشكلة
أنه لا يمكن أن نعطي قيمة نصية string لقيمة عددية double
لذلك قمت بالتحويل من string إلى double كما هو واضح
أي تستخدم هذه الطريقة للتحويل من string إلى double على الشكل التالي:
مثلا:

كود :
[color=#000000][COLOR=#0000bb]num1 [/color][color=#007700]= [/color][color=#0000bb]double[/color][color=#007700].[/color][color=#0000bb]Parse[/color][color=#007700]([/color][color=#dd0000]"500"[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

فهنا أصبحت num1 = 500

ثم في السطر الثالث قمنا بجعل num2 = textbox2.text بعد تحويلها ل double بنفس الطريقة
والان نصل إلى السطر الثالث ما معنى MessageBox???
وهي أمر يمكن من خلاله إظهار رسالة بقيمة نصية كالتالي:

كود :
[color=#000000][COLOR=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#dd0000]"mymessage"[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

فقد قمت بجمع الرقمين num1,num2 بين قوسين ثم كتبت على القوسين .ToString()

ويتم إستخدام هذه الدالة على الشكل التالي:

كود :
[color=#000000][COLOR=#0000bb]textBox1[/color][color=#007700].[/color][color=#0000bb]text [/color][color=#007700]= [/color][color=#0000bb]num1[/color][color=#007700].[/color][color=#0000bb]ToString[/color][COLOR=#007700]();  
[/COLOR][color=#0000bb][/color][/COLOR]

وكما هو واضح فإنها تستخدم للتحويل من رقم إلى string
والان لتجريب الحاسبة إضغط على زر f5 وأكتب رقم في كل من ال textboxes وأضغط على ال Button
وانظر إلى النتيجة...

( الان لا تحاول العبث بالالة الحاسبة لأنها في كثير من الحالات سوف تتوقف عن العمل كوضع أحرف بدل من الأرقام لكن في الدرس القادم إن شاء الله سوف نتممها لنجعلها تتحقق من المدخلات )

يتبع في الدرس القادم إن شاء الله...
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس 22- دوال sql server RaggiTech 0 1,051 18-10-12, 04:11 PM
آخر رد: RaggiTech
  الدرس 21- Stored Procedures RaggiTech 0 929 18-10-12, 04:09 PM
آخر رد: RaggiTech
  الدرس 20- تنفيذ جمل الإستعلام insert-update-delete RaggiTech 2 969 18-10-12, 04:08 PM
آخر رد: RaggiTech
  الدرس 19- ربط قاعدة بيانات accessمع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل RaggiTech 0 1,318 18-10-12, 03:41 PM
آخر رد: RaggiTech
  الدرس 18- ربط قاعدة بيانات sql مع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل RaggiTech 0 2,477 18-10-12, 03:29 PM
آخر رد: RaggiTech
  الدرس 17- مقدمة إلى قواعد البيانات RaggiTech 0 738 18-10-12, 03:21 PM
آخر رد: RaggiTech
  الدرس 16- تصميم الأدوات الخاصة RaggiTech 0 703 18-10-12, 03:20 PM
آخر رد: RaggiTech
  الدرس 15- البداية مع gdi+ RaggiTech 1 752 18-10-12, 03:16 PM
آخر رد: RaggiTech
  الدرس 14- شرح تقنية ال wpf مع بعض الأمثلة RaggiTech 4 1,104 18-10-12, 03:12 PM
آخر رد: RaggiTech
  الدرس 13- Multi-Threading RaggiTech 0 773 18-10-12, 03:03 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم