برنامج تعليمي C ++ حول التعامل مع العوامات و Ints

click fraud protection

عدد صحيح هو عدد صحيح مثل 47 بدون علامة عشرية. لا يمكن أن يكون لديك 4.5 رضيع أو حلقة 32.9 مرة. يمكنك الحصول على 25.76 دولار إذا كنت تستخدم تعويم. لذلك عند إنشاء البرنامج الخاص بك ، يجب أن تقرر أي نوع للاستخدام.

هذا ما تفعله بعض لغات البرمجة النصية؟ نظرًا لأنه غير فعال ، فإن العوامات تستهلك ذاكرة أكبر وتكون عمومًا أبطأ من الأحجام. أيضا ، لا يمكنك بسهولة مقارنة عوامات لمعرفة ما إذا كانت متساوية كما يمكنك مع ints.

لمعالجة الأرقام ، عليك تخزينها في الذاكرة. لأنه يمكن تغيير القيمة بسهولة ، يطلق عليها اسم المتغير.

ال مترجم يحتاج برنامج التشغيل الذي يقرأ البرنامج ويحوله إلى رمز الجهاز إلى معرفة نوعه ، أي ما إذا كان عبارة عن int أو تعويم ، لذا قبل أن يستخدم البرنامج متغيرًا ، يجب عليك تعلن ذلك.

ستلاحظ أنه تم تعيين متغير Counter إلى 0. هذا هو التهيئة الاختيارية. إنها ممارسة جيدة للغاية لتهيئة المتغيرات. إذا لم تقم بالتهيئة ثم استخدمتها في التعليمات البرمجية دون تعيين قيمة مبدئية ، سيبدأ المتغير بقيمة عشوائية قد "تكسر" الكود. ستكون القيمة هي كل ما كان في الذاكرة عند تحميل البرنامج.

ما هو العدد الأكبر الذي يمكن أن يخزنه الباحث؟

instagram viewer
. حسنا ، هذا يعتمد على نوع وحدة المعالجة المركزية ولكن من المقبول عموما 32 بت. نظرًا لأنه يمكن أن يحتوي على عدد سلبي من القيم الموجبة تقريبًا ، فإن نطاق القيم هو +/- 2-32 إلى 232 أو -2،147،483،648 إلى +2،147،483،647.

هذا هو ل int الموقعة ، ولكن هناك أيضا غير موقعة الباحث يحمل صفر أو إيجابي. لديها مجموعة من 0 إلى 4،294،967،295. تذكر فقط - لا تحتاج العلامات غير الموقعة إلى علامة (مثل + أو -1) أمامها لأنها تكون دائماً موجبة أو 0.

يوجد نوع int أقصر ، يسمى بالصدفة int والذي يستخدم 16 بت (2 بايت). هذا يحمل الأرقام في النطاق -32768 إلى +32767. إذا كنت تستخدم عددًا كبيرًا من الأعداد ، فيمكنك حفظ الذاكرة باستخدام إينتس قصيرة. لن يكون ذلك أسرع ، على الرغم من كونه نصف الحجم. 32 بت وحدات المعالجة المركزية جلب القيم من الذاكرة في كتل من 4 بايت في وقت واحد. بمعنى آخر. 32 بت (ومن هنا جاء اسم وحدة المعالجة المركزية 32 بت!). لذا فإن جلب 16 بت لا يزال يتطلب إحضار 32 بت.

هناك أطول 64 بت يسمى طويل طويل في C. بينما تستخدم بعض برامج التحويل البرمجي لـ C ++ في حين لا تدعم هذا النوع اسمًا بديلاً مباشرةً ، على سبيل المثال كلا بورلاند ومايكروسوفت استخدام _int64. هذا يتراوح من -9223372036854775807 إلى 9223372036854775807 (توقيع) ومن 0 إلى 18446744073709551615 (غير موقَّع).

ما لم تكن تقوم بالبرمجة العلمية بأعداد كبيرة أو صغيرة جدًا ، فلن تستخدم سوى المضاعفات لمزيد من الدقة. العوامات جيدة لمدة 6 أرقام من الدقة ولكن الزوجي تقدم 15.

النظر في الرقم 567.8976523. إنها قيمة تعويم صالحة. ولكن إذا قمنا بطباعتها باستخدام هذا الرمز أدناه ، فستظهر لك قلة الدقة في الظهور. يحتوي الرقم على 10 أرقام ولكن يتم تخزينه في متغير عائم بستة أرقام فقط من الدقة.

