منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كورس] دورة كاملة في برمجة لغة C++ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم لغة ++C (http://vb4arb.com/vb/forumdisplay.php?fid=19)
+---- قسم : قسم مقالات ++C (http://vb4arb.com/vb/forumdisplay.php?fid=35)
+---- الموضوع : [كورس] دورة كاملة في برمجة لغة C++ (/showthread.php?tid=32503)



دورة كاملة في برمجة لغة C++ - علي بنيان - 12-12-19

دورة في تعلم برمجة لغة C++


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

 في حال حذف الصور من مركز الرفع تجدون ملف pdf لهذا الموضوع بالمرفقات 




المتغيرات والثوابت وكيفية الاعلان عنهما :
1- المتغيرات :
عبارة عن اسماء يتم تخزين قيم في الذاكرة واستدعائها عند الحاجة , وسميت متغيرات لانها تتغير من قيمة الى اخرى

شروط الاعلان عن المتغيرات ( نفس الشروط تطبق على الثوابت )
لا تختلف لغة C++ عن بقية لغات البرمجة في اسلوب الاعلان عن المتغيرات فهناك عدة شروط يجب مراعاتها قبل الاعلان عن متغير ومن هذه الشروط :
  • ان لا يبدأ اسم المتغير برقم او رمز بأستثناء الرمز under score ( _ )
  • ان لا يكون المتغير كلمة محجوزة في اللغة .
  • ممكن استخدام الاحرف الكبيرة او الصغيرة .
  • لا يسمح بوجود الفراغات بين حروف المتغير الواحد , مثال ( A li )
  • لغة C++ تميز بين الاحرف الكبيرة والصغيرة وتعتبر( a ) على سبيل المثال متغير مختلفاً اختلافاً كلياً عن المتغير ( A )
انواع المتغيرات في سي بلس بلس : 

بعض الانواع البيانية :



يمكن اعطاء المتغير قيمة فيصبح (متغير بقيمة ابتدائية ) كما بالمثال :


كما يمكن اسناد معالجة للمتغير كأن تكون هذه المعالجة جمع او طرح او ضرب او اي عملية اخرى .. مثال :




2- الثوابت :

يتم تعريف الثوابت في البرنامج وذلك عن طريق كتابة كلمة const متبوعة بنوع الثابت ( صحيح – حقيقي – حرفي ) ثم اسم الثابت و قيمته
مثال توضيحي :




في المثال اعلاه عرفنا ثابت نوعه صحيح integer اسمه ali قيمته 1000

اما اذا اردنا تعريف ثابت من نوع حقيقي , نغير النوع البياني و القيمة





طريقة اخرى لتعريف الثوابت :

نكتب علامة التقريب (#) متبوعة بالكلمة ( define ) ثم اسم الثابت وقيمته .. في هذا التعريف لا نحتاج ذكر النوع البياني للثابت لان قيمة الثابت هي التي تحدد ذلك , مثلا اذا كانت قيمة الثابت ( 10.7 ) فمن الطبيعي ان هذا الثابت حقيقي , كذلك لو كانت قيمة الثابت محرفا واحد فأن هذا يعني ان نوعه ) char ) وهكذا , المثال ادناه يوضح تعريف ثوابت من انواع مختلفة





* ملاحظة :
اختر اي اسم للثابت ولكن يجب ان لا يكون الاسم كلمة محجوزة . ولا يبدأ برقم او رمز ما عدة الرمز ( _ )


كيفية استدعاء الثابت :


يتم استدعاء الثابت بكتابة اسمه والمترجم يضع قيمته تلقائياً , فمثلا لو اردت ان اطبع قيمة الثابت ( ali ) على الشاشة نكتب الكود :




الهيكل العام للبرنامج المكتوب بلغة سي بلس :



دالة الادخال : 

تستخدم دالة الادخال لادخال القيم الى البرنامج , ونستخدم الدالة cin كدالة ادخال وهي تماثل الدالة readln المستخدمة في باسكال وتكتب كما بالصورة ادناه :


على فرض ان المتغير المراد ادخاله هو x .
واذا اردنا ان ندخل قيمتين ( x , y ) بأستخدام دالة cin واحدة نكتب الامر التالي :




دالة الاخراج :

تستخدم هذه الدالة لاظهار القيم والنتائج او الرسائل التوضيحية للمستخدم , كأن تطلب منه ادخال قيمة x او y او تظهر ناتج عملية جمع او ضرب او اي عملية اخرى , وتماثل هذه الدالة دالة writeln المستخدمة في باسكال .
و تكتب بالصورة التالية :

PHP كود :
cout <<your message";" 



والنص المراد اظهاره يجب ان يكون بين علامتي اقتباس .
هناك مجموعة من الرموز المهمة التي تستخدم في الطباعة مثل الرمز \n الذي يستخدم لنقل المؤشر لسطر جديد , وكذلك الرمز \t الذي يستخدم وضع مسافة في نفس السطر .. ادناه مثال يوضح كيفية كتابة هذه العلامات :




معامل الزيادة والنقصان :

يستعمل معامل الزيادة والنقصان في زيادة او انقاص قيمة معينة وهو من العوامل المستخدمة كثيراً في لغة سي و سي بلس بلس , ويكتب بالصيغة التالية :

PHP كود :
y++ ; 


بمعنى .. قم بزيادة قيمة المتغير ( y ) بـ ( 1 ) وخزن الناتج في المتغير ( x1 )
ويمكن ان نعبر عنها بالصورة البسيطة التالية :




ويكون هذا المعامل على نوعين ( سواء معامل الزيادة او معامل النقصان )

النوع الاول : المعامل البعدي (--y,++y)

النوع الثاني : المعامل القبلي ( ++y , --y )

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


العمليات الرياضية :

تستخدم في البرمجة كثيراً مثل استخراج حاصل جمع او طرح او ايجاد مساحة او محيط شكل هندسي او استخراج قيمة رواتب العمال و الاجرة الاضافية , والكثير من العمليات الرياضية .
نبدأ باهم العوامل الرياضية وهي العمليات الاساسية ( الجمع و الطرح والضرب والقسمة ) .
الجدول التالي يوضح العمليات الرياضية وما يكافئها في C++




مثال بسيط يوضح كيفية كتابة برنامج يقوم يستقبل قيمة ( x ) و ( y ) وبعد ذلك يطبق العمليات الرياضية اعلاه على القيمتين ويخزن القيمة الناتجة في متغير جديد :
الحل :




عوامل المقارنة في C++ :


يقصد بعوامل المقارنة هي التي تستخدم لمقارنة عنصرين او اكثر . وتسمى ايضا المعاملات النسبية
وعوامل المقارنة هي :

== , != , > , < , >= , <= ) )

جدول يوضح عوامل المقارنة وعملها :




ملاحظة مهمة جداً :

لاختبار تساوي قيمتين او اكثر يجب ان نستخدم علامتي اليساوي ( == ) واذا استخدمت علامة يساوي واحدة ( = ) لا يحدث خطأ من الناحية البرمجية ولا يكتشف المترجم اي خطأ ولكن تكون النتائج جميعها خاطئة .. وهذا الخطأ من الاخطاء صعبة الاكتشاف .


العوامل المنطقية :

هناك ثلاث عوامل منطقية يمكن استعمالها في الشروط المركبة وهذه العوامل هي :
عامل الجمع المنطقي ( و ) ويرمز له ( && ) ويماثل الدالة ( and ) في لغة باسكال
عامل ( أو ) المنطقي ويرمز له ( || ) ويماثل الدالة ( or ) في لغة باسكال
عامل النفي المنطقي ويرمز له ( ! ) ويماثل الدالة ( not ) في لغة باسكال





الاوامر الشرطية : 

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


انواع الاوامر الشرطية :

دالة ( if )الشرطية ( البسيطة ) :
تنفذ هذه الدالة الاوامر البرمجية في حالة تحقق الشرط فقط , والهيكل العام للدالة يكون كالتالي :




المخطط الانسيابي :




مثال عملي :
اكتب برنامج بلغة C++ يفحص قيمة المتغير (x) فاذا كانت قيمته اكبر من عشرة يطبع كلمة pass واذا كانت غير ذلك لا تطبع اي شيء .





الدالة ( if .. else ) الشرطية :


لا تختلف كثيرا عن الدالة السابقة ( if ) , حيث ان الدالة ( if .. else ) تنفذ تعليمتين وفق الشرط المحدد , في حالة تحقق الشرط تنفذ امراً معين وفي حالة عدم تحققه تنفذا امرا اخر .


الهيكل العام للدالة : 








مثال عملي :
اكتب برنامج بلغة C++ يفحص قيمة المتغير (x) فاذا كانت قيمته اكبر من عشرة يطبع كلمة pass واذا كانت قيمته اقل اطبع fail .





الدالة if – else if :


اذا كان لدينا عدة شروط في السؤال فيجب استخدام الدالة if – else if للتعويض عن كل الشروط الموجودة بما يماثلها .
الهيكل العام للدالة :




مثال عملي : 

اكتب برنامج بلغة C++ يقوم بتحويل درجة الطالب الرقمية الى درجة رمزية .


الحل :



* ملاحظة مهمة جداً:


في حالة استخدام عدة تعليمات ( تعليمة مركبة ) فيجب استخدام حاصرتي الغلق والفتح " { }" و ان عدم استخدامهما يتم تنفيذ التعليمة الاولى فقط وتجاهل بقية التعليمات 



الدالة switch 


هي احد الدوال الشرطية التي تستخدم في البرمجة الاختيارية .. يمكن من خلالها الاستغناء عن عدة جمل بـ ( if ) الشرطية .
الهيكل العام للدالة switch :




المخطط الانسيابي لها :



* مثال عملي :
اكتب برنامج بلغة C++ يفحص قيمة متغير رقمي ( x ) فاذا كان قيمة المتغير تساوي ( 1 ) اكتب كلمة " first " واذا كانت تساوي ( 2 ) اكتب "second " واذا كانت غير ذلك اكتب كلمة " other " .


ان الدالة " default " تماثل الدالة " " else في جملة " if " حيث ان الامر المندرج تحتها يتنفذ في حالة عدم تحقق اي من الشروط اعلاه .


مثال عملي اخر :
اكتب برنامج بلغة C++ يسئل المستخدم " هل انت طالب ؟ " " Are you a student " فاذا كانت الاجابة " نعم " اطبع I wish you success "" واذا كانت " لا " اطبع "hard luck" واذا كانت الاجابة غير ذلك اطبع "Wrong entry".
الحل :
في هذا المثال نتعامل مع قيم حرفية "char" وليس قيم صحيحة "integer" .


توضيح حول الكود اعلاه :
سواء كتب المستخدم "y" او "Y" او "yes" فان النتيجة واحدة لذلك كتُبت بهذه الصورة , وكذلك الحال مع n"" و" "N و no"" .




حلقات التكرار :


الغاية من الحلقات تكرار تنفيذ التعليمات المطلوبة وفق شرط معين , بغض النظر عن حلقة التكرار المستعملة على سبيل المثال , اذا طلُب منا جمع الاعداد المحصورة بين " 1 – 100 " ليس من المنطقي ان ندخل الاعداد يدويا 100 مرة !! في هذه الحالة نحتاج هيكل تكرار وعداد يتوقف عند الوصول الى اكبر من 100 , وهكذا
انواع حلقات التكرار :
  • حلقة while
  • حلقة for
  • حلقة do while
حلقة while :
الهيكل العام للدالة :




المخطط الانسيابي :




مثال عملي :
اكتب برنامج بلغة C++ يطبع الاعداد المحصورة بين 1 و 20 بأستخدام دالة while




2- حلقة for :

الهيكل العام للدالة



المخطط الانسيابي :



اكتب برنامج بلغة C++ يطبع الارقام المحصورة بين 1 – 20 بأستخدام حلقة for





3- حلقة do .. while :


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


الهيكل العام للدالة



المخطط الانسيابي للدالة :







مثال عملي:
اكتب برنامج بلغة C++ يطبع الارقام المحصورة بين 1 – 20 بأستخدام حلقة do .. while .

الحل :





قبل ان يتم فحص الشرط , قام البرنامج بتنفيذ الاوامر الموجودة ضمن ( do ) واصبح x = 1 , بعد ذلك قام بفحص الشرط ( هل x اصغر او تساوي 20 ( ونفذ التعلميات من جديد لان الشرط صحيحاً وهكذا وصولا الى ان يصبح الشرط غير صحيح .




المصفوفات Arrays :

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


كيفية الاعلان عن المصفوفات :

يتم الاعلان عن المصفوفات بأستخدام اسم المصفوفة و القوسين المربيعين [ ]كما بالصورة التالي :




النوع البياني للمصفوفةType =
اسم المصفوفةarrayName =
حجم المصفوفةarraySize =


انواع المصفوفات : 



المصفوفة احادية البعد : 

هي مصفوفة متكونة من بعد واحد فقط ويكون هذا البعد اما صف واحد
تحتوي كل مصفوفة على دليل ( index ) يمثل الموقع الحالي للعنصر في المصفوفة .
يبدأ الدليل في المصفوفة من الرقم ( 0 ( وهو يمثل الموقع الاول ويبدأ بالتزايد وصولا الى اخر عنصر في المصفوفة .



الشكل اعلاه يوضح الدليل في المصفوفة الاحادية

للاعلان عن مصفوفة احادية رقمية صحيحة :



للاعلان عن مصفوفة من نوع double ( نوع بياني حقيقي طويل جداً )



ادخال عناصر للمصفوفة عن طريق الكود :
على فرض ان x مصفوفة حجمها ( 5 ) ونريد ان ندخل لها قيم بداخل الكود :


كذلك اذا كانت المصفوفة حقيقية الاعداد :


وهكذا .




ادخال العناصر الى المصفوفة من خلال لوحة المفاتيح :


نفترض لدينا مصفوفة من النوع الصحيح بحجم 5 ونريد ان ندخل لها العناصر من لوحة المفاتيح , في هذه الحالة يجب استخدام جملة الادخال cin بداخل حلقة تكرار






طباعة عناصر المصفوفة : 

لطباعة عناصر مصفوفة يجب استخدام جملة الطباعة والاخراج cout بداخل حلقة تكرار .




امثلة عامة عن لغة C++ :-

السؤال موجود في الصورة ادناه :






س : ادخل سلسلة من الاعداد في مصفوفة وبعد ذلك اوجد مفكوك كل عنصر واضف المفكوك في مصفوفة جديدة واطبع المصوفتين :









مثال : ادخل عناصر مصفوفتين واجمع كل عنصر من االمصفوفة (A) مع العنصر الذي يقابل موقعه في المصفوفة الثانية (B) واطبع الناتج في مصفوفة ثالثة © 










اتمنى لكم الفائدة والتوفيق 



RE: دورة كاملة في برمجة لغة C++ - أمجد وضاح - 14-12-19

شكرا لكن الصور


RE: دورة كاملة في برمجة لغة C++ - علي بنيان - 10-01-20

مرحبا 
عدلت الصور في المشاركة واضف الموضوع ككتاب الكتروني في المرفقات


RE: دورة كاملة في برمجة لغة C++ - ryadd - 31-10-20

شكرا لكن الصور
Nox Vidmate VLC