دورة c++ المستوى الأول 1 للمبتدئين

دورة c++

دورة تعلم البرمجة لغة c++ كاملة للمبتدئين

جدول المحتويات

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

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

تعريف باللغة

لغة البرمجة سي هي واحدة من أهمّ اللّغات متعدّدة الأغراض والاستخدامات. حيث تدعم البرمجة الكائنيّة والاستدعاء الذاتي للمتغيرات. قام ببنائِها كلاً من Ken Thompson وBrian Kernighan و Dennis Ritchie للعمل على تطوير نواة نظام التشغيل Linux.

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


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

  • جهاز حاسوب او محمول.
  • نظام ويندوز 10 (مُستحسن).
  • بيئة عمل Visual Studio.
  • ملفات اللغة (IDE).

الأمثلة قابلة للتحميل من جوجل درايف وفي حال قررت متابعة القراءة عبر الهاتف , ستتمكن من العثور عليها عبر التّطبيقات المرفقة في الهاتف.


1.جملة الطباعة في لغة سي



توفر مكتبة C القياسية العديد من المزايا وأهمّها تفاعل المستخدم مع وحدات الإدخال والإخراج (IO) في نظام التشغيل. أدوات C ++ القياسية التي تساعدنا في تكوين جملة الطباعة واستخراج المتغيرات لتظهر على شاشة وحدة التحكم الخاصة بك.

جملة الطّباعة

جملة الطباعة هي وظيفة متصلة في مكتبة c ++ القياسية ، وهي واحدة من أسرع وظائف الطباعة مقارنة بغيرها من الدّوال. تتيح لك هذه الوظيفة طباعة ما يلي:

  • نصوص: حيث يتم وضع النص داخل علامتي تنصيص.
  • الأرقام: يمكنك طباعة الأرقام رأساً ودون علامات اقتباس.
  • متغيرات الطباعة: يمكنك طباعة المتغيرات بجميع أنواعها ضمن حدود بيان cout.

مثالٌ عليها

كما هو الحال بالنّسبة لأي عنصر أو صف أو مصفوفة فإن جملة الطباعة في لغة سي ++ تمكّنك من طباعة أي عنصر وإظهار نتائجه على شاشة الحاسب حيث أن عمليات المعالجة تشتمل على طباعة أية مدخلات.

قم بمشاهدة الشيفرة.


2.معادلات باقي القسمة modulus



تستخدم لغة C ++ معادلات باقي القسمة على نطاقٍ واسع ، خاصةً في خوارزميّات الرياضيّات. بالتالي لا يتم الاستغناء عنها في معالجة الرسومات. وأيضاً ربما تشمل خوارزميات محرّكات البحث لاستثناء بعض النتائج من الظّهور.

وتعتمد النّسبة الباقية أساسًا على التحقّق من قبول قسمة رقم على آخر ، وما هو الفائض أو الباقي من القسمة بين الرقمين.

توفر لك دورة c ++ العديد من الأمثلة والشّروحات حول طريقة التّعامل مع تلك الأنواع من الوظائف. فهي تشتمل على استخراج باقي القسمة من متغيرين.

ما هي؟

وعلى فرض أنّنا نريد قسمة عددين صحيحين ، على سبيل المثال: 4 مقسومة على 2 ، فإن فإن الناتج هو 2. ولكن باقي القسمة في هذه الحالة يساوي صفرًا. لأن الرقم 4 هو مضاعف 2 ولا يوجد باقٍ لنقسم عليه.

وإن قمنا بعكس العمليّة بحيث قمنا بقسمة 2 على 4 ، ولأن الرقم 2 غير قابل للقسمة على 4 في الأعداد الصحيحة. فإن باقي القسمة يكون 2 لأن عمليّة القسمة في الأعداد الصّحيحة غير ممكنة.

يتم الإشارة إلى الباقي في لغة C بالرمز٪ . وهو علامة النّسبة المئوية والمعامل في لغة C . والآن سنقوم بإعداد متغيّرين من النّوع الصّحيح ونضع قيمة الباقي داخل متغير آخر من نفس النوع.

يرجى اتباع هذه الخطوات معنا.

نحدد متغيرين ونضع قيمة في كل متغير. وعلى فرض أنّ a = 5 و b = 13 على شكل: المتغيرات.

ثم نضيف متغيرًا لحفظ باقي القسمة عند تنفيذها: باقي القسمة.

ونستعرض قيمة الباقي بعد وضعه في متغير mod على النحو التالي: قم بمشاهدة الشيفرة.

بعد تنفيذ الشيفرة السابقة ، يكون باقي القسمة 5.

مثال باقي القسمة

من فضلك ، ولفهم معامل القسمة جيدًا في دورة c ++ ، انسخ الكود التالي إلى المحرر الخاص بك.

