الفرق بين المراجعتين لصفحة: «برمجة سي ++»
تم حذف المحتوى تمت إضافة المحتوى
لا ملخص تعديل وسم: مسترجع |
ط استرجع تعديلات 197.202.107.250 (نقاش) حتى آخر مراجعة لMeno25 وسم: استرجاع |
||
سطر 1:
__NOTOC__
<small>[[لغات البرمجة الحاسوبية|<< لغات البرمجة الحاسوبية]]</small>
<div style="display:block; padding:0.3em; background-color:#99CCFF; border:1px solid #aaa; -moz-border-radius-topright:0.4em; -moz-border-radius-topleft:0.4em; text-align:right; font-size:75%;"><br />
<div style="font-size:250%;text-align:center;">'''برمجة: سي + +'''</div><br /></div>
<br />
{{ويكيبيديا|سي بلس بلس}}
إن لغة البرمجة سي++ (++C) هي واحدة من أكثر لغات البرمجة استخدامًا و أوسعها إنتشارًا بالإضافة إلى جدتها، لغة [[w:ar:سي (......مجة)|سي]] (C). تعتبر لغة سي++ من لغات [[w:ar:برمجة كائنية التوجه|البرمجة الكائنية التوجه]] (Object-Oriented programming)، وإن كان من الممكن استخدامها بشكل بنيوي (Structural) أو كمزيج من الإثنين.
جزء كبير من لغة سي++ تعتبر من لغات البرمجة عالية المستوى. ولغات البرمجة عالية المستوى هي اللغات التي ظهرت لتسريع عملية البرمجة حيث أن تعليماتها أقرب ماتكون إلى لغة الإنسان وهذا ما يجعل عملية البرمجة أكثر سرعةً وسهولةً. تسهّل لغة سي++ الأسلوب المهيكل والمنهجي لعملية تصميم البرامج، حيث تتألّف برامج هذه اللغة من مكونات تسمّى الأصناف (classes) والدوال (functions) وبالتالي يمكن تقسيم عمليّة تعلّم لغة سي++ إلى قسمين: يعتمد الأول منها على تعلّم لغة سي++ نفسها، في حين يسمح الثاني بتعلّم كيفية استخدام الأصناف الملحقة بهذه اللّغة واستخدام التوابع الموجودة ضمن المكتبة المعياريّة ANSI C.
== ماذا تحتاج للبدء ؟ ==
* تحتاج [[w:ar:لمصرف (برمجة)|مصرّف]] (compiler) (مترجم يقوم بتحويل ما تكتبه إلى لغة الآلة التي يفهمها المعالج)، ورابط (linker)، ومحرر نصوص. بعض بيئات التحرير توفر هذه الثلاث. لاختيار أحد بيئات التطوير المتكاملة، يمكنك رؤية المقارنة بينها على [http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#C.2FC.2B.2B هذه الصفحة] في ويكيبيديا الإنجليزية. وفي ما يلي بعض الإقتراحات :
* فيجوال سي ++ (++Visual C)، من شركة ميكروسوفت، وهو مغلق المصدر وغير مجاني.
* برنامج (Intel® C++ Compiler 9.1)، مغلق المصدر ومجاني لمدّة معينة. [http://www.intel-inside.tm/cd/software/products/asmo-na/eng/compilers/cwin/eval/index.htm للتحميل]
* بيئة (Quincy 2005) الذي يأتي مع مصرّف gcc وأدوات أخرى حرّة. [http://www.codecutter.net/tools/quincy/ للتحميل]
* استخدام برامج حزمة
* استخدام بيئة '''[[w:ar:إكليبس|إكليبس]]''' (Eclipse CDT)، و هي مجانية ومفتوحة المصدر. [http://www.eclipse.org/downloads/ للتحميل].
* برنامج Dev C++ ، وهو مجاني ومفتوح المصدر.
* برنامج Code Blocks ، وهو مجاني ومفتوح المصدر.[http://www.codeblocks.org/downloads/ للتحميل].
== قائمة الموضوعات و الدروس ==
{{مثال|ملاحظة: يحتوي كل موضوع على شرح مبسط لفكرة و هدف الدرس، الغرض من هذا الشرح هو تنظيم كتابة الدروس و المحافظة على تسلسلها بشكل منطقي.
من الممكن - بعد الانتهاء من الكتاب - اختصار هذه الشروح الصغيرة بشكل أكبر بحيث لا تزيد عن خمس كلمات.}}
* '''[[برمجة:سي ++/ مقدمة في البرمجة|مقدمة في البرمجة]]'''
** التفكير في كيفية عمل الأشياء، إيجاد حلول للمشاكل، الخ
* '''[[برمجة:سي ++/ الدرس الأول|الدرس الأول]]'''
** البرنامج الأول(الفارغ)، شرح مفاهيم أساسية: نقطة الدخول إلى البرنامج، نقطة الخروج، لماذا الـ main؟ فكرة عامة عن تقسيم البرامج الكبيرة إلى أجزاء صغيرة (برامج جزئية).
* '''[[برمجة:سي ++/الدرس الثاني|الدرس الثاني]]'''
** الكتابة على الشاشة، العمليات الأساسية، الجمع و الطرح، المتغيرات، الثوابت (litteral constants).
* '''[[برمجة:سي ++/الدرس الثالث|الدرس الثالث]]
** القراءة من المستخدم، تابع العمليات الرياضية و الاشارات في اللغة
* '''[[برمجة:سي ++/الدرس الرابع|الدرس الرابع]]
** السير المنطقي للبرنامج، الأوامر الشرطية، الاشارات الشرطية، و منطقها
* '''[[برمجة:سي ++/الدرس الخامس|الدرس الخامس]]
** تمارين، حل مشكلات بسيطة، أمثلة للتفكير البرمجي، التركيز على عقلية التحليل .. الخ.
* '''[[برمجة:سي ++/الدرس السادس|الدرس السادس]]'''
** الدوال (functions)، تقسيم البرنامج إلى برامج جزئية (حسب المهام)، إرسال الإعدادات (parameters) الخ.
* '''[[برمجة:سي ++/الدرس السابع|الدرس السابع]]'''
** تابع الدوال (functions)، مفهوم الـ expression و الـ return value، استخدام الدوال (functions) كعمليات حسابية، نطاق المتغيرات scope الخ.
* '''[[برمجة:سي ++/الدرس الثامن|الدرس الثامن]]'''
** استخدام الدوال (functions) لتحسين بنية و تركيب البرامج، تحسين برامجنا السابقة.
* '''[[برمجة:سي ++/الدرس التاسع|الدرس التاسع]]'''
** تطبيقات و تمارين، مزيد من المشاكل و حلولها
* '''[[برمجة:سي ++/الدرس العاشر|الدرس العاشر]]'''
** المصفوفات (arrays)، مفهوم الـ initialization بشكل عام، و تطبيقه على المصفوفات و بيان حالاته الاستثنائية.
* '''[[برمجة:سي ++/الدرس الحادي عشر|الدرس الحادي عشر]]'''
** مفاهيم عامة عن الذاكرة، طبيعة المصفوفات في الذاكرة، مقدمة عن المؤشرات.
* '''[[برمجة:سي ++/الدرس الثاني عشر|الدرس الثاني عشر]]'''
** استخدام المصفوفات في البرامج، التفكير في استخدامها، فوائدها، تطبيقات، الخ.
* '''[[برمجة:سي ++/الدرس الثالث عشر|الدرس الثالث عشر]]'''
** مقدمة عن المؤشرات: مفهوم الـ statically allocated و الـ dynamically allocated بالنسبة للمتغيرات، الكومبايلر و أسماء المتغيرات و عناوينها في الذاكرة، استخدام المؤشرات للوصول إلى المتغيرات اللتي تم حجزها ديناميكيا.
* '''[[برمجة:سي ++/الدرس الرابع عشر|الدرس الرابع عشر]]'''
** تطبيق على المؤشرات: إرسال عناوين المتغيرات إلى الدوال (functions)، مع تركيز على شرح الستاك و توضيح عدم جواز إرجاع مؤشر لمتغير داخلي في فنكشن، مع مقدمة عن الرفرنس في السي بلص بلص.
* '''[[برمجة:سي ++/الدرس الخامس عشر|الدرس الخامس عشر]]'''
** الـ struct، تجميع معلومات متعلقة ببعضها، تمثيل حالة كائنات حقيقية، الخ.
* '''[[برمجة:سي ++/الدرس السادس عشر|الدرس السادس عشر]]'''
** تطبيقات عملية على الـ struct
* '''[[برمجة:سي ++/الدرس السابع عشر|الدرس السابع عشر]]'''
** استخدام الـ struct و المؤشرات لعمل linked list. نقاط القوة الضعف في الـ linked list و متى يمكن استخدامها، مع تطبيق بسيط.
* '''[[برمجة:سي ++/الدرس الثامن عشر|الدرس الثامن عشر]]'''
** الأقسام (class)، توضيح عام من ناحية لغوية، الـ syntax الخاص بالأقسام الخ.
* '''[[برمجة:سي ++/الدرس التاسع عشر|الدرس التاسع عشر]]'''
** البرمجة الشيئية / الكانئية، الكائنات objects، مفاهيم متعمقة .. تحليل المشكلة إلى أشياء وكائنات، الخصائص والتصرفات، attrbutes and behaviour .. الخ.
* '''[[برمجة:سي ++/الدرس العشرون|الدرس العشرون]]'''
** تابع مفاهيم متعمقة عن البرمحة الشيئية.. تصميم الحلول باستخدام الكائنات، ذكر بسيط لقضايا الـ cohesion and coupling، مع تطبيقات عملية، و لو بسيطة.
* '''[[برمجة:سي ++/الدرس الحادي و العشرون|الدرس الحادي و العشرون]]'''
** مناقشة مواضيع الـ cohesion، coupling،1235 association: التفكير جيدا في تصميم الفئات بشكل جيد ومتماسك، فصل المهام الزائدة عن الـ class إلى فئات classes أخرى، الربط بين الكائنات، تقليل التداخل coupling.
* '''[[برمجة:سي ++/الدرس الثاني و العشرون|الدرس الثاني و العشرون]]'''
** الوراثة (inheritance)، مع تطبيقات.
* '''[[برمجة:سي ++/الدرس الثالث و العشرون|الدرس الثالث و العشرون]]'''
** الـ (polymorphism).
* '''[[برمجة:سي ++/الدرس الرابع و العشرون|الدرس الرابع و العشرون]]'''
** تطبيقات عملية تستخدم المفاهيم اللتي تمت مناقشتها، مع التقديم لبعض الـ (design patterns)، كالـ (singleton) مثلا.
{{تصنيف كومنز|C++}}
[[تصنيف:معلوماتية]]
[[تصنيف:سي ++]]
[[de:C++-Programmierung]]
[[en:C++]]
[[es:Programación en C++]]
[[fr:Programmation C++]]
[[it:Dal C al C++]]
[[ja:More C++ Idioms]]
[[pl:C++]]
[[pt:Programar em C++]]
[[ru:Си++]]
|