نرى حول المدخلات والمخرجات للحصول على تفاصيل حول كيفية عمل cout ، وكيفية استخدام الدقة. يعين هذا المثال دقة الإخراج على 8 أرقام. لسوء الحظ ، لا يمكن أن تتسع العربات إلا 6 وسيصدر بعض المترجمين تحذيرًا حول تحويل مزدوج إلى تعويم. عند التشغيل ، هذا يطبع 567.89764

إذا قمت بتغيير الدقة إلى 15 ، فستتم طباعتها على أنها 567.897644042969. الفرق تماما! الآن انقل العلامة العشرية اثنين إلى اليسار بحيث تكون القيمة 5.678976523 ثم أعد تشغيل البرنامج. هذه المرة يتم إخراج 5.67897653579712. هذا هو أكثر دقة ولكن لا يزال مختلفا.

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

كتابة برامج الكمبيوتر لن تكون ذات فائدة كبيرة إذا لم تتمكن من الجمع والطرح وما إلى ذلك. هنا مثال 2.

بالإضافة إلى ذلك ، يمكنك أن تفعل الطرح والضرب والقسمة. مجرد استخدام + للإضافة ، - للطرح ، * للضرب و / للقسمة.

باستخدام العوامات ، لا يمكنك التحكم في عدد الفواصل العشرية التي يتم عرضها ما لم تقم بتعيين الدقة كما هو موضح سابقًا.

الآن يمكن تعيين العرض ، والمحاذاة ، وعدد المنازل العشرية وعلامات من قبل كوت وجوه و إيمانيب تشمل وظائف الملف.

الآلاف من الفواصل هي أكثر تعقيدا قليلا. يتم تعيينها من الإعدادات المحلية للكمبيوتر. تحتوي الإعدادات المحلية على معلومات ذات صلة ببلدك - مثل رموز العملات والفاصلة العشرية وآلاف الفواصل. في المملكة المتحدة والولايات المتحدة الأمريكية ، يستخدم الرقم 100.98 العلامة العشرية. كنقطة عشرية في حين أنه في بعض الدول الأوروبية فاصلة ، لذلك يعني 5،70 يورو سعر 5 يورو و 70 سنت.

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

ملحوظة يبدو أن هناك اختلافات بين المترجمين المختلفين حول كيفية ذلك cout.imbue يسلك. ضمن Visual C ++ 2005 Express Edition ، تضمن هذا فواصل. ولكن نفس الرمز مع Microsoft Visual C ++ 6.0 لم!

إذا كنت تستخدم أي من هذين الوضعين التنسيق من خلال cout.setf ثم الاحكام() يقوم بتعيين عدد المنازل العشرية بعد العلامة العشرية (وليس العدد الإجمالي للأرقام) ولكنك تفقد التنسيق الآلاف. الأصفار المتأخرة أيضًا (كما تم تمكين بواسطة ios_base:: showpoint ) تصبح تلقائيا تمكين دون الحاجة نقطة.

تتوقع شيئًا ما بقيمة 11.0909090909. في الواقع ، القيمة هي 11. لماذا هذا؟ بسبب ال التعبير على الجانب الأيمن (المعروف باسم rvalue) هو عدد صحيح / عدد صحيح. لذلك يستخدم عددًا صحيحًا من العمليات الحسابية يقوم بإلقاء الجزء الكسري ويخصص 11 إلى f. تغييره إلى

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

أو على الأقل يتصرف بهذه الطريقة! الخطان أدناه صالحان دون الإدلاء بهما وراء الكواليس ، حيث يتم تحويل الرموز المنطقية ضمنيًا إلى ints ويمكن حتى زيادتها أو تقليلها على الرغم من أنها ممارسة سيئة للغاية.

إذا كان لا يزال سوف يقوم بما إذا كان المتغير غير صفري ولكنه رمز غير صالح ويجب تجنبه. الممارسة الجيدة هي استخدامها كما هو مقصود. إذا (! v) صحيح C ++ لكنني أفضل أكثر صراحة إذا (v! = 0). هذا ، ومع ذلك ، هو مسألة ذوق ، وليس يجب فعل التوجيه.

من الأفضل للمترجم التقاط الأخطاء في وقت الترجمة من المستخدم في وقت التشغيل

instagram story viewer