قم بمشاهدة شيفرة مثال على باقي القسمة.

تهانينا لك بإتمام القسم الثاني من دورة c ++ مع تمنياتنا لك بالتوفيق والنجاح.


3.التعليقات



في C ++ , وعند التعامل مع شيفرة كبيرة ونشرها للمطوّرين. سنحتاج إلى إدراج بعض التّعليقات ضمن مشروعنا من أجل تقديم شروحات تتعلق حول آلية عمل البرنامج.

سيتم شرح التعليقات في دورة تعلم البرمجة لغة c ++ والتي ستتطرق إلى استخدامها كثيرا في وصف وشرح الكود الخاص بك.

أنواعُها

هناك لغاتٍ أخرى تستخدم نفس علامات C ++ أثناء التعليق. وتختلف طريقة التّعليق من لغة إلى أخرى. ويبدو ذلك واضحا في أثناء التعامل مع المحرّرات.

يقوم المترجم بقراءة الكود ، متجاهلاً منطقة التعليق. والتي غالبًا ما يتمّ التّعبير عنها ببعض الإشارات في بادئة ونهاية السّطر. ولأن التعليق يساعدنا في تحليل وفهم المشروع ، سنذكر تلك الحروف التي تحتوي على قلب التعليق هي :

  • علامتي / * تعليق * /: في C ++ ، وهذه أكثر علامات التعليق مشاعًا. والّتي تظهر إما باللون الأخضر أو الأحمر أو الأسود الداكن (الرّمادي).
  • فقط علامة واحدة بجانب التّعليق //: يجب تضمينها في كل حال تواجد أكثر من سطر للتعليق. ويمكنك تمييزها أيضًا باللون الأخضر أو السّكني في أشهر محررات الكود وتظهر باللون الأخضر في بيئة Visual Studio.

خصائِصِها

  • تظهر التعليقات بلونٍ مختلف عن باقي أجزاء الكود.
  • يُمكنك كتابة ما تشاء بداخلها. فهي مخفيّة عن مرور المُفسّرات.

مثالٌ عليها

قم بتطبيق شيفرة التعليقات في محرر الكود الخاص بك.

لمشاهدة شيفرة التعليقات.

توفر لك دورة c++ نوعين من التعليقات التي تم ذكرهما في الشّيفرة السابقة. ولا مصادر أخرى مؤكّدة عن وجود أنواعٍ أخرى مُختلفة.


4.استخدام Postfix و Prefix



توفّر لك دورة c++ امثلة عديدة حول استخدامات Postfix و Prefix. فهي تُمهّد لك طريقاً جيداً لمعرفة أهم الفروقاتِ بين استخدام معاملات اللغة قبل وبعد المتغيرات. وما هي أهمّ التغييرات التي ستطرأ عند تشغيل البرنامج.

فهي تتمثّل باستخدام معاملات الزّيادة والنّقصان (++، -) في c ++. ما يعني إمّا قبل المتغيّر أو بعده.

لاستخدام المعاملات ، يجب استخدام المتغيرات الرقمية من النوع int أو float أو double. وتسمّى عملية وضع المعامل قبل المتغير بطريقة Prefix. وأمّا معاملات ما بعد المتغير بطريقة postfix.

هناك العديد من عمليات postfix والبادئة في C ++. حيث أصبح من الصعب بشكل متزايد شرح وتنفيذ بعضها ، بالتّالي سنذكر فقط الطّرق الأكثر استخدامًا في هاتين الميزتين.

Prefix

تعتمد هذه الميزة على الأداء الحسابي والمنطق قبل ظهور النتائج من على شاشة(الكونسول). لعرض القيمة الظاهرة جراء تنفيذ العملية، حيث يقوم المترجم بإحداث التغيير قبل ظهور المتغير على الشّاشة.

قم بمشاهدة شيفرة prefix.

Postfix

تعتمد هذه الميزة على أداء العمليّة الحسابيّة بعد إغلاق شاشة الكونسول. سواء أكانت تتصف بالزّيادة  أو النّقصان. ولكن لا يمكننا رؤية النتيجة بعد عمليّة الإغلاق.

قم بمشاهدة الشيفرة الخاصة بــ Postfix.

متى نستخدمها؟

إنّ أغراض استخدام إحدى الطريقتين متعدّدة. ومع ذلك ، فإن التعامل مع Prefix يدلي بنتائج جيّدة في برمجة الرسومات. خاصّةً عند معاينة عمليّات الاستدعاء وأثناء إجراء مُعادلات باقي القسمة.

تُفيد أيضاً في التّعامل مع قواعد البيانات على صفحة الخادم , حيث لا تقتصر على لغة سي فحسب. ربما تحتاج للعمل عليها عند استدعاء النتائج وطباعتها في صفحات HTML.

