المتغيرات و الثوابت Variables and Constants

اذهب الى الأسفل

المتغيرات و الثوابت Variables and Constants   Empty المتغيرات و الثوابت Variables and Constants

مُساهمة من طرف زهراء في السبت ديسمبر 07, 2013 8:34 am

بسم الله الرحمن الرحيم
درس اليوم عن اليوم عن المتغيرات و الثوابت Variables and Constants فى لغة السى ....معتمده فى الشرح على كتاب الاخ الجزائرى / خليل اونيس ....الشامل فى السى

أولا : تعريف المتغيرات 

المتغيرات هي حجز موقع في ذاكرة الحاسوب لتخزين فيها قيم كي نستطيع استرجاعها في وقت آخر، و لكي نفهم المتغيرات جيدا يستحسن فهم طريقة عمل ذاكرة الحاسوب الـ RAM.

الـ RAM هي ذاكرة إليكترونية، مختصر من Random Access Memory أي ذاكرة الدخول(الوصول) العشوائية حيث تستعمل عند تنفيذ البرامج، هي ليست ذاكرة دائما مثل القرص الصلب، تفقد جميع بياناتها عند إيقاف تشغيل الجهاز.

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

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

طريقة الإعلان عن متغير هي كتابة نوع المتغير ثم اسم المتغير ثم القيمة التي سيحتويها المتغير، صورة توضيحية:

المتغيرات و الثوابت Variables and Constants   Image003
ثالثا: نوع المتغير Variable Type:

توجد عدة أنواع و هي:

1 _متغير الأعداد الصحيحة int:


نقوم بالإعلان عن متغير من نوع الأعداد الصحيحة بكتابة الكلمة int في مكان Variable_Type، حيث يحتاج المتغير من نوع Integer إلى مساحة قدرها 2 بايت و التي تساوي 16 بت و تساوي 65536 احتمال، أي أن أقصى قيمة يمكن أن يحملها المتغير هي 65535، ابتداء من الصفر، أو ابتداء من -32,768 إلى 32,767 في حالة ضم الأعداد السالبة.

و يمكن أن يكون حجمها 4 بايت أي تساوي 32 بت، حيث أقصى قيمة يمكن أن تحملها هي 4294967296، ابتداء من الصفر(في حالة أن المتغير لا يحتوي إلا على قيم موجبة).

مثال:
الكود:
#include<stdio.h>
main()
{
  int Variable_Name = 0;
}

2_ متغير الأعداد الحقيقية float:

الأعداد الحقيقية هي الأعداد التي لها فواصل، و يتم الإعلان عنها باستخدام الكلمة float، حجمها 4 بايت، حيث تبدأ من  1.2E-38إلى 3.4E+38.

مثال:
الكود:
#include<stdio.h>
main()
{
  float Variable_Name = 0.0;
}

3_ متغير الأعداد الحقيقية double:


double هي ضعف float، و يتم الإعلان عنها باستخدام الكلمة double، حيث حجمها 8 بايت و تبدأ من 2.3E-308 إلى 1.7E+308.

مثال:
الكود:
#include<stdio.h>
main()
{
double Variable_Name = 0.0;
}

4_متغير الأعداد الصحيحة short:


هو أيضا من متغيرات الأعداد الصحيحة حيث نقوم بالإعلان عنه بكتابة الكلمة short في مكان Variable_Type، حجمه 2 بايت و التي تساوي 16 بت و تساوي 65536 احتمال، أي أن أقصى قيمة يمكن أن يحملها المتغير هي 65535 ابتداء من الصفر، أو ابتداء من -32,768 إلى 32,767 في حالة ضم الأعداد السالبة.

مثال:
الكود:
#include<stdio.h>
main()
{
short Variable_Name = 0;
}
6_ متغير الأعداد الصحيحة long:


هو أيضا من متغيرات الأعداد الصحيحة حيث نقوم بالإعلان عنه بكتابة الكلمة long في مكان Variable_Type، حجمه 4 بايت أي يساوي 32 بت، حيث أقصى قيمة يمكن أن يحملها هي 4294967296، ابتداء من الصفر(في حالة أن المتغير لا يحتوي إلا على قيم موجبة).

مثال:
الكود:
#include<stdio.h>
main()
{
 long Variable_Name = 0;
}

7_ متغير الرموز char:
من أصغر المتغيرات، يتم الإعلان عنه بكتابة الكلمة char في مكان Variable_Type، حجمه 1 بايت أي 8 بت حيث يحمل 256 احتمال ابتداء من 0 إلى 255 أو من 128- إلى 127، حيث كل رقم يمثل برمز في جدول ASCII.

مثال:
الكود:
#include<stdio.h>
main()
{
 char Variable_Name = 'A';
}

معاير اسم المتغير Variable Name:


لاسم المتغير حدود لا يجب تجاوزها و هي:

