تكنولوجيا

لغة c++

تعلم لغة c++

تعلم لغة c++

ماھي البرمجة؟
البرمجة ھي إعطاء أوامر للحاسوب لتنفيذ مھام ما ،أو حل مشكلة أومسألة . والبرمجة ھي كتابة برامج الكومبيوتر.

ماھو البرنامج؟
البرنامج ھو مجموعة جمل مكتوبة بلغة يفھمھا الحاسوب للوصول إلى الھدف الذي من أجله كتب البرنامج.

مسلمات في البرمجة:

  •  البرمجة ھي حلول منطقية: إذا أريد منا كتابة برنامج يحسب عدد الموظفين الذين أعمارھم أكبر من 40 سنة فإننا نعرف متغير اسمه العدد ونعطيه قيمة ابتدائية صفر ثم نمر على كل الموظفين ونختبر ھل عمر الموظف الحالي أكبر من 40 أم ال، فإن كان أكبر فإننا نزيد قيمة المتغير العدد بواحد وكذلك حتى ننتھي من جميع الموظفين، نلاحظ في ھذا المثال أن الحال
    كان بخطوات منطقية، وبالتأكيد فإن المنطق ھو ما يصدر عن العقل ، ومن ثم فإنأي إنسان له ميول نحو البرمجة يمكنه أن يكون مبرمجا ناجحا.
  • كل الطرق تؤدي إلى روما: كل مسألة  على الاقل بنسبة 95  %يمكن حلھا بأكثر من طريقة ، فمثال لطباعة حاصل ضرب 4*5 يمكن ان نكتب الجملة التالية:
    Print 4*5
    أو نكتب:
    Print 4+4+4+4+4
    ولكن بالتأكيد فإن طريقا واحدة ھي الافضل، ولكن في بداية كتابة البرنامج ربما يكون من المھم الوصول بالطريق الافضل، بل المھم الوصول أولا بأي طريق، ثم إذا كان ثمة متسع من الوقت فإننا نبحث عن الطريق الافضل.ھذه النقطة أي وجود أكثر من طريق تنفي المعلومة التي تقول أن البرمجة صعبة ومعقدة، لانه إذا وجد أكثر من طريق فإن احتمال الوصول والنجاح في كتابة البرنامج وحل المشكلة سيكون كبيرا.
  • في البرمجة يكون من العادات الحسنة والمھمة أن يتم تجزيئ البرنامج إلى أجزاء وإجراءات بحيث يكون كتابة كل جزء أسھل بكثير من كتابة البرنامج مرة واحد، وكذلك في تصحيح الاخطاء فالبحث عن الخطأ في جزء واحد وتصحيحه سيكون أسرع وأفضل من لو تم تفحص كل البرنامج . بعد كتابة الاجزاء يتم ربطھا مع بعضھا لتكوين البرنامج، دائما يجب النظر إلى البرنامج
    كأجزاء مرتبطة ال كجزء واحد.

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

ھذه الخطوة الاولى تسمى التحليل Analysis أو تعريف المشكلة definition Problem .ھذه الخطوة مھمة جدا، فقد ذكرت من قبل أن كل الطرق تؤدي إلى روما، ولكننا لن نصل أبدا إذا لم نكن نعرف بأننا ذاھبون إلى روما، أي لايمكن كتابة برنامج لحل مسألة ما إذا كنا لم نفھم المطلوب من المسألة جيدا.بعد معرفة وفھم المشكلة نقوم بتصميم الحل لأي برنامج، تصميم البرنامج ھو وضع الخوارزمية – الطريق – التي ستوصلنا إلى الحل.

  • الخوارزمية ھي مجموعة خطوات عند اتباعھا نصل إلى الحل. ھناك أكثر من طريقة يمكننا بھا أن نضع تصميما للبرنامج أو كتابة الخوارزمية، منھا المخططات الانسيابية والكود المزيف.
    باستعمال الكود المزيف سيكون الحل المسالة كالتالي:
  • Start
    Read number1
    Read number2
    Print number1/number2
    End
  • الخطوة التالية في بناء البرنامج ھي تحويل الخوارزمية إلى لغة يفھمھا الحاسوب كالسي++.
    الخطوة الرابعة ھي اختبار البرنامج للتأكد من خلوه من األخطاء وأنه يحقق الھدف الذي من أجله تمت كتابته.
    الخطوة الاخيرة تتمثل في توثيق البرنامج.

شرح برنامج c++

<include <iostream#

// This program print ” Mudawna Oolom ” on the screen

;using namespace std

