واحدة من الجوانب الهامة للبرمجة ج هو السيطرة على دقة الحسابات. في ج ، هناك عدة طرق لتعيين الدقة ، كل منها مناسب لمهام محددة. في هذا الدليل ، سنلقي نظرة على الطرق الأساسية ونشرح كيفية استخدامها.
الطريقة الأولى لتعيين الدقة في ج هي استخدام محددات التنسيق عند إخراج أرقام الفاصلة العائمة. محددات التنسيق الرئيسية المتعلقة بالدقة هي٪. نف ، أين ن هو رقم يشير إلى عدد المنازل العشرية المراد إخراجها. على سبيل المثال،٪.2و إخراج عدد مع منزلتين عشريتين.
الطريقة الثانية هي استخدام وظائف من الرياضيات.ح مكتبة ، مثل جولة () ، سقف () ، الطابق (). تقوم الدالة المستديرة() بتدوير رقم إلى أقرب عدد صحيح ، والسقف () إلى الأكبر ، والأرضية () إلى الأصغر. يمكن أن تكون هذه الوظائف مفيدة إذا كنت بحاجة إلى تقريب رقم النقطة العائمة إلى دقة معينة.
الطريقة الثالثة هي استخدام توجيه # براغما للتحكم العائم. باستخدام هذا التوجيه ، يمكنك تعيين قواعد معينة للعمل مع النقطة العائمة والحسابات الدقيقة. على سبيل المثال ، باستخدام توجيه #براغما للتحكم العائم ، يمكنك ضبط دقة الحسابات وتقريب التحكم والجوانب الأخرى لعملية النقطة العائمة.
- أساسيات تحديد الدقة في اللغة ج
- تحديد الدقة
- العمل مع أنواع البيانات في ج لتحقيق نتائج دقيقة
- اختيار نوع البيانات المناسب
- أمثلة عملية لتحديد الدقة في ج
- سؤال وجواب
- لماذا أحتاج إلى ضبط الدقة عند العمل مع الأرقام في ج?
- كيف يمكنني ضبط الدقة عند إخراج رقم في ج?
- كيف يمكنني ضبط الدقة عند إجراء العمليات الحسابية في ج?
أساسيات تحديد الدقة في اللغة ج
يعد تحديد الدقة جانبا مهما من جوانب البرمجة ج. تحدد الدقة مدى دقة ودقة حساب قيم الأرقام وتخزينها في البرنامج. يتم تمثيل جميع الأرقام الممثلة في الكمبيوتر كرمز ثنائي ، لذلك قد تكون الدقة في ج محدودة.
تشمل أنواع البيانات الرئيسية في سي التي تسمح لك بتحديد الدقة ما يلي:
- كثافة العمليات: الأعداد الصحيحة ، بدون الفاصلة العشرية;
- تعويم: أرقام نقطة عائمة دقيقة واحدة;
- مزدوجة: مزدوجة الدقة العائمة نقطة أرقام;
- مزدوج طويل: أرقام بدقة مزدوجة طويلة.
دقة نوع كثافة العمليات يعتمد على حجم الذاكرة المخصصة لهذا النوع ، وهي 4 بايت على معظم النظم الحديثة. وهذا يعني أن كثافة العمليات يمكن أن تمثل الأعداد الصحيحة من -2147483648 إلى 2147483647.
تقتصر دقة النوع العائم على 32 بت ، مما يسمح لك بتمثيل أرقام الفاصلة العائمة بدقة نسبية تبلغ حوالي 6 منازل عشرية. إذا كنت بحاجة إلى دقة أعلى ، فيجب عليك استخدام النوع المزدوج ، الذي يتميز بدقة مزدوجة ويستخدم 64 بت.
قد يكون للنوع المزدوج الطويل دقة مختلفة حسب النظام. في بعض الأنظمة ، سيكون المزدوج الطويل مطابقا تماما للنوع المزدوج ، وفي أنظمة أخرى ، يمكن زيادة دقته إلى 80 أو 128 بت.
من المهم ملاحظة أن دقة أرقام الفاصلة العائمة قد تكون محدودة بسبب أخطاء التقريب. عند إجراء عمليات حسابية بأرقام الفاصلة العائمة ، قد يحدث خطأ في التقريب ، مما قد يؤدي إلى نتائج غير دقيقة في بعض الحالات. لذلك ، عند العمل بأرقام الفاصلة العائمة ، من المهم الانتباه إلى هذه النقطة.
تسمح كل هذه الأنواع من البيانات للمبرمج باختيار الدقة الأنسب لمهمة معينة. عند اختيار نوع البيانات ، يجب مراعاة الدقة المطلوبة والذاكرة المتوفرة في النظام لتجنب فقدان الدقة أو استهلاك الذاكرة غير الضروري.
نتيجة لذلك ، يعد تحديد الدقة في لغة سي جانبا مهما من جوانب البرمجة ويسمح لك بالتحكم في العمل بالأرقام في برنامج بدقة عالية.
تحديد الدقة
يعد تحديد الدقة عاملا مهما عند العمل مع الأرقام في برمجة سي. تحدد الدقة عدد المنازل العشرية التي يمكن حفظها عند إجراء عمليات الفاصلة العائمة الرياضية.
في ال لغة ج ، يتم تعيين الدقة عادة باستخدام تنسيق المحددات في برينتف () وظيفة الإخراج. على سبيل المثال ، لإخراج رقم بدقة معينة ، يمكننا استخدام محدد التنسيق"٪.2و "، أين".2 " يشير إلى عدد المنازل العشرية:
# تشمل
كثافة العمليات الرئيسية () {
رقم مزدوج = 3.14159;
برينتف ("الرقم:٪.2 واو
"،رقم);
العودة 0;
}
// الإخراج: عدد: 3.14
يمكنك أيضا استخدام وظيفة سيتبريسيسيون () من مكتبة إيومانيب لتعيين الدقة. تتيح لك هذه الوظيفة ضبط الدقة لإخراج أرقام الفاصلة العائمة على دفق الإخراج:
# تشمل
# تشمل
كثافة العمليات الرئيسية () {
رقم مزدوج = 3.14159;
الأمراض المنقولة جنسيا:: كوت << ستد:: سيتبريسيسيون(2) < < "عدد:" < < عدد < < ستد:: إندل;
العودة 0;
}
// الإخراج: عدد: 3.14
في كلتا الحالتين ، سيتم إخراج الرقم بدقة منزلتين عشريتين.
يسمح لك تعريف الدقة في لغة سي بالتحكم في عرض أرقام الفاصلة العائمة ويلعب دورا مهما في إجراء العمليات الحسابية.
العمل مع أنواع البيانات في ج لتحقيق نتائج دقيقة
واحدة من أهم مهام المبرمج هي ضمان دقة نتائج الحساب. في اللغة ج ، هناك أنواع مختلفة من البيانات التي تسمح لك بالعمل مع قيم رقمية مختلفة ، بما في ذلك القيم الكسرية.
بادئ ذي بدء ، غالبا ما يستخدم نوع البيانات المزدوجة في ج للعمل مع الأرقام الكسرية. إنه رقم حقيقي مزدوج الدقة ويوفر دقة عالية لمعظم العمليات الحسابية.
ومع ذلك ، عند إجراء عمليات حسابية معقدة ، هناك مشكلة فقدان دقة النتائج. لحل هذه المشكلة ، يمكنك استخدام التقنيات التالية:
- استخدم عمق بت كاف لتخزين الأرقام. على سبيل المثال ، بالنسبة لمعظم الحالات في ج ، يمكنك استخدام نوع البيانات المزدوج ، الذي يبلغ عمقه 64 بت.
- تحسين ترتيب العمليات لتجنب فقدان الدقة. على سبيل المثال ، من الأفضل ضرب الأعداد الكسرية قبل القسمة لتجنب التقريب.
- استخدم المكتبات ذات الوظائف الرياضية الإضافية التي توفر دقة أعلى للحسابات. على سبيل المثال ، مكتبة الرياضيات.ح يوفر وظائف للعمل مع الدوال المثلثية والأسس واللوغاريتمات والعمليات الحسابية الأخرى.
بالإضافة إلى نوع البيانات المزدوج ، هناك أيضا أنواع بيانات أخرى في ج للعمل بأرقام مختلفة الدقة. على سبيل المثال ، يتم استخدام النوع العائم لتخزين الأرقام بدقة واحدة ، وتوفر الأنواع المزدوجة والعشرية الطويلة دقة أكبر ويمكن استخدامها في الحالات الصعبة بشكل خاص.
من المهم ملاحظة أن استخدام أنواع بيانات أكثر دقة يمكن أن يؤدي إلى زيادة مساحة الذاكرة التي تشغلها وإبطاء البرنامج. لذلك ، عند اختيار نوع البيانات ، يجب أيضا مراعاة متطلبات الأداء.
وظيفة إخراج برينتف ، المستخدمة في ج لإخراج القيم إلى الشاشة ، كما يسمح لك لتعيين تنسيق إخراج الأرقام ، وبالتالي ، الدقة المطلوبة. على سبيل المثال ، يمكنك تحديد عدد المنازل العشرية للأرقام الكسرية باستخدام محدد التنسيق:٪.2و-إخراج رقم مع منزلتين عشريتين.
في الختام ، من أجل تحقيق دقة نتائج الحساب في اللغة ج ، يوصى باستخدام أنواع البيانات المناسبة ، وتحسين ترتيب العمليات ، وإذا لزم الأمر ، استخدام مكتبات خاصة للعمل مع الوظائف الرياضية.
اختيار نوع البيانات المناسب
عند البرمجة في ج ، من المهم اختيار نوع البيانات الصحيح لتخزين المعلومات ومعالجتها. كل نوع بيانات له خصائصه الخاصة التي يمكن أن تكون مفيدة في مواقف معينة.
فيما يلي بعض أنواع البيانات الأكثر شيوعا في لغة سي:
- الباحث هو عدد صحيح موقعة.
- تعويم هو رقم نقطة عائمة دقيقة واحدة.
- المزدوج هو رقم نقطة عائمة مزدوجة الدقة.
- شار هو رمز.
- منطقي هو قيمة منطقية (صواب أو خطأ).
كل نوع من أنواع البيانات هذه له خصائصه الخاصة:
- كثافة العمليات-عادة ما تحتل 4 بايت من الذاكرة ويمكن تخزين الأعداد الصحيحة في النطاق من -2 ، 147 ، 483 ، 648 إلى 2 ، 147 ، 483 ، 647.
- تعويم-عادة ما يستغرق 4 بايت من الذاكرة ويمكن تخزين أرقام الفاصلة العائمة بدقة حوالي 6-7 منازل عشرية.
- مزدوج-عادة ما يستغرق 8 بايت من الذاكرة ويمكن تخزين أرقام الفاصلة العائمة بدقة حوالي 15 منازل عشرية.
- شار-عادة ما يستغرق 1 بايت من الذاكرة ويمكن تخزين حرف أسي واحد.
- منطقي-عادة ما تحتل 1 بايت من الذاكرة ويمكن أن تأخذ القيم صحيحة أو خاطئة.
يعتمد اختيار نوع البيانات المناسب على متطلبات المهمة المحددة. إذا كنت بحاجة إلى تخزين أعداد كبيرة أو أرقام بدقة عالية ، يمكنك اختيار نوع البيانات المزدوج. إذا كنت بحاجة إلى تخزين عدد محدود فقط من القيم ، يمكنك استخدام كثافة العمليات. بشكل عام ، من المهم فهم تفاصيل كل نوع بيانات واختيار النوع الذي يناسب مهمتك.
أمثلة عملية لتحديد الدقة في ج
في لغة البرمجة ج ، يمكنك تحديد دقة إخراج أرقام الفاصلة العائمة باستخدام محددات التنسيق. لنلق نظرة على بعض الأمثلة.
مثال 1: تحديد الدقة لإخراج رقم الفاصلة العائمة.
كود خاتمة # تشمل— كثافة العمليات الرئيسية(){— عدد تعويم = 3.14159;"،رقم);عدد: 3.14العودة 0;— }— .
مثال 2: تحديد دقة إخراج رقم بتنسيق علمي.
كود خاتمة # تشمل— كثافة العمليات الرئيسية(){— رقم مزدوج = 123456789.123456789;"،رقم);عدد: 1.2346 ه + 08العودة 0;— }— .
مثال 3: تحديد العرض والدقة لإخراج رقم.
كود خاتمة # تشمل— كثافة العمليات الرئيسية(){— رقم مزدوج = 123.456;"،رقم);عدد: 123.46العودة 0;— }— مع المسافة البادئة من 10 حرفا على اليسار.
وهكذا ، في اللغة ج ، هناك عدة طرق لضبط دقة إخراج أرقام الفاصلة العائمة ، والتي تسمح لك بالتحكم في تنسيق الإخراج في البرنامج.
سؤال وجواب
لماذا أحتاج إلى ضبط الدقة عند العمل مع الأرقام في ج?
يتيح لك ضبط الدقة عند العمل بالأرقام في ج التحكم في عدد المنازل العشرية التي سيتم عرضها أو استخدامها عند إجراء العمليات الحسابية. يمكن أن يكون استخدام الدقة مفيدا عند العمل بالقيم النقدية أو عند التقريب إلى عدد معين من المنازل العشرية.
كيف يمكنني ضبط الدقة عند إخراج رقم في ج?
لتعيين الدقة عند طباعة رقم في ج ، يمكنك استخدام وظيفة برينتف () باستخدام محدد التنسيق"٪. نف " ، أين ن هو العدد المطلوب من المنازل العشرية. على سبيل المثال ، لطباعة رقم بدقة منزلتين عشريتين ، يمكنك استخدام برينتف ("٪.2و " ، رقم) ، حيث يكون الرقم متغيرا يحتوي على رقم.
كيف يمكنني ضبط الدقة عند إجراء العمليات الحسابية في ج?
لتعيين الدقة عند إجراء العمليات الحسابية في ج ، يمكنك استخدام وظيفة الجولة () من مكتبة الرياضيات القياسية.ح. جولة () وظيفة جولات عدد إلى دقة محددة. على سبيل المثال ، لتقريب رقم إلى منزلتين عشريتين ، يمكنك استخدام تقريب(رقم * 100) / 100 ، حيث يكون الرقم متغيرا يحتوي على رقم.