BjarneStudent

كتابة برنامج وتنفيذه وشرح بيئة التطوير ومراحل التنفيذ

21 ردود في هذا الموضوع

السلام عليكم ورحمة الله وبركاته

صباحكم خير ان شاء الله

اود التنوية بأن هذه المشاركة تابعة لدورة الـ C++ , ويمكن الإستفادة منها كمشاركة عامة.

كتابة كود صغير وتنفيذه بعد تنصيب البرنامج

كما أشرنا , البرنامج المستخدم في هذه الدورة هو الـ Microsoft visual C++ الإصدار السادس النسخة القياسية.

يمكن تحميله من هنا.

بعد تحميل البرنامج وتنصيبة , سوف تكون ايقونته على الشكل التالي

post-133999-1193114295_thumb.jpg

ولفتح ملف جديد , نذهب للقائمة ملف ومن ثم اختيار جديد كما هو موضح بالصورة التالية

post-133999-1193114337_thumb.jpg

ومن ثم نتابع

post-133999-1193114396_thumb.jpg

1- نختار التبويبة ملف.

2- لكتابة برنامج نختار من التبويبة ملف ملف ككود مصدر للـ C++

3- نختار اسم للبرنامج ( ضع اسم كيف تشاء وبما تقضتيه غايتك )

4- اختيار موقع الملف.

5- الإعتماد النهائي لإنشاء الملف.

بعد ذلك , تفتح صفحة بيضاء , يتم فيها كتابة البرنامج , وتلاحظون الصفحة مقسمة لمنطقتين

منطقة تحرير البرنامج ( الحمراء ) ومنطقة نتائج الترجمة ( الخضراء )

post-133999-1193114410_thumb.jpg

بعدها كتابة البرنامج , سوف تقوم بتصحيحة عن طريقة أداة الترجمة وسوف يظهر لك البرنامج بالشكل التالي

post-133999-1193114429_thumb.jpg

وعندما تظهر لك ايقونة التنفيذ ( على شكل علامة تعجب ) باللون الأحمر , هذا يعني ان البرنامج جاهز للتنفيذ , اضغط على هذه الأيقونة لتنفيذه.

بيئة تطوير الـ C++ النموذجية

لنعتبر الخطوات في إنشاء وتنفيذ تطبيق الـ C++ بإستخدام بيئة التطوير الموضحة في الرسم التالي :

post-133999-1193114442_thumb.gif

نظام الـC++ بشكل عام يتكون من ثلاثة اجزاء : بيئة تطوير البرنامج ... اللغة ... مكتبة الـ C++ القياسية.

برنامج الـ C++ عادة ً يمر بستة مراحل : التحرير ... المعالجة الأولية .. الترجمة .. الربط .. التحميل والتنفيذ .

المرحلة الأولى , انشاء البرنامج :

وتدرج خطوات هذه المرحلة كالتالي : طباعة سطور البرنامج ( يشار إليه بكود المصدر source code ) بإستخدام أي محرر اكود , عادة ما يسمى المحرر بالـ editor. ومن ثم تقوم بتتبع الكود وتقوم بالتصحيحات المطبعية والمنطقية اللازمة , وبعد ذلك تقوم بحفظ الكود بأحد الإمتدادات التالية .cpp , .cxx , .cc , .C ( لاحظ أن حرف السي كبير ). وهذه الإمتدادات تعني أن الكود مكتوب بلغة الـ C أو الـ C++ .

المحرر المعتمد في هذه الدورة هو المحرر نفسه الذي يأتي مع الـ Microsoft visual C++ 6 , وهو ملحق ببيئة البرنامج , وأنت تستطيع ايضا استخدام محرر نصوص بسيط مثل المفكرة notepad الذي يأتي مع الويندوز لتكتب كود المصدر.

وبإفتراض أنك تعلم طريقة تحرير البرنامج ( طباعة الحروف من لوحة المفاتيح ) نكمل باقي المراحل.

الخطوات , الثانية والثالثة , المعالجة الأولية والترجمة preprocessing and compiling :

في المرحلة الثانية , المبرمج يقوم بإعطاء الأمر للترجمة, برنامج المعالج الأولي ينفذ الأوامر وهي ما تسمى بموجهات المعالج الأولي وهي ما تشير إلى القيام بعمليات معينة قبل عملية الترجمة. هذه العمليات عادة ً ما تكون الحاق ملفات نصية للبرنامج لي تتم ترجمته وأيضا اجراء بعض التبادلات النصية المتنوعة. اكثر موجهات المعالج الأولي شيوعا تمت الإشارة لها في الفصول الأولى بعد هذا الفصل. والشرح المفصل عن مكونات المعالج الأولي تكون مشروحة بشكل مفصل في الملحق F .

