programme calculatrice c++ - language C++

برمجة الة حاسبة calculatrice في لغة البرمج ++C


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

البرنامج الثاني calculatrice


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

المتغيرات و الثوابت  variables et constantes


تمكننا اغلب لغات البرمجة من تعريف متغيرات متعدد الانواع لسبب رئيسي و هو ان المحتوى في التطبيقات ديناميكي و ليس ثابتا . تمكننا لغة البرمجة ++c من تعريف القدر الذي نرغب به من المتغيرات و في جميع المواضع مع اخذ بعين الاعتبار مايلي : يجب عليك تعريف نوع المتغير من الانواع التي رأينا سابقا (... int float ) ،و عند تسميته انتبه لحالة الاحرف لان المتغر A  ليس هو a يعتبران متغيرين مختلفين في لغة البرمجة ++C ، ايضا لا تسمي المتغير بنفس اسماء الدوال او الحلقات او الثوابت او غيرها يعني لا تسميه if for ...main لكن يضل بإمكانك تسميته ...IF FOR لانها حساسة لحالة الاحرف ، ايضا لا تستخذم الرموز في التسمية . يمكننا تشبيه المتغيرات بكيس تعطيه للالة ، من الممكن ان تعطيه لها فارغا او مملوئا ، المهم ان تحدد ما نوع استخذام ذاك الكيس لكي يعلم هل سيستخذم كيسا صغيرا او كبيرا ، والاهم من ذالك ان ما بداخله يمكن تغيره عكس الثوابت التي تضع لها قيمة عند تعريفها و لكن لا يمكنك تغييرها و طبعا قم بذكر نوعها عند التعريف بها . تجدون هنا امثلة على طرق التعريف :


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

اذن في الغالب تكون عرفت متغيرا و تريد ان يحدث شيء مختلف في حالة كان يساوي قيمة ما ، استعمال if في حالتك ممكن لكن الافضل ان تستخذم switch . تقوم هذه الاخير باخذ قيمة المتغير الذي ادخلته بين القوسين و مقارنته مع القيم التي تضعها كما هو موضح في الصورة اعلاه ، فاذا كانت مساوية للقيمة من تلك القيم تقوم بتنفيذ الامر الذي فيها ، اذا لم تساوي اي قيمة تنفذ الامر الذي في default الافتراضي اذا وجد . ملاحظة مهمة جدا وهي ان switch تعمل فقط اذا كان نوع المتغير الذي ادخلته لها لتختبره int او char .

برمجة الة حاسبة :


اولا شاهد فيديو قصير لاشتغالها :



كما رأيتم معي ، الالة الحاسبة شغالة بشكل جيد ، في البداية تطلب منك ادخال العملية الحسابية بعدها تظهر لك النتيجة و تسألك ان كنت تريد ان تدخل عملية اخرى ، تجيب ب oui في حالة اردت كتابة عملية اخرى او اي شيء اخر مثل non في حالة اردت الانتهاء ، بعدها تظهر انها قد انطفأت calculatrice est ferme .

طريقة اشتغال الالة الحاسبة 

ثانيا سنقوم بالتعريف بالكود البرمجي الذي استخذمته لبنائه الة حاسبة بسيطة لكن شغالة بشكل جيد . المحسبة من صنعي انا و لم اقم بجلب هذه الاشياء من مواقع اخرى و احب ان اراكم تقومون ببرمجة اشيائكم كما افعل و ليس اخذها من اماكن اخرى فقط لان هذا لن يعلمكم شيئا ( علمني كيف اصطاد سمكة و لا تعطينيها ) . المبدأ الذي اعتمدت عليه هو وضع دالة سميتها calcul و التي تستطيع حساب الناتج للعمليات الاربع ( الجمع الطرح الضرب و القسمة فقط ) و لرقمين فقط يعني لا مجال للقيام بعملية على ثلاثة ارقام او اكثر طبعا كبرمجة بسيطة ثم يطلب منا تطوير برمجنا ليقبل ميزات اكثر لان هذا هو دورنا كمبرمجين .اذن هذا هو الكود البرمجي في الصورة التالية :
calculatrice en C++

الكود طويل قليلا لكتابته لذالك يمكنكم رأيته و تجربته من هنا (اضغط هنا ) و ايضا نسخه من هناك .

شرح الكود البرمجي :

كما قلت بداية عرفت دالة اسمها calcul بداخلها توجد ثلاث براميترات n1 n2 من نوع double و op من نوع char ، و كلما ما تقوم به هذه الاخيرة هو اخذ قيمة op التي يدخلها المستخذم و تقارنه مع كل حالة case الظاهرة في الصورة و ترجع قيمة حسب الحالة التي تنطبق على المعامل op . وضعت هناك اربع حالات فقط اما الخامسة فهي default و التي سترجع صفرا في حالة عدم تطابق op مع اي من الحالات السابقة . اذن هذا فيما يتعلق بالدالة calcul، الان ننتقل للدالة main حيث عرفت متغيرات من نوع double التي هي x و y و résultat و متغيرا من نوع char و هو op ثم متغيرا من نوع string و الذي هو con التي عنيت بها continue بالفرنسية . ثم استخذمت حلقة do while التي تعرفنا عليها في الدرس السابقة و التي تكرر ما داخلة do لمرة واحدة ثم تعيده اذا تحقق الشرط الذي يوجد داخل while . في بداية اسطر الحلقة نعرض جملة باستعمال cout كتعليمات للمستخذم ليقوم بادخال عملية حسابية و التي سنأخذ قيمها و نعطيها للمتغيرات x و op و y بالترتيب ، مثلا اذا ادخل المستخذم 13/9 فإن x=13 و /=op و y=9 اظن ان الفكرة وصلت . بعدها يأتي دور résultat التي تساوي ما ترجعه الدالة calcul و هو طبعا ناتج الحساب ثم نعرضعه باستخذام cout ، ننهي السطر باستخذام endl و هي end line بمعنى انك تطلب منه الرجوع للسطر ، بمعنى اخر تعطيه الامر التالي "اكتب ما يتبع endl في سطر جديد" . ثم بعد ذالك اسأل المستخذم ان كان يريد ادخال عملية اخرى فاذا اجاب ب oui فان الشرط في الحلقة while كما ترون في الصورة متحقق بينما اذا ادخل اي شيء آخر تغلق الحلقة و تظهر له انه قد تم اغلاق المحسبة عبر cout طبعا و لا داعي للنظر ل return فليس مهما ما ترجع به الدالة ما دمنا لا نستدعيها . الان مبروك عليك لقد تعلمت الان كيف تصنع الة حاسبة ، يبقى عليك فقط تطويرها بما تراه مناسبا عبر اضفاء لمستك الشخصية عليها ، حاول التلاعب بالاوامر و غيرها لتفهم ما يحصل او حاول بناء مثيل لها بطريقة اخرى فقط لكي تتعلم اكثر مما تعلمته حتى هذه اللحظة ، سؤالي الان هو : تريد تطوير هذه اللالة الحاسبة لتجعلها قادرة على حساب عملية من اربعة ارقام بما في ذالك ادخال الاقواس مسموح به و لا تنسى ان تراعي القسمة حيث لا يمكن القسمة على 0 ، اذا استطعت فعل كل هذا فأنت حقا مبرمج جيد !!

خاتمة و مقالة جديدة

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

ليصلك كل جديد عنا ولنكون علي اتصال