مثال عليها

بعد أن تكوّنت لديك فكرة جيّدة عن أهمّ الفروقات بين Postfix و Prefix. قم بمعاينة الشيفرة التالي في محرر الكود الخاص بك.

شيفرة prefix و postfix.

لقد تعرفت في دورة c ++ أهم استخدامات Postfix و Prefix نرجو منك عزيزي القارئ تطبيق الأمثلة في محرر الكود الخاص بك.


5.الدّوال في دورة سي



الدّوال هي بمثابة كتلةٍ من التّعليمات البرمجية والّتي يتم تنفيذها بمجرد الاتصال بها. حيث أنّ الدوال إحدى الوظائف المهمّة في لغة C ++. والتي توفر استخدامًا وتنسيقاً جيدين للذاكرة.

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

خصائِصُها

يجب أن تحتوي الدّوال على خصائص تُظهر وظيفتها بوضوح. وهي تستند إلى:

  • الإعلان: هي طريقة تحديد عنوان الوظيفة وخصائصها مثلا. وخاصية التحميل overloading وطبيعتها. حيثُ غالبًا ما يتم الإعلان عن الوظيفة في الجزء العلوي من Main بهذه الطريقة. مثال الإعلان عن دالة.
  • التعريف: هو الجسم الداخلي للوظيفة ، والذي يحتوي على كتلة الكود بداخله. حيثُ بدوره يحتوي على أشهر عمليّات اللغة والّتي يتم طلبها عند الحاجة. مثال التعريف عن دالة.

عمليّة الاتصال

مثال عن الاتصال بدالة.

تختلف طرق تعريف الدّوال فبعض المبرمجين يبدأ بتعريف الدالة أولاً ثمّ تنفيذها رأساً. أمّا البعض الآخر فإنّه يقوم بالإعلان عنها ومعالجتها في أماكن أخرى وكلا الطريقتين تفِي بالحاجة.

في دورة c ++ قمنا باستخدام طريقةً أكثر شموليّةً. لكي يتسنى لك معرفة ماهيّة الدّوال وكيف تعمل في لغات البرمجة.


6.دالة Main



يمكن أن نعتبرها الدّالة الرّئيسية لكلّ لغة. أو أنّها المكان الخاص باستدعاء كلّ ما تمّ إنشاؤه في المشروع(البرنامج). وفي الواقع يصعب العثور على دالّة main في المشاريع الكبيرة. ولكن عندما تصبّ بكامل اهتمامك في قراءة الشّيفرة، يُمكنك معرفة مكانها جيدًا وتمييزها عن بقيّة الدّوال.

استخداماتها

في الواقع ، هذه الدّالة بمثابة ملتقىً لتنفيذ البرنامج. حيث لا يمكن تشغيل الشّيفرة دون المرور بالدالة main. بالإضافة وحتى أنظمة التشغيل في لغات الحاسب تعمل في غُضونها.

لا يمكن تكرار دالة main وتعريفها أكثر من مرة في البرنامج. بل يتمّ وضعها ولمرة واحدة فقط داخل المشروع. حينئذٍ سيُدرك المترجم ذلك تلقائيًا وبأنّ القراءة الكاملة للشّيفرة وتنفيذها سيتمّ عبرها.

يتسنّى لك استدعاء كل ما قمت بكتابته في صفحاتك عبر دالّة main وعن طريق:

  • الاتصال بدوالٍ أخرى.
  • بالكائنات أو الفئات (Classes , Structures).

مثال عليها

شاهد مثال على دالة Main.

لقد تم ذكر نوع واحد من دالة main في دورة c ++. وبالرّغم من أنّك تستطيع استخدام بديلاً آخر من نوع void.


7.المتغيرات الثابتة



في c++ وعند التعامل مع المتغيّرات الثابتة. فإن المتغيّر يحافظ على القيم المخزّنة بداخله طوال عمر البرنامج. وعادةً ما يتم الإشارة إليه بكلمة static.

على سبيل المثال ، نقوم بإنشاء متغير من النوع static int val = 0. وهذه العلامة تُشير إلى أنّه محجوز في ذاكرةٍ خاصة للمتغيرات الثابتة. دون الرجوع أو التبديل إلى قيمة أخرى، وهذا ما يميّزه عن سائر الأنواع الأخرى.

كيفية الاتصال به

قد تختلف لغات البرمجة في طرق الوصول إلى المتغيرات الثابتة من داخل الكائن. ولكن في C ++. يتم الوصول إلى المتغير الثابت عن طريق تضمين اسم الكائن (الفئة) ووضع علامتين: النقاط الرأسية. حينئذٍ سيظهر لك تلقائيًا.

