منتديات افترافيكت
مدخل الى C++ 613623

عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا مدخل الى C++ 829894
ادارة المنتدي مدخل الى C++ 103798
منتديات افترافيكت
مدخل الى C++ 613623

عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا مدخل الى C++ 829894
ادارة المنتدي مدخل الى C++ 103798
منتديات افترافيكت
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.



 
الرئيسيةأحدث الصورالتسجيلدخولتسجيل دخول الاعضاء
مدخل الى C++ B7b7fr10
مدخل الى C++ B7b711
مدخل الى C++ Pye75711
مدخل الى C++ Aswq10
مدخل الى C++ Games10
مدخل الى C++ Banr410
مدخل الى C++ 93910310
مدخل الى C++ Ouoouu10

 

 مدخل الى C++

اذهب الى الأسفل 
كاتب الموضوعرسالة
amralizxz
المدير العام
المدير العام
amralizxz


رقم العضوية : 1
الدولة : اليمن
الدولة : مدخل الى C++ Sy10
مدخل الى C++ Biko310
sms sms : مرحبا بالاعضاء والزوار الكرام

الجنس الجنس : ذكر عدد المساهمات : 548
نقاط : 2788
تاريخ التسجيل : 22/09/2009
العمر : 33

مدخل الى C++ Empty
مُساهمةموضوع: مدخل الى C++   مدخل الى C++ Emptyالثلاثاء يناير 05, 2010 1:27 am

بسم الله الرحمن الرحيم



مدخل الى C++


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

لغة السي بلس بلس هي مجرد لغة محليه , مثلها كمثل جميع اللغات التي يتحدث بها بين الناس والفرق هنا ان هذه اللغة ليست مختلفة لان المتحدث بها انجليزي ولا يفهمها العربي ولا فرنسية ولايفهمها الصيني ..
لا فهذه اللغة يتحدث بها العالم اجمع لافرق بين عربي وفارسي ورومي خلال تحدثهم بها .
ولكن الفرق الحاصل هو بسبب وجود الانواع المختلفة من الكومبايلارت اذ ان الكومبايرات تختلف فيها الاوامر حسب اختلاف تعابيرها وكتابها .

فمثلا نجد ان لدينا عدة انواع من الكومبايلرات منها : Borland C++, Microsoft C++, GNU C++ ....الخ , ولكن اشهرها هو كومبايلر GNU C++ الذي يتوافق معه كومبايلر Dev-C++ الذي سنعتمده . وستكتشف لاحقا ان الكومبايلارات هي من اغلى البرامج الموجودة على النت ولكن لحسن حضنا فأن البكومبيلر الذي نتعامل معه مجاني ومعتمد للعمل في لغة C++ ويتمتع بدوره بشعبية كبيرة بين المبرمجين .


وعمل الكومبايلر كما ذكرت سابقا هو اخذ تعاريف الاوامر من الملفات الرأسية (header files ) ودمجها بالاوامر في البرنامج وذلك باستخدام امر التوجيه #include واللذي يعني بالعربية " ضمّن .
فعندما نكتب في البرنامج هذا الامر


CODE:
0001
#include <iostream>



فاننا نقصد به توجيه الكومبايلر الى ملف isoteam لاستخلاص التعاريف منه . وقد سمي ملف iosteam بالملف الرأسي وذلك لانه يكتب في راس البرنامج وامتداده هو .h وهي اختصارا لكلمة head
ولكن بالطبع فأن هناك مشكلة ستواجهنا او بالاصح ليست مشكلة اكثر منها مجرد لغو وتعقيد فتخيل اذا كنت تملك ملف رأسي طويل جدا يتضمن اشكالا والوانا من التعاريف والتوجيهات ! سيتعبك الكومبايلر كثيرا اثناء بحثه عن المطلوب في المف الرأسي وسيأخذ معك وقتا ليس بيسير في هذه العملية .
لذلك وجب الى ان تكون هذاه الملفات الرأسية مكتوبة باسلوب سلس يسهل على الكومبايلر ايجاد المطلوب فيها بسرعة .
وقد قام المبرمجون الاوائل بفعل ذلك عن طريق تقسيم الملف الرأسي الى مجموعت او مكتبات بالاصح بداخل الملف .
فمثلا مجموعة الاوامر الخاصة بالكتابة والقرائة تندرج تحت مكتبة (standard library ) او المكتبة الرئيسية ويطلق عليها اختصارا (std ) لذلك فعندما نكتب الامر السابق فان مشكلتنا هي اننا يجب ان نكتب الامر دائما ونعرف الكومبايلر اين سيجد المطلوب من الملف بصورة متكررة وطويله .
الا ان اللغة الحديثة وفرت علينا ذلك الامر وذلك عن طريق ادراج الامر