في المرحلة الثالثة , يقوم المترجم compiler بترجمة البرنامج إلى لغة الآلة وينتج لدينا كود الكائن ( object code ).

عملية الترجمه , هي عملية اكتشاف الأخطاء النصية والمنطقية في البرنامج , قبل هذه العملية , يقوم المعالج الأولي بعمليات أوليه قبل الترجمة , وهي بعض الأوامر تسمى ( موجهات المعالج الأولي preprocessor directives ). هذه العمليات عادة ً ما تكون الحاق ملفات نصية بالبرنامج واجراء بعض التبادلات النصية المتنوعة لكي تتم ترجمة البرنامج.

اكثر الموجهات شيوعا سوف يتم ذكرها في المحاضرات الأولى من هذه الدورة. والمزيد عنها تجدونه في الملحق F .

في المرحلة الثالثة يقوم المترجم الـ compiler بترجمة البرنامج إلى لغة الآله لينتج لنا الكود الموجه للآله object code.

المرحلة الرابعة , الربط ( linking ) :

من الصعب في الـ C++ كتابة كل شي اثناء البرنامج , فمن نعم الله علينا في الـ C++ أن يكون هناك اشياء جاهزة للإستخدام نضع عناوينها فقط في البرنامج لأجل استثمار الكثييييييير من الوقت. كثير من الدوال والبيانات يتم تعريفها في أماكن اخرى خارج البرنامج , كالمكتبة القياسية مثلا , وأيضا كمتبات لمشاريع خاصة , تم تتدوينها عن طريق مجموعة مبرمجين لغرض انجاز مشروع برمجي ما.أيضا , هناك اشياء اخرى في كائن الكود ناتجة عن اجزاء ناقصة, يتم ربطها وسد الثغرات.

كل هذا يقوم به الرابط linker , بعدها تنتج لدينا نسخة من البرنامج قابلة للتنفيذ , تسمى executable image .

المرحلة الخامسة , التحميل , loading :

قبل تنفيذ البرنامج يجب تحميله للذاكرة ورفعه للذاكرة المؤقته, وهذا يتم عن طريق الـ loader الذي يقوم بأخذ الـ executable image من القرص ووضعها على الذاكرة, الأجزاء الإضافية من المكتبات المشترك هالذي يدعم البرنامج سوف تتحمل ايضا.

يقوم الـ loader بحمل الـ executable image ووضعها على الذاكرة , ويلحق بها بعض الأجزاء الإضافية من المكتبات المشتركة التي تدعم البرنامج وذلك من أجل الجهيز لعملية التنفيذ.

المرحلة السادسة , التنفيذ , executing :

أخر خطوة , يأتي دور الـ cpu , حيث يقوم بتفيذ الكود , حيث يقوم تنفيذ تعليمة واحدة في كل مرة.

مشاكل ربما تحدث عند عملية التنفيذ:

ربما يكون هناك اخطاء تمنع تنفيذ البرنامج سوف يتم شرحها خلال هذه الدورة. على سبيل المثال , عند عملية القسمة على الصفر سوف يعترض عليها المترجم وذلك لانها عملية ليس لها ناتج معروف لديه, فهذه القيمة خيالية وغير معرفه., بالتالي سوف يتم عرض رسالة خطأ على الشاشة وعندها سوف نحتاج إلى الرجوع للبرنامج وتصحيح الكود.

خطأ برمجي شائع :

الخطأ عن طريق القسمة على الصفر يحدث عند تنفيذ البرنامج.يصنف هذا الخط من ا " اخطاء وقت التشغيل rumtime errors أو " اخطاء وقت التنفيذ " execution-time errors . اخطاء وقت التشغيل الفادحة fatal runtime errors تنهي البرنامج مباشرة , أخطاء وقت التشغيل الغير فادحة unfatal runtime errors تسمح للبرنامج أن يكمل التنفيذ ولكن تظهر نتائج غير صحيحة. ] ملاحظة : بعض انظمة التشغيل تعتبر أن القسمة على الصفر ليست خطأ فادح .[

برنامج صغير جاهز للتشغيل والتعود على محادثة التطبيق.

في المرفق برنامج صغير للتعرف على شاشة تنفيذ البرنامج , وهي الشاشة السوداء ( console ), وذلك للتعود على شاشة المحادثة بين المستخدم والبرنامج.

