المتغيرات في السي شارب | #C Variables

تعلم سي شارب C# بالعربية “المتغيرات في السي شارب”

الدرس الخامس : المتغيرات في سي شارب Variables

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

تسمية المتغيرات في لغة البرمجة سي شارب . نت C#.net C Sharp.net

عند تعريف أي متغير في لغة البرمجة سي شارب . نت C#.net CSharp.net يجب مراعاة شروط تسمية هذه المتغيرات لكي تتجنب أخطاء البرمجة :

  • يجب أن تختار أسماء ذات معنى ترمز للمتغير نفسه لكي يستطيع أي شخص فهم برنامجك و تستطيع فهم برنامج اذا أردت الإطلاع عليه بعد فترة طويلة ، يفضل أيضا استعمال التعليقات التي سنتحدث عنها لا حقا.
  • لا تبدأ سم المتغير بعلامة التسطير ( _ ) under-scroll  .
  • أسماء المتغيرات حساسة لحالة الأحرف مثلا myName لا يساوي MyNAME .
  • تجنب استعمال الاسماء تختلف فقط في حالة الأحرف فقط لأنها ستختلط عليك بسهولة.
  • من الأفضل أن تبدأ اسماء المتغيرات بحروف صغيرة مثلا age.
  • في المتغيرات ذات اسم يتكون من كلمتين يستحسن بدأ الكلمة الثانية بحرف كبير مثلا familyName.
  • يجب ان لا يكون اسم المتغير من الكلمات المحجوزة في لغة البرمجة سي شارب . نت .

الكلمات المحجوزة في لغة البرمجة سي شارب .نت C#.net C Sharp.net

الكلمات المحجوزة هي الكلمات الخاصة لكتابة الكود بلغة البرمجة،و التي نستعملها في البرمجة لتحديد دوال او عمليات جاهزة في اللغة دون اللجوء الى برمجتها .



abstract event new struct
as explicit null switch
base extern object this
bool false operator throw
break finally out true
byte fixed override try
case float params typeof
catch for private uint
char foreach protected ulong
checked goto public unchecked
class if readonly unsafe
const implicit ref ushort
continue in return using
decimal int sbyte virtual
default interface sealed volatile
delegate internal short void
do is sizeof while
double lock stackalloc
else long static
enum namespace string

انشاء المتغيرات التعامل معها في لغة البرمجة سي شارب .نت C#.net C Sharp.net

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

أنواع المتغيرات في لغة البرمجة سي شارب .نت C#.net C Sharp.net

الأنواع الحجم في الذاكرة مجال الأعداد التي يشملها المتغير
sbyte 8bit -128 الى127
byte 8bit 0 الى 255
short 16bit -32768 الى 32767
ushort 16bit 0 الى 65535
int 32bit -2147483648 الى 2147483647
uint 32bit 0 الى 4294967295
long 64bit -9223372036854775808 الى 9223372036854775807
ulong 64bit 0 الى 18446744073709551615
char 16bit 0 الى 65535
الأنواع الحجم في الذاكرة الدقة مجال الأعداد التي يشملها المتغير
float 32bit 7 ارقام بعد الفاصلة 1.5 x 10-45 الى 3.4 x 1038
double 64bit 15-16 ارقام بعد الفاصلة 5.0 x 10-324 الى  1.7 x 10308
decimal 128bit يحتوي من 28 او 29 رقم و هو أكبر عدد ممكن  1.0 x 10-28 الى 7.9 x 1028


الأنواع  الفائدة من المتغير
String يستعمل في النصوص
Bool يستعمل للعبارات لمنطقية  و له قيمتين إما صحيح أو خاطيء True , False 
object يستعمل لبرمجة الكائنات سنتطرق له بالتفصيل في الدروس القادمة

أولوية المعاملات او العمليات في لغة البرمجة سي شارب .نت C#.net C Sharp.net

جدول الأولويات حسب الأكبر أولوية من الأعلى الى  الأسفل و من اليمين الى اليسار :
Operators
() [] . new typeof
! ~ + - ++ -- (cast)
* / %
+ -
< <= > >= is as
== !=
&
^
|
&&
||
?:
= *= /= %= += -= &= ^= |= <<= >>=

المتغيرات في السي شارب

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

Syntax

type variable = value;
نوع_المتغير اسم_المتغير = قيمة_المتغير

أنواع البيانات Data Types