على سبيل المثال ، سنعرض لك رمزًا لعدّادٍ داخل الكائن ونجعل قيمته تزداد تلقائيًا عند ولادة أي كائن من نفس الفئة. قم بإلغاء الثابت من المتغير ولاحظ الفرق.

مثالٌ عليها

شاهد مثال عن المتغيرات الثابتة.

سيتم شرح المتغيرات الثابتة بشكل مخصّص في مستوياتٍ متقدمة من اللغة. حيث سيتسنّى لنا استخدامها في مشاريعٍ كبيرة.


8.أنواع المتغيرات



توفّر لك دورة سي العديد من المتغيّرات والتي بدورها الأكثر استخداماً في جميع لغات البرمجة. فمنها ما هو أعداد صحيحة. أو اعداد عشرية أو أحرف أو غيرها.

أشكالُها

هناك أنواع عدّة من المتغيرات في لغات البرمجة. لكنها تشترك في نفس الخصائص مع فروقاتٍ بسيطة في التّسمية. زفي لغة ++ C ، الأنواع الرئيسية للمتغيرات هي:

  • الأعداد الصحيحة int: الأعداد الصحيحة بدون كسور عشرية وبقيمة 4 بايت في الذاكرة.
  • مزدوج Double: أعدادًا كبيرة تحتوي على كسور عشرية. مع حجز قيمة في الذاكرة تصل حتى 8 بايت.
  • الأحرف char: أحرفًا منفردة وحجمها في الذاكرة 1 بايت لكلّ حرف.
  • النصوص String: النص بداخله وحجمه في الذاكرة 1 بايت / حرف.
  • منطقي/ بوليان Boolean: يحتوي على قيمة. فهي إمّا صحيحة أو خاطئة وحجمها في الذاكرة 1 بايت.

استخداماتها

استخدامات المتغيرات متعدّدة ، وهي الحافظة الرئيسية لجميع قيم مشغل البرنامج. بالإضافة أنه لا يمكن التخلي عنها. كما أنّها تعد من مكونات البرمجة بذاتها ، وهي مؤثر قوي على الدوال والصفوف وأيضاً الحلقات recursion.

مثالٌ عليها

بعدما تعرّفت على أنواع المتغيرات في دورة c ++. قم بالتمعّن في الشيفرة التاليّة ومن ثم نسخها في محرر الكود الخاص بك.

شاهد مثال عن المتغيرات.


9.الدالة الباطلة void


هي دالة شاذة لا تمكنها خصائصها من إرجاع قيمة ما ولا يتم اسنادها لمتغيرات. فهي تعالج القيم بداخلها. من أشهر تسمياتها الدّالة باطلة أو void.

استخداماتُها

لها أوجه استخداماتٍ عدّة في اللّغة. حيث أنها تؤثر على القيم المحدّدة في الشيفرة, كما تعمل على إدارة الذاكرة بشكلٍ جيد في حال تعذّر الحاجة لجلبِ القيم.

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

مثالٌ عليها

مثال على void.


10.الدالة recursion


يصحّ تسميتها أيضا بدوال Retro. وهي تشير إلى أغراض استخدام في غاية الأهمّية للغة C. حيث يمكنك إرجاع قيمة ما تمّت معالجتها داخل الدّالة ومن ثمّ تمريرها إلى متغيّر آخر ، وبناءً عليه يتمّ الإجراء.

الصيغةُ العامة

لا تختلف كثيرًا عن شاكلة الدّوال من نوع void ، إلاّ أن أهمّ الفروقات الناجمة عنها هي بذاتها إحدى خصائصها. والقيمة المُرجعة غالباً ما تكون من نوعها.

  • int.  ارجاع قيمة من نوعint.
  • Float. ارجاع قيمة من نوع  Float.

كما أشرنا في سطور الأمثلة أعلاه. فإنّ نوع المتغير الذي قمنا بتحديده في بداية الدالة هو ما يجب إرجاعه. حيث لن تعمل الدالة إلا بإرجاع نفس النوع من المتغيّرات.

وأنواع دوال الإرجاع حسب متغيرات C القياسية:

  • int.
  • Float.
  • String.
  • دالة من نفس نوع التعريف.

مثالٌ عليها

هناك العديد من الأمثلة على الدّوال الرجعيّة(recursion). وفي دورة c ++ المستوى الأول سنحاول تبسيط المسألة قَدر المُستطاع وفي مثالٍ واحد.

دالة Rucursion.


11.استخدامات Strings



متغيّر String وهو مصفوفةٌ من الأحرف في الذاكرة. حيث أنّها فئة مشتقّة من مساحة الاسم std. وكل حرف داخل سلسلة يحتوي على 8 بت.

الفرق بين String و Char

