منتديات عقيل عطارد

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

تحتوي على معلومات فضائية وفلكية ودراسات عن المجموعة الشمسية والأجرام السماوية والمجرات وكل الذي في الكون من علم الفلك وريادة الفضاء .


    هياكل البيانات

    master
    master
    مدير عام
    مدير عام


    الإقامة : السودان
    الجنس : ذكر
    عدد المشاركات : 609
    كوكب مفضل :
    • عطارد
    • الزهرة
    • القمر
    • الأرض
    • المريخ
    • المشتري
    • زحل
    • أورانوس
    • نبتون
    • بلوتو
    • ترانس بلوتو

    الرصيد : 245508
    السمعة : 0
    تاريخ الإنضمام : 15/01/2016
    أكلات مفضلة : كل ما لذ وطاب ¤ _ ¤
    رأي العضو عن المنتدى : هايل

    عقيل هياكل البيانات

    مُساهمة من طرف master السبت 17 سبتمبر 2016, 12:24

    هياكل البيانات 79779321
     لقد تعلمت فيما سبق كيف تعلن عن بيانات حسب نوعها وقد كنت تعلن عنها بصورة منفصلة الآن وبنفس الطريقه سوف نعلن عنها ولكن في صورة مجمعة لتكون هيكل للبيانات وهذا الموضوع مفيد جدا في برمجه قواعد البيانات وسترى فوائد ذلك ولو اننا لم ندرس تخزين البيانات في ملفات على الاقراص حيث سنتناول ذلك في درس قادم ولكن عند تجميع البيانات في هياكل اذا قمت بتخزين الهيكل نفسه سيتم تخزين جميع عناصره دفعة واحدة دون ان تنسى اي عنصر وبالتالي يعطيك ميزة اضافيه عما لو كنت تعلن عن البيانات في صورة منفصلة كما سترى
     ومثالنا اليوم عن قاعدة البيانات الافتراضية التالية سوف ندرسها بالطريقه العاديه وبطريقة هياكل البيانات لتعرف الفرق وتفهم الموضوع وفي نفس الوقت تدرك ميزات وفوائد هياكل البيانات
     لنفرض ان هناك مصنع يعمل على فترتين ولكل عامل فيه سجل بيانات بالطبع لعامل الفترة الاولى والآخر لعامل الفترة الثانية ونفترض للتبسيط ان بيانات كل عامل تحتوي على اسمه ورقمه الوظيفي وراتبه اليومي حتى انه لوتغيب احدى الفترات وضع راتب يومه بالقيمة صفر حتى يتم حساب راتبه الشهري بصورة صحيحة وسيكون الاعلان عن البيانات بالصورة التاليه لنتفق عليها وفيها فائدة تكرار اشياء سبق الاشارة اليها في دروس سابقه
    الصيغة
    المتغير او وعاء البيانات
    char ]30[
    اسم الموظف افترضنا انه متغير حرفي سعته 30 حرف
    int
    الرقم الوظيفي للموظف وهو عدد صحيح
    float
    الراتب اليومي للموظف وهو عدد عشري لان الراتب من المؤكد انه سيحتوي على كسور
    دعنا الآن نعلن عن هذه البيانات بالصورة العادية لنعرف الفرق
     
    بيانات موظف الفترة الاولى
    char ]30[ Name1;
    int  Code1;
    float Wage1;
    بيانات موظف الفترة الثانية
    char ]30[ Name2;
    int  Code2;
    float Wage2;
    الصورة السابقه لتمثيل بيانات البرنامج مع اثنين من الموظفين يعملون لفترتين وكلما ادخلت بيانات اسم موظف الفترة الاولى سوف تستخدم المتغير Name1 وللفترة الثانية ستستخدم المتغير Name2 فماذا لو بدلت المتغيرين بالخطأ بالطبع سيحدث خلل كبير بالبرنامج دعنا نمثل ماسبق تماما بالطريقة الجديده عن طريق استخدام هياكل البيانات
    استخدام هياكل البيانات
    structOurDataBase
    }
    char ]30[ Name;
    int  Code;
    float Wage;
    {L1,L2;
    انظر الى الصورة السابقه كم هي مختصرة انها رائعة وانا ارى فيها اختصار مفيد ودعنا نرى كيف نصيغ ذلك بالجدول الذي تعودنا عليه للتوضيح
     الصيغة
    التفسير
    struct
    هو الامر الذي ندرسه الان ومعناه الاعلان عن هيكل بيانات
    OurDataBase
    اسم الهيكل سميه كما شئت
    }
    قوس بداية البلوك
     ضع ما يحلو لك من انواع بيانات داخل البلوك
    {
    قوس نهاية البلوك – لاتنساه من فضلك
    L1,L2;
    متغيرات اختياريه ترمز لمن سيشارك في استخدام البيانات المعلنه للهيكل
     كما رأيت بالمثال لم نستخدم  متغير اسم للموظف الاول وآخر للموظف الثاني بل استخدمنا متغير واحد وسوف يتشارك اي عدد حسب تصميم الهيكل في استخدام بيانات الهيكل ولنوضح ذلك
     للتعبير عن اسم الموظف الاول او موظف الفترة الاولى
    L1.Name
    للتعبير عن اسم الموظف الثاني او موظف الفترة الثانية
    L2.Name
    للتعبير عن رقم الموظف الاول او موظف الفترة الاولى
    L1.Code
    للتعبير عن رقم الموظف الثاني او موظف الفترة الثانية
    L2.Code
    للتعبير عن الراتب اليومي للموظف الاول او موظف الفترة الاولى
    L1.Wage
    للتعبير عن الراتب اليومي للموظف الثاني او موظف الفترة الثانية
    L2.Wage
    هل رأيت كم هي بسيطة ربما احتوى هيكل البيانات على مائة متغير مثلا سوف تخزنهم وتسترجعهم بمنتهى السرعة كما سترى فيما بعد ويمكن ايصبح تدوال البيانات السابقة داخل البرنامج سواء بالادخال من مستخدم البرنامج او بالتخصيص كما يلي
    L1.Name = “Mohamad Hasan”;
    L1.Code = 120;
    L1.Wage = 13.50;
    L2.Name = “Ahamd Ali”;
    L2.Code = 270;
    L2.Wage = 0;
    بالطبع هذه فكرة برنامج ويمكن اضافة المزيد من التحسينات من خلال تحليل البيانات فمثلا جمع المتغيرL1.Wageلمدة شهر سوف يعطيك راتبه الشهر وجمع القيم التي تساوي صفر للمتغيرL1.Wageلمدة شهر سوف يعطيك عدد ايام غيابه خلال الشهر وهذا يبقى دور تحليل البيانات لاستخلاص نتائج ومخرجات .

      الوقت/التاريخ الآن هو السبت 11 مايو 2024, 14:07