التعليقات

ما هو التعداد في لغات البرمجة؟

ما هو التعداد في لغات البرمجة؟


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

باختصار للتعداد ، يمكن العثور على نوع متغير التعداد في C (ANSI ، وليس K&R الأصلي) و C ++ و C #. الفكرة هي أنه بدلاً من استخدام int لتمثيل مجموعة من القيم ، يتم استخدام نوع يحتوي على مجموعة من القيم المقيدة بدلاً من ذلك.

على سبيل المثال ، إذا استخدمنا ألوان قوس قزح ، والتي هي

  1. أحمر
  2. البرتقالي
  3. الأصفر
  4. أخضر
  5. أزرق
  6. اللون النيلي
  7. البنفسجي

إذا لم يكن التعداد موجودًا ، فيمكنك استخدام #حدد (في C) أو CONST في C ++ / C # لتحديد هذه القيم. على سبيل المثال

عدد كبير جدًا من Ints to Count!

المشكلة في هذا هو أن هناك عددًا أكبر بكثير من الألوان. إذا كانت القيمة البنفسجية 7 ، وكان البرنامج يعين قيمة 15 لمتغير ، فمن الواضح أنه خطأ ولكن قد لا يتم اكتشافه لأن 15 قيمة صالحة لـ int.

Enums إلى الإنقاذ

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

الآن داخليًا ، سيستخدم المترجم int للاحتفاظ بها ، وإذا لم يتم توفير أي قيم ، فسيكون اللون الأحمر 0 ، والبرتقالي 1

ما هي الفائدة من التعداد؟

النقطة هي أن ألوان قوس قزح هو نوع والمتغيرات الأخرى فقط من نفس النوع يمكن أن تسند إلى هذا. تسهل عملية C (أي أقل كتابتها بدقة) ، لكن C ++ و C # لن يسمحا بالتعيين إلا إذا فرضته باستخدام فريق ممثل.

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

وجود اللون الأزرق والنيلي بنفس القيمة ليس خطأًا ، فقد يتضمن العدادون مرادفات مثل القرمزي والقرمزي.

الاختلافات اللغوية

في C ، يجب أن يسبق الإعلان المتغير الكلمة التعداد كما في

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

في C # يتم الوصول إلى القيم بواسطة اسم النوع كما في

ما هي نقطة التعداد؟

يؤدي استخدام التعدادات إلى زيادة مستوى التجريد ويتيح للمبرمج التفكير في معنى القيم بدلاً من القلق حول كيفية تخزينها والوصول إليها. هذا يقلل من حدوث الأخطاء.

هنا مثال. لدينا مجموعة من إشارات المرور مع ثلاثة لمبات- أحمر, الأصفر و أخضر. في المملكة المتحدة ، يتغير تسلسل إشارات المرور في هذه المراحل الأربع.

  1. أحمر - توقف حركة المرور.
  2. على حد سواء أحمر و الأصفر - لا تزال حركة المرور متوقفة ، ولكن الأضواء على وشك التغيير إلى اللون الأخضر.
  3. أخضر - حركة المرور يمكن أن تتحرك.
  4. الأصفر - تحذير من التغيير الوشيك إلى اللون الأحمر.

مثال إشارة المرور

يتم التحكم في الأضواء عن طريق الكتابة إلى الأجزاء الثلاثة السفلى من بايت التحكم. وضعت هذه كنمط قليلا أدناه في ثنائي حيث يمثل RYG البتات الثلاثة. إذا كانت R هي 1 ، فإن الضوء الأحمر يضيء إلخ.

في هذه الحالة ، من السهل معرفة أن الحالات الأربع المذكورة أعلاه تتوافق مع القيم 4 = أحمر يوم 6 = أحمر + الأصفر على حد سواء ، 1 = أخضر على و 2 = الأصفر على.

مع هذه الوظيفة

باستخدام فئة بدلا من التعدادات

في C ++ و C # ، نحتاج إلى إنشاء فصل دراسي ومن ثم زيادة عامل التشغيل | للسماح OR- جي أنواع trafficlights.

باستخدام التعداد نمنع حدوث مشكلات في البتات الأخرى التي يتم تعيينها في بايت التحكم في المصباح. قد يكون بعض البتات الأخرى تتحكم في الاختبار الذاتي أو مفتاح "Green Lane". في هذه الحالة ، قد يؤدي الخلل الذي يسمح بتعيين هذه البتات في الاستخدام العادي إلى حدوث تلف.

من المؤكد أننا سنخفي البتات في SetTrafficlights () وظيفة حتى بغض النظر عن القيمة التي يتم تمريرها في ، يتم تغيير فقط ثلاثة أجزاء بت.

استنتاج

التعداد له هذه الفوائد:

  • وهي تقيد القيم التي يمكن أن يتخذها متغير التعداد.
  • يجبرونك على التفكير في جميع القيم الممكنة التي يمكن أن يأخذها التعداد.
  • فهي ثابتة بدلاً من رقم ، مما يزيد من قراءة الكود المصدري


شاهد الفيديو: 3- ماهي مستويات لغات البرمجة (ديسمبر 2022).

Video, Sitemap-Video, Sitemap-Videos