الحرف char هو أصغر وحدة تتشكّل في الذّاكرة من الأحرف الأساسيّة. حيث تعتمد زيادة حجم الذّاكرة في متغير char على تحديد مساحةٍ من القيم قابلة للزيادة تلقائياً.

في لغة سي القياسيّة تم إضافة namespace يحتوي على مكتبة Strings. حيث كان المبرمجين يعتمدون قبل ذلك على إنشاء مصفوفة Static من الأحرف char. وغالباً ما يتم الإشارة إليها بمساحاتٍ محدودة.

في دورة c ++ سنتعرف على أنواع وصيغ مختلفة من استخدامات String.

أنواع string

هناك أكثر من طريقة في الإشارة الى متغير string، بما في ذلك:

  • string s1 (“Man”): ضع القيمة النصية بين قوسين.
  • “string s2 =” World: حدد المتغير وضع النّص بين الاقتباسات.
  • string s3: تحدّد المتغيّر من ثم إضافة النّص في وقت لاحق.

مثالٌ عليها

في حوزتنا مثال يوضح لك ماهيّة النصوص وكيفية استخدامها. في دورة c ++ المستوى1. لن يتسنّى لنا الإشارة بكافة صيغ التّعريف. حيث سنتولّى ذكر أهمّها في تعريف النصوص.

استخدامات String.

تهانيناً لك بإستكمال الدرس الحادي عشر من لغة c ++.


12.الأحرف Char



يتم الإشارة إليه بالتّعريف char بلغة C ++. وهي مساحة محجوزة مخصّصة ويمكن استخدامها كثيرًا. كما أن فئة string القياسيّة تم بناؤها في متغيّرات الحروف.

دالة Setw

دالة Setw قادرة على اختيار جملة محددة من بين النصوص. ستختار هذه الوظيفة أول جملة مطبوعة. لكن طول الكلمة لا يتجاوز 20 حرفًا.

عند تحديد أي متغيّر من نوع char ،  ننصحك بطرح الطول الإجمالي للحرف من قيمة كافية في الذاكرة. لتفادي تجاوز سعة الذاكرة التي قمت بتحديدها.

مثال على char

لفهمِ متغيرات char في دورة c ++ ، انسخ الكود التالي في محرر الكود الخاص بك.

شاهد شيفرة مثال على Char.


13.الإدخال في C++



ليس شائعاً بكثرة في أساسيات تعلم اللغة نظراً لقلة استخدامه أثناء ربط مكتبات الأطراف الثالثة. لكن نعتبره أساساً في تحليلِ البيانات. خاصّة عند بناءِ شيفرة في لغة C القياسية.

في دورة c ++.سنقدم لك الشّروحات حول طريقة استخدام وحدة الإخال.

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

أوامر الإدخال C++

هو بطبيعته أمرٌ برمجي يسمح لـ C ++ بقراءة معلومات الإدخال. حيث إما عرضها على الشّاشة أو الاحتفاظ بها في الذاكرة المؤقتة.

مثال

انسخ هذه الشيفرة في المحرر الخاص بك. لترى كيف تعمل وحدة الإدخال من مكتبة C++ القياسية.

جملة إدخال.


14.المعاملات في لغة c++



في دورة c ++. سنُدلي بأهم عناصر الاستخدام وهي المعاملات.

المعاملات من أساسيات لغات البرمجة. حيث تدل على استخدام علامات الجمع والطرح والقسمة والضرب (+ ، – ، / ، *). أو أكبر من وأقل من (<،>). بالتالي غيرها من العوامل التي سيتم التطّرق لها فيما بعد.

استخداماتُها

يمكن استخدام المعاملات في C ++ لأداء العمليات الحسابية والمنطقية في المعالجة. مما تودي غالبًا إلى نتائج وفروقاتٍ في شاشة الكونسول.

أنواعُها

تتوفر المعاملات في لغة C ، على شكل:

  • من نوع []: تستخدمها بشكل واسع في المصفوفات وتسميات العناصر. عن مثال أقواس[].
  • المؤشر <-: نستخدمها في الإشارة إلى المتغيرات وعناوينها. مثال المؤشر.
  • * النجمة: نظرًا لاستخدامها في عمليّات الضرب. إلا أن لها دواع استخدام أخرى أيضاً. مثال النجمة.
  • تشير علامة && الى عناوين المتغيرات في الذاكرة. علامة reference.
  • <<، >> رموز Bitwise: نستخدمها كثيرًا في جمل الطباعة وجمل الإدخال. ولها استخدامات أخرى متقدّمة. علامات Bitwise.
  • <، <= العلامات: للتمييز بين أكبر من> أو أصغر من <أو أكبر من أو يساوي <= أو أقل من أو يساوي> =.علامات أكبر وأصغر من.
  • الإشارات == ، ! =: هي علامات داخل الجمل الشرطيّة ، تساوي == أو لا تساوي! =.تطبيق الإشارات.

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


