/Learn-to-program-with-C_AR

ترجمة لدرس تعلّم البرمجة بلغة السي الخاص بموقع OpenClassrooms

Primary LanguageTeX

تعلّم البرمجة بلغة C

التنزيل

يمكنكم تنزيل آخر نسخة من هذا الكتاب بصيغة PDF من صفحة الإصدارات.

عن المشروع

هذا الكتاب هو ترجمة لـدرس تعلّم البرمجة بلغة C الخاص بموقع OpenClassrooms من الفرنسيّة إلى العربية. يمتاز هذا الدرس بكونه سهل الفهم على المبتدئين في مجال البرمجة، إذ أنّه لا يفترض وجود أيّة مكتسبات قبليّة في هذا المجال لدى القارئ.
يحتوي الكتاب على معلومات مفصّلة بخصوص البرمجة بشكل عام ولغة C بشكل خاص، مدعّمة بكثير من المخطّطات التوضيحيّة، والأمثلة والتمارين المصحّحة.
يتكوّن الكتاب من 31 فصلا موزّعة على 4 أجزاء. فصول الجزء الأوّل تحوّل القارئ من شخص لا علاقة له بالبرمجة إلى مبرمج مبتدئ قادر على استخدام أدوات البرمجة ومستوعب للمفاهيم الأساسيّة كأنواع البيانات، والمتغيّرات، والشروط، والحلقات التكراريّة والدوال. في الجزء الثاني، يتعلّم القارئ مفاهيم أكثر تقدّما في البرمجة، كالمؤشّرات، والجداول، والسلاسل المحرفيّة والهياكل بالإضافة إلى الحجز الحيّ للذاكرة والتعامل مع الملفّات. بعد ذلك، يتناول الجزء الثالث مبدأ استخدام المكتبات البرمجيّة مركّزا على استغلال مكتبة SDL لإنشاء النوافذ والرسم فيها ومكتبة FMOD لتشغيل الصوت واستعمالهما لإنشاء برامج وألعاب حقيقيّة. في الأخير، فصول الجزء الرابع تتناول مواضيع مكمّلة في لغة C تتمثّل في تقنيّات شائعة الاستخدام لتخزين البيانات، كالقوائم المتسلسلة، وجداول التجزئة، والمكدّسات والطوابير.
لقد حرصنا على نقل كلّ الأفكار التي قدّمها الكاتب في الدرس الأصلي من بدايته إلى نهايته. كما بذلنا جهدنا في أن يكون النص بسيطا قدر الإمكان ومفهوما للقارئ العربي العادي.
و في النهاية، لا يسعنا سوى أن نتطلّع بلهفة إلى تجريب برنامجك الخارق الّذي ستنئشئه بعد ختامك لهذا الكتاب!

فصول الكتاب

  • تقديم
  • مقدمة
  • أساسيّات البرمحة بلغة C
    • قلت برمجة؟
    • الحصول على الأدوات اللازمة
    • برنامجك الأوّل
    • عالم المتغيّرات
    • حسابات سهلة
    • الشروط
    • الحلقات التكراريّة
    • عمل تطبيقي: "أكثر أو أقل"، لعبتك الأولى
    • الدوال
  • تقنيات متقدّمة في لغة C
    • البرمجة المجزأة
    • المؤشّرات
    • الجداول
    • السلاسل المحرفيّة
    • المعالج القبلي
    • أنشئ أنواع متغيّرات خاصة بك
    • قراءة الملفّات وكتابتها
    • الحجز الحيّ للذاكرة
    • عمل تطبيقي: لعبة Pendu
    • إدخال نص بشكل أكثر أمانا
  • إنشاء الألعاب ثنائية الأبعاد عبر SDL
    • تثبيت SDL
    • إنشاء نافذة ومساحات
    • إظهار صور
    • معالجة الأحداث
    • عمل تطبيقي: Mario Sokoban
    • تحكّم في الوقت
    • كتابة نصوص باستخدام SDL_ttf
    • تشغيل الصوت بـFMOD
    • عمل تطبيقي: الإظهار الطيفيّ للصوت
  • هياكل البيانات
    • القوائم المتسلسلة
    • المكدّسات والطوابير
    • جداول التجزئة
  • الخاتمة

الترخيص

نظرا لأن محتوى الدرس الأصلي مرخّص تحت ترخيص المشاع الإبداعي، نسب المصنف - غير تجاري - الترخيص بالمثل، النسخة الثانية (CC-BY-NC-SA 2.0) فإن المحتوى المترجم مرخّص بذات الرخصة.

البناء

الملفات المصدرية في هذا المشروع مكتوبة بلغة LaTeX، لكن يجب ترجمتها بمترجم XeLaTex أو LuaLaTex لأنها تحتوي على محارف Unicode (هذا لأنها مكتوبة بالعربيّة)، ويفترض أنّ هذين المترجمين يكونان مرفقين في أي توزيعة TexLive أو MikTex.
نحن نترجمها بالأمر التالي باستخدام مترجم XeLaTex:
xelatex book.tex
ينتج عن هذا الأمر ملف book.pdf يمثّل الكتاب، أما بقيّة الملفات فغير ضرورية ويمكن التخلّص منها.

الاعتماديّات

يجب أن تكون الحزم التالية متوفرة في توزيعتك لكي تتم عملية الترجمة بنجاح:
  • fontspec
  • tcolorbox
  • graphicx
  • hyperref
  • fancyhdr
  • polyglossia
  • geometry
  • listings
  • bidi
  • float
  • xcolor
  • tabu
  • booktabs

المساهمة

إذا عثرت على أية أخطاء في هذا الكتاب، علمية كانت أو لغوية، أو أيّا كان نوعها، فيسرنا أن تقوم بإبلاغنا بها عن طريق فتح بلاغ علة/issue أو دمجها بطلب/pull request.