CODE:
0001
using namespace std;



بعد الامر السابق ليصبح البرنامج يتعرف تلقائيا على مكان المجموعة في الملفات .
لاحظ اننا اضفنا علامة الفاصلة المنقوطة في نهاية سطر التوجيه السابق ( ; ) وهنا يجب ان تعرف ان جميع الاوامر في السي بلس بلس يجب ان تنتهي بالفاصلة المنقوط وذلك حتى يتعرف البرنامج على نهاية الامر حتى لايقوم باعتبار كل الكلام الذي يلي الامر تابعا له فيتلف البرنامج .

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

اولا احب ان اذكر ان اهم جملة في لغة البرمجة سي بلس بلس هي جملة int main().
ولايمكننا كتابة اي برنامج بدونها ولنتحدث عنها بالتفصيل دعنا ننظر الى الكود التالي ونحلله :


CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010

#include <iostream>

using namespace std;

int main()
{
cout<<\"Hello World!\n\";
cin.get();
}



لابد من انك قد فهمت ماذا يجري في بداية هذا الكود ففي السطر الاول اخبرنا الكومبايلر بانه يجب عليه ان يضمن ملف iosteam للبرنامج وفي السطر الثاني اخبرناه بان يبحث تلقائيا في مجموعة std عن الاوامر .
ولكن ماذا تعني int main() التي ذكرنا انها الاكثر اهمية ؟
تعني هذي الجملة بالتفسير العربي " انتبه ياكومبايلر فهناك دالة اسمها main نريدها ان تعمل "
لاحظ القرب في النطق بين int و انتبه Smile
ومعنى القوسين ان هذه الدالة متكررة تامة .
وسنجد بعد القوسين قوسا مجاميع {} وهما الاهم الذان سنكتب بينهما الاوامر وستلاحظ ان كل قوس كتب في سطر وذلك ليس شرطا ولكنه كتب كذلك لتصبح كتابة الكود مرتبة وتعرف اين رأسك من رجليك .
واذا كنت قد سبق وتعلمت لغة البرمجة الباسكال فانك ستعرف الاقواس السابقة باسم ابدأ وانتهى . وكذالك سنسميها نحن في لغة السي بلس بلس للتسهيل .
ستلاحظ اننا كتبنا الاوامر بين قوسي ابدا وانتهى كالتالي :


CODE:
0001
0002
cout<<\"Hello World!\n\";
cin.get();



ومعنى الاوامر السابقة كالتالي :
امر cout ويعني اطبع على الشاشة وهو امر موجه للكمبوتر واذا كنت تعرف لغات اخرى فلاعجب ان الامر هذا يبدوا لك غريبا اذ ان اللغات الاخرى يكتب فيها الامر هكذا print .
اما معنى علامتي القوسين << فهي تعني اقحم وهي عملية تستخدم دوما في حالات الادخال والاخراج وهدفها هو لتوجيه الكومبايلر الى انك تريده ان يطبع الكلام الذي يليها تماما كما هو مكتوب .
وستجد لدينا ايضا الامر \n وهو يعني قم بالطباعة في سطر جديد ويستخدم اذا اردت يطبع الكلام في عدة سطور بدل ان يطبع في سطر واحد وسيقوم بتحريك المؤشر في الشاشة الى سطر جديد .
لاحظ اننا استخدمنا علامتي التنصيص لتعريف البرنامج بان المكتوب هو نص ولانحتاج الى العلامتين عندما نكتب ارقام .
ولاحظ اننا استخدمنا الفاصلة المنقوطة هنا لتعريف الكومبايلر بانتهاء الامر الاول .