15.الحلقات التكرارية For Loop



موضوع for loops مزعج قليلًا للمبتدئين ، لذلك نطلب منك التركيز جيداً. وسنحاول تبسيط المسألة قدر المستطاع.

For loop هي بالأصل دالة تبدأ بالكلمة for والشرط والتنفيذ داخل الأقواس. والحلقة for هي عصبٌ مهمّ للغة البرمجة C ++ ولغات البرمجة الأخرى. فهي بمثابة حاسبة تعمل بتوالي الأرقام جمعاً أو طرحاً أو الإثنين معاً(في مراحل متقدمة).

فوائدُها

على سبيل المثال , وفي حال أنّك تريد البحث في مصفوفة تحتوي على 8 عناصر. فسيكون ذلك على النحو التالي:

الحلقات التكرارية.

وإن كنت تريد طباعة العناصر على شاشة (الكونسول). فإنّك ستقوم بطباعة عناصر المصفوفة واحدًا تلو الآخر ، بحيث يبدو ذلك كما يلي:

مثال2 على الحلقات التكرارية.

ما يصح لنا تسمية العمليّة بــ HardCoding. فهي تتعاملُ مع عددٍ من البيانات يدويًا. وهذه المسألة بالتالي قد تُجدي نفعًا في عنصرًا أو عنصرين لكنها مُرهقة للغاية إن كنت تريد طباعة 200 عنصر.

على سبيل المثال ،لن يكن الأمر مرهقًا على مستوى الطباعةِ فحسب، ولكن أيضًا في جلب البيانات ومعالجتها. بالرغم من ذلك , جاءَت دالًة forloops لتكن بذلك الحل الأمثل للتجوّل فيما بين العناصر كافةً.

آليّةُ عملِها

مكونات دالة forloop هي:

  • القوسين (): يتم إرفاق قوسين وداخل الأقواس متغيّر يعمل بمثابة ساعةٍ للعدّ.
  • الأقواس المجعدة {}: لمعالجة القيم الموجودة بداخلها.

التطبيق

سنعمل  خطوة بخطوة في كتابة الكود أولاً:

سنقم بإضافة مصفوفة مكونة من عناصر عدّة.

مثال3 عن الحلقات التكرارية.

المتغير i هو العداد للحلقة التكرارية ، ويجب ألاّ ننسى وضع الفاصلة المنقوطة في C بالطريقة المبينة في الشيفرة.

على سبيل المثال, تخيّل أن هنالك قلم يكتب في حلقة for. وفي كل دورة يضبط من قيمة ساعة العد ومن ثمّ يعمل على زيادتها.

بعد ذلك يدخل في جسم الحلقة for. و بالتالي يعود مرة أخرى للأعلى. ثمّ يضبط قيم العداد من جديد ، وهكذا دواليك.

في الواقع ، القلم هو المترجم ، الذي يستمرّ في الدوران داخل الحلقة التكرارية حين تنتهي. ثم ينتقل إلى مهامٍ أخرى أو ينهي البرنامج.

هذا هو إيقاع البرمجة. إن أتقنتها في فهم الحلقات التكرارية ، فستفهم الكثير لاحقًا.

قم بنسخ شيفرة حلقة for:

الحلقات التكرارية.

من أجل تعزيز أهميّة الحلقة for. يجب أن ندرك أن المصفوفات لها عناوين وعناصر في الذاكرة. وكل عنوان في مكان مختلف في الذاكرة.

على سبيل المثال ، إذا أردنا الوصول إلى عنصر str [ 3]. التي تحتوي على القيمة “Hello” ، في عداد الحلقة التكرارية. فكل ما علينا فعله هو استخدام جملة الطباعة ليظهر العنصر على الشاشة.


16.الجملُ الشرطية


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

التعريف

تتكون الجملة الشرطيّة من صيغة عامّة . حيث تدلّ على خصائصها وهي: 

  • if (الشرط): يبدأ بكلمة if ، وعادة ما يحتوي الشرط على نفي أو إثبات للقيمة.
  • {} الأقواس : الأقواس المُجعّدة باعتبارها دالّة قياسيّة في اللغة.

مِثال على رمز جملة شرطية فارغة.

فوائد استخدامُها

الجمل الشرطيّة لها فوائد للمبرمج وللمشروع ، ومن أهمّها:

  •  حصر الخيارات في قيمٍ يعملُ على تخصيصها المبرمج للعتاد.
  • استيعاب أعداداً لامحدودة من الاحتمالات. وإغلاق الوظيفة في حال استيفاء الشرط.

مثالٌ عليها

في دورة c++ نقدّم جملة شرطيّة قصيرة.

