: بنية و مكونات اللغة ::

1 – المعرّفات ( Identifier ) :

هي عبارة عن أسماء تعرفها و تضعها في برنامجك و قد تكون :
– متغيرات ( Variable ) .
– ثوابت ( Constant ) .
– أسماء لتوابع .
– أسماء كائنات ( Calsses ) .

و لكن هناك شروط لتسمية هذه الأشياء و هي كالتالي :
أ – أن يبدأ الاسم بحرف أبجدي أو ( _ ) و أن لا يبدأ برقم .
ب – أن لا توجد فراغات بين الاسم .
ج – أن يكون طوله كحد أقصى 64 حرف .
د – أن لا يحتوي على رموز أو كلمات خاصة باللغة مثل ( const , float ) و أعتقد أن عدد هذه الكلمات 26 .
هـ – يفضل استخدام أسماء تدل على وظيفة هذا الاسم .

2 – المتغيرات ( Variable ) :

هي أسماء تحجز لمواقع في الذاكرة .. تحمل قيمة يمكن أن تتغير أثناء عمل البرنامج . مثلاً / إذا عرفنا متغير A و أعطيناه قيمة في بداية البرنامج و لتكن 5 .. فإننا نستطيع تغيير هذه القيمة إلى 10 مثلاً في أي مكان من البرنامج .

قاعدة 1 / إذا كنت تريد أن تخزن ( تحفظ ) أي معلومة أو قيمة أو أي شيء و تريد إجراء عملية على هذه القيمة مثل جمع عددين فيجب أن تضع هذه القيم ضمن متغيرات بشرط أنك تريد تغيير قيمتها فيما بعد أما إذا كنت تريد أن تكون ثابتة فاستخدم الثوابت .. و لكن المتغيرات سوف تموت ( تفقد قيمتها ) عند انتهاء البرنامج أو في مواقع أخرى سنتحدث عنها فيما بعد .

أمثلة على المتغيرات /

كود

كود
[/CENTER]int a;
float b5;
bool fine;
[CENTER]
قاعدة 2 / لتعريف متغير .. نضع نوع المتغير أولاً ثم اسمه ثم الفاصلة المنقوطة ( انظر الفقرة رقم 4 لمعرفة الأنواع ) و من الممكن إعطاء قيمة ابتدائية أيضاً .. مثال :
كود

كود
int a = 5;
قاعدة 3 / يمكن تعريف عدة متغيرات معاً من نفس النوع بحيث تفصل بين كل متغير و أخر فاصلة .. مثال :

كود:

كود
int a,b,c;
– الثوابت ( Constant ) :

نفس المتغيرات و لكن قيمتها لا تتغير طوال فترة عمل برنامجك .. و نضع كلمة const لتعريفها قبل نوع هذا الثابت .. و يجب أن تضع قيمة عند تعريف الثابت عن طريق علامة يساوي ( = ) .

أمثلة على الثوابت /
كود:

كود
const int a = 5;
const float b = 5.5;
حيث أن a و b ثوابت .

4 – الأنواع ( Types ) :

هي عبارة عن المجال الذي سوف تأخذه القيم .. و كل نوع له مساحة معينة في الذاكرة .

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

و هي كالتالي /

أنواع حرفية :

– char : لتخزين حرف واحد فقط .. و حجمه 1 بايت في الذاكرة على ما أعتقد .
– المصفوفات ذو النوع char : لتخزين سلسلة حرفية ( أكثر من حرف ) .. و حجمها في الذاكرة على حسب شكل و حجم المصفوفة ( سنأخذها فيما بعد ) .

أنواع رقمية ( صحيحة ) :

– int : لتخزين قيم عددية يصل أقصى عدد يمكن أن تحمله إلى 2.148.000.000 .
– long int : نفس int و لكن يأخذ قيم أكبر .
– unsigned int : نفس int و لكنه لا يأخذ قيم سالبة و لكن يأخذ قيم موجبة أكبر تصل إلى 4.300.000.000 .
و ممكن أن نضع أيضاً الكلمة unsigned قبل النوع long int ليصبح عدد صحيح طويل موجب .

أنواع رقمية ( حقيقية ) :

– float : لتخزين أعداد حقيقية ذات فواصل عشرية .
أمثلة على أعداد حقيقة / 2.5 .. 6.3 .. 9.0 .. و إذا لم يكن هناك عدد عشري فنضع صفر ليدل على أن العدد هو عدد حقيقي .
– double : نفس float و لكن يأخذ قيم أكبر .

أنواع منطقية :

– bool : و هو النوع الوحيد من أجل هذه القيم و يحمل قيمتين هما : true أو false .. و هذا النوع يفيدنا كثيراً في أوامر الشرط و من أجل عمليات الإختبار ( سنرى أمثلة توضح ذلك ) .

ملاحظة / هذه الأنواع هي أنواع جاهزة موجودة في اللغة و باستطاعتك وضع أنواع خاصة بك و ذلك عن طريق السجلات ( البنى struct ) و الكائنات .. انظر الفهرس .

5 – العمليات و المعاملات ( Operators ) :

– عمليات حسابية : ( * الضرب ) و ( – الطرح ) و ( / القسمة ) و (% باقي القسمة ) .

أمثلة /
كود:

كود
n = a * b;
m = 9 – b;
h = 2.0 / f;
t = k % a;
ملاحظة / دائماً حاول استخدام هذه العمليات لأنواع متشابهة من المتغيرات تجنباً للأخطاء و انتبه إلى حجم الناتج و حدد نوعه على حسب هذا الناتج الذي تتوقعه .. و إذا كنت تريد تريد استخدام عملية باقي القسمة مثلاً لنوعين مختلفين فاستخدم التالي :
بفرض أن a عدد صحيح و b عدد حقيقي و c عدد حقيقي أيضاً .

كود:

كود
c = (float)a % b;
لقد وضعنا النوع float بين قوسين قبل المتغير a .. و بذلك سيتعامل المترجم ( Compilor ) مع هذا المتحول على أنه من النوع float و لكن بشكل قسري و مؤقت و لن يتغير نوع هذا المتغير إلى float و لكن كما قلت سينظر إليه في هذا السطر فقط على أنه float .

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

كود:

كود
pow(x, y)
sin(x)
cos(x)
abs(x)
sqrt(x)

حيث أن الأول للأس .. و الثاني لجيب الزاوية .. و الثالث لجيب تمام الزاوية .. و الرابع للقيمة المطلقة و الخامس للجذر التربيعي .. بحيث أن x هي القيمة التي نريد حساب عملية عليها .. و بالنسبة إلى المعامل pow فإن x تمثل الأساس و y تمثل الأس .

أمثلة /
كود:

كود
y = pow( 5 , 3 ); // 125
z = sqrt( b ); // b = 9 z = 3
h = abs(-6); // h = 6
ملاحظة 1 /
هذه المعاملات تحتاج إلى ضم المكتبة الخاصة بها و هي المكتبة math.h سنتعلم في نهاية هذا الدرس كيفية إضافة المكتبات إلى مشروعك .

ملاحظة 2 /

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