القائمة الرئيسية

الصفحات

اول برنامج في لغة سي بلس بلس دالة الطباعة و التعليقات c++

تابعنا ليصلك كل جديد

اساسيات لغة سي بلس بلس c++ دالة الطباعة و التعليقات


اولا دالة الطباعة cout في لغة سي بلس بلس c++

أفضل طريقة لتعلم لغة البرمجة هي كتابة البرامج. عادةً ما يكون أول برنامج يكتبه المبتدئين هو برنامج يسمى "Hello World" ، والذي يقوم ببساطة بطباعة "Hello World" على شاشة جهاز الكمبيوتر الخاص بك. على الرغم من أنه بسيط للغاية ، إلا أنه يحتوي على جميع المكونات الأساسية لبرامج C ++:

1
2
3
4
5
6
7
// my first program in C++
#include <iostream>

int main()
{
  std::cout << "Hello World!";
}
Hello World!


تظهر اللوحة اليمنى أعلاه كود / تعليمات C ++ لهذا البرنامج. تظهر اللوحة اليسرى النتيجة عندما يتم تنفيذ البرنامج بواسطة الكمبيوتر او كما يسمى خرج البرنامج .
الأرقام الرمادية على اليمين عبارة عن أرقام أسطر لتسهيل مناقشة البرامج والبحث عن الأخطاء. هم ليسوا جزء من البرنامج.

دعنا نفحص هذا البرنامج سطرا بسطر:
السطر 1// my first program in C++
تشير علامتان مائلتان إلى أن باقي السطر عبارة عن تعليق تم إدخاله بواسطة المبرمج ولكن ليس له أي تأثير على سلوك البرنامج. يستخدمها المبرمجون لتضمين تفسيرات أو ملاحظات موجزة بشأن الكود أو البرنامج. في هذه الحالة ، هو وصف تمهيدي موجز للبرنامج.

