logo

logo

logo

logo

logo

أنواع المعطيات

انواع معطيات

Data types - Types de données

أنواع المعطيات

زهير دحروج

الأنواع البسيطة

الأنماط المركبة

أنماط الصفوف

 

يُعرِّف نوع المعطيات data type - في اختصاص المعلوماتية- صنفاً من أنواع المعطيات المتنوعة، مثل الأعداد الصحيحة والأعداد الكسرية أو الحقيقية والحروف والقيم المنطقية (صح، خطأ) والسلاسل الحرفية والجداول والتسجيلات, ونحوها.

يسمح تعريف النوع بتحديد القيم الممكنة له (القيم التي يمكن أن تأخذها متحولات من هذا النمط)، كما يحدِّد العمليات التي يمكن تطبيقها عليه، وأخيراً يمكن إضافة طريقة الخزن إلى التعريف. إذاً يتحدد نمط المعطيات بثلاثة عناصر: القيم، والعمليات، وطريقة الخزن.

تحوي كل لغات البرمجة مفهوم أنماط المعطيات على نحوٍ صريح. وغالباً ما تتضمن هذه الأنماط ما يلي:

الأنواع البسيطة

- الأنواع العددية: الصحيحة integer، إضافةً إلى الكسرية أو الحقيقية real/floating point.

- النوع المنطقي lagic (القيمتان: صح، خطأ)، وكثيراً ما يسمى باسم النمط البولياني Boolean، نسبة إلى الرياضي «جورج بول» مؤسس جبر المنطق.

- نمط المحارف characters

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

1- نوع الأعداد الصحيحة:

القيم: عندما يجري الخزن في 4 بايتات يتحدد مجال الأعداد السالبة والموجبة بين: 231 - و+231

العمليات: العمليات الحسابية المعروفة وهي الجمع والطرح والضرب والقسمة (+, -, *, /)، وغالباً ما تضيف لغات البرمجة عملية باقي القسمة (mod وتكتب % في لغة البرمجة C).

طريقة الخزن: تُخزّن في 2 أو 4 أو 8 بايتات، وتُمثَّل الأعداد السالبة بالإتمام إلى 2n.

2- النمط المنطقي:

القيم: صح وخطأ وهي بالإنكليزية true, false.

العمليات: العمليات المنطقية (و، أو، لا)، وهي بالإنكليزية (and, or, not)، وهي الكلمات المستخدمة في الكثير من لغات البرمجة ماعدا التي تتبع قواعد لغة C .

طريقة الخزن: تُخزَّن في بت واحد.

3- نمط المحارف:

القيم: محارف تحكم مقابلة للقيم: 0 1 2 3...31 وبعدها تأتي الحروف القابلة للإظهار، مثلاً الحروف (A)..(Z) مقابلة للقيم 65،، 66، 67 ،...90.

العمليات: التحويل من محرف إلى عدد وبالعكس.

طريقة الخزن: تُخزَّن في بايت أو بايتين، وفق الرماز ASCII «آسكي» أو الرماز Unicode «يونيكود».

تجدر الإشارة إلى أن مفهوم العمليات على النمط لا يقتصر على مفهوم مؤثِّر في عنصرين كعملية (+) على عددين من نمط صحيح، إنما يُعمّم مفهوم العملية هنا إلى أي إجراء Procedure (برنامج جزئي/تابع) يتعامل مع النمط، مثل: إدخال عدد من الدخل، أو إظهار عدد على الخرج، أو التوابع الرياضية على الأعداد.

الأنماط المركبة

