أنواع البيانات العادية والعددية لدلفي

دلفي لغة برمجة هو مثال للغة مكتوبة بقوة. هذا يعني أن جميع المتغيرات يجب أن تكون من نوع ما. النوع هو في الأساس اسم لنوع من البيانات. عندما نعلن عن متغير ، يجب علينا تحديد نوعه ، الذي يحدد مجموعة القيم التي يمكن للمتغير الاحتفاظ بها والعمليات التي يمكن إجراؤها عليه.

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

أنواع عادية

الخصائص المميزة لأنواع البيانات الترتيبية هي: يجب أن تتكون من عدد محدود من العناصر ويجب ترتيبها بطريقة ما.

أكثر الأمثلة شيوعًا لأنواع البيانات الترتيبية هي جميع أنواع الأعداد الصحيحة وكذلك Char و منطقي اكتب. بتعبير أدق ، يحتوي Object Pascal على 12 نوعًا ترتيبيًا محددًا مسبقًا: Integer و Shortint و Smallint و Longint و Byte و Word و Cardinal و Boolean و ByteBool و WordBool و LongBool و Char. هناك أيضًا فئتان أخريان من الأنواع الترتيبية المعرفة من قبل المستخدم: الأنواع المعدودة والأنواع الفرعية.

في أي أنواع ترتيبية ، يجب أن يكون من المنطقي الانتقال إلى الخلف أو الأمام إلى العنصر التالي. على سبيل المثال ، الأنواع الحقيقية ليست عادية لأن التحرك للخلف أو للأمام لا معنى له. السؤال "ما هو الحقيقي التالي بعد 2.5؟" لا معنى له.

instagram viewer

لأنه ، بحكم التعريف ، كل قيمة باستثناء الأولى لها سلف فريد وكل قيمة باستثناء الأخيرة لها خلف فريد ، عدة محددة مسبقًا المهام يتم استخدامها عند العمل مع الأنواع الترتيبية:

وظيفة تأثير
Ord (X) يعطي فهرس العنصر
بريد (X) للانتقال إلى العنصر المدرج قبل X في النوع
النجاح (X) للانتقال إلى العنصر المدرج بعد X في النوع
ديسمبر (X) ؛ ن) تحريك العناصر n للخلف (إذا تم حذف n ، يتم نقل عنصر واحد للخلف)
Inc (X؛ ن) نقل عناصر n للأمام (إذا تم حذف n ، فإنه يحرك عنصر واحد للأمام)
منخفض (X) إرجاع أدنى قيمة في نطاق نوع البيانات الترتيبية X
عالي (X) إرجاع أعلى قيمة في نطاق نوع البيانات الترتيبية X


على سبيل المثال ، ترجع High (Byte) 255 لأن أعلى قيمة من النوع Byte هي 255 ، و Succ (2) تُرجع 3 لأن 3 هي اللاحقة لـ 2.

ملحوظة: إذا حاولنا استخدام Succ عندما يكون العنصر الأخير في Delphi سينشئ أ استثناء وقت التشغيل إذا كان تدقيق النطاق قيد التشغيل.

تعداد دلفي النوع

أسهل طريقة لإنشاء مثال جديد لنوع ترتيبي هي ببساطة سرد مجموعة من العناصر بترتيب ما. القيم ليس لها معنى متأصل ، وترتيبها يتبع التسلسل الذي يتم فيه سرد المعرفات. بمعنى آخر ، يعد التعداد قائمة بالقيم.

اكتب TweekDays = (الاثنين ، الثلاثاء ، الأربعاء ، الخميس ، الجمعة ، السبت ، الأحد) ؛

بمجرد تحديد نوع بيانات تعداد ، يمكننا أن نعلن أن المتغيرات من هذا النوع:

فار SomeDay: TWeekDays ؛

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

تسمح لنا دلفي بالعمل مع العناصر في نوع تعداد باستخدام فهرس يأتي من الترتيب الذي تم إدراجه فيه. في المثال السابق ، الاثنين في يومان نوع الإعلان يحتوي على الفهرس 0 ، ويوم الثلاثاء يحتوي على الفهرس 1 ، وهكذا. الوظائف المدرجة في الجدول قبل السماح لنا ، على سبيل المثال ، استخدام Succ (الجمعة) "للانتقال إلى" السبت.

الآن يمكننا تجربة شيء مثل:

إلى عن على SomeDay: = الاثنين إلى الأحد فعلإذا SomeDay = الثلاثاء ثم
ShowMessage ('الثلثاء!') ؛

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

TPosition = (poDesigned، poDefault، poDefaultPosOnly، poDefaultSizeOnly، poScreenCenter) ؛

نستخدم الموضع (من خلال مفتش الكائن) للحصول على أو تعيين حجم ومكان شكل.

أنواع الطبقة الفرعية

ببساطة ، يمثل النوع الفرعي مجموعة فرعية من القيم في نوع ترتيبي آخر. بشكل عام ، يمكننا تحديد أي نطاق فرعي من خلال البدء بأي نوع ترتيبي (بما في ذلك نوع تعداد محدد مسبقًا) وباستخدام نقطة مزدوجة:

اكتب يوم الإثنين = الإثنين.. يوم الجمعة؛

هنا TWorkDays يتضمن القيم الاثنين والثلاثاء والأربعاء والخميس والجمعة.

هذا كل شيء - الآن قم بالعد!