نوع البياناتالوصف
byteيخزن الأعداد الصحيحة من 0 إلى 255
shortيخزن الأعداد الصحيحة من -32،768 إلى 32،767
intيخزن الأعداد الكاملة من -2،147،483،648 إلى 2،147،483،647
longيخزن الأعداد الكاملة من -9،223،372،036،854،775،808 إلى 9،223،372،036،854،775،807
floatيخزن الأرقام الكسرية. كافية لتخزين 6 إلى 7 أرقام عشرية
doubleيخزن الأرقام الكسرية. كافية لتخزين 15 رقم عشري
boolيخزن قيمًا صحيحة أو خاطئة
charيخزن حرف واحد أو قيم ASCII
stringيخزن القيم النصية
أنواع البيانات في لغة C#

النوع byte

//store : 0 – 255
byte myByte = 100;

النوع Short

//store :  -32768 to 32767
short myShort = 5000;

النوع Int

//store : -2147483648 to 2147483647
int myInt= 100000;

النوع Long 

يجب ان ينتهي هذا النوع بالحرف L

//store : -9223372036854775808 to 9223372036854775807
long myLong = 15000000000L;

النوع Float

 يجب ان ينتهي هذا النوع بالحرف f

//store : 3.4e−038 to 3.4e+038
float myFloat = 5.75f;

النوع Double

 يجب ان ينتهي هذا النوع بالحرف d

//store : 1.7e−308 to 1.7e+308
double myDouble = 19.99d;

النوع Bool

 يحمل فقط قيمتين true or false وتعني صحيحة أو خاطئة .

//store :true or false
bool isCsharpFun = true;
bool isFishTasty = false;

النوع Characters 

يحمل رمز واحد فقط مثلا حرف A او حرف B أو غيرها من الحروف والرموز والارقام .

char myChar = ‘B’;

النوع String 

خاص بتحميل القيم النصية .

string myText = “Hello”;

طرق تهيئة المتغيرات

1- تعريف متغير واعطاء القيمة بشكل مباشر :

int myNum = 15;

2- تعريف متغير واعطاء القيمة بشكل غير مباشر :

int myNum;
myNum = 15;

3- تعريف متغير واعطاء القيمة بشكل مباشر ومن ثم تغيير القيمة :

int myNum = 15;  // myNum is 15
myNum = 10;  // Now myNum is 10

مثال كامل عن المتغيرات

  
  using System;

  namespace Example
  {
  class Program
  {
  static void Main(string[] args)
  {
  int myNum = 5;
  float myFloatNum = 5.99f;
  char myLetter = ‘D’;
  bool myBool = true;
  string myText = “Hello”;
  Console.WriteLine(myNum);
  Console.WriteLine(myFloatNum);
  Console.WriteLine(myLetter);
  Console.WriteLine(myBool);
  Console.WriteLine(myText);
  }
  }
  }

Output :
5
5.99
D
true
Hello

دمج  المتغيرات في السي شارب

يتم الدمج بين المتغيرات باستخدام العلامة + , وللتنبيه تستخدم العلامة + للدمج اذا كانت المتغيرات نصوص وتستخدم للجمع اذا كانت قيم صحيحة

استخدام علامة + للجميع بين الاعداد

int num1 = 5;
int num2 = 10;
int sum = num1+num2;
Console.WriteLine(sum);

Output :
15

استخدام علامة + للدمج بين النصوص

String firstName = “Saif”;
String lastName = ” Raheem”;
String fullName = firstName+lastName;
Console.WriteLine(fullName);

Output :
Saif Raheem

مثال كامل عن الدمج بين النصوص والقيم

int myNum = 5;
float myFloatNum = 5.99f;
char myLetter = ‘D’;
bool myBool = true;
string myText = “Hello”;
Console.WriteLine(“myNum=” + myNum);
Console.WriteLine(“myFloatNum=” + myFloatNum);
Console.WriteLine(“myLetter=” + myLetter);
Console.WriteLine(“myBool=” + myBool);
Console.WriteLine(“myText=” + myText);

Output :
myNum=5
myFloatNum=5.99
myLetter=D
myBool=true
myText=Hello

المتغيرات المتعددة

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

using System;

namespace Example
{
  class Program
  {
    static void Main(string[] args)
    {
     int x = 5, y = 6, z = 7;
     Console.WriteLine(x + y + z);
    }
  }
}

Output :
18

using System;

namespace Example
{
  class Program
  {
    static void Main(string[] args)
    {
     int x , y , z ;
     x=10;
     y=20;
     z=30;
     Console.WriteLine(x + y + z);
    }
  }
}