وهي الأنماط المبنية من تجميع عدة أنماط ومنها:

  • نمط السلاسل المحرفية string: وهي متتالية من الحروف. يمكننا مثلاً خزن الأسماء في متحولات من هذا النمط.
  • نمط الجداول array: وهو تجميع لعناصر من النمط نفسه. يمكن الوصول إلى أي عنصر من الجدول بدليل index (رقم العنصر في الجدول).
  • نمط التسجيلة record: هو تجميع لعناصر ليست بالضرورة من النمط نفسه، ويجري تعريف هذا النمط من المبرمج. وهذا التعريف هو بمثابة تعريف حقول استمارة معلومات. كمثال تقليدي عن التسجيلة، يعطى تعريف الحساب المصرفي: اسم ورقم حساب ورصيد. يُلاحظ هنا تجميع ثلاثة عناصر معطيات من ثلاثة أنماط: سلسلة محرفية، عدد صحيح، عدد حقيقي.

    يتوافر نمطا السلاسل الحرفية والجداول في معظم لغات البرمجة وخصوصاً الجداول؛ فهي موجودة حتى في اللغات القديمة جداً.

    أنماط الصفوف

    منذ نهاية ثمانينيات القرن العشرين انتشر ما يسمى اللغات الغرضية التوجه Object Oriented Programming Languages، وهي لغات تعتمد أساساً على أنماط مركبة تسمى بالصفوف classes. ووفق مصطلحات هذه اللغات، تُسمّى المتحولات من هذه الأنماط (الصفوف) أغراضاً. يمكن تعريف نمط الصف بأنه نمط مركّب من أنماط معطيات (كما هي حال التسجيلة) إضافة إلى تعريف العمليات المراد استخدامها على هذا النمط المركب كجزء لا يتجزأ من تعريف النمط. إذاً فالعنصر المهم في تعريف الصفوف هو تضمين العمليات في تعريفها، فهي تغليف لتجميع عناصر معطيات والعمليات عليها. وبذلك يمكن التركيز في التعامل مع أنماط الصفوف على العمليات، وليس على طريقة خزن المعطيات (كما في الأنماط البسيطة).

    هنا تُسمى العمليات (الإجراءات/التوابع المذكورة سابقاً) طرائق methods. وتُستخدَم النقطة «.» سابقة لاستدعاء عملية/طريقة على متحولات من أنماط صفوف (على الأغراض).

    مثال:

    ليكن نمط الصف C والعملية المعرَّفة عليه () f. يجري تطبيق العملية على المتحول (الغرض) o من نمط الصف C على النحو التالي: () o.f

    أما مع نمط التسجيلة R والعملية المعرّفة عليه () f، يجري تطبيق العملية/الإجراء على المتحول r من نمط التسجيلة R على النحو التالي: (f(r

    ويُلاحظ في لغات البرمجة الغرضية التوجه مثل «جافا» Java و«سي شارب» http://arab-ency.com.sy/tech/details/515/4#C، أن جميع الأنماط غير البسيطة تُعَدُّ أنماطَ صفوف، لذلك تتعامل هذه اللغات مع السلاسل المحرفية والجداول بعدّها صفوفاً. وبالطبع لا تتضمن هذه اللغات نمط التسجيلة التقليدي لأن نمط الصف يستوعبها مباشرةً.

    نمط المعطيات المجرّد (Abstract Data Type (ADT

    إن التركيز الأكبر عند النظر إلى أنماط المعطيات هو على العمليات المتاحة بصرف النظر في كثير من الأحيان عن طريقة الخزن وآلية تحقيق العمليات. ويسمى هذا المنظور نمط المعطيات المجرّد ADT، وهو ما حققته لغات البرمجة التي أجادت تخبئة تفاصيل تعريف النمط، عبر اعتماد الاجتزائية/ النسقية المتينة، مثل لغة «آدا» Ada، أو عن طريق اعتماد أنماط الصفوف في اللغات الغرضية التوجه. وهنا يجب تخبئة التفاصيل بمنع الوصول إلى معطيات الصف إلا عن طريق العمليات المعرَّفة عليه.

    مراجع للاستزادة:

    - J. Farrell, Java Programming, Cengage Learning Publisher, 2011.

    - J. J. Parsons, and D. Oja, Computer Concepts, Cengage Learning Publisher, 2011.


التصنيف : الهندسة المعلوماتية
النوع : الهندسة المعلوماتية
المجلد: المجلد الرابع
رقم الصفحة ضمن المجلد : 0
مشاركة :

اترك تعليقك



آخر أخبار الهيئة :

البحوث الأكثر قراءة

هل تعلم ؟؟

عدد الزوار حاليا : 756
الكل : 41147921
اليوم : 104356