مثال عن الجمل الشرطية.

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


17.المصفوفات



المصفوفة، هي حيّز من المساحة يتم تخصيصه في الذاكرة ، حيث يتكون من متغيّر يحوي على قيمٍ عدة من العناصر.

أسْبابُ استخدامها

يعود استخدام المصفوفات لحاجة من المبرمجين في تنظيم وتنسيق العناصر في الذاكرة. فهي تعود عليهم بالفائدة في حال كان هناك أعداداً كبيرة من العناصر يصعب التّعامل معها.

على سبيل المثال ، عند تحديد 3 متغيرات ، int a = 5 ، int b = 1 ، int c = 6 ، سيتطلب ذلك منك المرور بكافة العناصر وكأنك قمت بدورٍ حسابي عوضاً عن الحاسوب.

وهذا من شأنه ضعف وهشاشة الشيفرة البرمجيّة. لذلك كان لا بد لك من بناء مصفوفة وتعبئة البيانات اللازمة. دون أدنى اكتراث لأماكن وجودها في الذاكرة.

قيمُها

تختلف طريقة طباعة أو قراءة المصفوفة. عن الطرق التقليدية لتعريف المتغيرات وقراءتها.

على سبيل المثال ، وعند طباعة متغير من النوع int a = 6. نسمي هذا المتغير باسم فريد من نوعه داخل المحرر.

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

الفهرس هو مخزن الذاكرة الذي يحوي مكان وعنوان تلك المتغيرات. بالتالي نحدد قيمها بحريّة تامّة ودون الحاجة لاستخدام أسماء وتعريفاتٍ إضافية.

مثالٌ عليها

في دورة c ++ المستوى الأول سنتطرق إلى تضمين مثالٍ واحد حول المصفوفات.

مثال على مصفوفة.


18.الصفوف في لغة C++



قد تحتاج أحيانًا إلى كتابة الفئات أو الكائنات على صفحة واحدة. من ثمّ تنفيذها مع دوالها خارجياً وعند الحاجة. هل هذا ممكن؟.

نعم هذا ممكن. تتمثل إحدى خصائص الوظائف أو الدوال في أنه يمكن تنفيذها في طريقة الإعلان والتعريف. في هذا الدرس ، سنضع رمزًا للفئات الموجودة لدينا في مكان ما. ثم ننفّذ الوظائف خارج حدود الكائن وذلك عن طريق الاتصال المباشر به.

أسباب استخدامُها

في بعض الأحيان تتطلب منا الشيفرة بعض التنظيم ، وحلول البرمجة متعددة آنذاك. ونحن الآن أمام لغة تتيح لنا العديد من الحلول.

لذلك كان من السهل على المبرمجين جعل الصفوف في صفحات أخرى من لغة سي. ومن ثم استدعائها وتنفيذها في مكان آخر.

الآن, سنتعلّم سويّاً انشاء Class ووضع بعض الدوال والمتغيرات بداخله. ومن ثم نقم باستدعائه في صفحة MAIN الخاصة بلغة C++.

طريقة انشاء Class

سنقوم بعمل Class بمتغيرين ومتغير ثالث يقوم باستقبال النتيجة. بالتالي نعمل على تنفيذها في دالّتين بداخل الــ Class.

مثال على إنشاء Class.

لاحظ أننا صنعنا Class هنا وقمنا بتسميته calculate. وأعطيناه قيمًا داخلية للمتغيرات x و y. وسيعيد المتغير res القيمة جراء جمع المتغيرين بدالّة.

تستطيع عمل Decleration(تعيين) لاسم الدالة بداخل Class. ومن ثم تقم بالاتصال بها من الخارج. شريطة أن تقم بتعريف اسم Class التي أتت الدالة منه.

الاتصال بالدوال من الخارج

في دورتنا هذه (دورة c ++). نريد استخدام طريقة أخرى. ولتكن الاتصال من خارج Class. واجراء بعض العمليّات الحسابية بنفس متغيراته.

اتصال الدوال.

لاحظ أننّا قمنا باستدعاء دوال Class السابق. ومنها دالة الحساب process. والتي جمعنا فيها قيمة x و y ووضعناها في متغير يسمى res.  والذي سيتم تطبيقه في دالة رجعية getResult.

إضافة كائن في دالة main

ننتقل الآن إلى المرحلة الأخيرة ، وهي الاتصال بالكائن الذي قمنا بإنشائه . بالتالي يصبح الكود الرئيسي كما يلي:

شاهد المثال.

في السطر الأول ، حددنا الكائن ، وهو من نوع Calculate (الكلاس الذي قمنا ببنائه سابقًا). ثم أطلقنا عليه اسم test، وأطلقنا عليه اسم دالة process.