ستجد ايضا في الكود السابق امر cin.get() والذي يعني توقع ان المستخدم سيضغط على زر لانهاء البرنامج , وهذا الامر له فائدة كبيرة اذ بدونه سيفتح البرنامج عند النقر عليه مباشرة ثم يغلق بسرعة دون ان تطلع عليه ( تذكر برنامج جوهن لكسر الباسوورد ليش اذا ظغط عليه ماينفتح عادي ويتسكر بسرعة ؟ هذا لان مافيه الامر هذا )
وهذا الامر يخبر الجهاز بعدم اغلاق البرنامج وان يترك الامر للمستخدم حتى يغلقه .

والان قم بكتابة الكود السابق في برنامج الكومبايلر واضغط على زر كومبايل ثم تشغيل . وستلاحظ ان البرنامج سيعمل وينفتح كشاشة دوس سوداء يطبع فيها كلمة Hello World . وسيكون هذا هو برنامجك الاول الذي كتبته ... تهانينا Smile

والان سندرس مدخل للمتغيرات (variables )
.

بالطبع فانك قبل ان تحاول ان تدخل المعلومات في البرنامج يجب ان يكون لديك مكان لحفظها فيها . وفي عالم البرمجة المعطيات والمعلومات تخزن في اماكن تسمى متغيرات . وهناك عدة انواع من المتغيرات ; فعندما تخبر الكومبايلر بانك تعلن عن وجود متغير , يجب عليك ان تظمن معه انواع مختلفة من المعطيات كالانواع المختلفة مثل include char, int, و float .
المتغير من نوع char ( اختصار character وتعني حرف او حروف ) يخزن الحروف .
المتغير من نوع type ( ويعني نوع ) يخزن الاعداد الصحيحة فقط ( فقط الاعداد بدون فواصل وكسور).
المتغير من نوع float ( ويعني طفو ) يخزن الاعداد الطبيعية (جميع الاعداد حتى بالفواصل ).
وكل من هذه المتغيرات تستخدم لتعريف القيم ولتعريف المتغيرات فانك تستخدم بناء الجملة من نوع <name> . ويجوز تعريف اعداد مختلفة من القيم من نفس النوع في سطر واحد ولكن يجب فصل كل واحدة بفاصله ويجب ان تنتهي المتغيرات كالاوامر بفواصل منقوطة .
مع العلم انك اذا لم تحاول تعرف القيمة فان البرنامج لن يعمل لك .

انظر الى المثال التالي للمتغيرات والقيم كيف تكتب


CODE:
0001
0002
0003
0004
int x;
int a, b, c, d;
char letter;
float the_float;



ولكن بالطبع اذا كنت تستطيع متغيرات مختلفة من نفس النوع فأنك لن تستطيع استخدام متغيرات مختلفة بانفس الاسم

والان دعنا ننظر الى الكود التالي


CODE:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015

#include <iostream>

using namespace std;

int main()
{
int thisisanumber;

cout<<\"Please enter a number: \";
cin>> thisisanumber;
cin.ignore();
cout<<\"You entered: \"<< thisisanumber <<\"\n\";
cin.get();
}



سنقوم الان بتفكيك الاوامر في الكود السابق وشرحها سطر بسطر حتى ترسخ المعلومات السابقة في رأسك :

في السطر الاول

ستقوم الكلمة int باعلان thisisanumber لتكون رقما .

السطر الذي يليه عرفنا انه يعني اطبع على الشاشة الكلام بين القوسين .

الكلمة cin>> في السطر الثالث تفرأ القيم الى thisisanumber . وهي ظاهريا تعرف البرناج بان المدخل سيكتب في thisisanumber .
وبالطلع فانه يجب على المستخدم ادخال رقم ثم الضغط على مفتاح انتر (inter) في لوحة المفاتيح ليقرأ البرنامج الرقم المدخل .