_ أن لا يتجاوز اسم المتغير أكثر من 31 حرف.
_ أن لا يبدأ اسم المتغير بأرقام.
_ أن لا يكون اسم المتغير يحتوي على مؤثرات مثل الجمع، الطرح، ....
_ أن لا يكون اسم المتغير يحتوي على رموز مثل % و # و { و...(باستثناء الرمز _).
_ أن لا يكون اسم المتغير مستعمل سابقا في دالة أو متغير آخر.
_ أن لا يكون اسم المتغير من أسماء الكلمات المحجوزة.

 قيمة المتغير Variable Value:
يجب مراعاة قيمة المتغير حسب نوعه، فمثلا لا يمكن أن نعطي للمتغير int قيمة عدد حقيقي float.

 أمثلة حول المتغيرات:
سأقدم أمثلة مختلفة حول طريقة استعمال المتغيرات، و نبدأ بمتغيرات أعداد صحيحة حيث نقوم بإعلان عن متغير باسم Var و به القيمة 5، ثم نقوم بطباعة القيمة الموجودة في المتغير Var على الشاشة، المثال:

الكود:
#include<stdio.h>
main()
{
  int Var = 5;
 printf("%d\n", Var);
}

في هذا المثال، في السطر الخامس تم الإعلان عن متغير باسم Var و من نوع int (عدد صحيح) و به القيمة 5، و في السطر السابع استعملنا الدالة printf لطباعة قيمة المتغير Var، و توجد طرق أخرى لإعطاء للمتغيرات قيم، سأعطي طريقتين:

الأولى هي الإعلان عن المتغير في سطر ثم إعطاءه قيمة في سطر آخر مثل:

الكود:
#include<stdio.h>
main()
{
 int Var;
  Var = 5;
 printf("%d\n", Var);
}

و الطريقة الثانية هي الإعلان عن متغيرين، الأول به القيمة 5 و الثاني به قيمة المتغير الأول، مثال:

الكود:
#include<stdio.h>
main()
{
  int Var_1 = 5;
 int Var_2 = Var_1;
printf("%d\n", Var_1);
}

مثال آخر:

الكود:
#include<stdio.h>
main()
{
 int Num1, Num2, Num3;
 Num1 = 5;
Num2 = 7;
 Num3 = Num1 + Num2;
 printf("%d + %d = %d\n", Num1, Num2, Num3);
}
في السطر الخامس تم الإعلان عن ثلاثة متغيرات في نفس السطر حيث نقوم بفصل بين اسم متغير و آخر بفاصلة، و هنا ستكون جميع المتغيرات من نوع أعداد صحيحة (int)، و في السطر السادس و السطر السابع أعطينا للمتغير Num1 القيمة 5 و المتغير Num2 القيمة 7، و في السطر الثامن أعطينا للمتغير Num3 نتيجة الجمع بين المتغير Num1 و المتغير Num2، و أخيرا السطر العاشر و الذي يقوم بطباعة نتائج البرنامج.


و نفس الطرق السابقة يمكن إستعمالها مع متغيرات من نوع float و short و long، أما المتغير char فطريقة استعماله ليست مختلفة كثير، حيث يمكننا أيضا أن نعطيه عدد بدل الحرف حيث عند طباعته لا يطبع عددا، إنما الحرف الذي يحمل ذلك الرقم في جدول ASCII، و لكي تفهم طريقة استعمال متغيرات من نوع char إليك المثال التالي:

الكود:
#include<stdio.h>
main()
{
 char ch = 'a';
 printf("%c\n", ch);
}
في السطر الخامس أعطين للمتغير ch الحرف الذي a مع مراعاة أن يكون داخل ‘ ‘، أما إذا أردنا أن نعطيه عددا يطبع لنا الحرف a فهو الرقم 97 في جدول ASCII، و سيصبح المثال السابقة كما يلي:

الكود:
#include<stdio.h>
main()
{
 char ch = 97;
 printf("%c\n", ch);
}
و كما قلنا سابقا أن أقصى قيمة يمكن أن يحملها متغير من نوع char هي 255 ابتداء من الصفر، و كل رقم يمثل برمز.

 الأعداد الموجبة و الأعداد السالبة:


في حالة أنك أردت استعمال أعداد موجبة و أعداد سالبة لمتغير فتوجد طريقتين لذلك الأولى تكون افتراضية عند كتابة نوع و اسم المتغير، أي أنه عندما نقوم بالإعلان عن متغير مثلا int Num يمكنه أن يحمل كلا من الأعداد السالبة و الموجبة، أو يمكن كتابة signed Num و هي مثل int Num من ناحية الحجم و الاستعمال، مثال:

الكود:
#include<stdio.h>
main()
{
 signed Num = 5;
 printf("%d\n", Num);
}
هذا بالنسبة للمتغيرات التي تحتوي على أعداد موجبة و أعداد سالبة، أما في حالة أردنا أعداد موجبة فقط فسنستعمل الكلمة unsigned قبل اسم المتغير، مثلما هو موضح في المثال التالي:

الكود:
#include<stdio.h>
main()
{
 unsigned Num = 5;
  printf("%u\n", Num);
}

