كيفية استخدام Setprecision في C++

Kyfyt Astkhdam Setprecision Fy C



ربما تكون قد تعلمت ودرست قيم الفاصلة العائمة والترميز العلمي في الرياضيات والفيزياء. ربما تكون قد تعلمت أيضًا إجراء التقريب على أرقام الفاصلة العائمة. غالبًا ما يتم استخدام الأداة المساعدة setprecision في لغة C++ لتغيير تسلسل الأرقام المعروضة داخل تسلسل إخراج عدد صحيح بفاصلة عائمة. وهي تعمل بنفس وظيفة التقريب. تم تعريف هذه الطريقة في مكتبة القياسية. سنوضح لك في هذا البرنامج التعليمي كيفية استخدام وظيفة 'setprecision' في لغة C++. اذا هيا بنا نبدأ. يجب أن نبدأ تطبيق Ubuntu Shell من خلال 'Ctrl+Alt+T' للعمل عليه. يتعين علينا تهيئة تثبيت مترجم C++، وهو g++ في حالتنا. لذا، سيتم استخدام الحزمة apt لهذا الغرض حتى الآن. سيقوم النظام بتثبيت g++ في بضع ثوانٍ فقط: $ sudo ملائم ثَبَّتَ ز++

مثال 01:

لذلك، قمنا بفتح ملف 'new.cc' بتعليمات 'nano'. يتم إنشاء هذا الملف باستخدام استعلام 'اللمس' الخاص بـ Shell. يتم الآن تشغيل الملف في محرر nano كملف فارغ. لقد أضفنا ملف رأس الإدخال والإخراج 'iostream' في الأعلى. تمت إضافة مكتبة 'iomanip' لاستخدام طريقة setprecision () الخاصة بالكود الخاص بنا. بعد ذلك، استخدمنا مساحة الاسم القياسية 'std' للتأكد من أننا نستخدم الطريقة القياسية للتعليمات البرمجية وبناء الجملة. تم تنفيذ الكود الإجمالي ضمن الوظيفة الرئيسية () لكود C++. ولا يتم استخدام أي وظيفة أخرى محددة من قبل المستخدم لهذا الغرض.







ضمن الدالة main()، قمنا بتهيئة متغير من النوع المزدوج 'v' بقيمة مزدوجة. يعرض البيان القياسي 'cout' الأول قيمة المتغير المزدوج الفعلي 'v' على الصدفة دون أي تحديث. بعد ذلك، استخدمنا 8 عبارات cout لاستخدام التابع setprecision() في كل منها. يهدف هذا إلى تطبيق setprecision() على كل نقطة عائمة للمتغير 'v' في كل مرة. يجب أن تفهم أن دقة الضبط تعمل فقط على القيمة الأكبر من أو تساوي 5. إذا كانت قيمة الفاصلة العائمة أكبر من 5، فستزيد القيمة التي قبلها.



على سبيل المثال، setprecision() عند النقطة العائمة الأولى سيتم تقريبها إلى '5' بعد النقطة، وسيتم تحويل القيمة '4' إلى 5. وبالمثل، لا يمكن تقريب قيمة النقطة العائمة الثانية '2'، ستحول قيمة الفاصلة العائمة الثالثة '7' القيمة '2' إلى '3'، ولا يمكن تقريب قيمة الفاصلة العائمة الرابعة '4'، وستقوم قيمة الفاصلة العائمة الخامسة '9' بتحويل القيمة '4' 'إلى 5 قبل ذلك. عند النقطة '0' سيتم تحويل القيمة '4' إلى 5. لا تقوم الدالة setprecision() السالبة بأي شيء سوى عرض القيمة الفعلية بأكملها. سيتم عرض جميع القيم عند النقاط العائمة من 0 إلى 5 و-1، -2 بعد تطبيق setprecision():







لقد حان الوقت لتجميع وتشغيل كود C++ setprecision باستخدام استعلام التحويل البرمجي g++ واستعلام التنفيذ './a.out'. يُظهر الإخراج أن دقة المجموعة الأولى (1) تحول 4 إلى 5. ولم تفعل دقة المجموعة (2) شيئًا وتعرض '4.5'. قامت الدقة المحددة (3) بزيادة القيمة من '4.52' إلى '4.53'. لا تفعل الدقة المحددة (4) شيئًا للقيمة '4.527'. تعمل الدقة المحددة (5) على زيادة القيمة من '4.5274' إلى '4.5275'. قام setprecision(0) بزيادة القيمة إلى 5. لم يفعل setprecision(-1) وsetprecision(-2) شيئًا كما هو موضح أدناه:

$ ز++ new.cc

$. / أ.خارج



مثال 02:

دعونا نلقي نظرة على مثال آخر. الكود مشابه للمثال أعلاه، مع تغيير فقط في عبارات cout الخاصة به. يعرض cout الأول القيم الأصلية بينما يعرض الاثنان التاليان نتيجة setprecision() عند النقطتين العائمتين 1 و5. ويعرض cout الأخير نتيجة أسلوب setprecision() عند النقطة العائمة 9، وهو غير متوفر فعليًا. إن نتائج الفاصلة العائمة 1 و5 متوقعة تمامًا، ولكن لا يمكننا قول أي شيء عن الفاصلة العائمة 9. فلنقم فقط بتنفيذ الملف والتحقق من نتائج هذا الكود:

#تشمل

#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {

مزدوج في = 4.52749 ;

cout << 'القيمة قبل الدقة المحددة :' << في << ' ' ;

cout << setprecision ( 1 ) << 'فال في 1:' << في << ' ' ;

cout << setprecision ( 5 ) << 'فال في 5:' << في << ' ' ;

cout << setprecision ( 9 ) << 'فال في 9:' << في << ' ' ;

يعود 0 ;

}

بعد تجميع وتنفيذ هذا الكود، حصلنا على نتائج واضحة لضبط الدقة على الموقعين 1 و3 لقيمة الفاصلة العائمة '4.52749'. تظهر نتيجة setprecision 9 القيمة الفعلية للمتغير المزدوج 'v'. قد يكون هذا بسبب حقيقة أن قيمة الموقع 9 غير ثابتة:

$ ز++ new.cc

$. / أ.خارج

لنقم فقط بتحديث الكود مرة أخرى لإصلاح قيم المتغير 'v'. لذلك، بعد تطبيق عبارة cout setprecision() الأولى في الموقع الأول للمتغير، استخدمنا المتغير الثابت في cout:

#تشمل

#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {

مزدوج في = 4.52749 ;

cout << 'القيمة قبل الدقة المحددة :' << في << ' ' ;

cout << setprecision ( 1 ) << 'فال في 1:' << في << ' ' ;

cout << مُثَبَّت ;

cout << setprecision ( 5 ) << 'فال في 5:' << في << ' ' ;

cout << setprecision ( 9 ) << 'فال في 9:' << في << ' ' ;

يعود 0 ;

}

بعد تجميع وتشغيل هذه التعليمات البرمجية المحدثة، لدينا النتيجة الثابتة لضبط الدقة في الموقع 9 للمتغير 'v'، أي 4.527490000:

$ ز++ new.cc

$. / أ.خارج

خاتمة:

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