مـنـــــــارة الـبـســمــة


أهلا وسهلا بك زائرنا الكريم, أنت لم تقم بتسجيل الدخول بعد!
يشرفنا أن تقوم بالدخول أو التسجيل إذا رغبت بالمشاركة في المنتدى
منارة البسمة

رؤيتنا أن يكون العالم مكاناً أفضل للعيش لنا جميعاً.

الموقع الرسمي للكاتب والمدرب التربوي عمرو عبد العظيم www.amrabdelazim.com

    الدرس الثاني في لغة C#.

    شاطر
    avatar
    saly100

    عدد المساهمات : 95
    نقاط : 262
    السٌّمعَة : 28
    تاريخ التسجيل : 31/12/2009

    هلا الدرس الثاني في لغة C#.

    مُساهمة من طرف saly100 في الثلاثاء فبراير 02, 2010 1:13 pm

    الدرس الثاني



    المتغيرات

    في الدرس الأول تعلمنا أن كل شيئ في الحاسوب يعتبر كائن

    وفي الحقيقة هناك نوعين من الكائنات :

    كائنات حقيقية: وهي التي لها صفات
    وأفعال ويمكن أن يكون لها تمثيل مرئي

    متغيرات : وهي متغيرات لا تحتوي على
    صفات أو أفعال وإنما تحتوي على قيمة محددة ولا تكون مرئية

    أي انه من الممكن أن يحتوي الكائن "المتغير" X على قيمة مخزنة في ذاكرة
    الحاسوب

    ومن الممكن أن تكون قيمة المتغير أما رقم أو نص أو حرف أو رقم عشري أو....

    وإذا أردنا أن ننشئ متغير في ذاكرة الحاسوب فيجب أن نحدد نوع القيمة التي
    سيحملها المتغير

    مع العلم أننا نختار إسم الكائن كما نشاء مادام الإسم يحقق الشروط التالية:

    1-أن يكون اسم المتغير حروف أو ارقام
    لاتينية

    2-أن لا يكون أول حروف الإسم رقم , فهذا
    الإسم غير مسموح 5int بينما هذا مسموح int5

    3-أن لا يحتوي الإسم على علامات
    أواشارات مثل # أو $ أو * أو + , الإشارة المسموحة فقط هي _

    وهذه الشروط تنطبق على أسماء الكائنات أو المتغيرات التي سنقوم بإنشائها

    إذاً المتغير هو كائن يستخدم لتخزين قيمة من
    نوع محدد


    مثلاً إذا أردنا أن نعرف متغير اسمه x
    من نوع رقم سيكون الكود كالتالي:

    int x;

    وكلمة int إختصار لكلمة integer ومعناها عدد صحيح

    الكود السابق معناه أنا عرفنا متغير اسمه x سيحمل قيمة من نوع عدد صحيح

    لاحظ أنك تستطيع تغيير اسم المتغير كما تشاء المهم أن تراعي شروط التسمية
    الثلاثة

    وإذا أردنا تحميل هذا المتغير قيمة محدد يكون الكود كالتالي:

    x=20;

    الكود السابق معناه أن المتغير x يحمل القيمة 20 ويستمر بحمل القيمة حتي
    يتوقف البرنامج أو نحملة قيمة أخرى

    لاحظ الكود التالي:

    int Var1;
    int Var2;
    Var1=10;
    Var2=Var1;

    قمنا بتعريف متغيرين من نوع رقم صحيح ثم حملنا الرقم الأول قيمة 10

    وفي السطر الأخير حملنا المتغير الثاني قيمة المتغير الأول أي أن المتغير
    الثاني يحمل أيضاً القيمة 10

    ملاحظة مهمه:في لغات البرمجه معامل التساوي ليس
    تبادلي يعني أن




    Var2=Var1




    لا تساوي أبداً




    Var1=Var2




    لإن معامل = في لغات البرمجة يقوم بنقل قيمة المتغير في اليمين إلى المتغير
    في اليسار


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

    int Var1;
    int Var2;
    Var1=10;
    Var1=Var2;

    فسيظهر لنا خطأ عند السطر الأخير لأن المعالج سيحاول نقل ما في المتغير
    Var2 إلى المتغير Var1

    ولكن المتغير Var2 لا يحتوي على أي قيمة لذلك سيظهر لنا الخطأ

    بعض أنواع المتغيرات وكيفية تعريفها:

    رقم صحيح int
    نص أو كلمة string
    رقم حقيقي "رقم يقبل الكسور العشرية مثل 41.51" double
    حرف char
    تاريخ أو وقت DateTime
    قيمة بوليانية bool

    معنى القيمة البوليانية أي أن المتغير يحمل قيمة صح أو خطأ , للتوضيح:

    int k;
    string w;
    double m;
    char n;
    bool p;
    k=15;
    w="هذا نص";
    m=12.15;
    n='م';
    p=true;

    لا حظ أن المتغير من نوع رقم لا يحتاج إلى علامتي إقتباس

    بينما المتغير من نوع نص أو حرف يحتاج إلى علامتي إقتباس

    المتغير من نوع bool يحمل أما قيمة true أو false

    ماذا لو جربنا الكود التالي:

    k="نص";

    سيظهر لنا خطأ لأنا نحاول أن نحمل المتغير k قيمة من نوع نص

    بينما المفروض أن يحمل قيمة من نوع رقم كما عرفناه

    وأيضاً هذا الكود خاطئ لنفس السبب

    k=w;

    حيث أن w يحتوي على قيمة من نوع نص و k المفروض أن يحمل قيمة من نوع رقم

    ماذا لو كان لدينا هذا الكود:

    w="45";
    k=w;

    سيظهر لنا خطأ أيضاً عند السطر الثاني بالرغم من أن w يحمل رقم

    لأن المترجم لا يعرف أن w يحمل رقم , فهو يعتبر كل ما هو بين علامتي اقتباس
    على أنه نص

    وبالتالي فالمترجم لن يقبل أن يحمل k قيمة نصية لأن من المفروض أن يحمل رقم

    للتغلب على هذه المشكلة يوجد في بيئة التطوير كائن للتحويل ما بين الأنواع

    وهذا الكائن يقوم بتحويل القمية إلى أي نوع فإذا اردنا تنفيذ الكود السابق
    بإستخدام كائن التحويل:

    w="45"; k=Convert.ToInt32(w);

    الكائن Convert قام بأخذ قيمة w وحولها إلى رقم ثم حملها للمتغير k

    لاحظ أننا للوصول إلى أفعال أو صفات الكائن نكتب اسم الكائن ثم نقطة ثم فعل
    أو صفة الكائن

    فالكائن Convert يحتوي على فعل ToInt32 لذلك كتبنا اسم الكائن ثم نقطه ثم
    فعل الكائن

    ووضعنا بين القوسين المدخلات , ومن أفعال الكائن Convert:

    ToInt32 للتحويل إلى رقم صحيح كما رأينا في المثال السابق
    ToString للتحويل إلى نص
    ToDouble للتحويل إلى عدد عشري
    ToChar للتحويل إلى حرف
    ToBoolean للتحويل إلى قيمة بوليانية

    ملاحظة: الرقم الأخير من المتغير ToInt32
    يعني حجمة في الذاكرة, مثلاً int16 حجمه 16 بت و int32 حجمة 32 بت

    ويوجد أيضاً 64, وكل نوع له مدى محدد لا يستطيع يتجاوزه, مثلاً int16
    يستطيع خزن أي رقم من – 32,768 إلى 32,767

    و int32 يستطيع خزن أي رقم من – 2,147,483,648 إلى 2,147,483,647

    و int64 له مدى أكبر بكثير, لذلك إخترنا int32 كحل وسط , لأنه يخزن أرقام
    كبيرة , ولا يستهلك مكان كبير في الذاكرة


    avatar
    nabil_1
    نائب المدير العام
    نائب المدير العام

    عدد المساهمات : 52
    نقاط : 199
    السٌّمعَة : 25
    تاريخ التسجيل : 11/01/2010
    العمر : 26

    هلا رد: الدرس الثاني في لغة C#.

    مُساهمة من طرف nabil_1 في الثلاثاء فبراير 09, 2010 8:01 pm

    مشكوره يا قمر على الدروس الهايله دى
    ومش تنسى تفكرينى بفلوس الدرس

    (Nabil)

    حمادة

    عدد المساهمات : 16
    نقاط : 27
    السٌّمعَة : 1
    تاريخ التسجيل : 01/02/2010

    هلا رد: الدرس الثاني في لغة C#.

    مُساهمة من طرف حمادة في الأربعاء فبراير 10, 2010 4:17 pm

    ممتاز يا سالي وانا منتظر باقي الدروووووووووس

    تحياتي

      الوقت/التاريخ الآن هو الجمعة فبراير 23, 2018 9:24 am