تم الإعلان عن المتغير الذي لا يحتوي على أعداد سالبة في السطر الخامس و كما أن طريقة إستعمالها كاستعمال متغير طبيعي، و هنا نتعرف على الرمز الجديد %u الذي يخبر المترجم أنا القيمة التي سيتم طبعها من نوع unisgned أي أعداد بدون إشارة.

ملاحظة: عند الإعلان عن متغير طبيعي مثلا char فإنه سيحتوي 256 احتمال كما قلنا سابقا،حيث يمكن أن يبدأ من 0 إلى 255 في حالة عدم الحاجة إلى أعداد سالبة، و يمكن أيضا أن يبدأ من 128- إلى 127 في حالة استعمال أعداد سالبة، و لكي تعرف السبب في ذلك إليك الشرح:

لكل متغير حجمه، مثلا متغير من نوع char حجمه 1 بايت أما int فحجمه هو 2بايت، و كما نعرف أن 1 بايت يساوي 8 بت، أي أن متغير من نوع char حجمه 8 بت، و 1 بت يساوي إما 1 أو 0 حيث هذا يعني أنا 1 بت لديه احتمالين (0 أو 1)، أما 8 بت فلديها 256 احتمال تبدأ من 0 و تنتهي عند 255 إن لم تكن تحتوي على أعداد سالبة، أما في حالة أردنا أعداد سالب فسيتم سحب 1 بت من ،8 أي سيصبح حجم متغير من نوع char 7 بت أما البت الثامن سنتركه للإشارة، و سيحمل إما الإشارة + أو الإشارة -، و 7 بت تساوي 128 احتمال.

رابعا الثوابت :


الثوابت، هي عكس المتغيرات، يمكن أن تكون عدد، حرف، أو نص، حيث لا يمكن التغير قيمتها أي تصبح قابلة للقراءة فقط،، سأعطي مثال، حيث هذا مثال به متغير من نوع أعداد صحيحة، و نعطيه القيمة 5 ثم نقوم بطبع المتغير على  الشاشة ثم نقوم بتحديث المتغير إلى القيمة 8 ثم نعيد طباعة قيمة المتغير و ها هو المثال:

الكود:
#include<stdio.h>
main()
{
 int num;
 num = 5;
 printf("%d\n", num);
  num = 8;
  printf("%d\n", num);
}
هنا سيتم تغير قيمة المتغير num من 5 إلى 8، و هذه الطريقة صحيح. و الآن سنكتب نفس البرنامج السابق مع إضافة بسيطة، المثال:

الكود:
#include<stdio.h>
main()
{
  const int num;
 num = 5;
  printf("%d\n", num);
 num = 8;
  printf("%d\n", num);
}

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

الكود:
#include<stdio.h>
main()
{
 const int num = 5;
  printf("%d\n", num);
}
و يمكن أيضا كتابة الكلمة const مباشرة بعد نوع المتغير مثل:


الكود:
#include<stdio.h>
main()
{
  int const num = 5;
  printf("%d\n", num);
}

و يمكن استعمال نفس أنواع المتغيرات على الثوابت. ..و يوجد نوع آخر من الثوابت، و هي باستعمال الكلمة #define و طريقة إستعمالها موضحة كما في الصورة التالية:

حيث سيصبح المثال السابقة كما يلي:

الكود:
#include<stdio.h>
#define num 5
main()
{
 printf("%d\n", num);
}
تم الإعلان عن الثابت num في السطر الثالث، ثم طباعته في السطر السابع.

و كما قلت سابقا، أن preprocessor تبدأ بالرمز #، و هذا يعني أن #define من الـ preprocessors و يمكن تسميتها أيضا بـ directive، و جميع directives لا تنتهي بفواصل منقوطة.

ملاحظات هامة:

1- لا يمكن وضع قيمة أكثر من قيمة المتغير القصوى.

2- لا يمكن الإعلان عن المتغيرات إلا في بداية كل block.

3- في حالة لم يتم تعين قيمة لمتغير، و أردت طبع قيمة ذلك المتغير على الشاشة فستأتي أعداد عشوائية تختلف من جهاز لآخر.

4- يجب الحرص على أن بين نوع المتغير و اسم المتغير مسافة واحدة على الأقل.

5- لا يمكن كتابة الكلمة const بعد اسم المتغير أو بعد الإعلان عنه.

6- لا يمكن تغير اسم متغير أو ثابت.

7- لا يمكن الإعلان عن متغيرين بنفس الاسم.
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 395
النقاط : 664
التقيم : 53
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

المتغيرات و الثوابت Variables and Constants   Empty رد: المتغيرات و الثوابت Variables and Constants

مُساهمة من طرف VB.NET في السبت ديسمبر 07, 2013 9:59 am

اشكرك اختى زهراء على تلك المبادرة الجميلة lol! lol!
VB.NET
VB.NET
المراقبين
المراقبين

تاريخ التسجيل : 18/02/2011
المساهمات : 121
النقاط : 189
التقيم : 6
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى