ما هو ناتج كود C++ هذا؟ ماذا سيطبع لل Output stream
#include <iostream> #include <cmath> int main() { int a=-2147483648; std::cout << std::abs(a)<< std::endl; return 0; }
البرنامج سيقوم بطباعة الناتج التالي للـ Output stream:
-2147483648
فالسطر int a=-2147483648; يعين قيمة -2147483648 للمتغير a، ومن ثم يتم استخدام std::abs() لحساب قيمة المطلق للعدد. وبما أن قيمة a تكون أصغر قيمة ممكنة لنوع البيانات int في لغة C++، فإن ناتج std::abs(a) سيكون نفس قيمة a نفسها (-2147483648).
وتم طباعة هذا الناتج باستخدام std::cout.
سوف اشرح الكو د في البداية حتي تستطيع معرفة سبب ظهور الناتج.
الكود يستدعي مكتبة cmath لاستخدام دالة "abs" التي تقوم بإرجاع القيمة المطلقة للرقم المحدد كمعامل لها.
في هذا البرنامج، تعيين القيمة "-2147483648" للمتغير a و الذي يمثل أدنى قيمة يمكن تمثيلها باستخدام نوع البيانات integer في لغة C++، وهي الرقم السالب الأكبر.
من خلال استدعاء دالة "abs(a)" وطباعتها على الـ Output stream، يتم إيجاد القيمة المطلقة للرقم a والتي هي -2147483648.
وتم وضع std::endl لتضمن الانتقال إلى سطر جديد بعد الطباعة.
وأخيرًا، يتم إيقاف وإنهاء البرنامج بشكل صحيح من خلال إرجاع 0 من داخل main()، مما يشير إلى أن البرنامج قد تم تشغيله بشكل سليم ولم يحدث أي خطأ.
إذا كنت ترغب في تجربة هذا الكود وتفادي استخدام جهازك الشخصي، يمكنك استخدام مترجمات الإنترنت لفعل ذلك، كموقع https://www.onlinegdb.com/o...
في الطبيعي يبدأ البرنامج بتعريف المتغير "a" بقيمة -2147483648، وهي القيمة الأصغر التي يمكن تخزينها في متغير "int" في لغة C++. ثم، يتم استدعاء دالة "std::abs" لحساب القيمة المطلقة للمتغير "a". ونظراً لأن قيمة المتغير "a" سالبة، فإن القيمة المطلقة ستكون موجبة، وبالتالي سيتم طباعة القيمة "2147483648" إلى "Output stream" باستخدام دالة "std::cout".
التعليقات