انتقل إلى المحتوى

برمجة سي ++/مسودة

من ويكي الكتب

لغة سي++ (C++) هي واحدة من أقوى وأشهر لغات البرمجة كائنية التوجه (OOP) وأكثرها استخداماً في العالم. طوّرها العالم الدنماركي بيارن ستروستروب (Bjarne Stroustrup) في مختبرات بل عام 1979 كنوع من التطوير والتحسين على لغة C التقليدية عبر إضافة ميزة "الصفوف" (Classes).

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

لماذا نتعلم لغة C++؟

[عدل]
  • الكفاءة والسرعة العالية: تُترجم مباشرة إلى لغة الآلة، مما يجعلها أسرع بكثير من اللغات الحديثة مثل بايثون وجافا.
  • تعددية الاستخدامات: تُستخدم في تطوير أنظمة التشغيل، محركات الألعاب الضخمة، المتصفحات، وتطبيقات الذكاء الاصطناعي.
  • لغة العمالقة: تم بناء أنظمة شهيرة بها مثل Windows، ومحرك البحث Google، وبرامج Adobe، وأنظمة القيادة في الطائرات والسيارات الذكية.

لمن هذا الكتاب؟

[عدل]

تم إعداد هذا الكتاب بأسلوب عملي ومبسط ليكون دليلاً برمجياً شاملاً لكل من:

  1. الطلاب الأكاديميين والمبتدئين الراغبين في بناء أساس برمجي متين وقوي.
  2. المبرمجين المحترفين الذين يتطلعون لفهم أعمق لأسرار وتفاصيل إدارة الذاكرة والأداء في C++.

الفصل 1: بدء العمل مع لغة C++

[عدل]

الإصدارات والمعايير القياسية

[عدل]
الإصدار (Version) المعيار المعياري (Standard) تاريخ الإصدار (Release Date)
C++98 ISO/IEC 14882:1998 1998-09-01
C++03 ISO/IEC 14882:2003 2003-10-16
C++11 ISO/IEC 14882:2011 2011-09-01
C++14 ISO/IEC 14882:2014 2014-12-15
C++17 تحدد لاحقاً (TBD) 2017-01-01
C++20 تحدد لاحقاً (TBD) 2020-01-01

القسم 1.1: برنامج "أهلاً بالعالم" (Hello World)

[عدل]

هذا البرنامج يقوم بطباعة العبارة Hello World! إلى واجهة المخرجات القياسية (الكونسول):

#include <iostream>

int main() 
{
    std::cout << "Hello World!\n";
    return 0;
}

شرح الكود سطر بسطر:

[عدل]
  • #include <iostream>
 هذا السطر عبارة عن أمر للمُعالج المسبق (Preprocessor). يقوم بتضمين محتويات المكتبة القياسية iostream للتمكن من استخدام خاصية الطباعة والقراءة.
  • int main()
 هذه هي الدالة الرئيسية للبرنامج، ويبدأ نظام التشغيل دائماً بتنفيذ أي برنامج بلغة C++ من هذا السطر. الكلمة int تعني أن الدالة ستُرجع قيمة عددية صحيحة (Integer) عند الانتهاء.
  • الأقواس { }
 الأقواس المتعرجة تُحدد بداية ونهاية نص (جسم) الدالة main. جميع الأوامر المراد تنفيذها يجب أن تُكتب داخل هذين القوسين.
  • std::cout << "Hello World!\n";
 * std::cout: هو الكائن المسؤول عن إرسال البيانات المُراد طباعتها إلى الشاشة.
 * <<: هو مُعامل الإرسال (Stream insertion operator) الذي يوجّه النص إلى الشاشة.
 * "Hello World!": النص المُراد طباعته كما هو على الشاشة.
 * \n: رمز برمجي يعني الانتقال إلى سطر جديد (Newline).
 * ;: الفاصلة المنقوطة تُنهي السطر البرمجي، وتُخبر المترجم (Compiler) بأن الأمر قد انتهى.
  • return 0;
 هذا الأمر يُنهي عمل الدالة الرئيسية ويُرجع القيمة 0 لنظام التشغيل، والتي تعني عالمياً أن البرنامج اشتغل وانتهى بنجاح وبدون أي أخطاء.