Output :
60

المتغيرات الثابتة Constants Variables

عند تعريف متغير من نوع ثابت const فهنا لا يمكن تغيير قيمة هذا المتغير لاحقاً اي ان المتغير سيصبح للقراءة فقط .

مثال في هذا المثال سيعطي مترجم اللغة خطأ وسيخبرنا بان المتغير myAge تم تعريفه على انه const فلا يمكن تغيير القيمة .

using System;

namespace Example
{
  class Program
  {
    static void Main(string[] args)
    {
      const int myAge = 25;
      myAge = 20; //هنا يعتبر خطأ
    }
  }
}

Output :
Error

التعليقات في لغة البرمجة سي شارب .نت C#.net C Sharp.net:

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

مثال على التعليقات و طريقة استخدامها

ضع هذا الرمز/ مرتين بعد الكود الذي تريد التعليق عليه مثال:

	Console.WriteLine("hello");        // هنا يكتب التعليق أكتب ما تشاء كوصف للكود
  
	Console.WriteLine("hello");        //  هذا الكود لإظهار الكلمة  في الشاشة  

 ملاحظة : التعليقات لا تظهر في البرنامج بعد تنفيذه فهي فقط لشرح الكود.

بعض الأمثلة البرمجية عن المتغيرات و التعليقات في لغة البرمجة سي شارب .نت C#.net C Sharp.net

أولا افتح مشروع جديد ، اذا لا تعرف كبف تفتح مشروع جديد تابع الشرح في  الدرس الأول : مقدمة الى تعلم لغة البرمجة سي شارب.نت c# sharp.net.

ثم طبق معي هذه الأمثلة:

مثال حول برنامج لإظهار الإسم أو أي نص من نوع String .

أكتب الكود التالي داخل البرنامج مثل الدرس الأول:
	string myName = "ahmed";
  
	Console.WriteLine("My name is "+myName);
	
	Console.ReadLine(); 
السطر الأول انشاء متغير جديد اسمه myName من نوع نص أي String  و يجب وضع النصوص دائما بين هذين العلامتين "النص هنا" في حين أن اسماء المتغيرات تكتب بدونها.
لا تنسى كل سطر برمجي ينتهي بعلامة الفاصلة المنقوطة ; .
السطر الثاني يقوم بإظهار النص My name is في الشاشة و يقوم باستبدال المتغير myName بما يساويه و الذي هو في مثالنا هذا ahmed .
استخدمنا علامة +  للجمع بين محتوى المتغير myName و النص الذي كتبناه معا.
السطر الثالث لكي يبقى البرنامج مفتوحا بعد تنفيذه حتى تضغط على مفتاح Enter من لوحة المفاتيح.
بعد اضافة كل الأسطر يصبح البرنامج كالتالي:
	using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string myName = "ahmed";
            Console.WriteLine("My name is "+myName);
            Console.ReadLine();
        }
    }
}

مثال حول برنامج لإظهار العمر أي عدد من نوع int.

	using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int age=18;
            Console.WriteLine("I have "+age+"years old");
            Console.ReadLine();
        }
    }
}

لدينا في هذا المثال متغير اسمه age يدل على العمر سمه كما تحب مثلا myAge الى آخره ، هذا المتغير من نوع int أي من الأعداد الصحيحة لا توجد به فاصلة.

مثال حول برنامج لإظهار المعدل أو أي عدد يحتوى على فاصلة يكون من نوع Float

  using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           float Mark = 15.6F;
           Console.WriteLine("the averaget is "+average);
           Console.WriteLine("the averaget is {0}",average);  // طريفة اخرى لإظهار في الشاشة
           Console.ReadLine();
        }
    }
}

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

	using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string yourName;
            int yourAge;
            float yourAverage;

            Console.WriteLine("Enter name:");  // سطر يطلب من المستخدم ادخال الإسم
            yourName = Console.ReadLine();   // قراءة الإسم من لوحة المفاتيح و حفظه في المتغير
            Console.WriteLine("Enter age:");
            yourAge = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter average:");
            yourAverage = float.Parse(Console.ReadLine());
            Console.WriteLine();
            Console.WriteLine("Your name is {0} and you have {1} Years old ",yourName,yourAge);
            Console.WriteLine();
            Console.WriteLine("the average is {0}",yourAverage);
            Console.WriteLine();
            Console.WriteLine("Program Work Perfectly :) Press Enter to exit ");
            Console.ReadLine();
        }
    }

