الدرس الثاني : تعريف المتغيرات و الثوابت و أنواعها في لغة البرمجة سي شارب.نت C Sharp.net
تعريف المتغيرات و المعرفات Variable and Identifier:
المتغيرات في لغة البرمجة هي المساحة التي نحتاجها في الذاكرة لكي نخزن فيها قيمة متغيرة، تستطيع أن تتخيل أن المتغير هو عبارة عن علبة في الذاكرة ، تحتوي على معلومات مؤقتة يمكن أن نغيرها في أي لحظة . كما يمكنك اعطاء اسم لكل متغير و يجب أن تكون أسماء المتغيرات مختلفة عن بعضها البعض.
الطريقة الصحيحة و شروط تسمية المتغيرات في لغة البرمجة سي شارب . نت 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 |
== != |
& |
^ |
| |
&& |
|| |
?: |
= *= /= %= += -= &= ^= |= <<= >>= |
التعليقات في لغة البرمجة سي شارب .نت 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();
}
}
}
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();
}
}
}
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 يقبل الأعداد الطبيعية فقط أي من دون فاصلة و يقبل الأعداد السالبة.
درس في المستوى ............مشكور اخي على هذا المجهود
ردحذفان شاء شاء الله تستفيدوا أكثر فأكثر من الدروس القادمة
حذفbaraka allahoo fik akhi
ردحذفو فيك بارك الله
حذفbaraka allaho fika,we want the next cours plz
ردحذفو فيك بارك الله.
حذفان شاء الله عند تجهيز الدرس و مراجعته سيتم طرحه
بارك الله فيك
ردحذفو فيك بارك الله ^^
ردحذفبارك الله فيك اخي على هذا المجهود
ردحذفاستفدت بشكل كبير لكن مشكلة صغيرة اعتقد ..!!
مثال حول برنامج لإظهار المعدل أو أي عدد يحتوى على فاصلة يكون من نوع Float.
يوجد خطأ بسيط في هذا السطر
Console.WriteLine("the averaget is "+average);
اعتقد يجب ان يكتب هكذا ..
Console.WriteLine("the averaget is "+Mark);
تم الاستفادة من الدرس الاول والثاني وجاري الانتقال للدرس الثالث
تحياتي اخي العزيز .. ^_^
و فيك بركة أخي الكريم
حذفهذه طريقة أخرى لكتابة المتغيرات في الجملة .
أما بخصوص الخطأ فلا يوجد خطأ البرنامج مجرب و يعمل :).
اما المتغير Mark الذي تحدثت عنه فلم نستعمله في برنامجنا هذا بل استعملنا المتغير youAverage لحساب المعدل.
لكن يمنك تسميته في برنامجك كما تشاء فهذا مجرد مثال
اتمنى أني أزلت عنك الغموض.
الاخ عمرو يقصد المثال حول المتغير float وبالفعل هناك التباس.
حذفمشكور مشكور اخي دروس مفيدة :)
تم اضافة توضيح في آخر الموضوع حول float
حذفihave problem in float
ردحذفتم اضافة توضيح في آخر الموضوع حول float
حذفthank you teacher
ردحذفشكرا لمجهودك
ردحذفDanke du
ردحذفاولا شكرا ع المجهود
ردحذفو احب اشارك معاكم ف الكورس
ده تقريبا اللى عرفت اعمله يا رب يكون صح
ردحذفint year, yourage, old , result;
Console.WriteLine("whats your age now");
yourage = int.Parse(Console.ReadLine());
Console.WriteLine("what is a year now ");
old = int.Parse(Console.ReadLine());
Console.WriteLine("whats a years want ");
year = int.Parse(Console.ReadLine());
result = yourage + (year - old);
Console.WriteLine("Your Age Will be " + result + " after " + (year - old) + " Years");
Console.ReadLine();
using System;
ردحذفusing System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int year;
int born;
int age;
Console.WriteLine("enter year");
year = int.Parse(Console .ReadLine ());
Console.WriteLine("enter born");
born = int.Parse(Console.ReadLine());
age = year-born ;
Console.WriteLine("you age is " + age);
Console.ReadLine();
}
}
}
جزاك الله خيرا
ردحذفusing System;
ردحذفusing System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//year of birth
Console.WriteLine("when were you born?");
int date =int.Parse(Console.ReadLine());
//current year
Console.WriteLine("What's the current year?");
int year = int.Parse(Console.ReadLine());
int sum = year - date;
Console.WriteLine("you are " + sum + " years old.");
Console.ReadKey();
}
}
}