The Puni$her
02-01-07, 03:35 PM
هلو شباب و بنات
شلونكم ؟
اليوم جايبلكم و مسويلكم شرح حلو عن ال C++ اتمنى يعجبكم و تستفادون من عندة
يلة نبدي
لاحظت انه الكثيرين من الاعضاء ميعرفون الفرق بين المترجم Compiler وبين بيئة التطوير المدمجة integrated Development environment واختصارا IDE، و لكيت عدهم الكثير من المفاهيم الغير صحيحة في ملفات الرأس Header File التي تنتهي بالامتداد (.h) ، لهذا السبب سويتلكم هذا الشرح!
نبدأ أولا بشرح الـ IDE بيئة التطوير المدمجة (أو المتكاملة) ، وسميت بذلك لأنه تم دمج المترجم Compiler وبرنامج الدمج Linker ، ومحرر النصوص Editor ،،
مثال على الـ IDE مثل Turbo c++ أيضا Borland c++ أيضا Microsoft Visual c++ 6.0 أيضا Dev – C++ (البيئة المفضلة لدي ) ، أيضا في نظام لينوكس Linux هناك Kdevelop والكثير الكثير من الـ IDE المتوفرة ،، بالطبع هناك فروق بين كل بيئة مع بيئة أخرى ،
قديما ، قبل وجود هذه الـ IDE ، كان على المبرمج أن يكتب الـ Code في أي ملف مثلا ببرنامج Notepad ويضع الامتداد .cpp (لبرامج c++) أو الامتداد .c (لبرامج الC) . ثم بعد ذلك يقوم بفتح المترجم ويقوم بترجمة البرنامج (أي يقوم بتحويله إلى لغة الاله Machine Language) وينتج عنها ملف الهدف Object File بالامتداد .obj ، بعدها يقوم بفتح برنامج الدمج (أو الربط) ليربط ملف الهدف الناتج بالمكتبات Library ، بعدها تقوم بتنفيذ البرنامج على حده
حاليا بيئات التطوير وفرت عليك كل شيء من مترجم وبرنامج الربط ومحرر للنصوص ،، لذلك تعتبر هذه البيئات من الرفاهيات ، فهي تخفي عن المبرمج كل هذه الخطوات بمجرد الضغط على Build ، أيضا محررات النصوص تقوم بتلوين الكلمات المحجوزة والسلاسل النصية بألوان مختلفة ، قمة الرفاهية ...
رغم أن الـ IDE سهل على المبرمج وجعل عملية الترجمة والدمج تصبح مجرد اختيار كلمه من قائمه إلا أن التسهيل تسبب في عملية الخلط وجعل المبرمج لا يعرف ما الذي يحدث في الخفاء
ألان ، ماهي ملفات الرأس Header File وماذا تحتوي ؟؟ ما هي المكتبات Library ؟؟
ملفات الرأس مثل iostream.h ، أو math.h ، هي ملفات تحتوي بداخلها على الإعلان عن الدوال والطبقات المستخدمة ،، لاحظ فقط الإعلان declaration ويسمى أحيانا Prototype .
التعريف عن هذه الدوال يكون داخل ملفات المكتبات Library (وأحيانا ملفات DLL) . وعندما نترجم البرنامج ويبدأ برنامج الدمج بالعمل يقوم بالربط بين ملف الهدف مع هذه المكتبات.
دائما ما نلاحظ أن أول سطر في برنامج C++ يبدأ بهذا السطر ؟
#include <iostream.h>
ماذا تعني هذه الجملة .. في البداية الرمز # (هاش Hash) هو احد توجيهات المعالج التمهيدي Preprocessor Directive.. هناك الكثير من هذه الجمل في لغة الـ C ، وأيضا تستخدم في C++ لكن قل استخدمها عما كان . نعود إلى الرمز # ، هناك جزء صغير من المترجم يسمى "المعالج التمهيدي Preprocessor " هذا الجزء يعمل دائما عندما نبدأ في ترجمه البرنامج ، أي يعمل أولا ثم يبدأ المترجم في عمله ، وظيفته هي ترجمه التوجيهات (أي جمله تبدأ ب#) إلى احد الأوامر الخاصة ، بعد أن يقوم بتحويلها يقوم المترجم بأداء عمله ..
الكلمة include ، معناها تضمين ، "أي قم أيها المعالج التمهيدي بتضمين ملف الرأس هذا إلى الـ Code Source" ، ماذا يعني هذا ؟؟ بكل بساطه يقوم المعالج بنسخ Copy ملف الرأس ولصقه Paste في بداية ال Source Code .
<iostream.h> ، هذا هو ملف الرأس بالامتداد .h ، القوسين الصغيرين < > وظيفتها إعلام المعالج بأن هذا الملف يقع في المكان المعتاد له .. وفي الأغلب هو في البارتيشن C داخل مجلد بيئة التطوير (يختلف اسم المجلد من بيئة لأخرى ، لكن في الأغلب يكون هو نفسه اسم البيئة) هناك مجلد اسمه Header File يحتوي على جميع ملفات الرأس .
أيضا من الممكن كتابة السطر الأول بالشكل
#include "iostream.h"
القوسين " " ، وظيفتهما إعلان المعالج بأن يبحث عن هذا الملف داخل مجلد الذي حفظ فيه الSource Code ، وإذا لم يجده يقوم بالانتقال إلى المجلد المعتاد .
مثلا كتبت برنامج وملف رأس خاص بك وحفظته داخل البارتيشن D ، يقوم المعالج بالبحث عن ملف الرأس داخل هذا المجلد فإذا لم يجده انتقل إلى المجلد المعتاد داخل الـC . هذه الطريقة قد تزيد من وقت ترجمه البرنامج (لان هناك عمليه بحث ) ، لكنه ليس بالوقت الكثير .
سنكتفي بهذا ، والمرة القادمة سوف تنتاول بيئات التطوير والفرق بينهم ، وما هي مقاييس لغة C و C++ ، وكيف نكتب برنامج قياسي 100% . وما الفائدة من القياسية Standards
لهنا أنتهى الموضوع
اتمنى عجبكم الشرح
Writen By The Puni$her
2\1\2007
[Link nur für registrierte Benutzer sichtbar] ([Link nur für registrierte Benutzer sichtbar])
شلونكم ؟
اليوم جايبلكم و مسويلكم شرح حلو عن ال C++ اتمنى يعجبكم و تستفادون من عندة
يلة نبدي
لاحظت انه الكثيرين من الاعضاء ميعرفون الفرق بين المترجم Compiler وبين بيئة التطوير المدمجة integrated Development environment واختصارا IDE، و لكيت عدهم الكثير من المفاهيم الغير صحيحة في ملفات الرأس Header File التي تنتهي بالامتداد (.h) ، لهذا السبب سويتلكم هذا الشرح!
نبدأ أولا بشرح الـ IDE بيئة التطوير المدمجة (أو المتكاملة) ، وسميت بذلك لأنه تم دمج المترجم Compiler وبرنامج الدمج Linker ، ومحرر النصوص Editor ،،
مثال على الـ IDE مثل Turbo c++ أيضا Borland c++ أيضا Microsoft Visual c++ 6.0 أيضا Dev – C++ (البيئة المفضلة لدي ) ، أيضا في نظام لينوكس Linux هناك Kdevelop والكثير الكثير من الـ IDE المتوفرة ،، بالطبع هناك فروق بين كل بيئة مع بيئة أخرى ،
قديما ، قبل وجود هذه الـ IDE ، كان على المبرمج أن يكتب الـ Code في أي ملف مثلا ببرنامج Notepad ويضع الامتداد .cpp (لبرامج c++) أو الامتداد .c (لبرامج الC) . ثم بعد ذلك يقوم بفتح المترجم ويقوم بترجمة البرنامج (أي يقوم بتحويله إلى لغة الاله Machine Language) وينتج عنها ملف الهدف Object File بالامتداد .obj ، بعدها يقوم بفتح برنامج الدمج (أو الربط) ليربط ملف الهدف الناتج بالمكتبات Library ، بعدها تقوم بتنفيذ البرنامج على حده
حاليا بيئات التطوير وفرت عليك كل شيء من مترجم وبرنامج الربط ومحرر للنصوص ،، لذلك تعتبر هذه البيئات من الرفاهيات ، فهي تخفي عن المبرمج كل هذه الخطوات بمجرد الضغط على Build ، أيضا محررات النصوص تقوم بتلوين الكلمات المحجوزة والسلاسل النصية بألوان مختلفة ، قمة الرفاهية ...
رغم أن الـ IDE سهل على المبرمج وجعل عملية الترجمة والدمج تصبح مجرد اختيار كلمه من قائمه إلا أن التسهيل تسبب في عملية الخلط وجعل المبرمج لا يعرف ما الذي يحدث في الخفاء
ألان ، ماهي ملفات الرأس Header File وماذا تحتوي ؟؟ ما هي المكتبات Library ؟؟
ملفات الرأس مثل iostream.h ، أو math.h ، هي ملفات تحتوي بداخلها على الإعلان عن الدوال والطبقات المستخدمة ،، لاحظ فقط الإعلان declaration ويسمى أحيانا Prototype .
التعريف عن هذه الدوال يكون داخل ملفات المكتبات Library (وأحيانا ملفات DLL) . وعندما نترجم البرنامج ويبدأ برنامج الدمج بالعمل يقوم بالربط بين ملف الهدف مع هذه المكتبات.
دائما ما نلاحظ أن أول سطر في برنامج C++ يبدأ بهذا السطر ؟
#include <iostream.h>
ماذا تعني هذه الجملة .. في البداية الرمز # (هاش Hash) هو احد توجيهات المعالج التمهيدي Preprocessor Directive.. هناك الكثير من هذه الجمل في لغة الـ C ، وأيضا تستخدم في C++ لكن قل استخدمها عما كان . نعود إلى الرمز # ، هناك جزء صغير من المترجم يسمى "المعالج التمهيدي Preprocessor " هذا الجزء يعمل دائما عندما نبدأ في ترجمه البرنامج ، أي يعمل أولا ثم يبدأ المترجم في عمله ، وظيفته هي ترجمه التوجيهات (أي جمله تبدأ ب#) إلى احد الأوامر الخاصة ، بعد أن يقوم بتحويلها يقوم المترجم بأداء عمله ..
الكلمة include ، معناها تضمين ، "أي قم أيها المعالج التمهيدي بتضمين ملف الرأس هذا إلى الـ Code Source" ، ماذا يعني هذا ؟؟ بكل بساطه يقوم المعالج بنسخ Copy ملف الرأس ولصقه Paste في بداية ال Source Code .
<iostream.h> ، هذا هو ملف الرأس بالامتداد .h ، القوسين الصغيرين < > وظيفتها إعلام المعالج بأن هذا الملف يقع في المكان المعتاد له .. وفي الأغلب هو في البارتيشن C داخل مجلد بيئة التطوير (يختلف اسم المجلد من بيئة لأخرى ، لكن في الأغلب يكون هو نفسه اسم البيئة) هناك مجلد اسمه Header File يحتوي على جميع ملفات الرأس .
أيضا من الممكن كتابة السطر الأول بالشكل
#include "iostream.h"
القوسين " " ، وظيفتهما إعلان المعالج بأن يبحث عن هذا الملف داخل مجلد الذي حفظ فيه الSource Code ، وإذا لم يجده يقوم بالانتقال إلى المجلد المعتاد .
مثلا كتبت برنامج وملف رأس خاص بك وحفظته داخل البارتيشن D ، يقوم المعالج بالبحث عن ملف الرأس داخل هذا المجلد فإذا لم يجده انتقل إلى المجلد المعتاد داخل الـC . هذه الطريقة قد تزيد من وقت ترجمه البرنامج (لان هناك عمليه بحث ) ، لكنه ليس بالوقت الكثير .
سنكتفي بهذا ، والمرة القادمة سوف تنتاول بيئات التطوير والفرق بينهم ، وما هي مقاييس لغة C و C++ ، وكيف نكتب برنامج قياسي 100% . وما الفائدة من القياسية Standards
لهنا أنتهى الموضوع
اتمنى عجبكم الشرح
Writen By The Puni$her
2\1\2007
[Link nur für registrierte Benutzer sichtbar] ([Link nur für registrierte Benutzer sichtbar])