السلام عليكم ...
ملاحظة / أرجو عدم الرد لحين وضع الدرس كاملاً لأنه طويل .
هذا الموضوع عبارة عن مشروع تعليمي يتضمن ما يلي :
1 – تعليم أساسيات لغة ++C ضمن مواضيع الفهرس الموجود .
2 – مشروع إنشاء كتاب إلكتروني و هو ملخص عن الدروس المعطاة ليكون مرجع للمتعلمين .
3 – إنشاء مشروع تخرج للذين تعلموا هذه اللغة ( فقط من قام بالتسجيل ) .
المشتركين في الدورة هم الأعضاء :
1- son of Qatar .
2 - habash1986 .
3 - Son Of UAE .
4 - SONIC4ANIME .
5 - asf4ever .
6 - ^عبدالعزيز..ع^ .
7 - kokekemo .
8 - UAE Naruto .
9 - عنان 2005 .
10- ستو كايبا .
11 - Imaj .
12 - banan 86 .
و العدد قابل للزيادة .
مزايا التسجيل :
1 – باستطاعتك أن تسألني أي سؤال حول الدروس أو إن كنت تريدني أن أشرح لك بعض الفقرات بأسلوب مختلف أو لكي أحل لك بعض المسائل .. أما غير المسجلين فلن أجيب عن أسئلتهم ( فاعذروني ) و لكن أرحب بآرائهم و بردودهم .
2 – ستـطالب بحـل بعض التمارين ( و ليس كلها بما تستطيعه ) و تقديمها في هذا الموضوع بعد كل درس .
3 – ستقوم بعمل مشروع تخرج بعد انتهاء الدروس ( أريد واحد فقط على الأقل من بين الجميع أن يعمله ) .. و سأمنحك شهادة خاصة باسم المنتدى ( سنتحدث عن ذلك لاحقاً ) .
4 – سأقوم مع المسجلين بعمل كتاب إلكتروني و مناقشته .. و سأقـوم أنا بكتابته و سـيكون بإسمهم جميعاً و باسم المنتدى .
و من أجل من فاته التسجيل في الموضوع السابق الذي كان مقدمة لهذه الدورة و يريد معرفة التفاصيل فليدخل إلى هذا الموضوع و ليسجل فيه :
ملاحظة / لا تقم بتسجيل قائمتك في هذا الموضوع لأننا خصصنا الموضوع السابق لذلك .. و اعلم أن القائمة ستتجدد مع كل تسجيل جديد .
:: فهرس المواضيع ::
1_ بنية اللغة ( مكونات اللغة ) :
- المتحولات .
- الأنواع .
- العمليات .
إلخ ...
2_ تعليمات التحكم :
- الشرط .
- التكرار .
3_ البرامج الجزئية ( التوابع ) .
4_ المصفوفات ( Arrays ) .
5_ البنى ( Struct ) .
6_ المؤشرات ( Pointers ) .
7_ البرمجة غرضية التوجه :
- مقدمة .
- الصفوف ( Classes ) .
- توابع الهدم و البناء .
- الوراثة ( Inheritance ) .
- التحميل الزائد .
- التوابع الصديقة .
:: قبل البدأ ::
----------------------------------------
:: ملاحظات هامة ::
1 – إذا كنت تريد حل أي مسألة ( برنامج ) فعليك أولاً بالتفكير المنطقي لتسلسل عمل البرنامج ( كم متغير نحتاج ، ما هي العمليات و الأوامر المستخدمة ، هل نحتاج إلى الكائنات أم لا ؟ ، ما هي التوابع المطلوب كتابتها ... إلخ ) .. و ستزداد مقدرتك على فهم تلك الأمور كلما حللت مسائل و أمثلة أكثر .
2 – لا تيأس من أول محاولة فشل لحل أي مسألة و حاول تطبيق ما تعلمته و أعد المحاولة و إن لم تعرف فحينها اسألني و إن شاء الله سأجيبك .. فلا أريد أن يسألني أحد و هو لم يحاول إلا مرة واحدة . آمل أن تستجيبوا لهذا الأمر . و كل هذا من أجل مصلحتكم فإن كانت بدايتكم سيئة فلن تتعلموا شيئاً بعد ذلك لأن المواضيع ستتشابك قليلاً .
3 – يجب عليك أن تطبق ( تكتب ) جميع ( أو معظم ) الأمثلة - التي سوف نحلها - عندك على الجهاز و إن لم تفعل ذلك فأنا أؤكد لك أنك لن تفهم شيئاً .. و أنا أقصد بذلك من يكتفي بالقراءة فقط .. فلن تكتسب المهارة التي نريدها إلا بكتابة أكبر عدد ممكن المسائل و البرامج .. و هذا الأمر يؤكده جميع مدرسي البرمجة .. و سيكون لدينا مثال عملي واحد على الأقل في كل درس .
4 – لا تخف من البرمجة و لا توهم نفسك بأنها صعبة فإن لازمك هذا التفكير فلن تتعلمها أبداً - لأنك بعد ذلك لن تفهم حتى أبسط الأمور بها - لأن عقلك قد أغلق عليها تماماً ( على فكرة هذا الأمر يعرفونه من يدرسون علم النفس وهو الحوار مع العقل ) .. فها أنا قد تعلمتها و قد تعلمها كثيرون غيري فبماذا تختلف عنا ؟
5 – إن جميع هذه تطبيقات التي سنكتبها هي عبارة عن تطبيقات وحدة التحكم ( Consol ) و هي شبيهة بتطبيقات الدوس .. و لتجربة الأمثلة عليك كتابة المثال في ملف مصدري Source File ( انظر فقرة الملفات المستخدمة ) و من ثم قم بترجمته و بنائه ( انظر فقرة الإختصارات ) .. حيث أن الأمثلة لن تعمل كتطبيق مستقل و لكن يجب تشغيلها من البرنامج Microsoft Visual C++ 6 أو Borland C++ Builder .. و سنستخدم نحن الأول .. و من أجل التوضيح عن كيفية واجهة الأمثلة فانظر إلى الصورة :
6 – ملاحظة خاصة / أشهد الله تعالى بأني بريء من أي استعمال لهذه اللغة غير شرعي لا يرضي الله قام به أحد المتعلمين أو القارئين لهذا الموضوع .. فأنا لا أعلم ما في أنفسكم .. فلا تأتني يوم القيامة و تقول لله بأني قد أغويتك أو كنت السبب في ذنبك .. و الله يعلم نيتي و هدفي من هذا الموضوع كله و هو على ما أقوله شهيد .. و أتمنى أن لا يتم استخدام هذا العلم في ذلك .. لأنها أداة قد تستخدم في الجانب الإيجابي أو السلبي .
7– أخيراً ... أشكر من قام بتعليمي هذه اللغة و ساهم في دعمي لتعلمها و لن أنسى موقفه معي ما حييت .
:: مصطلحات ::
يجب أن تعرف بعض الأمور قبل أن تبدأ :
1 – Compiler : و هو المترجم الذي يقوم بقراءة برنامجك و يحوله إلى اللغة التي يفهمها و يجب أن تعرف أن هذه العملية تتم سطراً سطراً .. أي أن المترجم إذا وجد خطأ في برنامجك فسيتوقف عند السطر الذي يحتوي هذا الخطأ .. و بإمكانك طبعاً معرفة الخطأ ( في الفقرة التالية ) .
2 – Linker : و هو الذي يقوم بوصل المكتبات أو الملفات .. إلخ ببرنامجك .. فأحياناً سوف تجد أن هناك خطأ في Linker فبذلك تعرف بسهولة أين الخطأ .
:: إختصارات ( أزرار ) ::
هذه بعض الإختصارات التي سنتعامل معها حين كتابة البرامج :
1 – F7 : لكي تقوم بعملية بناء التطبيق ( Build ) و لمعرفة أخطاء برنامجك .. حيث أن الأخطاء ستظهر في نافذة ( Output ) في الأسفل .. error لعدد الأخطاء التي وجدت و warning من أجل التنبيه باحتمال وقوع خطأ في حالة معينة .. فإن لم يجد المترجم أخطاء فستجد برنامجك ضمن مجلد Debug في الملف الذي أنشأت به مشروعك .
2 – F4 : لمعرفة الأخطاء التي ظهرت نتيجة عملية البناء ( Build ) .. و تستطيع الانتقال بين الأخطاء بالضغط أيضاً على F4 .
3 – Ctrl + F5 : لتشغيل التطبيق و تجربته و الوقوف عند آخر سطر بكتابة جملة ( Press Any Key to Continue ) .. و فائدتها أن ترى النتائج و ما ظهر على الشاشة .
4 – F5 : نفس الوظيفة السابقة لكن لن يتم الوقوف في النهاية و سوف يغلق التطبيق بعد الإنتهاء من ترجمته ( تنفيذه ) .
5 – F10 و F11 : من أجل عملية التنقيح و التتبع ( Debug ) .. فعند استخدامهما تستطيع تتبع قراءة برنامجك مع المترجم سطرا سطراً .. و عندها ترى كيفية الدخول إلى التوابع و معرفة قيم المتغيرات خطوة خطوة و لهذه العديد من النوافذ سنأخذ بعضاً منها فيما بعد .. و هذه الطريقة مفيدة جداً لمعرفة مكان الخطأ و متى أخذت المتغيرات قيماً خاطئة .. و ماهي القيم التي أخذتها هذه المتغيرات .
:: الملفات المستخدمة للكتابة ::
سنأخذ نوعين من الملفات و ستسطيع إنشاءهم من File >> New ثم اختر قائمة Files :
1 – Source File : و هي الملفات المصدرية ( الرئيسية ) الخاصة بكتابة برنامجك و سوف نكتب جميع الأوامر هنا ( مبدئياً ) ثم نتعلم كيفية استخدام Header File .
2 – Header File : هي ملفات رأسية لكتابة رؤوس التوابع و الكائنات و غير ذلك و يمكن أن نطلق عليها اسم المكتبات .. فهي تحتوي على أوامر و أجزاء معينة تستدعى من قبل Source File .. ستتوضح الفكرة أكثر عن كيفية إنشاء هذه الملفات مع الأمثلة و لكن مبدئياً عليك معرفة أنها عبارة عن مكتبات جاهزة سواءً أنت أنشأتها أم شركة Microsoft .
:: النوافذ ::
1 – WorkSpace : و هي موجودة على يسار الشاشة .. هذه النافذة تظهر لك قائمتين الأولى File View و الثانية Class View .. الأولى من أجل عرض جميع ملفات برنامجك من ملفات مصدرية ( cpp. ) أو رأسية ( h. ) أو أي ملفات أخرى كالمصادر أو الموارد ( Resource File ) .
أما القائمة الثانية فهي من أجل عرض جميع أجزاء برنامج من توابع .. و كائنات .. و أعضاء هذه الكائنات من توابع و بيانات ( متغيرات ) و غير ذلك .. و باستطاعتك الإنتقال فوراً لمكان التابع أو أي جزء من برنامجك بالضغط عليه فقط .
2 – Output : موجودة في الأسفل .. لمعرفة أخطاء برنامجك ( شرحنا فكرتها ) .
3 – Debug Windows : هذه النوافذ من أجل عملية التنقيح و التتبع .. سنأخذها لاحقاً .
----------------------------------------