حاول التعرف عليه بنفسك.

يمكن التحكم بتنسيق الشاشة عن طريق خصائص عرض الشاشة , وذلك عن طريق الضغط بالزر الأيمن على شريط العنوان ومن ثم اخيتار خصائص properties.

GuessNumber.zip

تم تعديل بواسطه BjarneStudent
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك شرح ممتاز ومجهود مبارك ان شاءالله.

ننتظر المزيد..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخوي العزيز بارك الله فيك .......

بخصوص برنامج viusal c++6 فأنا ما استخدمه واستخدم بدلا منه visual c++.net وعندي DVC++ .

على العموم كل فيه الخير...ومعاك متابعين والله يوفقك

عندي مداخلة بسيطة.. ياليت بعد ما نتعمق في الدروس أن شاء الله تركز لنا على دروس console application لأنها بنظري أهم من windows application...تخلي الواحد يعرف كيف يبرمج ويعتمد على نفسه أكثر.

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
بارك الله فيك شرح ممتاز ومجهود مبارك ان شاءالله.

ننتظر المزيد..

جزاك الله خير

أخوي العزيز بارك الله فيك .......

بخصوص برنامج viusal c++6 فأنا ما استخدمه واستخدم بدلا منه visual c++.net وعندي DVC++ .

وشكرا

لا يوجد مشكلة , استخدم ما يناسبك , لا يوجد اختلاف.

عندي مداخلة بسيطة.. ياليت بعد ما نتعمق في الدروس أن شاء الله تركز لنا على دروس console application لأنها بنظري أهم من windows application...تخلي الواحد يعرف كيف يبرمج ويعتمد على نفسه أكثر.

وهذا ماسوف يحدث ان شاء الله

وشكرا

العفو , تقديري لإهتمامك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الف شكر على مجهودك المتميز

بانتظار جديد ابداعك

تقبل مروري :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
الف شكر على مجهودك المتميز

بانتظار جديد ابداعك

تقبل مروري :)

العفو

مقدر لك حسن التعقيب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أنا قمت بتنزيل البرنامج لكن لم تظهر عندي المنطقة الثانية(منطقة نتائج الترجمة)

وهي الصورة

post-129452-1193772764_thumb.jpg

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
أنا قمت بتنزيل البرنامج لكن لم تظهر عندي المنطقة الثانية(منطقة نتائج الترجمة)

وهي الصورة

أخي اسامة , هذه المنطقة تظهر بعد كتابة البرنامج وترجمتة ( تصحيحة ) , يمكنك مراجعة الشرح بالأعلى مرة اخرى

كل التقدير لإهتمامك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكور يا غالى على الشرح ولكن انا املك

c++ 2008 bate 2 فهل يفى بالغرض

وانا املك ايضا c++ 2005 و c++ 6

فانصحنى هل ابدء بالى اريده ام اختار c++6 ؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انتظر منك الرد يا غالى حتى استطيع ان ابدء ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اسمحلي بالرد بدلاً من مشرفنا العزيز ,,

يمكنك استخدام أي مترجم تحب استخدامه, لأن لغة ++C لها مواصفات و جميع المترجمات تتبع هذه المواصفات, و ليس العكس, أي كود "نظرياً" يمكن ترجمته بأي مترجم للغة ,,

تحياتي ,,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الف الف الف شكر يا غالى على هذا الرد السريع

يعنى اقدر ابرمج بهذه الاكواد دون اختلاف على 2005 لانه هو الى منزله الحين على الجهاز وجاهز للعمل ؟

اكتب فقط الكود وهو يترجم عادى ؟ ولا سيكون هناك اخطاء ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لن يكون هناك أخطاء بإذن الله,

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكور يا غالى على الرد وجارى التطبيق :):)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

رابط تحميل البرنامج لا يفتح معي ؟! ما العمل ؟!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
رابط تحميل البرنامج لا يفتح معي ؟! ما العمل ؟!

الرابط يعمل معي , اذا لم تستطع تنزيلة سوف ارفعه لك على مساحة اخرى.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا جزيلا لك

انا من المنضمين مؤخرا

لدي استفسار

إذا شغلت الملف بعد عمل build يشتغل ويطبع الرسالة ويغلق بسرعة . كيف أجعل الشاشة السوداء لا تختفي .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
Run

نعم انا اعمل له run لكنه يختفي بسرعة .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أكتب في نهاية البرنامج قبل الريتيرن

getchar();

او اضغط كنترول مع اف خمسة

ctrl + F5

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .