بتـــــاريخ : 2/22/2011 7:40:04 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1122 0


    آلية تخزين البيانات في لغة ++c. تصنيف تخزين البيانات إلى قسمين رئيسيين

    الناقل : elmasry | العمر :42 | الكاتب الأصلى : ♥ حُوريّة ♥ | المصدر : www.arabteam2000-forum.com

    كلمات مفتاحية  :

    السلام عليكم...

    راجية من الله أن تكونوا جميعاً في صحة وعافية.

    طبعاً خلال الفترة اللي طافت هذي, قرأت مواضيع متعلقة بالبيانات و تصنيفها, فكان هناك موضوع اشعل مخيلتي و انتج سؤال بذهني لو كنت قادرة اكيف و أصوغ هذا التصنيف في لغة ++C.

    تتجسد فكرتي هنا في تصنيف كل شيء يمكن أن يحتوي على قيمة أو قيم في لغة ++C بالضبط كالمتغير على سبيل المثال. يا ترى لش شدني هذا التصنيف؟

    اوكي...هناك نصيحة من البرفسر Bjaren Stroustup(مؤلف لغة ++C) لكل شخص يريد تعلم هذه اللغة باتقان. و هي النظر إلى مكونات وهياكل هذه اللغة نظرة تجريدية ( أي بعيدة عن التفاصيل المملة), بمعنى آخر أن ننظر إلى التقنيات في هذه اللغة وطرق عملها بشكل تجريدي بدون الاهتمام الى التفاصيل المملة التي قد تعمل على إحداث الشتات الذهني أثناء دراستنا لشيء معين. طبعاً, النظر إلى هذه التفاصيل يكون في وقت لاحق ومناسب. أيضاً, فإن هذه النصيحة موجهة للمبتدئين و لكن لا يعني أنها لا تناسب مع من هم بالمستويات المتوسطة و المتقدمة. على العكس, انا شايفة هذه الفكرة مناسبة لكل المستويات.
    الغوص في الموضوع:
    البرنامج في لغة ++C بل أي برنامج مكتوب بأي لغة تقريباً, يتكون من جزئين فقط لا غير (مع اعتبار كلمة فقط). هذان الجزئان هما:

    • البيانات(البيانات بصفة عامة). مثلا الاعداد الصحيحة 1, 2, 304-, 676, 0, 1-,...
    • العمليات عليها: بالضبط مثل الإجراءات في لغة ++C.
    لنأخذ و نتأمل المثال التالي:

    بالضبط تخيلوها, مثل الطين أو الصلصال(الخام) و الأدوات الخاصة بصناعة الفخاريات! مثل أداة الفرد و التكوير و التجويف إلى آخره. الطين الخام في هذا المثال, هو البيانات في البرنامج. و الأدوات هي الإجراءات, و الجرّة و المزهرية و التحفة هي ناتج البرنامج The Output. أوكي؟؟ يا ريت تتأملوا المثال لحظات.


    موضوعي هنا يتمحورٍ حول البيانات(الخام) و تصنيفها من حيث تخزينها في الكمبيوتر بلغة ++C. و هما صنفان رئيسيان فقط:

    • حاويات فردية المحتوى: Containers of Singular Content: وهي تلك الحاويات التي لا تحتوي إلا على قيمة أو أكثر من نوع واحد فقط من البيانات: ويتفرع إلى صنفين فرعيين:
    - حاوية ذات قيمة واحدة فقط: Container of Single Value: وهي تلك التي لا تحتوي إلا على قيمة واحدة فقط. وهي كالتالي:

    o المتغير Variable.

    o المرجع Reference.

    o المؤشر Pointer.

    o الثابت Constant: الناشيء بواسطة مفتاح الكلمة const كثوابت وليس كاقتراحات ممرة للإجراءات.

    - حاوية متعددة القيم: Container of Multiple Values: وهي التي تحتوي على أكثر من قيمة (بالطبع من نفس النوع). و هي كالتالي:

    o المصفوفة Array.

    o العداد Enumeration: الناشيء بواسطة مفتاح الكلمة enum. لا يحتوي إلا على نوع اعداد صحيحة فقط.

    2- حاويات متعددة المحتوى: Containers of Multiple Contents: وهي الحاويات التي تحتوي على بيانات من أنواع مختلفة: وهي كالتالي:
    o الطبقة (الصنف) Class.الناشيء بواسطة مفتاح الكلمة class.
    o الهيكل (البناء) Structure. الناشئ بواسطة مفتاح الكلمة struct.
    o الإتحاد Union: الناشئة بواسطة مفتاح الكلمة union.

    الصنف الرئيسي الثاني (حاويات متعددة المحتوى) يختلف عن الأول بتعددية الانواع اللي ممكن يحتويه هذا الحاوي و ليس بتعددية القيم. على سبيل المثال الطبقة(الصنف) class قد يحتوى على تقريباً جميع أنواع البيانات المسموح بها في لغة ++C, و الهيكل كذلك struct قد يحوي على اعضاء من بيانات مختلفة مثل عدد من نوع عدد صحيح او آخر من نوع كسري...وهكذا. بينما العداد المدرج تحت الصنف الأول يحتوي على قيم عديدة ولكن كلها لها نوع بيانات واحد فقط وهو من نوع عدد صحيح, كذلك المصفوفة Array قد تحتوي على قيم كثيرة و لأكثر من بُعد واحد ولكن كلها يجب أن تكون من نوع بيانات واحد فقط.

    تنبيه : تسمية التصنيفات و ترجمتها بواسطة كاتبة الموضوع (رغد) وهي ليست بيارق او مصطلحات رسمية.

    ملاحظة: و ياريت تنبهوني لو كان هناك نقص بالذات في الحاويات.
    مع تمنياتي لكم بالتوفيق

    كلمات مفتاحية  :

    تعليقات الزوار ()