السطر 2#include <iostream>
الأسطر التي تبدأ بعلامة التجزئة ( #) عبارة عن توجيهات تتم قراءتها وتفسيرها بواسطة ما يعرف باسم المعالجة المسبقة . إنها سطور خاصة يتم تفسيرها قبل بدء تجميع البرنامج نفسه. في هذه الحالة ،
#include <iostream>
يوجه التوجيه المعالج المسبق لتضمين قسم من كود C ++ القياسي ، والمعروف باسم header iostream ، والذي يسمح بإجراء عمليات الإدخال والإخراج القياسية ، مثل كتابة إخراج هذا البرنامج (مرحبا بالعالم) على الشاشة.
السطر 3: سطر فارغ. لا تؤثر الأسطر الفارغة على البرنامج. إنهم ببساطة يحسنون قابلية قراءة الكود.

السطر 4: int main ()
يبدأ هذا السطر في إعلان الدالة الاساسية ، 
الدالة :عبارة عن مجموعة من عبارات الكود التي يتم إعطاء اسم لها: في هذه الحالة ، يعطي هذا الاسم "main" لمجموعة عبارات الكود التالية. ستتم مناقشة الوظائف بالتفصيل في فصل لاحق ، ولكن بشكل أساسي ، يتم تقديم تعريفها مع نوع بيانات من النوع ( int) ، والاسم ( main) وزوج من الأقواس ( ()) ، بما في ذلك بشكل اختياري القيم الممرة ليس عليك ان تفهم كل شيء خاص بالدوال الان.
الدالة المسماة main هي دالة خاصة في جميع برامج C ++ ؛ إنها الدالة التي تنفذ عند تشغيل البرنامج. يبدأ تنفيذ جميع برامج C ++ 
 من الدالة  main ، بغض النظر عن مكان وجود الدالة بالفعل داخل الكود
السطر 5 و 7: {و}يشير القوس المفتوح ( {) في السطر 5 إلى بداية تعريف الدالة main  ، ويشير قوس الإغلاق ( }) في السطر 7 إلى نهايتها. كل شيء بين هذه الأقواس هو جسم الدلة الذي يحدد ما ينفذ عندما يتم استدعاء الدالة main. تستخدم جميع الدوال الأقواس للإشارة إلى بداية ونهاية تعريفاتها.


السطر 6: std::cout << "Hello World!";
هذا الخط هو عبارة C ++. البيان هو تعبير يمكن أن ينتج عنه بعض التأثير. إنه أساس البرنامج ، يحدد سلوكه الفعلي. يتم تنفيذ العبارات بنفس الترتيب الذي تظهر به داخل جسم الدالة.
هذا البيان من ثلاثة أجزاء: أولا، std::coutالذي يعرف الحادي والذي يقوم باستدعاء دالة الطباعة من فضاء الاسم (للطباعة على شاشة الكمبيوتر).
 ثانيًا ، عامل الإدخال ( <<) ، والذي يشير إلى تمرير محتواه الى   std::cout. 
أخيرًا ، الجملة داخل علامتي الاقتباس ("Hello World!") ، هي المحتوى المُدرج في الإخراج القياسي.

لاحظ أن التعليمة تنتهي بفاصلة منقوطة (;). يمثل هذا الحرف نهاية التعليمة ، تمامًا كما تنتهي الفترة بجملة باللغة الإنجليزية. يجب أن تنتهي كافة عبارات C ++ بحرف فاصلة منقوطة. من أكثر الأخطاء النحوية شيوعًا في لغة C ++ نسيان إنهاء تعليمة بفاصلة منقوطة.


ربما لاحظت أنه ليست كل سطور هذا البرنامج تنفذ إجراءات عند تنفيذ الكود. يوجد سطر يحتوي على تعليق (يبدأ بـ //). هناك سطر مع توجيه للمعالج (يبدأ بـ #). هناك سطر يحدد الدالة (في هذه الحالة ، main الدالة). وأخيرًا ، سطر بعبارات تنتهي بفاصلة منقوطة (الإدراج في cout) ، والتي كانت داخل الكتلة المحددة بواسطة الأقواس ( { }) للدالة main .


تم تنظيم البرنامج في سطور مختلفة وتم وضع مسافة بادئة له بشكل صحيح ، من أجل تسهيل فهمه لقراءته. لكن C ++ ليس لديها قواعد صارمة بشأن المسافة البادئة أو كيفية تقسيم التعليمات في سطور مختلفة. على سبيل المثال ، بدلاً من
1
2
3
4
int main ()
{
std::cout << " Hello World!";
}


كان من الممكن أن نكتب:
 
int main () { std::cout << "Hello World!"; }

كل التعليمات في سطر واحد ، وكان من الممكن أن يكون لذلك نفس المعنى تمامًا مثل الكود السابق وينفذ بدون اي اخطاء.
في لغة ++ C ، يتم تحديد الفصل بين العبارات بفاصلة منقوطة ( ;) ، مع عدم أهمية الفصل إلى أسطر مختلفة على الإطلاق لهذا الغرض. يمكن كتابة العديد من العبارات في سطر واحد ، أو يمكن أن تكون كل عبارة في سطر خاص بها. يعمل تقسيم الكود في سطور مختلفة فقط على جعله أكثر وضوحًا وتخطيطًا للبشر الذين قد يقرؤونه ، ولكن ليس له أي تأثير على السلوك الفعلي للبرنامج.
الآن ، دعنا نضيف عبارة إضافية إلى برنامجنا الأول:
1
2
3
4
5
6
7
8
// my second program in C++
#include <iostream>
int main ()
{
std::cout << "Hello World! ";
std::cout << "I'm a C++ program";
}
Hello World!  "I'm a C++ program        
 


في هذه الحالة ، أجرى البرنامج عمليتين اخراج في عبارتين مختلفتين std::cout .
مرة أخرى ، كتابة التعليمات البرمجية بشكل منظم وفي  سطور مختلفة من التعليمات  البرمجية الاخرى ببساطة إمكانية قراءة أكبر للبرنامج ، حيث  يمكن أن يكون صحيحا تمامًا كما هو محدد بهذه الطريقة:

 
int main () { std::cout << " Hello World! "; std::cout << " I'm a C++ program "; }
 

يمكن أيضًا تقسيم الكود المصدري إلى المزيد من أسطر التعليمات البرمجية بدلاً من ذلك:
1
2
3
4
5
6
7
int main ()
{
std::cout <<
"Hello World!";
std::cout
<< "I'm a C++ program";
}



وكانت النتيجة مرة أخرى هي نفسها تمامًا كما في الأمثلة السابقة.
توجيهات المعالج المسبق (تلك التي تبدأ بـ #) خارج هذه القاعدة العامة لأنها ليست بيانات. وهي عبارة عن خطوط يقرأها المعالج ويعالجها قبل أن يبدأ التجميع المناسب. يجب تحديد توجيهات المعالج المسبق في السطر الخاص بها ، ولأنها ليست عبارات ، فلا يلزم أن تنتهي بفاصلة منقوطة ( ;).

التعليقات في لغة سي بلس بلس C++

كما لوحظ أعلاه ، لا تؤثر التعليقات على عمل البرنامج ؛ ومع ذلك ، فإنها توفر أداة مهمة للتوثيق مباشرة داخل الكود المصدري لما يفعله البرنامج وكيف يعمل.

يدعم C ++ طريقتين للتعليق على التعليمات البرمجية:
1
2
//تعليق سطر 

/* تعليق اكثر 
من سطر */ 


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

دعنا نضيف تعليقات إلى برنامجنا الثاني:
1
2
3
4
5
6
7
8
9
10
/* my second program in C++
with more comments */
#include <iostream>
int main ()
{
std::cout << "Hello World! "; // prints Hello World!
std::cout << "I'm a C++ program"; // prints I'm a C++ program
}
Hello World!  "I'm a C++ program        






  



إذا تم تضمين التعليقات في الكود المصدري لبرنامج ما دون استخدام مجموعات أحرف التعليق //، /*أو */، فإن المترجم يأخذها كما لو كانت تعبيرات C ++ ، مما يؤدي على الأرجح إلى فشل التجميع مع رسالة خطأ واحدة أو عدة رسائل خطأ.

استخدام اسم فضاء الاسماء في لغة سي بلس بلس C++ او كما تسمى مساحة الاسماء

إذا كنت قد رأيت كود C ++ من قبل ، فربما تكون قد رأيت cout استخدامه بدلاً من std::coutكلاهما يسميان نفس الكائن: يستخدم الأول اسمه غير المؤهل ( cout) ، بينما يؤهله الثاني مباشرةً داخل مساحة الاسم std (as std::cout).
cout هو جزء من المكتبة القياسية ، ويتم الإعلان عن جميع العناصر الموجودة في مكتبة C ++ القياسية ضمن ما يسمى مساحة الاسم  او فضاء الاسم namespace: مساحة الاسم std.
للإشارة إلى العناصر في stdمساحة الاسم ، يجب على البرنامج إما أن يؤهل كل استخدام لعناصر المكتبة (كما فعلنا من خلال البادئة coutبـstd::) ، أو تقديم رؤية لمكوناته. الطريقة الأكثر شيوعًا لتقديم رؤية هذه المكونات هي عن طريق استخدام الإعلانات :
 
using namespace std;

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

1
2
3
4
5
6
7
8
9
// my second program in C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World! ";
cout << "I'm a C++ program";
}
Hello World!  "I'm a C++ program        



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


تم شرح مساحات الأسماء بمزيد من التفصيل في فصل لاحق دمتم في رعاية الله.

تعليقات

البحث في هذه المدونة الإلكترونية

جدول المحتويات