طريق البرمجة في سي++ الدرس الأول - أساسيات البرمجة
في هذا الدرس سوف أشرح كيفية كتابة أول برنامج لك بالسي ++ باستخدام 6.0 ++6 1/1531 1110:0806 ؛ وفي
مترجمات أخرى مثل ++6 801800 ولكن سوف يكون شرحي كله على ++6 ا908/ا وذلك من أجل التمكن من
استخدام هذة البيفة في حال أردنا للانتقال إلى برمجة تطبيقات وندوز باستخدامها
هذا الدرس سوف أشرح فيه أساسيات ومفاقيم عامة ولكن الغرض الأساسي منه قو فقط من أجل وضع رجلنا
على أول الطريق وبداية المشوار
1 البرنامج الأول
في هذا البرنامج ببساطة سوف نقوم بطباعة الجملة المشهورة "1405010 11610" على الشاشة , حسنا لماذا لا
نجهز الشواء ونقوم بتشغيل الفيجوال سي الأآن !
إذا تمت عملية التشغيل بنجاح طبعا سوف تحصل على شكل مشابه إلى الشكل 11
حلفت
شكل 1-1
الخطوات اللازمة من أجل البدأً في أي مشروع في هذة الدرهس قي التالية
* اختر 80ل من القائمة 516 وسوف تحصل على نافذة كما في الشكل 2-1
شكل 2-1
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 ( 0ع 22012302070 82:11 0
طريق البرمجة في سي++ الدرس الأول - أساسيات البرمجة.
* من الصفحة 00012615 قم باختيار 001688000 6005018 111032 . ومن ثم اكتب اسم المشروع في الخانة
006611806 ؛ وليكن على سبيل المثال اسم المشروع 5:55:09
* بشكل افتراضي سوف يقوم الفيجوال سي++ بانشاء دليل بنفس اسم المشروع ويضع فيه جميع الملفات
التي تضيفها لاحقا للمشروغ
* اضغط على 06 , وحينها سوف تحصل على النافذة كما في الشكل 3-1
امام “الا مراحم ©
شكل 3-1
* تأكد من اختيار :0(866؟ /81085 817 ومن ثم اضغط على 5097
أن تتخيل المشروع كبيفة عمل منظمة لبرنامجك , حيث تقوم باضافة أي عدد من الملفات للمشروع وتنظيمها تماما
كما تنظم الملفات في مستكشف الوندوز
عند عودتك إلى البيئة الرئيسية للفيجوال سي سوف تلاحظ أن القسم الأيسر صار يحتوي على اسم مشروعك الذي
كتبته وفي مشابهة للشكل 41
0 #مم حال
ممع قامعا 2 ١
معدا #معدمد2
معد لمفمعا2
شكل 4-1
الفيجوال سي قام بوضع ثلاث مجلدات لنا داخل المشروع من أجل وضع ملفاتنا . هذه المجلدات هي وهمية أي لا
يوجد لها مقابل على القرص الصلب . الأول وهو 165 50168 وتضع فيه جميع ملفات المصدر لمشروعك أي الملفات
حقوق النشر محفوظة للفريق العزبي للبرمجة 2001 (0000.2120183012000.200// :080 7
طريق البرمجة في سي++ الدرس الأول - أساسيات البرمجة.
الآن من أجل كتابة البرنامج الأول يجب علينا من انشاء ملف كود جديد وهذا من الأمر 810لا من القائمة 518 . سوف
تحصل على نفس النافذة في الشكل 1-1 كن هنا الصفحة 0165 هي الظاهرة عوضا عن 001805 , طبعا يمكنك أن
اضغط موافق
يحتوي على كود للمشروع , الآن قم بكتابة الكود التالي في الملف الفارغ الذي أنشفته
02 نوع
يجب أن تنتبه أن لغة السي++ تفرق بين الأحرف الكبيرة والأحرف الصغيرة . على سبيل المثال فإن اسم التابع
2 ترحمة وبناء المشروع
من أجل تنفيذ البرنامج السابق وبناء ملف تنفيذي 688 قابل للتنفيذ في أي وقت يحب أولا ترحمته وتحويله من
عملية ترجمة المشروع وبناء العلف التنفيذي في الفيجوال سي++ تتم بخطوة واحدة وهي عن طريق اختيار الأمر
ع(©.505009 810 من القائمة 8410 أو الضغط على 7 , ومن أجل تنفيذ المشروع أو الملف التنفيذي اختر الأمر
01500109.6 عال60© من القائمة 8010 أو عن طريق المفتاحين 001425 , طبعاً يمكنك أولا بناء الملف التنفيذي
ومن بعدقا تنفيذة بخطوتين ولكن الأمر عال0©*:© يقوم بشكل آلي بعملية الترجمة وبناء الملف التنفيذي إذا دعا الأمر
7مم])0 0 في أعلى الشاشة كما في الشكل 4-1
شكل 5-1
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 (660. 2120183012000 080://00000) 8
طريق البرمجة في سي++ الدرس الأول - أساسيات البرمجة.
3 الأهم من تعلم لغة البرمجة
هل سكلنا أنفسنا في لحظة من اللحظات ماهم الأهم من تعلم لغة البرمجة من أجل أن نصبج مبرمجين ؟ بصراحة
هي كلمتين طبعا وقي قندسة البرنامج , تماما كما بفعل إخواننا في الهندسة العدنية أم المعمارية . تخيل برنامجك
هو عبارة عن عمارة أو بناء تريد تشييدة » سوف تبداً بالتصميم وتحليل مواردك وامكانياتك ومن ثم وضع (سكيتش) أو
تصميم أولي للبناء وبعد ذلك تبداً بالبناء بلوك بلوك وطابق طابق
لن أتطرق في هئة الدرهس إلى مواضيع التصميم وتحليل الموارد لأنها قد تكون خارجة عن اطار قئة الدروس ولكن
كدروس لتعليم لغة السي++ يجب أن أنوة إلى مواضيع تنظيم البرنامج والتي هي جزء لا يتجزء من هندسة البرنامج.
الذي يهمل أنناء عملية ترجمة البرنامج وهي تفيد في تفسير الخطوات التي تقوم بها . سوف أطلب منك مقارنة
البرنامجين التالين وملاحظة أيهما أسهل للغهم بغض النظر عن لغة السي++ المستخدمة التي قد لا تكون ملم بها
ل ممه غصة
تقد >> همع >> عدو
0(72) نوع
(لمتمه عمد
علد هده عط ملع // - بلقمة >> سه >> عو
طبعا سوف تقول أن البرنامج الثاني أسهل للقراثة والفهم من الأول لعدة أسباب
* استخدام التعليقات أينما دعت الحاجة لها
* وضع أسطر فارغة بين قسم وآخر في الكود ؛ الأقسام تكون مترابطة منطقيا فيما بينها
* ترك مسافات بادثة من أجل سعولة القراثة وتتبع البرنامج.
حقوق النشر محفوظة للفريق العزبي للبرمجة 2001 (080://0000.2020183012000.200) 9
طريق البرمجة في سي++ الدرس الأول - أساسيات البرمجة
بالنسبة إلى التعليقات فيمكن كتابتها بشكلين كما هو موضح في البرنامج الأخير . الأولى باستخدام // وقي تقوم
باعتبار كل الذي بعدقا حتى نهاية السطر كتعليق . أما الشكل الآخر باستخدام */ و /* الرمز الأول يفت فقرة تعليق
والرمز الثاني يغلق هذه الفقرة , ذكرت فقرة لأن هذا النوع من التعليق ممكن أن يمد على عدة أسطر أو يمكن أن
يكون في سطر واحد
4 ملخص الدرس
* من أجل البدأ بمشروع برمجي يجب انشاء مشروع جديد في الفيجوال سي++ عن طريق اختيار 810لا من
القائمة 516
* يتم انشاء ملفات كود جديدة واضافتها للمشروع أيضا من خلال الأمر 1610 من القائمة 516
* قمنا بكتابة أول برنامج في السي++ وتنفيثة
* تعلمنا كيفية كتابة تعليقات في البرنامج
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 (2160183012000.200. 0080:0000 10
طريق البرمجة في سي ++ الدرس الثاني - الأنواع و العوامل و التعابير
البرنامج في السي ++ يصف العمليات والمهام التي سوف تطبق على العناصر التي تحمل البيانات , من الأمور
المهمة جدا كما هو الحال في باقي اللغات هو عملية تحديد ما هو نوع هذة العناصر أو بكلمة أخرى أنواع المعطيات.
إن البيانات التي يتم التعامل معها في البرنامج يمكن تصنيفها إلى قسمين . الأولى هي التي تبقى ثابتة طول
فترة تنفيذ البرنامج ؛ أما الثانية هي التي تتغير قيمتها . الاسم الذي يطلق على الأولى هي الثوابت أو 01052015 أما
الثانية فسوف نطلق عليها اسم المتحولات أو 188565 , طبعا كلا الصنفين السابقين يجب أن تنطبق عليه ماذكرناة
بالنسبة إلى الأنواع ؛ على سبيل المثال المتحولات يجب تحديد نوعها حتى نستطيع التعامل معها
أما التعبير 10165900© فهو عبارة عن الخطوات والقوانين التي سوف يتم من خلالها حساب قيمة معينة . التعبير
يتكون من مجموعة من الحدود 00813065 أو القيم و العوامل 006:880:5 . لغة السي++ غنية جدا بالعوامل التي
تعكس العمليات التي تتم في المعالج مثل عمليات الجمع والضرب والازاحة , العوامل يمكن تصنيفها إلى عدة أصناف
أيضا فمنها عوامل من أجل العمليات الحسابية كالجمع والضرب ومنها عوامل المقارنة كالأصغر والأكبر . سوف نقوم
بشرح بعض العوامل في هذا الدرس مع تكميلها في باقي الدرمس
> هذا الدرس يوجد فيه عدد قائل من المعلومات مع قليل من التطبيق ؛ لذا ليس من الضروري فهمه
بشكل كامل ولكن يجب قرائته بشكل كامل والرجوع إليه إذا دعت الحاجة في الدروس اللاحقة
1 النوابت الصحيحة - 60051015 :10116928
هنه الثوابت هي عبارة عن أعداد قد تكون موجبة أوسالبة . ويمكن تمثيلها كأعداد بالنظام العشري أو الثماني أو
الست عشري . الأعداد بالنظام العشري تتكون من الأرقام من 0 إلى 9 والرقم الأول يجب أن يكون غير الرقم 0
وكأمثلة على هذا لدينا الأعداد
كلنا نعلم أن الحاسب الآلي يستطيع التعامل مع مجال محدد للأعداد . دقة هذه الأعداد تعتمد على المساحة
التي يحجزها المترجم للعدد , وهذا يختلف من حاسب إلى آخر ففي الأجهزة التي تحتوي على مسجلات بحجم
ابت فإن ال 1008982 سوف يحجز له 16آبت والتالي فإن مجاله يتراوح بين 32768- إلى 32767 . في الأجهزة الجالية
وتحت نظام وندوز 32بت فإن ال 1018982 يحجز له 32بت وبالتالي يكون مجاله بين 2147483648- إلى 2147483647
بالنسبة إلى الأعداد في النظام الثماني فإنها يجب أن تبداً بالرقم 0 وهذة أمثلة عليها
أما الأعداد بالنظام الست عشري فهي تبداً بالرمز »0 أو 0 وهذا أمثلة على هذا
في حال تخطى الثابت المجال المسموح فيه فإن معظم المترجمات تقوم بالتحذير عن ذلك
> في الأجهزة 16بت فإنه يمكن اجبار المترجم على اعتبار العدد ذو حجم 32بت باضافة اللاحقة ا أو
(الحرق الصغير )١ مثل التالي 002381 أو 982
2 الثوابت للأعداد الحقيقة - 0011511115 أصامم ودصاتا هوا
أي رقم يحتوي على قسم كسري يعتبر عدد حقيقي . وتكتب هذه الأرقام بصيفتين . الصيغة المباشرة والبسيطة
أمثلة على هذا
النقطة التي تفصل القسم الحقيقي والكسري لا تشترط أن تحطاط برقمين حيث يمكن كتابة الرقم الثانية
والثالث في المثال السابق كالتالي
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 (21016302000:6001. | [:0ف) 11
طريق البرمجة في سي++ الدرس الثاني - الأنواع و العوامل و التعابير
ولكن يفضل , على كل الأحول , استخدام الصيغة التي تجعل البرنامج قابل للقراثة بشكل واضح
الصيغة الثانية أو مايسميى بالتمثيل العلمي وهو عبارة عن رقم مثل السابق ولكن مضروب برقم مرفوع إلى العدد
0 هذا الأس يمثله الحرف © أو ع أمثلة على هذه الصيغة هي
3 ثوابت المحارف - 60015131715 (0713:8016
الثابت المحرفي هو أي حرف كتب بين اثنتين من الفاصلة العلوية الواحدة أو 65ا00ا0 9098 ؛ مثل '؟ , إن قيمة الثابت
المحرفي هي عبارة عن قيمة هذا الحرف في جدول المحارف في النظام أو الجهاز , من ل جداول المحارف
استخداما قو (076098 :1016 1000002000 16 002 5200500 40211630) 8501 . ففي جدول 501 تبلغ قيمة
المحرف ل القيمة 88
يوجد أيضا العديد من المحارف في لغة السي والتي تسمى بمحارف الهروب أو 188618 656808 . وفي
تستخدم للتعامل مع المحارف التي من الصعب التعامل معها أو من الصعب اذخالها من لوحة المفاتيح مباشرة . وقي
تبداً بالرمز ا ثم يليه محرف واحد . المحرفين السابقين يعتبرو كمحرف واحد من وجهة نظر المترجم , سوف أسرد هذة
لاسن 8
عدن نعلا 0
تاق 1600200 غ1
الآن على سبيل المثال إذا أرت التعامل مع المحرف ١ فيجب أن تكتب اا" عوضا عن أ" . أيضا بالإضافة إلى
محارف الهروب السابقة يمكن أن أن تتكون سلسلة الهروب من المحرف ١ يتبعها * ومن ثم واحد أو أكثر من الأرقام
الست العشرية . الناتج هو عبارة عن رقم ست عشري يمثل ذليل في جدول المحارف في الجهاز على سبيل العثاله
فإن المحرف أ قيمته 0:58 في جدول 8501 والتالي يمكن تمثيله أيضا بالصيغة 59ر1 . حتى نكون دقيقين أكثر
الصيغة الأخيرة تستخدم لطباعة المحارف الموجودة في جدول 8501 التي لا يمكن ادخالها من لوحة المفاتيج.
المحرف الأخير الموجودة في القائمة السابقة يعتبر المحرف الأول في جدول 8501 ويسمى بمحرف الصفر أو ال
4 ثوابت السلاسل النصية - 6005130715 501109
السلسلة النصية هي مجموعة من المحارف محاطة يزوج من الفاصلتين العلويات أي " . ويمكن أيضضا استخدام نفس
محارف الهروب السابقة بداخل السلسلة النصية . وكأمثلة على السلاسل النصية في
"وا عماااعد ة طائل 2010103125 50109 7115
أيضا ١ لة النصية يمكن أن تمتد إلى أكثر من سطر عن طريق استخدام المحرف ١ في آخر السطر الأول
ومنه الاستمرار في السطر الثاني وكمثال على هذا إليك التألي
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 (0021012302000:6001] ل:0ف0) 2
طريق البرمجة في سي++ الدرس الثاني - الأنواع و العوامل و التعابير
المترجم يعتبر السلسلة السابقة كسلسلة واحدة أي يقوم بتجاقل المحرف ١ بالاضافة إلى رمز السطر الجديد
الذي بعدة , وهي مشابهة تماما إلى السلاسلة
وأيضًا السلسلتين المنفصلتين التي تلي أحدهما الأخرى يقوم المترجم باضافتهما إلى بعضهما لتكوين سلسلة
واحدة . مثلا هذا المثال
"ومو "وراد
يحول إلى
الطريقة السابقة جدا مهمة في قص السلاسل الطويلة ووضعهم على أكثر من سطر.
أيضا الأمر الهام جدا بالنسبة إلى موضوع السلاسل في السي++ فإن أي سلسلة سوف تنتهي ب اللا
عدذ لا من المحارق فإنها حقيقة سوف تحتوي علي 1+1 من أجل احتواء محرف النهاية . لذلك تسمى السلاسل
النصية في لغة السي ب 58109 12017103120 الال أو السلسلة المنتهية بمحرف الصفر , وإليك هذا الشكل
شكل 6-2
بالاعتماد على سبق يجب أن نلاحظ أن المحرف #” والسلسلة "ليسا نفس الشئ فالمحرف في معظم
الانتباه في حالة استخدام المحارق والسلاسل والتفريق فيما بينهما
5 المعرقات - 1060718655
لغة السي++ مثل باقي اللغات تتطلب منك اعطاء أسماء معينة للمعطيات التي تستخدمها في برنامجك , هذة
الأسماء تدعى بالمعرفات أو 1080088855 ويتم وضعها أو تكوينها من قبل المبرمج . ويجب أن يصنع المعرف بالاعتماد
المعرف هو عبارة عن خليط من المحارف والأرقام والتي يجب أن تبداً بمحرف ؛ الرمز () أو 002:56018لا
يمكن استخدامه بالمعرف وهو يعتبر كحرف عاذي
من القاعدة السابقة يمكن أن نضع بعض الأمثلة لمعرفات تعتبر صحيحة لمترجم السي++
بع لامعا تو ماوعلا #مطام فوم لقصل
يعتبر أي معرفين هما واحد في حالة كان لهما نفس الاملاء ونفس حالة الأحرف (الصغيرة أم الكبيرة) . وبالتالي
يفضل أن يعطي المبرمج اسماء للمعرفات تدل على استخدامها . على سبيل المثال إذا كان المبرمج بتعامل مع
الوقت في برنامجه فيفضل أن يسمي معرفاته ب 10155 و 010125 و 5200005 وهذا طبعا أفضل بكثير من تسميتها 5
بعض المعرفات تكون محجوزة لاستخدام لغة السي++ وقي ماتسمى ب 016605ر2:! 809598 . السرد الكامل
لهذة المعرفات معطى في الأسفل ولكن شرحها سوف ياتي لاحقا كل في قسمة
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 (6302000:6001 0.2101 /:00) 13
طريق البرمجة في سي++ الدرس الثاني - الأنواع و العوامل و التعابير
08“ اقتا 09ىعم اف
بقي أمر هام يجب التنويه له وذلك أنه لا ينصح باستخدام رمززين () في بداية المعرف , مثل 1806 _ ؛ وذلك
بسبب أن المعرفات بهذا الشكل محجوزة لاستخدام المكتبات القياسية للسي++ . لذلك تجنب من استخدامها
6 تعريف المتحولات - 60ت 485 عان 1/8118
من اسمها فإن المتحولات هي عبارة عن عناصر معطيات تتغير قيمها أثتاء وقت تنفيذ البرنامج . هذه النتحولات
يجب أن يكون لها نوع يتم تحديدة حتي يستطيع المترجم التعامل معها وتوليد الكود الصحيح . طبعا إن عملية تحديد
نوع المتجول تعرف بتعريف المتحولات أو 201800 1181201 . إن التعريف يكون على الهينة التالية
إن 15206-80185165 هي عبارة عن معرفات يفصل بينها علامة الفاصلة هذه المعرفات تمثل ١ ات في
برنامجك . كل متحول أو مجموعة من المتحولات يتم تحديد نوعها عن طريق ال 008-5080086 . إن الأنواع الأساسية
صموعامل ذا
قاع )ا
نادم و1020 ممادععام 2ا509) :108
عدم 103809 00 05عام عا0د) عاطامك
وكمثال على تعريف المتحولات
هنا المتحولات 10055 و 001/1185 و 5800005 كلها عبارة عن متحولات لأعداد صحيحة 1018989 وبالتالي يمكن
تخزين أي عدد 101898 ضمنها واستخدام هذا العدد لاحقا في برنامجك
طبعا يمكن أن يتم تعريف مجموعة من المتحولات ذات أنواع مختلفة وهذا طبعا يتم باستخدام الفاصلة المنقوطة
كفاصل . ويفضل كتابة كل تعريف بسطر متفصل من أجل زيادة الوضوح . وهذا مثال على ذلك
قعل 000 برق غ0
وعند التعريف يفضل تعريف المتحولات ذات العلاقة فيما بينها في مجموعة والباقي في مجموعة أخرى كالتالي
رعادلا بتقاصف ا
وأيضا يمكن كنابة التعريف على عدة أسطر كالمثال التالي
حقوق النشر محفوظة للفريق العربي للبرمجة 2001 (0.21206302000:6001] /:00) 14