في السطر الرابع سنجد اننا كتبنا cin.ignore() وهي دالة اخرى لقرائة وعرض المدخلات .
ملاحظة تذكر اننا عندما نشغل هذا البرنامج وندخل قيمة فاننا يجب ان نضغط على زر انتر ايضا لعرضها وهنا تظهر فائدة الامر السابق فاذا لم نرغب بعرض المدخلات فاننا لانحتاجها وعند ذلك لن تحتاج الى ضغط زر انتر لعرضها .
وتذكر ايضا اننا عرفنا المتغير كرقم فاذا حاول المستخدم ادخال حروف فأن الامر سيتجاهل طلب ولن يطبعها كذلك عند كتابة الاعداد الطبيعية بالفواصل فان البرنامج سيتجاهلها ايضا وهذا هو معنى كلمة ignore اي تجاهل .
كما يجب ان تلاحظ ان الاشارات وعلامات التنصيص لم تظهر في البرنامج وانما هي فقط لاخبار الكومبايلر بمحتواها .
ويجب ان تنتبه الى انك تستطيع كتابة الكلام السابق كله في سطر واحد ولكن لا تفعل ذلك فانك بذلك ستقوم بارباك نفسك وتصعب على نفسك عملية التحليل والتصحيح في حال وجود اخطاء .
كما يجب ان تفصل بين المتغيرات والحروف بعلامة (<<) ومحاولة وضعك لمتغيرين معا بعلامة (<<) واحدة امر خاطئ سيجعل الكومبايل يعطيك رسالة خطأ .

ولا تنسى ان تنهي الدوال والاوامر بالفاصلة المنقوطة والا لن يفهمها الكومبايلر .

ولتعلم ان المتغيرات ستكون مضجرة بدون ان تكون لديك القدرة على تعريفها .
وهناك العديد من العمليات تستخدم مع المتغيرات من ضمنها التالية : *, -, +, /, =, ==, >, <.
وتعني العمليات كالتالي :
* عملية ضرب
< اصغر من
> اكبر من
- طرح
+ جمع
/ قسمة


وليكن في معلومك ان علامة = = في اللغات الاخرى تعني المساواة الا في لغة السي بلس بلس فانها تعني يساوي واحد فقط واحد .

مثال


CODE:
0001
0002
0003
0004
a = 4 * 6; // وتعني a تساوي 24
a = a + 5; // وتعني انها تساوي حاصل جمع القيمتين الظاهرتين
a == 5 // وتعني انها تساوي فقط 5 ولايمكن ان تساوي قيمة اخرى




والان اخيرا لنتعلم قليلا عن الملاحظات :
تستطيع في لغات البرمجة C/C++ ان تكتب ملاحظات في البرنامج دون ان يلقي لها الكومبايلر بالا وذلك لمساعدتك على فهم البرنامج وتحليله ولمساعدة المبرمجين الاخرين كذلك على فهمه

وكما تلاحظ في مثالنا السابق فاننا كتبنا كالتالي


CODE:
0001
a == 5 // وتعني انها تساوي فقط 5 ولايمكن ان تساوي قيمة اخرى



والملاحظة هنا هي التي عقبت الاشارة // وهي ملاحظة لايعطيها الكومبايلر اي اهتمام وتظهر غالبا في اغلب الكومبايلارت باللون الرمادي .
ويمكن كتابتها ايضا كما في لغة C القديمة هكذا
/* هنا الملاحظة *\

ولاحظ ان كتابة الملاحظات بالطريقة الجديده // لاتحتاج الى انهائها اذ انها تستخدم فقط للسطر الواحد لذلك فان عليك كتابتها في كل سطر ملاحظات تكتبه

اما الطريقة القديمة فيجب انهائها ولا يجب عليك تكرارها في كل السطور اذ ان الكومبايلر سيعرف مكان بدايتها ونهايتها .



انتهى الدرس الاول . ومن لديه اي استفسار او لم يفهم نقطة معينه عليه ان يسأل عنها في هذا الموضوع وانشاء الله سأجيبه في اقرب وقت ممكن بالجابة الشافية .

وبأذن الله في الدرس القادم سنتعرف على الاداة الشرطية if وملحقاتها وفائدتها وماهي اهميتها في كتابة البرامج وكيف يمكننا استخدامها لكتابة البرامج .

لاتنسى ان تختبر نفسك بالاختبار الموجود في الرد الاول لتتأكد من وصول المعلومة اليك بالشكل الصحيح
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://effects.yoo7.com
 
مدخل الى C++
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
»  مدخل إلى فن المونتاج

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات افترافيكت :: منتديات الكمبيوتر والانترنت :: ساحه تعليم لغات الكمبيوتر-
انتقل الى: