بسم الله الرحمن الرحيم
المتغيرات هي اماكن في الذاكرة يتم تخزين القيم فيها حسب النوع اي ان قيمة من نوع1 تخزن في متغير من نوع1 و هذا المتغير يحجز له مكان في ذاكرة الحاسوب RAM عند تعريفه. و انواع المتغيرات الاساسية في السي++ هي :
و يتم تعريف المتغيرات في السي++ بهذه الطريقة
Variable_type Variable_name;
مثال
int a; double var1; char chaine;
و يشترط في اسماء المتغيرات ان لا تبدا برمز كé,à,@ و لا برقم و ان لا تكون فيها فراغات و لا رموز كé,à,- يسمح باستعمال الرمز _ في البداية و الوسط و الاخر يسمح باستعمال الارقام في الوسط و في النهاية.
و يمكن ارسال قيمة للمتغير مباشرة عند تعريفه او بعد تعرفيه
int a = 100; double var1 = 10.340; char chaine; chaine = 'A'
ملاحظة : السي++ حساسة للحروف اي ان الحرف الكبير ليس هو الحرف الصغير اي a ليست هي A لهذا يمكن تعريف متغير اسمه a و اخر اسمه A.
هي مثل المتغيرات تخزن فيها القيم لكن تلك القيم لا يمكن تغيرها ابدا داخل البرنامج اي ان القيمة البدئية للثابث تظل هي نفسها في كل البرنامج.
و هذه القيمة تعطى له اثناء التصريح عنه.
لتعريف الثابت نتكتب :
const Constant_type Constant_name = value;
مثال
const int num = 100; const char ch = 'A'
اي تغير في الثابث سيعطي رسالة خطا اثناء عمل البرنامج.
التعليقات هي اسطر تضاف للكود سورس و لا تتم ترجمتها للغة الالة. اي لا يهتم بها المترجم اثناء ترجمة السورس كود.وجودها و عدمه لا يؤثر على البرنامج.
الهدف منها هو تسهيل قرائة السورس كود و فهمه من طرف المبرمج بحذ ذاته او من طرف مبرمج اخر يريد الاطلاع على السورس كود خاصة اذا كان البرنامج مفتوح المصدر.
و هي تكون هكذا :
//هذا تعليق لسطر واحد هذا تعليق */ لعدة سطور */
الاخراج output هو اظهار رسالة او كتابة في شاشة الكونسول console و الادخال input هو اخذ قيمة من المستعمال و استعمالها في البرنامج.
و يتم استعمالها كالتالي:
cout << "Assalamo 3alaikom" << endl;
endl تفيد العودة للسطر و يمكن تعوضها بالرمز
\n
مثال
cout << "Assalamo 3alaikom\n";
و يتم استعمالها كالاتي :
cin >> variable;
variable هو المتغير الذي نريد ان تدخل اليه القيمة.
الشروط هي عبارات instructions تساعد على التحكم في سير البرنامج,بعبارة اخرى تقوم بتنفيذ اوامر معينة في حالة تحقق شرط ما و تقوم بتنفيذ اوامر اخرى في حالة عدم تحققه و هكذا.
الشروط في السي++ نواعان if…else و switch…case.
الاولى تكون بهذا الشكل
if (الشرط) { الاوامر في حال تحقق الشرط } else { الاوامر في حال عدم تحقق الشرط }
مثال
if (age < 10) { cout << "you are a kid"<<endl; } else { cout << "you are not a kid\n"; }
و يمكن عمل عدة شروط بelse if هكذا
if(condition1) { inst1 } else if (condition2) { inst2 } else if (condition3) { inst3 } ... else if(conditionN) { instN } else { inst }
النوع الثاني يكون هكذا
switch(variable) { case value1 : instruction1 break; case value2 : instruction2 break; ... case valueN: instructionN break; }
مثال
#include <iostream> using namespace std; int main() { cout << "num1 = \n"; double num1,num2,result; cin >> num1; cout << "num2 = \n"; cin >> num2; cout << "choise operation +or * or - or /" << endl; char op; cin >> op; switch(op) { case '+': result = num1 + num2; break; case '*': result = num1 * num2; break; case '-': result = num1 - num2; break; case '/': result = num1 / num2; break; } cout << "result = " << result << endl; return 0; }
اذا لم تكن break فان الاوامر ستتداخل مع بعضها.
الحلقات هي مجموعة من الاوامر يتم تكريرها في حالة تحقق شرط معين, و تتوقف عندما يصبح الشرط غير محقق.
هناك ثلاث حلقات رئيسية في السي++ هي while و do…while و for.
تكون هكذا :
while(الشرط) } الاوامر التي تريد تكريرها في حال تحقق الشرط }
مثال
int b = 129; int a = 1; while (a<=b) { if(b%a == 0) { cout << "a/b" << endl; a = a + 1; } }
تكون هكذا:
do } الاوامر التي تريد تكريرها } while(الشرط)
مثال:
int a = 0; do { cout << a << endl; a++;
تعني ++a زادة واحد لa و
a--;
نقاصن واحد من a .
تكون هكذا:
for(الخطوة;الشرط;المتغير) } الاوامر التي تريد تكريرها }
مثال :
for(int i = 0;i<=9;i++) { cout << i << "* 5 = " << i*5 <<"\n";//1 }
في البداية تكون قيمة i هي 0 (يمكن ان تبدا باي قيمة تريدها), ثم تنفذ العملية 1, ثم في نهاية الحلقة يضاف 1 ل i (اي i = i + 1 ) لاننا اخترنا ++i لو كتبنا –i لنقص من i واحد و يمكن ايضا كتابة i = i + n او i = i - n مع n العدد الذي تريد ان يضاف و ينقص من i في كل مرة. لكن الحلقة مقيدة بشرط فعندما تصل قيمة i في المثال السابق الى 9 لن تضاف لها 1 و ستنتهي الحلقة.
هذا مثال اخر لكن باضافة 3 و ليس واحد:
المصفوفات هي مجموعة تتكون من قيم من نفس النوع يتم الوصول لكل قيمة برقم ترتيبي index. يتم تعريف مصفوفة في سي++ هكذا :
array_type array_name[array_lenght];
array_type نوع المصفوفة و هو مثل المتغيرات اما يكون int او char او double او…
array_name اسم المصفوفة و له نفس شروط اسم المتغيرات.
array_lenght هنا تضع حجم المصفوفة اي كم عدد الخانات التي تريدها او بعبارة اخرى كم عدد القيم التي ستحتاج الى تخزينها في المصفوفة.
في سي++ ترتيب القيم يبدا ب0 اي ان مصفوفة حجمها 3 تبدا ب0 ثم 1 ثم 2.
مثال:
int nums[3]; nums[0] = 31; nums[1] = 326; nums[2] = 1; for (int i = 0;i<3;i++) { cout << nums[i] << endl; }
الدوال هي عدة اوامر يتم تنفيذها لحظة استدعاء الدالة و يمكن ارسال بارامترات للدالة و ايضا ارجاع قيمة معينة. و يتم تعريف الدالة في سي++ هكذا :
function_type function_name(param1_type parm1,...,paramN_type paramN) { هنا تكتب الاوامر return return_value; }
function_type هو نوع الدالة و هو نوع القيمة التي سترجعها الدالة. النوع مثل المتغيرات int و double و char و… لكن يضاف نوع جديد هو void و هو يعني ان الدالة لا تعيد شيء و يجب حذف return في هذه الحالة. function_name و هو اسم الدالة التي تريد له نفس شروط المتغيرات. param_type param هي البارامترات التي سترسل للدالة و هي عبارة عن متغيرات. return_value هي القيمة التي تريد ان ترجعها الدالة طبعا الدالة التي من نوع void لا تحتاج لreturn, و القيمة يمكن ان تكون عدد او متغير او حرف حسب عمل الدالة. مثال بسيط ان شاء الله :
#inclue <iostream> using namespace std; int main() { cout << addition(1,2) << endl; int num1 = 10; int num2 = 100; int c = addition(num1,num2); cout << c << endl; return 0 } int addition(int a,int b) { int c = a + b; return c; }
و هذا مثال لدالة من نوع void
void salam() { cout << "salam" << endl; } int main() { cout << salam() << endl; return 0; }
(لم يكتمل)