
الدرس الخامس : المتغيرات في سي شارب 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 | يخزن القيم النصية |
النوع 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
مثال حول برنامج لإظهار الإسم أو أي نص من نوع String .
string myName = "ahmed"; Console.WriteLine("My name is "+myName); Console.ReadLine();
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 سنة.
فكيف سيكون هذا البرنامج أترك لكم المجال للتفكير و أعطوني آراءكم لأنى ان و صل الدرس اليكم و ما هي النقاط التي أحتاج ان أشرحها أكثر.
تنزيل كتب تعلم السي شارب
فيما يلي كتب شرح سي شارب المتوفرة مجاناً باللغة العربية :-