وبما أن وظيفة getResult هي دالة ارجاع قيمة. فقد تلقّينا قيمتها داخل متغير حدّدناه في الأساسي. وهو نوع val من نوع الدّالة تمامًا. بحيث تظهر قيمة المتغير في شاشة الكونسول.

لقد حاولنا قدر المستطاع تبسيط الشروحات حول الصفوف في دورة c++ مستوى المبتدئين. كما أن للصّفوف استخداماتٍ واسعة في لغة سي. وفي وجودها ستتمكن من عزل الكثير من القُمامة البرمجية.


19.المؤشرات(Pointers)



المؤشرات من أهم خصائص لغة C ++. فهي تحمل بداخلها أهم عنصر من المتغيرات وهو العناوين. حيث تتحكم في عمليات الذاكرة بشكل واسع وغير محدود. وهذا ما يميز C ++ عن لغات أخرى تفتقر إلى هذه الميزة.

تعريف المؤشرات

تؤدي المؤشرات دورها بشكل مثالي. حيث إنها قادرة على الوصول إلى عناوين المتغيرات الأخرى والتحكم في موضعها في الذاكرة. ويتم تحديد المؤشرات بواسطة هذا النحو الخاص int * p = & x.

لنتفادى تعقيد المسألة . إذا نظرنا إلى المتغير عند تعريفه. فسنجد أنه مكون من:

  • & العنوان المرجعي: عنوان فريد في الذاكرة متبوع برموز معينة. ولا يمكن لأي متغير آخر الحصول على ترتيبه في الذاكرة.
  • القيمة: هي القيمة التي نراها عند تعريف المتغير, على سبيل المثال. يمكننا القول أن لدينا متغيرًا int x = 10 والمؤشرات تلعب نفس الدور تقريبا في ذلك الأمر.
  • عدد صحيح وله قيمة مساوية لـ 10 ، لكن له عنوانًا مخصصًا في الذاكرة. حيث يمكننا الوصول إليه من خلال تضمين a & قبل المتغير ويسمى مرجعًا.

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

جلب العناوين

سنقدم مثالاً لجلب عنوان المتغير الذي حددناه مسبقاً في الذاكرة:

نحدد متغير عدد صحيح كالذي في الرابط هنا.

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

قم بمعاينة وتشغيل هذا الرمز لإظهار نتيجة الكونسول كما يلي:

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

المتغيرات المؤثرة

من أهم خصائص ووظائف المؤشرات أنها يمكن لها التأثير في قيم المتغيرات الأخرى. على سبيل المثال. الآن سنقوم بتعريف المؤشر الأول في الذاكرة وربطه بعنوان المتغير a الذي حددناه سابقًا.

نحدد المؤشر ونسميه Pointer* وهو أيضًا من نوع الأعداد الصحيحة. ومن المهم تحديد مؤشرات نوع المتغير.

شاهد المثال التالي.

نلاحظ هنا أن المؤشر يجب أن يأخذ عنوان المتغير أثناء التعريف. فمن غير المقبول من قبل المترجم تحديد المؤشر ثم ربطه لاحقًا في عنوان المتغير.

نقوم بزيادة قيمة المتغير a بالمؤشر باستخدام طريقة البادئة. بحيث يصبح شكل الكود كما في المثال.

في الخطوة الأخيرة ، سنطبع قيمة المتغير a لنرى تأثير المؤشر.

مثالٌ عليها

من فضلك ، لفهم المؤشرات جيدًا في دورة c ++. انسخ الرموز التالية في محرر التعليمات البرمجية الخاص بك.

شاهد مثال شامل عن المؤشرات.

عزيزي القارئ , في حال وجدت أن درس المؤشرات في دورة c++ ينتابه بعض الصعوبات . ننصحك بالتركيز على الدروس السابقة وركن المؤشرات إلى حين الحاجة إليه.

بعد أن أنهيت دورة c++ المستوى الأول ,بالتالي ستكون قادرا على تنفيذ بعض البرامج والتمييز بين أنواع المتغيرات والصفوف والدوال.

لقد تم وضع هذه الدورة التعليمية في صفحة واحدة وبشكل مختصر ويسير لتتمكن من حصر اللغة وأساسياتها في دورة واحدة.

الخلاصة

  • تحتاج لغة C++ وقتا ليس بالقصير لفَهم الأَساسِيات بالتالي كتابة الكود بطريقة صحيحة.
  • ينصح بالممارسة يوميُا في المراحل الأولى من تعليمِ اللغة(نصائح حول لغة سي).
  • دورة c++ المستوى الأول ستمكنك من الانطلاق لمستويات عُليا في البرمجة.
  • للمزيد من المعلومات والاستفسارات الرجاء التواصل على البريد الالكتروني: admin@hiperaktif.org.
هل أعجبك المقال؟

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.