شرح الدالة Console.ReadLine تستعمل لقراءة المدخلات من نوع نص String من لوحة المفاتيح .

لذا عندما نريد ان نقرأ عددا من لوحة المفاتيح و نريد حفظه في متغير رقمي مثلا من نوع int  فيجب اضافة الدالة int.Parse ووظيفتها تحويل المدخلات من نص الى رقم ، بالنسبة لنا نراه نفس العدد لكن لنرى المثال التالي:

string x = "20"; 

int y = 20;

من المثل السابق فان X لا يساوي Y لأن X من نوع نص و Y من نوع رقمي.و لاستخراج قيمة X كعدد نستعمل الدالة Parse :

string x = "20"; 

int z = int.Parse(x); 

int y = 20;

حولنا قيمة X من نص الى رقم و قمنا بتخزينها في المتغير Z ، و بذلك أصبح Z = Y .


و في الأخير أتمنى أن أكون وفقت في الشرح ، فإن أبت فبتوفيق من الله و إن أخطأت فمن نفسي.

و الآن لنفرض أنه طُلب منك برمجة برنامج لأعمار الأشخاص .مع العلم أن البرنامج يجب أن يحسب الأعمار تلقائيا ، مثلا اذا كان عمر شخص ما 10 سنوات في سنة 2013 ففي سنة 2014 يجب أن يظهر في البرنامج أن عمره 11 سنة.

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

-- توضيح بخصوص float هي نوع الأعداد العشرية. أي مثل 5,6    16,99   56,5   كل هذه أعداد عشرية نوعها float . ولا يمكن  أن يكون مثلا العدد  56.5 من نوع int لآن int يقبل الأعداد الطبيعية فقط أي من دون فاصلة و يقبل الأعداد السالبة.

تنزيل كتب تعلم السي شارب

فيما يلي كتب شرح سي شارب المتوفرة مجاناً باللغة العربية :-


  • قراءة و تنزيل كتب مشاريع مع كتاب الشبكات في السي شارب #C أونلاين
  • قراءة و تنزيل كتب التعامل مع LINQ سي شارب #C أونلاين
  • قراءة كتب الدوت نت خطوة بخطوة مع الفيجوال ستوديو 2008 أونلاين
  • قراءة كتب التعامل مع قواعد البيانات في السي شارب أونلاين | 2
  • قراءة و تنزيل كتب سي شارب #C | م 2
  • قراءة و تنزيل كتب أكواد سي شارب أونلاين
  • قراءة و تنزيل كتب سلسلة ASP.NET خطوة بخطوة حتى الاحتراف أونلاين
  • قراءة كتب سلسلة تعلم لغة سي شارب من الصفر حتى الاحتراف أونلاين
  • قراءة و تنزيل كتب في السي شارب أونلاين | برامج مشاريع العاب 1
  • قراءة و تنزيل كتب في السي شارب قواعد بيانات أونلاين | 1
  • قراءة و تنزيل كتب و مجلات خالد السعداني في البرمجة أونلاين | 2
  • قراءة و تنزيل كتب خالد السعداني في السي شارب و الفيجول بيسك أونلاين | 1
  • قراءة و تنزيل كتب pdf سي شارب #C أونلاين
  • سلسة تعلم سي شارب


  • تاريخ الـ . NET و لغات البرمجة منذ بداية صناعة الحاسوب ما هي تقنية NET Framework ؟
  • برنامج لحساب العمر بالأيام و الأشهر و السنوات في السي شارب |   C#.net
  • الدوال الرياضية في السي شارب | max min sqrt abs and Round
  • أقتناص الأخطاء في السي شارب try - catch | C# Exception
  • السلاسل النصية في السي شارب | C# strings
  • الدوال في السي شارب | C# Methods
  • الحلقات التكرارية في السي شارب | C# loops for Each do while
  • الجمل الشرطية في السي شارب | C# if and Switch
  • العوامل المنطقية في السي شارب | #C Logic Operations
  • العوامل الرياضية في السي شارب | #C Arithmetic Operations
  • أدخال البيانات في السي شارب | #C Input
  • المتغيرات في السي شارب | #C Variables
  • دالة الطباعة في السي شارب | C# Console.WriteLine
  • التعليقات في سي شارب C# Comments
  • تركيب و بنية الجملة في السي شارب C# Syntax
  • مقدمة الى تعلم لغة البرمجة بلغة السي شارب.نت c# sharp.net