شرح التعامل مع لغة ++C في حلقات حصرية من قناة عزيز
التعريف بلغة ++C و اهميتها في عالم البرمجة
تتعدد لغات البرمجة في عصرنا الحالي بتعدد وظائفها و استعمالاتها ، فمنها ما يستخذم في برمجة الويب مثل HTMl ,CSS ,JavaScript و غيرها و منها ما يستخذم في برمجة التطبيقات مثل python, و لغات C و منها ما يستعمل في مجال الذكاء الصناعي اي الالات و غيرها الكثير ، اعرف ان هذا قد يبدوا كثيرا لكني لم اذكر الا نقطة في بحر اذ توجد اليوم حوالي 622 لغة برمجة حول العالم . و ما يهمنا الان من كل هذا هو لغة البرمجة ++C ، اذ فرضت على الكثير من الفصول تعلمها ، رغم انها لغة قديمة و طبعا هي تحديث للغة C الا انها كانت مرموقة في عصرها في سبعينيات القرن الماضي . طبعا لا تتوقفوا عند حد ما أشرحه لان ما سأشرحه بسيط جدا و مجرد اساسيات .
ادوات العمل :
- ستحتاج الى جهاز حاسوب ، لا يتوفر لديك حسنا لا مشكلة . المراد بالحاسوب هو تثبيت برنامج يمكننا من التعامل مع اللغة و ايضا انجاز قراءة لها لنفهم اللغة بتجربتنا الشخصية (هذه افضل طريقة للفهم في رأيي المتواضع ) .
- ستحتاج الى تثبيت البرنامج التالي : الحجم 48Mb فقط يعمل على كافة انظمة ويندوز مع الاصدارين 32bit و 64bit نزله من هاتفك و ارسله لحاسوبك و تبثه بشكل طبيعي ليس هناك اي تعقيدات في ذالك ، رابط التحميل .
- لا تتوفر على حاسوب اذن فكل ما عليك فعله هو الدخول على الرابط التالي : اضغط هنا تم قم بتجربته كما تريد .
- لا تريد العمل على موقع اونلاين لأسباب ضعف الاشارة او غيرها حسنا ، لقد وفرت لك تطبيق للاندرويد يعمل بكفاءة جيدة جدا : اضغط هنا لتحميله!
حاولت ان اوفر لكم الكثير من الحلول و اذا واجهتكم اي مشكلة مثلا عندك نظام lunix او الايفون او غيرهما من انظمة التشغيل و ترغب في برنامج يعمل عليها المرجوا ترك تعليق و سأقوم بالبحث لك عن حل .
لا تنسى زيارة المقالة الخاصة بتحميل هذه التطبيقات
أساسيات لغة ++C
مبدأ التواصل مع الالة
اللغة هي مبدأ التواصل مع اي شيء او اي شخص ، يطلب منك ايضا اتقان بعض الكلمات في الانجليزية او على الاقل معرفة دورها في لغة ++C . التواصل مع الآلات لا يشبه التواصل مع البشر لسبب مباشر و هو ان البشر هم من وضعوا هذه اللغات كحل لمشكلة التواصل مع الالات المعقدة جدا . ثم بعدها يأتي دور المبرمجين الذين تعلمو مجمل اللغات ليسهلوا التواصل اكثر بكثير . الالات تخضع لمنطقة نسميه بالخوارزميات algorithme و كلنا طبعا نعرف العالم الرياضي الخوارزمي .الخوارزميات شيء سهل المنال او الفهم لكن تبقى المسألة في التطبيق . من اساسيات البرمجة ان تفهم ما تريد القيام به ثم ترتب افكاره او سطوره عليك ان تركز جيدا في هذه المسألة اقصد اي أمر ستكتب و في أي سطر . ثانيا ركز على فهم الدوال ، لماذا؟ ، لان استعمالك للدوال الصحيحة في المكان الصحيح يوفر لك الوقت و الجهد و يجعل عملك سهلا ، في حين تكتب برنامجك في ثلاث اسطر تكتبه في 20 سطرا ، لا تفكر بتعقيد . ثالثا اي عملية كنت ستكررها عدة مرات ، ضع لها دالة fonction لكي لا تزيد سطورا بلا فائدة . اما فيما يخص برنامجنا التعليمي فلا انوي الاطالة عليكم و في نفس الوقت أحبذ إليكم تعلم البرمجيات ، سنعمل على برامج مباشرة ، اترك لكم سؤال في آخر كل برنامج لأجل تطويره من قبلكم
البرنامج الاول
بداية سنقوم بصنع برنامج يقوم بكتابة ارقام الزوجية الاقل من عشرة ، الان سنفكر كمبرمجين و ليس كبشر اقصد انه يكفي ان تقول لأحد أكتب لي الارقام الزوجية الاصغر من 10 فيكتبهم ،لكن لا يسير الامر هكذا مع الآلات عليك ايصال الفكرة لها حسب ما تعرفه اي باستعمال الدوال المتوفرة و المنطق الرياضي . اذن اولا نقوم بفتح البرنامج الذي نزلناه و تبثناه على هواتفنا او اجهزة سطح المكتب ، باعتبار ++C لغة قديمة نسبيا فإنه يتوجب عليك دوما استدعاء المكتبة قبل البدأ في العمل ، اذن نكتب في اول سطر <include <iostream# و هي مكتبة تحتوي على مجمل الاوامر التي نحتاجها . ننتقل للسطر الثاني و نكتب using namespace std و ذالك لكي لا نستخذم الكلمة std باستمرار و هي مجرد اختصار لكلمة standard. بعدها نعرف الدالة الاساسية و نكتب ()int main و int هي اختصار ل integer اي عدد طبيعي و تعتبر من احد انواع الصفات ، يوجز ايضا float و double اي عدد يحتوي على فاصلة و يختلفان في عدد الارقام بعد الفاصلة و bool اي قيمة منطقية (صحيح true , خطأ false ) . و ايضا نجد char اذا اردت كتابة حرف و string في حالة اردت كتابة سلسلة نصية (حرفين فما فوق) و void لتعريف متغير بدون قيمة ، أصبح الان الشكل الرئيسي لبرنامجنا كالتالي :
الان اعرفكم الى بعض الحلقات التي تنجز عمل لعدة مرات :
For : هذه الدالة تعيد القيام بنفس العملية طوال العدد الذي تريده من المرات .
While : تقوم بتنفيد الاوامر داخلها لطالما ان الشرط الذي وضعته متحقق
Do while : تنجز العمل مرة واحدة ثم تكرره فقط اذا تحقق شرطك .
سنستعمل الدالة For لنبرمج برنامجنا ليقوم باظهار كل الاعداد الزوجية الاصغر من 10 ، اكتبو الكود التالي :
النتيجة هي : 0 2 4 6 8
يمكن تنفيد نفس الشيء بطرق اخرى اكثر تعقيدا و كلاهما صحيح لكن يبقى المبرمج الجيد هو الذي يحل مشكلته بأقل جهد ممكن و أقل سطور ممكنة بالطبع . مثلا يمكننا فعل نفس الشيء باستعمال modelo يرمز له ايضا ب mod او % و يستعمل كتالي : a mod b او a%b للحصول على النتيجة b بشرط ان يكون الخارج عدد صحيح طبيعي بدون فاصلة و الناتج هو الباقي من عملية القسمة . كمثال نأخذ 3%5 يعطينا 1 و كذالك 3%6 يعطينا 0 . a%b=0 يعني ان a يقبل القسمة على b و هاكذا . نستعمل موديلو الان في انجاز نفس العمل :
يمكنكم تجربة تشغيله سيعطيكم نفس النتيجة السابقة : 0 2 4 8 ، يمكننا ان نعقد الامر اكثر بكثير لذالك نستنتج انه يمكن انجاز نفس العمل بطرق مختلفة لذالك فلنحاول إيجاد ابسط طريقة ، بالمناسبة if هي بالعربية -اذا- بمعنى اذا تحقق مابين القوسين فسينفد الامر داخل المعقوفتين ، و باعتبارها داخل حلقة for فما بداخلها سيتكرر عدة مرات و اما بالنسبة للرمز == فيعني -يكافئ- عكس تساوي التي نعين بها قيمة المتغير، كيف ننتقل ببساطة الى كتابة الاعداد الفردية ؟ كل ما علينا هو اضافة علامة ! بعد القوس الاول في شرط if لتصبح :
الرمز ! عمله هو عكس القيمة المنطقية للشرط ، اذا كان true ترجعه false و العكس صحيح . احرصوا على التفكير بمنطق غير معقد . الان ننتقل لسؤال لتطوير هذا البرنامج ، انطلاقا من كل ما علمتكم اياه الى الان : احتجت الى حساب عدد مضاعفات رقم 13 الاقل من 1000 لكن من المؤسف انك لا تعرف جدول ضرب 13 و ليس لديك اي فرصة في حسابها بدون خطأ ، انشئ برنامجا يساعدك ؟ بعد الانتهاء ، استخلص من كودك البرمج برنامجا يستطيع حساب عدد المضاعفات لاي رقم يدخله المستخذم و الاقل من الرقم الذي يدخله المستخذم ؟ ضع الكود في تعليق لتعرف رأيي و تحصل على نصائح
البرنامج الثاني
الان ننتقل الى برمجيات اكثر تعقيدا من الحلقات و هي الدوال ، كلمة دالة تذكرنا بالرياضيات ، مادة جميلة حقا . اجل انها نفس الشيء تعرف دالة ما définit la fonction و تضع لها برامتراتها les paramètres و متغيراته المحلية les variables local ، شكل تعريف الدالة هو كالتالي :
كما تلاحظون مع الدوال انها تستدعا خارج الدالة الرئيسية main طبعا لانها دوال اخرى . عرفنا الدالة و القيم التي تخرج بها كما ترون في المثال int اي عدد طبيعي ثم عرفنا البراميتر n ايضا كعدد طبيعي ( يمكن تعريف ما لا نهاية من البرامترات او لا احد منها) . و ما لم اقم به هو تعريف متغير داخلي او محلي variables local يمكنكم فعل ذالك طبعا ( ملاحظة المتغير المحلي يكون معرفا داخل المعقوفتين فقط اجتيازهما يعني خطأ) و اخيرا استخذمت return اي ارجاع قيمة و هي n*2 معناه ان الدالة ما هي الا عدد تدخله و يضربه في اثنان و يعطيك الناتج هذا كل شيء. ماذا الان لو اردنا من هذه الدالة القيام بعملية مثلا عرض شيء او اي عملية كنت ستكررها مثال نص : "ضعف الرقم x هو 2*x" و انت ستكتب هذه الجملة عدت مرات مع تغير x فقط فلما لا تدع الاجراء procédure يقوم بالكتابة عنك ، اذن الفرق بين ال fonction و ال procédure هو وجود ارجاع داخله return ، سهل جدا . نحاول الان العمل مع procédure لكي نرحب بشخص ما ، اكتبو ما يلي :
عرفنا هنا اجراء او procédure بدون اي برامترات les paramètres بهذف كتابة جملة "bonjour name" بحيث ان name هو الاسم الذي سيدخله المستخذم عبر الدالة <<cin و التي تخول للمستخذم ادخال معلومات لاجل توفير استخذام جيد ، ثم انتقلنا الى الدالة الرئيسة main و استدعينا داخلها الدالة bonjour مع ترك ما بين القوسين فارغين لانها لا تحتوي على اية براميترات paramètres ، الان برنامجنا سيكون عبارة عن آلة حاسبة تدخل العملية ثم يقوم البرنامج بالحساب ، اذن سنستعمل fonction الدالة التي سنسميها calcul و التي ستقوم بحساب ما يدخله المستخذم و ترجع لنا بقيمة بمعنى ستقوم بإرجاع return للناتج résultats و لأجل ان لا أطيل في هذا المقال سأترك لكم رابط الصفحة التانية من هذا المقال ، صراحة ينقصني كتاب كامل لشرح لغة برمجة واحدة !