()int main
}
“;cout << ” Mudawna Oolom \n
;return 0
{

تحليل البرنامج:

  •  <include <iostream#في البداية الرمز # هاش هو أحد توجيهات المعالج التمهيدي، هناك جزء صغير من المترجم يسمى “المعالج التمهيدي “Preprocessor” هذا الجزء يعمل دائما عندما نبدأ في ترجمه البرنامج ، أي يعمل أولا ثم يبدأ المترجم في عمله ، وظيفته هي ترجمه التوجيهات (أي جمله تبدأ ب#) إلى احد الأوامر الخاصة ، بعد أن يقوم بتحويلها يقوم المترجم بأداء عمله.
  • الكلمة include ، معناها تضمين ، “أي قم أيها المعالج التمهيدي بتضمين ملف الرأس هذا إلى الـ Code Source” ، ماذا يعني هذا ؟؟ بكل بساطه يقوم المعالج بنسخ ملف الرأس ولصقه في بداية ال Source Code.
    كلمة include عبارة عن توجيه للمترجم بأن يضم محتويات ملف الرأس iostream إلى الملف الحالي (الملف المحتوي على عبارة include#) بحث يصبح جزءاً منه.يوجد ملف الرأس iostream -وهو اختصار input/output stream – في مكتبة ++C القياسية، ويحتوي على التعاريف و الإعلانات الضرورية والمفيدة لعمليات الإدخال و الإخراج القياسية.
  • تتعامل هذه المكتبة مع عمليات الإدخال و الإخراج على أنها تيارات (streams) من الحروف. ونحن بحاجة إلى ضم ملف الرأس iostream إلى البرنامج اعلاه بسبب استخدامنا لعبارة الإخراج cout . فالبرنامج يطبع العبارة ” Mudawna Oolom ” على الشاشة باستخدام الكائن cout الموجود في الملف iostream.الكائن عبارة عن منطقة في الذاكرة لها السمات التالية: عنوان، حجم، نوع، وقيمة. فالمتغير عبارة عن كائنبصفة عامة، يجب إضافة ملف الرأس iostream في أي برنامج يستخدم أدوات الإدخال أو الإخراج القياسية مثل cin و cout.الحرف # الذي يسبق include يستخدم للدلالة على أن السطر الحالي هو توجيها للمترجم. أما قوسا الزاوية < > اللذان يحيطان بالملف iostream فيدلان على وجود ملف الرأس هذا في مكتبة ++C القياسية. وكما ذكرنا سابقاً، يقوم المعالج المبدئي بتنفيذ مثل هذه التوجيهات والتي تبدأ بـ #.
  • السطر 3 This program print ” Mudawna Oolom ” on the screen//يعتبر هذا تعليقاً (comment) خاص بالمبرمج، وهو عبارة عن نص يضاف في الملف المصدر من أجل وصف أو شرح عمل البرنامج وتوثيقه. والتعليقات مفيدة جداً للمبرمجين عند متابعة أو تطوير البرامج.عندما يصادف المترجم هذه التعليقات يتجاهلها تماماً وكأنها غير موجودة وبالتالي لا تؤثر على الملف التنفيذي.كتابة التعليقات اختيارية وليست إجبارية ولكن ينصح بإضافتها إلى نصوص البرامج.
  • من الممكن كتابته التعليقات في لغة ++C بطريقتين:تعليق أحادي السطر: ويبدأ بكتابة الخطين المائلين // في السطر وينتهي بنهاية نفس السطر. وسيعتبر المترجم أن أي شيء يبدأ من الخطين المائلين إلى نهاية السطر تعليقاً، مثل التعليق الموجود في السطر 3 في البرنامج أعلاه. و من الممكن استخدامها كذلك لكتابة تعليق متعدد الأسطر، ولكن يجب أن يبدأ كل سطر بالخطين المائلين.تعليق متعدد السطور: وهو النمط القديم المستخدم في لغة C. ويبدأ بـ /* (خط مائل تليه نجمة) وينتهي بـ */ (نجمة يليها الخط المائل)، مثل:/* ++This is the first program in C */ويمكن استخدامها عند كتابة التعليقات الطويلة ولكن لا يسمح بتداخلها مع بعضها البعض، وسيتجاهلها المترجم كذلك.
  • ;using namespace std تخبر المترجم بأن يستخدم فضاء الأسماء المعرف باسم std (اختصارا لكلمة standard). وفضاء الأسماء (namespace) ميزة جديدة أُضيفت إلى ++C بغرض حل مشكلة تضارب الأسماء التعريفية خاصة عند استخدام المكتبات المختلفة. فهي تمكن المبرمجين من تغليف مكتبة ما بفضاء مميز.الأسماء المعرفة في فضاء معين تكون مفصولة عن تلك المعرفة في فضاء آخر. لذا يمكن لبرنامج أن يستخدم كائنين يحملان نفس الاسم ولكن كل منهما في مجال أو فضاء مختلف.الأسماء المعرفة في فضاء، من الممكن إستخدامها من داخل ذلك الفضاء مباشرة. ولكن عند استخدام إسم من خارج فضاءه، يجب أن نحدد فضاءه باستخدام مُعامِل تحديد المجال (scope resolution operator) ويرمز لهذا المُعامِل بالرمز ( :: ). فمثلا، الكائن cout معرف في الفضاء std وهو فضاء مكتبة++C القياسية، لذا يمكن تحديد الكائن cout بإستخدام معامل تحديد المجال كالتالي: std::cout. الرمز std::cout يفيد بأن الاسم cout يخص الفضاء std. بشكل عام، لاستخدام كائن من خارج فضاءه، يسبق اسم الكائن بالبادئة المكونة من اسم الفضاء يليه معامل تحديد المجال.
  • إذا استخدم البرنامج كائنات متعددة من أحد الفضاءات، فإن تحديد الأسماء باستخدام البادئة المكونة من اسم الفضاء ومعامل تحديد المجال قد يكون شاقاً، وكذلك تجعل قراءة البرنامج أصعب. ويمكن حل هذا المشكلة باستخدام العبارة using التي تغني الحاجة عن كتابة مثل تلك البادئة.
  • عبارة using استخدمت في البرنامج أعلاه  من أجل إحضار جميع الكائنات المحددة في الفضاء std إلى فضاء البرنامج الحالي، أي فضاء البرنامج اعلاه وهذا يعفينا من استخدام البادئة ::std بجوار كل كائن نستخدمه من الفضاء std وبالتالي يؤدي إلى تبسيط إدخال البرنامج وزيادة وضوحه. تسمح العبارة using  من استخدام أي اسم من الفضاء std دون الحاجة إلى استخدام البادئة ::std.
  • ()int main كل برنامج من برامج الـ ++C يحتوي على إجراء واحد أو أكثر، ولكل منها أسم. واحد فقط من هذه الإجراءات يجب أن يحمل الاسم ()main يمكن أن نشبهها بجدران البناء فكل بناء لابد من ان يحوي جدران يضم ما بداخله، وهو الإجراء الرئيسي الذي يبدأ منه تنفيذ البرنامج و غالبا ما ينهي منه. بعبارة أخرى، هو الإجراء الذي يستدعيه نظام التشغيل عندما تطلب تشغيل البرنامج، أي انه نقطة انطلاق البرنامج.عادة، يقسم البرنامج إلى عدة إجراءات يقوم كل إجراء منها بعمل محدد، ويتكون كل منها من مجموعة مستقلة من الأوامر (statements).يمكن للإجراءات أن تستدعي (call)بعضها البعض، كذلك يمكن أن يقوم الإجراء المستدعَى بإعادة قيمة للإجراء المستدعِي، هذه القيمة المعادة يجب تحديد نوعها قبل أسم الإجراء.الكلمة int (اختصار integer) التي تسبق الإجراء الرئيسي ()main تدل على أن الإجراء الرئيسي يسترجع عدداً صحيحاً لنظام التشغيل أي أن ما بداخل هذا الجدران عبارة عن عدد صحيح.القوسان المجودان بعد كلمة main فهما ضروريان، على الرغم من عدم وجود شيء بينهما، للدلالة على أنه إجراء، وتستخدم هذه الأقواس التي تلي أسماء الإجراءات من أجل تمرير المتغيرات الوسيطة (formal parameters).القوسان الكبيران {}  ضروريان لتحديد بداية ونهاية الأوامر في الإجراء. أي من أجل تحديد متن الإجراء ()main.
  • ;”cout << ” Mudawna Oolom \n عبارة cout تقوم بعرض الرسالة “Mudawna Oolom” على الشاشة. لغة ++C تنجز عمليات الإدخال والإخراج على شكل تيارات من الحروف (streams of characters). ويتم ذلك باستخدام عامِل الإدراج <<.عامل الإدراج << في العبارة الموجودة له معامَلان: المعامل الأيمن وهو هنا الرسالة “Mudawna Oolom\n” ، والمعامل الأيسر وهو cout. وعند التنفيذ، يقوم العامل << بإدراج تيار الحروف “Mudawna Oolom” في كائن تيار الإخراج cout. كائن تيار الإخراج cout يمثّل وحدة الإخراج الأساسية وهي عادة ما تكون الشاشة. وبالتالي تعرض “Mudawna Oolom” على الشاشة.تسمى الرسالة “Mudawna Oolom \n” والمحصورة بين علامتي الاقتباس المزدوجة بسلسلة حروف. وعند التنفيذ، تطبع السلسلة بالصورة التي تبدو فيها للعِيان وهي محصورة بين علامتي الاقتباس، باستثناء الحرفين الأخيرين n\.يستخدم الخط المائل (\) كرمز للخروج، وعندما يظهر في سلسلة حروف، فإن الحرف الذي يليه ينضم معه ليشكل تتابع من الحروف تستخدم لترميز حروف خاصة. فالتتابع n\ يرمز لسطر جديد. و يؤدي هذا الترميز إلى تحرك مؤشر الشاشة إلى بداية السطر التالي.
  • ;return 0 العبارة return تودي إلى إنهاء الإجراء وإعادة القيمة 0 إلى الإجراء المستدعي (نظام التشغيل). ومن المتفق علية أن يعيد البرنامج القيمة 0 عندما يتم تنفيذه بالصورة الطبيعية دون حدوث أي مشاكل أو أخطاء. أما إذا حدث خطأ فإن البرنامج يعيد قيمة أخرى غير الصفر يستدل بها في تحديد نوع الخطأ.لاحظ العبارات  تنتهي بالفاصلة المنقوطة. في الواقع، جميع العبارات في لغة ++C يجب أن تنتهي بالفاصلة المنقوطة.

استخدامات لغة c++

لغة سي++ هي لغة برمجة كائنية، متعددة أنماط البرمجة، مصرفة، سكونية الأنماط. وتضم العديد من ميزات لغات البرمجة عالية المستوى ومنخفضة المستوى.

تتعدد استخدامات لغة C++ في المجالات التقنية المختلفة ومنها :

  • تستخدم لغة برمجة سي بلس بلس في بناء نظم التشغيل متضمنة بناء الأنظمة البرمجية المختلفة وبرامج المستخدم .
  • يتم استخدامها في إنشاء برامج الخدمات العالية ومشغلات الأجهزة بالإضافة للأنظمة المضمنة.
  • يمكن استخدام لغة C++ في التطبيقات الصغيرة ، ولكن يفضل استخدام لغة برمجة أكثر سهولة فتختص لغة C++ في برامج أكثر قوة.
  • تستخدم في إنشاء وتطوير ألعاب الفيديو المختلفة نظرا لفعاليتها العالية في ذلك.
  • كما تم استخدامها بشكل واسع في إنشاء مجموعات برمجية شهيرة مثل : Microsoft office كما دخلت لغة C++ في إنشاء متصفحات مثل Google Chrome, Mozilla Firefox وغيرها من البرامج المنتشرة في نطاقات واسعة من قبل ملايين المستخدمين حول العالم.
  • الكثير من الشركات الكبيرة بالإضافة إلى البنوك تستخدم لغة C++ في برمجة أنظمتها المختلفة .
  • كما تحتاج بعض أجزاء أندرويد ومحركات البحث لجوجل أن يتم كتابتها بلغة C++ بالإضافة للكثير من الاستخدامات الأخرى للغة برمجة C++ نظرا لتميز لغة C++

امثلة محلولة بلغة c++

البرنامج الاول :
البرنامج التالي البسيط يبين تركيب البرنامج في لغة سي++

<include<iostream #
;using namespace std
// My first c++ programming

()Main
}
“++cout<<“Welcome to C
;return 0

{

برنامج الثاني يحسب مساحة ومحيط مستطيل :

;float area,length,width, circumference
;”:cout<<“Enter the length
;cin>>length
;”:cout<<“Enter the width
;cin>>width
;cout<<“\nArea = “<<length*width<<endl
;(cout<<“Circumference = “<<2*(length+width

تحميل لغة البرمجة c++

https://www.mutaz.net/free-programs

عيوب لغة سي بلس بلس C++

لا تخلو أي لغةٍ من بعض نقاط الضعف أو العيوب البسيطة ربما، لذا يجب علينا التنويه لها:

  1. تعتبر لغة سي بلس بلس غير آمنة.
  2. معقدة بالنسبة للمتعلمين حديثًا.
  3. صعبة التعامل والتصحيح عند استخدامها في تطبيقات الويب.
  4. لا تدعم استعادة الموارد Garbage collection.
  5. لا توفر الكثير من الدعم للمبرمج.
  6. لا يوجد مكتباتٌ افتراضيةٌ خاصةٌ بها لتصميم الواجهات الرسومية.

 

 

 

السابق
مواعظ وحكم الامام علي رضي الله عنه
التالي
مرض السيدا

اترك تعليقاً